Process Patterns in BizAGI Overview Types of events Types of gateways Design patterns list Events Fire as a result of something happening A message is received A period of time elapses An exceptional conditional arises We typically perform an action in response to an event Event Types Message – Arrives from a participant Timer – Process starts at a period in time Rule (conditional)– Triggers when a rule becomes true Event Types (2) Link – Connect the end event of one process to the start of another process Multiple – Multiple ways of triggering the process Exception – An error End events Message Events Messages are typically sent by one participant and received by another Send sales order information that is received by accounting to check credit The event can be thrown or caught Sending a message means throwing a message Receiving a message means catching a message See MessageThrowCatch in EventSamples Message Throw Catch Example Timer Events The event fires a specific time or cycle Only applicable to start or intermediate events In BizAgi, use the Element properties to set the timer to a date or cycle Examples Time delay to approve credit Wait for payment date Start payroll process every two weeks See Timer in EventSamples Conditional Events Events that fire when an external condition becomes true or false Process A/P checks on Mondays Inventory below threshold – generate order request Only applicable to start or intermediate events See Conditional in EventSamples We could also implement this as a timer Gateways 1 Gateways are used to depict decisions or merges Types Exclusive (XOR) Inclusive (OR) Only one output (alternative) flow is allowed Gateways diverge or converge A default output flow must be specified Parallel for / join (AND) Gateways (2) Event-based gateways These are (Exclusive) gateways that rely on external messages Gateway – XOR Example Exclusive XOR Decision See ExclusiveGateway in EventSamples Gateway - OR Inclusive OR decision Gateway – Example 3 Parallel Forking – All sequence flows drawn out of the gateway are taken Processes and Tasks A process is a network of steps A process can be marked as having a subprocess To mark an activity has having a sub process, right-click the activity and click Transform to subprocess Sub Processes – Illustration (1) Data Objects First, we are not talking about a database or physical data We are talking about information about a process Data objects are attached to a sequence or message flow with a dashed line Data Objects (Illustration) Text Annotation Contains descriptive text about a process A line connects the annotation to the activity Workflow Patterns (Introduction) In this second section of the lecture, we talk about simple and complex workflow patterns Much of this is derived from the AIFB paper (Modeling Workflow Patterns) in this lecture Sequence Pattern Tasks are executed in sequence (one after another) Parallel Split This is a logical AND gateway The parallel branches are executed concurrently Parallel Split (Example) Synchronization Two or more different branches get merged into a single branch All merged branches must be completed before the process can continue (Implied) Synchronization can occur because of a parallel split Synchronization (Illustration) Exclusive Choice Here, we are making a decision with mutually exclusive outcomes (Only one outcome is possible) Exclusive Choice (Example) Simple Merge A point in a process where two or more branches are merged into a single branch The initial branches are created via some type of choice Simple Merge (Example)