BPMN/HOPEX Object Correspondence
The BPMN import feature translates a BPMN-compliant output file into a BPMN element specification in HOPEX. It is based on a set of mappings between BPMN version 2.0 and the HOPEX BPMN Process metamodel (including diagrams).
Conventions
BPMN concepts relate to the following OMG Specification document: “Business Process Model and Notation (BPMN), formal/2011-01-03”.
BPMN elements are delimited by <..>.
BPMN attributes are prefixed by ::.
HOPEX concept names start with uppercase. Example: Task.
Object Correspondences
The following table indicates concepts managed by the import tool:
The mapping of BPMN Processes and Tasks depends on the type of process selected in BPMN import wizard (Value Stream, Process or System Process).
Nb: Process Categories are not proposed as a target.
BPMN Concepts
HOPEX Concepts
1316091788_brackets <process>
Process
 
name
 
Short Name
 
id
 
_Hexaidabs
 
<documentation>
 
Comment
<task>
Owned Operation
<dataStore> and <dataStoreReference>
Owned Data Store
 
Owned Element
 
<gateway>
 
Gateway
 
< event>
 
Event
 
< sequenceFlow>
 
Sequence Flow
 
< dataObject> and <dataObjectReference>
 
Data Object
 
< messageFlow>
 
Message Flow
 
< participant> or <lane>
 
Participant
< laneSet> and <lane>
Internal Participant
<callActivity> or <subProcess>
Owned Process
<dataStoreReference> and <dataStoreRef>
 
Owned Update Association
<dataStoreReference> and <dataStoreRef>
 
Owned Read Association
< textAnnotation> and <text>
 
Note
<BPMNDiagram>
Description
 
 
 
<task> (See Table 1)
1316091788_brackets Operation
 
name
 
Short Name
 
id
 
_Hexaidabs
 
<documentation>
 
Comment
 
isForCompensation
 
Compensation
 
<standardLoopCharacteristics>
 
 
Loop
 
< loopCondition>
 
Loop Condition
 
< multiInstanceLoopCharacteristics >
 
Multiple
calledElement
Called Process
<dataInput> and <dataInputAssociation>
 
Data Object Used or BPMN Data Store Read Association
< dataOutput> and <dataOutAssociation>
 
Data Object Used or BPMN Data Store Read Association
< textAnnotation> and <text>
< textAnnotation> and <text>
 
Note
1316091788_brackets <gateway> (See Table 2)
Gateway
 
name
 
Short Name
 
id
 
_Hexaidabs
 
<documentation>
 
Comment
< textAnnotation> and <text>
< textAnnotation> and <text>
 
Note
1316091788_brackets <event> (See Table 3)
Event
 
name
 
Short Name
 
id
 
_Hexaidabs
 
<documentation>
 
Comment
 
isInterrupting or cancelActivity
 
 
Interrupting
attachedToRef
Bounded Activity
< textAnnotation> and <text>
< textAnnotation> and <text>
 
Note
1316091788_brackets <SequenceFlow>
Sequence Flow
 
id
 
_Hexaidabs
 
<documentation>
 
Comment
 
<conditionExpression>
 
 
Predicate
sourceRef
 
Predecessor
targetRef
 
Successor
1316091788_brackets <dataObject> and <dataObjectReference>
Data Object
 
name
 
Short Name
 
id
 
_Hexaidabs
 
isCollection
 
 
Collection
 
<dataObjectReference> and <documentation>
 
Comment
 
< dataObjectReference::name>
 
Data Object Status
1316091788_brackets <dataStore> and <dataStoreReference>
Data Store
 
name
 
Short Name
 
id
 
_Hexaidabs
 
Link Input and Output to DataStore
 
Access into the Data Store or out of the data store
1316091788_brackets <messageFlow>
Message Flow
 
id
 
_Hexaidabs
 
< documentation>
 
Comment
sourceRef
 
Source Element
targetRef
 
Target Element
1316091788_brackets <lane>
Internal Participant
 
name
 
 
Assignment
 
id
 
BPMN Element
name
 
