A Receive Task is a simple Task that is designed to wait for a Message to arrive from an external Participant (relative to the Process). Once the Message has been received, the Task is completed. The actual Participant from which the Message is received can be identified by connecting the Receive Task to a Participant using a Message Flow within the definitional Collaboration of the Process. A Receive Task is often used to start a Process. In a sense, the Process is bootstrapped by the receipt of the Message. In order for the Task to Instantiate the Process it must meet one of the following conditions: - The Process does not have a Start Event and the Receive Task has no incoming Sequence Flow. - The incoming Sequence Flow for the Receive Task has a source of a Start Event. - Note that no other incoming Sequence Flow are allowed for that Receive Task (in particular, a loop connection from a downstream object).
: BpmnReceiveTask (architecture_autodiagram)
Figure 9 : BpmnReceiveTask (architecture_autodiagram)
string Implementation [1..1]
This attribute specifies the technology that will be used to send and receive the Messages. Valid values are "##unspecified" for leaving the implementation technology open, "##WebService" for the Web service technology or a URI identifying any other technology or coordination protocol. A Web service is the default technology.
boolean Instanciate [1..1]
Receive Tasks can be defined as the instantiation mechanism for the Process with the instantiate attribute. This attribute MAY be set to true if the Task is the first Activity (i.e., there are no incoming Sequence Flows). Multiple Tasks MAY have this attribute set to true.
MessageRef : BpmnMessage [0..1]
OperationRef : BpmnOperation [0..1]