Understanding BPM Event
Collaboration is the message exchange between processes while conversation is for grouping message exchange between processes and it also defines the state of collaboration between participants and the message exchange will follow the message exchange patterns. BPEL process, BPMN process, Human tasks, Business rules and references are termed as participants in this context. Oracle BPM offers send and receive task, message events, signal events, service tasks, call activities etc. to communicate with other processes, service and events. This chapter you will expose the scenario where we have assumed that the loan origination processes gets started from the bank’s back office (customer case/ back office center). There are other ways too to initiate loan like web, branch etc. Backoffice process interacts with loan origination process and once the loan origination process gets completed, Backoffice process initiates customer feedback process. While implementing the sample due care is taken to demonstrate most of the BPM features which provisions interprocess and collaborative communications.
Oracle BPM offers four kinds of events -
- Start event
- Throw event
- Catch event and
- End event
Start Event- Message Start, Signal Start and Timer Start are used to start a new process instance. Start event can be defined for a BPM process or can be a trigger type for the event Subprocess. Event Subprocess are used to handle a event and are referred as event Subprocess. They can either interrupt normal process flow or they can be non-interrupting. Event Subprocess can have message start, signal start, timer start and error start as the start trigger type. It’s only error trigger type for the event Subprocess which is interrupting in nature however all other trigger type can be both – interrupting and non- interrupting.
Intermediate events – Catch event and throw event are also termed as intermediate events as they establish interaction of a process with other process and services. Start events can only catch any triggers and end events which can throw triggers however intermediate events can throw and catch events. As you will check in above table – intermediate events are of throw type and catch type to throw and catch events.
Catch event can used in many variants in Oracle BPM. Catch event can be configured as wait activities which happen to wait for message, signal or timer event to take place. OR catch events can be configured as a boundary event on various activities and sub processes. These boundary catch event can be of interrupting or non-interrupting type , depends on the way they deal with the normal process flow. You can implement timer as boundary event to introduce a delay, SLA or a wait on an activity or a embedded Subprocess. You can use a receive activity in place of a catch event however they have there on use case which we have discussed in this chapter. Catch intermediate events are also used as boundary events to a Subprocess or activities of certain type. When any associated boundary event executes then the process flows to exception path. A boundary event can of interrupting or non-interrupting type. In non-interrupting boundary event, process flows to normal process flow and exception flow as both are mutually exclusive however in interrupting boundary event case, process flow moves to only exception flow.
Throw message intermediate event are, of asynchronous nature and can be turned into synchronous nature , used to send messages to external processes and services and a catch message intermediate event to receive callback message from other process or service. Throw signal intermediate event is used to publish a signal while catch signal intermediate event is to subscribe and catch a broadcasted signal. When you publish and subscribe to events you are dealing with Oracle SOA’s EDN.
Timer boundary events are use to handle timeout exceptions and they can be of interrupting and non-interrupting types. Interrupting timer boundary event drags the process flow to exception path as it interrupts the normal process flow while the non-interrupting boundary timer event will allow the process to continue on normal path and in parallel also executes the exception flow. You can use non-interrupting boundary timer in cases like notification or escalation etc. Throw event are use to send a message or a signal in the process. They are similar to send task.
End event – They introduces normal process end if the process ends with a message or a signal. However if the process ends with a terminate or an error it;s termed as abnormal process ending.
Note – N is specified for None start event as you cannot start a process instance by just having a none start event. You would need a receive task with create instance property or a initiator human task to create a process instance.