Prev Next

Escalation Event

In BPMN, Escalation is the non-interrupting counterpart of Error, with similar throw-catch behavior. Unlike Error, however, the normal flow and exception flow exits from the Activity are parallel paths, not alternative.

Create BPMN Model

Create the main process

  • Create a Start Event S1
  • Add a Sequence Flow to a target Activity subProcess1; enlarge the Activity and right-click, selecting the 'Is Expanded' option, then open the 'Properties' dialog and set 'Type' to 'subprocess'
  • Add a Sequence Flow to a target abstractTask Activity element Task2 (20) (open the 'Properties' dialog and set the 'Type' field to 'abstractTask')
  • Add a Sequence Flow to a target parallel Gateway element merge Parallel (open the 'Properties' dialog and set the 'Type' field to 'parallel')
  • Add a Sequence Flow to a target End Event E1
  • On subProcess1, add a boundary non-interrupting Escalation Event Catch Issue (drag the 'Intermediate Event' icon onto subProcess1, and from the instant menus select 'Edge Mounted' and 'Escalation'; double-click on the element to display the 'Properties' dialog and add the name, then in the 'Type' field select 'Boundary Non-Interrupting > Escallation')
  • Add a Sequence Flow to a target abstractTask Activity element Task3 (30) (open the 'Properties' dialog and set the 'Type' field to 'abstractTask')
  • Add a Sequence Flow to the target element merge Parallel

Create the sub process

  • Within (or under) subProcess1, create a Start Event S2
  • Add a Sequence Flow to a target abstractTask Activity element Task1 (open the 'Properties' dialog and set the 'Type' field to 'abstractTask')
  • Add a Sequence Flow to a target Throwing Escalation Intermediate Event Throw Issue (open the 'Properties' dialog and in the 'Type' field select 'Throwing > Escalation')
  • Add a Sequence Flow to a target End Event E2

Create BPMN2.0::Escalation elements

From the Diagram Toolbox, expand the 'BPMN 2.0 Types' page, drag the 'Escalation' icon onto the diagram, and give the element the name Escalation1; this will be used as the escalation code by the Events.

Set up Events for Escalation Codes:

  • Double-click on Throw Issue and in the 'Value' field for the escalationRef tag click on the icon and locate and select Escalation1
  • Double-click on Catch Issue and, again, in the 'Value' field for the escalationRef tag click on the icon and locate and select Escalation1

(The exception flow exits from the Activity are parallel.)

Configure BPSim

Task

Action

Artifact & Package

  • Open the Configure BPSim window ('Simulate > BPSim > Manage > Open BPSim Manager')
  • Create an Artifact named 'Escallation Event Simulation' (in the 'Select/Create Artifact' field, click on the button and select its parent Package and click on the Add New button, then type in the element name and click on the Save button and the OK button)

Then all the BPMN elements will be loaded in to the Configure BPSim window.

Trigger Count of Start Event

  • From the tree on the left of the Configure BPSim window, expand 'StartEvent' and click on S1
  • On the 'Control' tab, in the 'New Parameter...' field, click on the drop-down arrow and select 'TriggerCount'
  • In the 'Value' field, type '1'

ProcessingTime

  • In the left-hand tree expand 'Activity' and click on Task2 (20); in the 'Value' field for 'Processing Time' type '20' and in the 'Unit' field type 's' (for 20 seconds)
  • Click on Task3 (30); in the same way, set 'ProcessingTime' to 30 seconds

dummyVariable for Trace

In order to show the exact trace of a given token, you must set a dummy variable on S1.

  • In the left-hand hierarchy click on S1, and on the 'Properties' tab overtype the New Property text with the name of a variable (such as 'dummyVariable')
  • In the 'Value' field, click on the button and, on the '<<StartEvent>>S1 : <variable name>' dialog click on 'Numeric' and type a 'Constant Numeric' value of '0'; click on the OK button

Run Simulation

  • On the 'Configure BPSim' dialog Toolbar, click on the 'Run' icon to open the 'BPSim Simulation Controller' dialog
  • Click on the 'Run' icon drop-down arrow and select 'Standard Simulation'
  • After simulation, click on the button on the tool bar to display the 'BPSim PropertyParameter Values' dialog
  • Click on the Query button and on the 'Group by Property' tab, and expand 'dummyVariable' (or the name you assigned to the variable)

Analysis:

Unlike Error, the normal flow and exception flow exits from subProcess1 are not alternative paths but parallel. This feature can be easily discovered from the trace:

  • E2 and Task2 (20) still get traversed afterTask3 (30) started
  • E1 was reached after mergeParallel was traversed twice