Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
STP/IM Component/Transformation Approaches/From BPMN/Runtime Technology Based
This transformation can be found in the class org.eclipse.stp.im.in.bpmn2im.Bpmn2ImWorkspaceOperation
under the method with the following signature:
public StpIntermediateModel createIntermediateModelFromBpmn(BpmnDiagram bpmnDiagram, List<String> selectedPools, IProgressMonitor monitor){ ... }
Transformation Outline
- The BPMN diagram version is read and a IM property is created with this version.
- "IM Iter Configuration" starts: the "im.iter" EAnnotation from the BPMN diagram is read and copied to the IM instance.
- The used runtimes are read from the BPMN diagram. This is done by reading the "technology" EAnnotation from every
Pool
. For each used runtime:- Create
ServiceBinding
s. - Create
Service
s and put them in aServiceCollection
.
- Create
- For each
Pool
:- Create a
Process
. - Copy BPMN process artifacts into IM process variables.
- For each
Activity
:- Create a
Step
. If thisActivity
is aSubprocess
, find inner activities and create moreStep
s.
- Create a
- For each
SequenceEdge
:- Create a
Transition
. If thisSequenceEdge
'sActivity
on the source side is aSubprocess
, find innerSequenceEdge
s and create moreTransition
s.
- Create a
- Create a
Transformation Rules Sketch
From | To |
---|---|
BPMN!BpmnDiagram | IM!StpIntermediateModel |
BPMN!BpmnDiagram.getEAnnotation(IM_VERSION_ANNOTATION) | IM!BasicProperty[ITER_VERSION] |
BPMN!BpmnDiagram.getEAnnotation(IM_ITER_ANNOTATION) | IM!BasicProperty[IM_ITER_NAME] IM!BasicProperty[IM_ITER_FIRST_PROCESS_NAME] IM!BasicProperty[IM_ITER_RULE_FOR_DETERMINATION] IM!BasicProperty[IM_ITER_RULE_FOR_DETERMINATION_LANGUAGE] IM!BasicProperty[IM_ITER_OBSERVABLE_ATTRIBUTE_LIST_SIZE] IM!BasicProperty[IM_ITER_OBSERVABLE_ATTRIBUTE_MAP] (IM!BasicProperty[IM_ITER_OBSERVABLE_ATTRIBUTE_ID])* |