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

triggers compensation for all instances within the current scope. If compensation is specified via a boundary compensation handler, this boundary compensation handler also is invoked once for each instance of the Multi-Instance Sub-Process in the current scope.

10.7.3 Relationship between Error Handling and Compensation

The following items define the relationship between error handling and compensation:

Compensation employs a “presumed abort principle,” with the following consequences: Compensation of a failed Activity results in a null operation.

When an Activity fails, i.e., is left because an error has been thrown, it’s the error handlers responsibility to ensure that no further compensation will be necessary once the error handler has completed.

If no error Event Sub-Process is specified for a particular Sub-Process and a particular error, the default behavior is to automatically call compensation for all contained Activities of that Sub-Process if that error is thrown, ensuring the behavior for auditing and monitoring.

10.8 Lanes

A Lane is a sub-partition within a Process (often within a Pool) and will extend the entire length of the Process level, either vertically (see Figure 10.122) or horizontally (see Figure 10.123). Text associated with the Lane (e.g., its name and/or that of any Process element attribute) can be placed inside the shape, in any direction or location, depending on the preference of the modeler or modeling tool vendor. Our examples place the name as a banner on the left side (for horizontal Pools) or at the top (for vertical Pools) on the other side of the line that separates the Pool name, however, this is not a requirement.

A Lane is a square-cornered rectangle that MUST be drawn with a solid single line (see Figure 10.123 and Figure 10.124).

The label for the Lane MAY be placed in any location and direction within the Lane, but MUST NOT be separated from the contents of the Lane by a single line (except in the case that there are sub-Lanes within the Lane).

304

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

Name

Name Name

Figure 10.123 – Two Lanes in a Vertical Pool

Name N ame

Name

Figure 10.124 – Two Lanes in a horizontal Pool

Lanes are used to organize and categorize Activities within a Pool. The meaning of the Lanes is up to the modeler. BPMN does not specify the usage of Lanes. Lanes are often used for such things as internal roles (e.g., Manager, Associate), systems (e.g., an enterprise application), an internal department (e.g., shipping, finance), etc. In addition, Lanes can be nested (see Figure 10.125) or defined in a matrix. For example, there could be an outer set of Lanes for company departments and then an inner set of Lanes for roles within each department.

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

305

 

Sales

 

Sell to

 

 

 

Customer

 

 

 

 

 

 

 

-Sales

Accumulate

 

 

 

Require-

 

 

 

Pre

ments

 

 

Marketing

 

 

Supplier

Post-Sales

Verify

 

Require-

 

ments

 

 

 

 

Consulting

 

Consulting

Bugs

 

 

Required

Diagnosed

 

 

Bug List

 

 

Engineering

 

Develop

Develop

 

 

Product

Patch

 

 

 

 

Figure 10.125 – An Example of Nested Lanes

Figure 10.126 shows the Lane class diagram. When a Lane is defined it is contained within a LaneSet, which is contained within a Process.

306

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

Figure 10.126 – The Lane class diagram

The LaneSet element defines the container for one or more Lanes. A Process can contain one or more LaneSets. Each LaneSet and its Lanes can partition the Flow Nodes in a different way.

The LaneSet element inherits the attributes and model associations of BaseElement (see Table 8.5). Table 10.134 presents the additional attributes and model associations of the LaneSet element.

Table 10.134 – LaneSet attributes and model associations

Attribute Name

Description/Usage

 

 

name: sting [0..1]

The name of the LaneSet. A LaneSet is not visually displayed on a BPMN

 

diagram. Consequently, the name of the LaneSet is not displayed as well.

process: Process

The Process owning the LaneSet

 

lanes: Lane [0..*]

One or more Lane elements, which define a specific partition in the LaneSet.

 

parentLane: Lane [0..1]

The reference to a Lane element which is the parent of this LaneSet.

 

A Lane element defines one specific partition in a LaneSet. The Lane can define a partition element that specifies the value and element type, a tool can use to determine the list of Flow Nodes to be partitioned into this Lane. All Lanes in a single LaneSet MUST define partition element of the same type, e.g., all Lanes in a LaneSet reference a Resource as the partition element, but each Lane references a different Resource instance.

The Lane element inherits the attributes and model associations of BaseElement (see Table 8.5). Table 10.135 presents the additional attributes and model associations of the Lane element.

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

307