What are some recommended strategies to deal with these situations?
In my former .NET life, I would consider the Server Module analogous to WebAPI or MVC Controllers and offload the business logic into a "Service" or "Domain" object. So that the responsibility of the controller was to deal with the HTTP Request/Response and the Service's responsibly was to fulfill the logic of the request.
I am beginning to see a need for the same type of thing for complex Server Modules.
I've used a server side reusable part before to abstract away some of the complexities of dealing with Integrator and it's JSM commands. So I could do the same here, create a reusable server side part that would handle the complex logic and leave the server module to map the inputs and outputs aka Requests and Responses.
I've also thought about using Functions as I can then invoke them form Windows Forms to test them, similar to how I test repository Rules and Triggers. That makes a lot of sense to me as I can call that Function from a Server Module or a Function, however this line in the documentation
in http://docs.lansa.com/14/en/lansa015/in ... call_c.htm gives me pause and apparently I should use Exchange Lists.The use of parameters when calling another process or function is strongly not recommended. Use the exchange list instead.
Ok, but I cannot pass lists or data structures with Exchange Lists, or can I? The documentation does not say anything about exchanging lists or data structures and I cannot (according to the docs) get a result from a Function without an Exchange List. It seems almost like a catch-22.
So, how are you handling complex Server Modules? Do you just leave them alone and let them be?
Thanks,
Joe