Assignment
<flowNodeRef>
BPMN Element
1316091788_brackets <participant>
External Participant
 
name
 
 
Short Name
 
id
 
_Hexaidabs
name
 
Assignment
<textAnnotation> and <text>
Note
1316091788_brackets <textAnnotation> and <association>
Note
 
id
 
_Hexaidabs
 
< documentation>
 
Comment
 
 
 
 
BPMN Concepts
HOPEX Concepts
1316091788_brackets <process>
System Process
 
name
 
Short Name
 
id
 
_Hexaidabs
 
<documentation>
 
Comment
<task>
Owned Task
<dataStore> and <dataStoreReference>
Owned Data Store
 
Owned Element
 
<gateway>
 
Gateway
 
< event>
 
Event
 
< sequenceFlow>
 
Sequence Flow
 
< dataObject> and <dataObjectReference>
 
Data Object
 
< messageFlow>
 
Message Flow
 
< participant> or <lane>
 
Participant
< laneSet> and <lane>
Internal Participant
<callActivity> or <subProcess>
Owned System Process
<dataStoreReference> and <dataStoreRef>
 
Owned Update Association
<dataStoreReference> and <dataStoreRef>
 
Owned Read Association
< textAnnotation> and <text>
 
Note
<BPMNDiagram>
Description
 
 
 
<task> (See Table 1)
Task
 
 
name
 
Short Name
 
id
 
_Hexaidabs
 
<documentation>
 
Comment
 
isForCompensation
 
Compensation
 
<standardLoopCharacteristics>
 
 
Loop
 
< loopCondition>
 
Loop Condition
 
< multiInstanceLoopCharacteristics >
 
Multiple
calledElement
Called Process
<dataInput> and <dataInputAssociation>
 
Data Object Used or BPMN Data Store Read Association
< dataOutput> and <dataOutAssociation>
 
Data Object Used or BPMN Data Store Read Association
< textAnnotation> and <text>
< textAnnotation> and <text>
 
Note
1316091788_brackets <process>
Value Stream
 
name
 
Short Name
 
id
 
_Hexaidabs
 
<documentation>
 
Comment
<task>
Owned Value Stage
<dataStore> and <dataStoreReference>
Owned Data Store
 
Owned Element
 
<gateway>
 
Gateway
 
< event>
 
Event
 
< sequenceFlow>
 
Sequence Flow
 
< dataObject> and <dataObjectReference>
 
Data Object
 
< messageFlow>
 
Message Flow
 
< participant> or <lane>
 
Participant
< laneSet> and <lane>
Internal Participant
<callActivity> or <subProcess>
Owned Value Stream
<dataStoreReference> and <dataStoreRef>
 
Owned Update Association
<dataStoreReference> and <dataStoreRef>
 
Owned Read Association
< textAnnotation> and <text>
 
Note
<BPMNDiagram>
Description
 
 
 
<task> (See Table 1)
Value Stage
 
name
 
Short Name
 
id
 
_Hexaidabs
 
<documentation>
 
Comment
 
isForCompensation
 
Compensation
 
<standardLoopCharacteristics>
 
 
Loop
 
< loopCondition>
 
Loop Condition
 
< multiInstanceLoopCharacteristics >
 
Multiple
calledElement
Called Value Stream
<dataInput> and <dataInputAssociation>
 
Data Object Used or BPMN Data Store Read Association
< dataOutput> and <dataOutAssociation>
 
Data Object Used or BPMN Data Store Read Association
< textAnnotation> and <text>
< textAnnotation> and <text>
 
Note
 
 
Table 1:
BPMN
Task Type
1316091788_brackets <task>
Task Type
 
< userTask>
 
User
 
< serviceTask>
 
IT-Service Call
 
< callActivity>
 
System Process Call
 
< scriptTask >
 
Script
 
< receiveTask>
 
Send
 
< manualTask>
 
Receive
 
< businessRuleTask>
 
Manual
 
 
Table 2:
BPMN
Gateway Type
Gateway Type
Gateway Type
 
<inclusiveGateway>
 
Inclusive
 
<complexGateway>
 
Complex
 
