Research

Notes

Research

Write Text

the Topic

 

Figure 10.68 – A Data Object associated with a Sequence Flow

10.4.2 Execution Semantics for Data

When an element that defines an InputOutputSpecification is ready to begin execution by means of Sequence Flow or Event being caught, the inputs of the interface are filled with data coming from elements in the context, such as Data Objects or Properties. The way to represent these assignments is the Data Association elements.

Each defined InputSet element will be evaluated in the order they are included in the InputOutputSpecification.

For each InputSet, the data inputs it references will be evaluated if it is valid.

All data associations that define as target the data input will be evaluated, and if any of the sources of the data association is “unavailable,” then the InputSet is “unavailable” and the next InputSet is evaluated.

The first InputSet where all data inputs are “available” (by means of data associations) is used to start the execution of the Activity. If no InputSet is “available,” then the execution will wait until this condition is met.

The time and frequency of when and how often this condition is evaluated is out of scope for this International Standard. Implementations will wait for the sources of data associations to become available and then re-evaluate the InputSets.

In the case of throw and catch Events, given their nature, the execution semantics for data is different.

When a throw Event is activated, all DataInputAssociations of the event are executed, filling the Data Inputs of the Event. Finally, DataInputs are then copied to the elements thrown by the Event (Messages, Signals, etc.). Since there are no InputSets defined for Events, the execution will never wait.

When a catch Event is activated, Data Outputs of the event are filled with the element that triggered the Event. Then all DataOutputAssociations of the Event are executed. There are no OutputSets defined for Events.

To allow invoking a Process from both a Call Activity and via Message Flow, the Start Event and End Event support an additional case.

In the case of a Start Event, the Data Inputs of the enclosing process are available as targets to the DataOutputAssociations of the Event. This way the Process Data Inputs can be filled using the elements that triggered the Start Event.

In the case of an End Event, the Data Outputs of the enclosing process are available as sources to the DataInputAssociations of the Event. This way the resulting elements of the End Event can use the Process Data Outputs as sources.

224

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

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.