Receive Task
Introduction
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.
— BPMN 2.0.2 Standard, 10.3.3, Receive Task
In case you are not planning to do a deep-code implementation, and you would like to retrieve an event through a message bus, please consider using the Receive Event Task instead. This allows you to use the Flowable Event Registry instead of manually programming.
In Flowable, Receive Tasks are used if you want to stop the execution flow until an external source sends a trigger to continue.
This can be useful if an external system needs a long time to process data, and you want to wait until the processing is done.
A similar result can be achieved if the flag Triggerable
in a Service Task is activated.
Example
The following example shows a process where a user enters the name and address of a client. The information is then sent to an ERP system. Since the communication between the Java back end of our application and the external system is asynchronously, we do not know when the processing is done. For that reason, the ERP system has to acknowledge that the client was created, for instance by calling a REST endpoint defined in the application which triggers the continuation of the process.
Properties
:::palette-item com.flowable.design:flowable-core-palette com/flowable/palette/core.process.palette ReceiveTask