Hi all,
in our logistics domain there is a typical process modeling pattern dealing with rearrangements in the flow of data objects (or business objects, BOs) between activities: data from different process instances is processed by one user task implementation and hereby merged to FEWER results, i.e. not every process instance gets a result. Hereafter the opposite occurs: data is recombined into a non-fixed higher number of results.
As an example, we have a coarse BPMN model A->B->C as shown below, where between these activities (e.g., a user task with complex internal BO rearrangement logic in its implementation, which may e.g. use a WMS (warehouse management system)) the following data objects flow:
- Each incoming BO-A message starts a process instance and leads to a BO-A-object as a result of activity A (this is simple).
- But in activity B several BO-A-objects (e.g. na=5, but varying, originating from different process instances) are combined into nb<na BO-B-objects (e.g. 2, but varying). Only 2 process instances continue?
- Finally these objects are processed by activity C, resulting in nc>nb BO-Cs (e.g. nc=4, but no fixed pattern). New process instances or threads are created?
Below is a variant of the model which uses only one process instance but data lists. Is the "Always receive messages of type BO-A" modelled right?
Another alternative would be to use data repositories between the tasks to enable the free recombination of objects.
How may such use cases be modeled and impemented best using BPMN 2.0 and especially Activiti (specifically, the control logic for the completion of such tasks)?
Thanks for any advice
Norbert Weissenberg
[attachment=0]BPMN-Problem.jpg[/attachment]