Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "STP/IM Component/Transformation Approaches/From BPMN/Runtime Technology Based"

(Transformation Rules Sketch)
(Transformation Rules Sketch)
Line 35: Line 35:
 
|-
 
|-
 
| BPMN!BpmnDiagram.getEAnnotation(IM_ITER_ANNOTATION)
 
| BPMN!BpmnDiagram.getEAnnotation(IM_ITER_ANNOTATION)
| IM!BasicProperty[IM_ITER_NAME]
+
| IM!BasicProperty[IM_ITER_NAME]<br>
 
IM!BasicProperty[IM_ITER_FIRST_PROCESS_NAME]
 
IM!BasicProperty[IM_ITER_FIRST_PROCESS_NAME]
 
IM!BasicProperty[IM_ITER_RULE_FOR_DETERMINATION]
 
IM!BasicProperty[IM_ITER_RULE_FOR_DETERMINATION]

Revision as of 18:55, 11 May 2008

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

  1. The BPMN diagram version is read and a IM property is created with this version.
  2. "IM Iter Configuration" starts: the "im.iter" EAnnotation from the BPMN diagram is read and copied to the IM instance.
  3. The used runtimes are read from the BPMN diagram. This is done by reading the "technology" EAnnotation from every Pool. For each used runtime:
    1. Create ServiceBindings.
    2. Create Services and put them in a ServiceCollection.
  4. For each Pool:
    1. Create a Process.
    2. Copy BPMN process artifacts into IM process variables.
    3. For each Activity:
      1. Create a Step. If this Activity is a Subprocess, find inner activities and create more Steps.
    4. For each SequenceEdge:
      1. Create a Transition. If this SequenceEdge's Activity on the source side is a Subprocess, find inner SequenceEdges and create more Transitions.

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])*

Comments

Back to the top