Скачиваний:
25
Добавлен:
28.01.2021
Размер:
7.15 Mб
Скачать

Only completed Activities could, in principle, be compensated, however, the Activity can end in state Completed, as compensation might not be triggered or there might be no compensation handler specified. If the compensation handler is invoked, the Activity changes to state Compensating until either compensation finishes successfully (state Compensated), an exception occurs (state Failed), or controlled or uncontrolled termination is triggered (state

Terminated).

13.3.3 Task

Task execution and completion for the different Task types are as follows:

Service Task: Upon activation, the data in the inMessage of the Operation is assigned from the data in the Data Input of the Service Task the Operation is invoked. On completion of the service, the data in the Data Output of the Service Task is assigned from the data in the outMessage of the Operation, and the Service Task completes. If the invoked service returns a fault, that fault is treated as interrupting error, and the Activity fails.

Send Task: Upon activation, the data in the associated Message is assigned from the data in the Data Input of the Send Task. The Message is sent and the Send Task completes.

Receive Task: Upon activation, the Receive Task begins waiting for the associated Message. When the Message arrives, the data in the Data Output of the Receive Task is assigned from the data in the Message, and Receive Task completes. For key-based correlation, only a single receive for a given CorrelationKey can be active, and thus the Message matches at most one Process instance. For predicate-based correlation, the Message can be passed to multiple Receive Tasks. If the Receive Task’s instantiate attribute is set to true, the Receive Task itself can start a new Process instance.

User Task: Upon activation, the User Task is distributed to the assigned person or group of people. When the work has been done, the User Task completes.

Manual Task: Upon activation, the manual task is distributed to the assigned person or group of people. When the work has been done, the Manual Task completes. This is a conceptual model only; a Manual Task is never actually executed by an IT system.

Business Rule Task: Upon activation, the associated business rule is called. On completion of the business rule, the Business Rule Task completes.

Script Task: Upon activation, the associated script is invoked. On completion of the script, the Script Task completes.

Abstract Task: Upon activation, the Abstract Task completes. This is a conceptual model only; an Abstract Task is never actually executed by an IT system.

13.3.4 Sub-Process/Call Activity

A Sub-Process is an Activity that encapsulates a Process that is in turn modeled by Activities, Gateways, Events, and Sequence Flows. Once a Sub-Process is instantiated, its elements behave as in a normal Process. The instantiation and completion of a Sub-Process is defined as follows:

A Sub-Process is instantiated when it is reached by a Sequence Flow token. The Sub-Process has either a unique empty Start Event, which gets a token upon instantiation, or it has no Start Event but Activities and

Gateways without incoming Sequence Flows. In the latter case all such Activities and Gateways get a token. A Sub-Process MUST not have any non-empty Start Events.

430

Business Process Model and Notation (BPMN), v2.0.2