Pages

Sunday, April 24, 2011

How to Design Primary Workflows With Many Baby Workflows

Our fourth installment in the BPMN lecture series.
After spending two or three months in business process management activities, you will probably start to want to connect processes in a "primary—secondary" relationship.
In other words, process a1 (model A) can:
  • Start process b1 (model B) [e.g. order acceptance -> production]
  • Start processes b1 and b2 (model B) [e.g. order -> shipping]
  • Start process a2 (model A) [e.g. this month's invoice -> next month's invoice]

The settings depend on what BPMS system you are using; naturally, we'll explain with the functions of Questetra BPM Suite.

Previous BPMN Lecture articles:
<Tasks>
1. Name your child

[BPMN Sample <Generate Child> : "Birth" setting screen]


<Process Data Items>
  • Title <My name>(string)
  • My date of birth (date)
  • My parent's name (string)
  • My parent's date of birth (date)
  • My child's name (string)
  • My child's date of birth (date)
  • Give birth or end? (Select: Give birth / end)

In this sample, the "primary" workflow can generate "secondary" workflows as many times as it wants. In Questetra BPM Suite, all you have to do is set the parameters in the property of the Message Throwing Intermediate Event.
  • My name -> (my child's) Parent's name (data[1].input)
  • My date of birth -> (my child's) Parent's date of birth (data[2].input)
  • My child's name -> (my child's) my name (title)
  • My child's date of birth -> (my child's) my date of birth (data[0].input)

The settings are generally inputted in the format, "data[$ID].input" but this differs for file type and select type process data, so be careful. See here for details.
The below workflow is even cooler—it can give birth to twins!

<Tasks>
1. Name your child

<Process Data Items>
  • Title <My name>(string)
  • My date of birth (date)
  • My parent's name (string)
  • My parent's date of birth (date)
  • My child's name A (string)
  • My child's date of birth A (date)
  • My child's name B (string)
  • My child's date of birth B (date)
  • Give birth or end? (Select: Give birth / end)

Reference: Primary Processes With Lots of Kids (Branching Processes)