Home

Awesome

BPMNspector-fixSeqFlow <img align="right" src="https://github.com/uniba-dsg/BPMNspector/raw/master/src/main/resources/reporting/res/logo-h100.png" height="100" width="217"/>

Fixing Sequence Flow Issues in BPMN models.

Description

Using the BPMN 2.0 process model analysis tool BPMNspector revealed that one of the most common mistakes in BPMN processes is a violation of a <sequenceFlow> constraint (named EXT.023 in BPMNspector):

  <process id="P1" name="A Basic Process" isExecutable="true">
    <startEvent id="start" name="Start"></startEvent>
    
    <sequenceFlow id="flow1" sourceRef="start" targetRef="task"></sequenceFlow>
    
    <task id="task" name="Do The Work!"></task>
    
    <sequenceFlow id="flow2" sourceRef="task" targetRef="end"></sequenceFlow>
    
    <endEvent id="end" name="The End."></endEvent>
  </process>

Although this process looks perfectly sound, the Standard Document (see here, p. 96-98) requires developers/tools to introduce some redundancy:

  <process id="P1" name="A Basic Process" isExecutable="true">
    <startEvent id="start" name="Start">
      <outgoing>flow1</outgoing>
    </startEvent>
    
    <sequenceFlow id="flow1" sourceRef="start" targetRef="task"></sequenceFlow>
    
    <task id="task" name="Do The Work!">
      <incoming>flow1</incoming>
      <outgoing>flow2</outgoing>
    </task>
    
    <sequenceFlow id="flow2" sourceRef="task" targetRef="end"></sequenceFlow>
    
    <endEvent id="end" name="The End.">
      <incoming>flow2</incoming>
    </endEvent>
  </process>

BPMNspector-fixSeqFlow adds the missing <incoming>/<outgoing> elements and creates a corrected version of a given BPMN process file.

Requirements

BPMNspector-fixSeqFlow uses gradlew - therefore, only a Java 8 installation is needed. Download and configuration of needed libraries is performed on the fly.

Usage

To use BPMNspector-fixSeqFlow simply run the start script:

$ BPMNspector-fixSeqFlow fileToFix.bpmn

or

$ BPMNspector-fixSeqFlow folder/to/fix

*Note: All *.bpmn, *.bpmn2 and .bpmn20.xml in this and all subfolders will be analyzed and fixed.

If the file contains an error which can be fixed a copy of the file prefixed with fixed_ will be created which contains the corrected process.

Licensing

LGPL Version 3: http://www.gnu.org/licenses/lgpl-3.0.html

Authors

Matthias Geiger

Further Information

BPMNspector-fixSeqFlow and BPMNspector are part of ongoing research on BPMN process model quality. For further information visit the project web page at the University of Bamberg: http://www.uni-bamberg.de/pi/bpmn-constraints