<parallelGateway>
 
Parallel
 
<exclusiveGateway>
 
Exclusive (Data)
 
<eventBasedGateway> and ::eventGatewayType=Exclusive and ::instantiate=false
 
 
Exclusive (Event)
 
<eventBasedGateway> and ::eventGatewayType=Exclusive and ::instantiate=true
 
 
Exclusive (Instantiate)
 
<eventBasedGateway> and ::eventGatewayType= Parallel and ::instantiate=true
 
 
Parallel (Instantiate)
 
 
Table 3:
 
 
Event Nature
Bounded Activity
 
 
Start
End
Throw
Catch
 
 
<startEvent>
<endEvent>
<intermediateThrowEvent>
<intermediateCatchEvent>
<boundaryEvent>
Event Type
Generic
 
 
 
 
 
Message
<messageEventDefinition>
<messageEventDefinition>
<messageEventDefinition>
<messageEventDefinition>
<messageEventDefinition>
Timer
<timerEventDefinition>
*
*
<timerEventDefinition>
<timerEventDefinition>
Error
<errorEventDefinition>
<errorEventDefinition>
*
*
<errorEventDefinition>
Cancel
*
<cancelEventDefinition>
*
*
<cancelEventDefinition>
Compensation
<compensateEventDefinition>
<compensateEventDefinition> and ::waitForCompletion=true
<compensateEventDefinition> and ::waitForCompletion=true
*
<compensateEventDefinition> and ::waitForCompletion=true
Conditional
<conditionalEventDefinition> and <condition>
*
*
<conditionalEventDefinition> and <condition>
<conditionalEventDefinition> and <condition>
Link
*
*
<linkEventDefinition>
<linkEventDefinition>
*
Signal
<signalEventDefinition>
<signalEventDefinition>
<signalEventDefinition>
<signalEventDefinition>
<signalEventDefinition>
Terminate
*
<terminateEventDefinition>
*
*
*
Escalation
<escalationEventDefinition>
<escalationEventDefinition>
<escalationEventDefinition>
*
<escalationEventDefinition>
Parallel Multiple
::parallelMultiple=true
*
*
::parallelMultiple=true
::parallelMultiple=true
Multiple
 
 
 
 
 
* = Combination not possible
 
 
Specific Mapping Cases
 
BPMN Concepts imported
Result in HOPEX
Process
 
One process per file
The process is described in the resulting diagram.
One process with external participants (that do not refer to processes)
The process is described in the resulting diagram.
Several processes per file
 
A new “container” process is created in MEGA. It is the object of the resulting diagram and it contains the different processes imported.
DataStore/DataStorereference (Datainput/Dataoutput)
 
(Reminder)
DataStore
DataStoreReference
 
Concept Domain
Process Data Store
DataStore without Reference
 
As a Concept Domain can not be represented graphically on its own in HOPEX, a Process Data Store is created without a Concept Domain.
DataStoreReference + DataStore
 
References resulting in DataStores are represented in the diagram. The Concept Domain is referenced if it already exists. Otherwise, it is not created.
Dataobject/Dataobjectreference (Datainput/Dataoutput)
 
(Reminder)
DataObject
DataObjectReference
 
Content
DataObject
DataObject without Reference
As a content can not be represented graphically on its own in HOPEX, a DataObject is created with a content.
DataObjectReference + DataObject in the diagram
References resulting in DataObjects are represented in the diagram. The content is also created but not represented in the diagram.
DataObjectReferences in the diagram + DataObject outside the diagram
 
References resulting in DataObjects are represented in the diagram, with their status. A content is also created, not represented in the diagram.
Cases of DataInput/DataOutput
 
Links between DataInput/DataOutput and Events are not handled. Indeed, in HOPEX you can not create links between DataObject and Event.
 
Comments on TextAnnotations
If the “textAnnotation” tag contains a “text” tag, and if the latter contains a chain, this chain is included in the comment of the Note object. If the chain contained in the “text” tag is empty or if the “text” tag does not exist, the chain contained in the “documentation” tag, under the “textAnnotation” tag, is taken.