About Message Intermediate Events
A message intermediate event throws (sends) or catches (receives) a message. It cannot start a process instance.
A catching message intermediate event results in the generation of a trigger condition that is always active. In other words, a published message that matches the condition of the catching message intermediate event is always received and held until such time as the sequence flow(s) are received.
In BPMN terms, this is described as the step or subprocess being activated. In strict BPMN terms, a catching message intermediate event should not fire until the inbound sequence flow has reached that step. It can be argued that the current implementation does not adhere strictly to BPMN 2.0 because the message is received and held before the sequence flow reaches the catching message intermediate event.
However, strict adherence to BPMN 2.0 in this case could result in unwanted results, such as race conditions and lost messages. This interpretation of BPMN 2.0 avoids these potential problems.
Software AG Designer extends BPMN functionality to support the use of EDA event types and the EDA protocol in BPMN Message Events.
Note:
When creating a callable process that is to be called by a call activity step, always implement a send task in the callable process to return to the parent process. Message intermediate events and message end events will only publish a document and will not return it to the parent.
Related Topics