Fixing Sequence Flow Issues in BPMN models.
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.
BPMNspector-fixSeqFlow uses gradlew - therefore, only a Java 8 installation is needed. Download and configuration of needed libraries is performed on the fly.
- JDK 1.8.0 (or higher)
- JAVA_HOME should point to the jdk directory
 - PATH should include JAVA_HOME/bin
 
 
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.
LGPL Version 3: http://www.gnu.org/licenses/lgpl-3.0.html
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
