Thursday, November 15, 2007

Batch processing example in BPMN




Recently I was presented with this scenario by a colleague and asked, how would I do it in BPMN.
Following is the use case and then there is a proposed BPMN solution out there.
* Process starts with a receive from an queue.
* Queue returns a set of structured elements
* For each element
o Check If element is invalid
o Group elements as type A / B / GP
* End Loop *

* Now, for each set, process as follows
o Invalid elements
+ Prepare report based on invalid elements
+ Email report to managers
o sub-element-set A
+ Group each set of sub-element-A by any common values
+ Determine task assignee for each grouping of elements
+ Generate a human workflow task for each grouping of lements
+ Return immediately (e.g. don't wait for task to complete)
o sub-element-set B/element-GP
+ Merge the two sets of elements
+ Prioritize each of the new set of elements
+ Group each set of elements if they have a common sub-element-B value
+ Determine task assignee for each grouping of elements
+ Generate a human workflow task for each grouping of lements
+ Return immediately (e.g. don't wait for task to complete)
* Done.