Automatic case opening


Is it possible to open, start a case as a last process step in on App/Case Model in an other App/Case Model?
In the specific case we want to trigger out of an on-boarding App/Case Model an contract extension App/Case Model.


By default in edoras one you can refer only to other models included in the same app. This enforces consistency among all models from the same app at deployment time, what wouldn’t be possible to assert by the engine when the pointed model was in another app. There is a way to overcome this consistency check, and it is by using the attribute “Process reference (RT)”, where RT stands for ‘RunTime’. It’s the developer’s responsibility to maintain the logical consistency when this mode is used.

The expression given there corresponds to a backend service the developer has to write and whose final purpose would be to provide a process definition. As this backend service has access to all data, this process definition resolution is capable of providing definitions hosted in different apps. Personally I’ve used this pattern once in a customer that had the same super-process structure and the Call Activities were pluggable to execute different logic. In order to provide logical consistency, we treated all apps deployed at startup as a whole logical deployment, therefore receiving the same deployment id (a property given on definition creation with a custom implementation of com.edorasware.commons.core.service.entity.WorkObjectDefinitionActionListener). Then we wrote the backend service to search for processes given a process name and deployment id, being this unique in the system.