Designer 10.7 | webMethods BPM Process Development Help | Importing and Exporting Processes | BPMN to XPDL Mapping
 
BPMN to XPDL Mapping
Designer maps BPMN constructs to XPDL constructs when you convert Designer processes to XPDL files, and maps XPDL constructs to BPMN constructs when you convert XPDL files to Designer processes. The following describes the relationships between the two formats.
Tip:
For more information about XPDL, see the specification at http://www.wfmc.org.
Mapping Designer BPMN 2.0 Process Models to XPDL
The following table describes the relationship between BPMN constructs and XPDL constructs.
Designer BPMN 2.0 Process Model Part
XPDL Construct
Abstract task
An Activity (does not contain any implementation)
<Activity Name="Task1" Id="3a15b9a1-a97e-43b7-85ad-8565c4cff736"> <Description> </ns4:Description> <NodeGraphicsInfos> <NodeGraphicsInfo Width="75.0" Height="47.0" LaneId="a130eab8-b249-4dd1-a609-7c1362069886" PageId="702c212f-e358-42e8-aed8-492d6ec6208ePAGE"> <Coordinates YCoordinate="63.0" XCoordinate="256.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos> </Activity> <Activity Name="Task1" Id="3a15b9a1-a97e-43b7-85ad-8565c4cff736"> <Description> </ns4:Description> <NodeGraphicsInfos> <NodeGraphicsInfo Width="75.0" Height="47.0" LaneId="a130eab8-b249-4dd1-a609-7c1362069886" PageId="702c212f-e358-42e8-aed8-492d6ec6208ePAGE"> <Coordinates YCoordinate="63.0" XCoordinate="256.0"/> </NodeGraphicsInfo> </Activity>
Service task (using CentraSite)
An Activity with a TaskApplication
An <Application> construct is created for each Web Service referenced by the Service Task. The "Id" attribute of the <TaskApplication> matches the "Id" of the <Application>
<Activity Id="0c1b500c-8c13-11e2-5b38-efea8f839e4d" Name="ws1"> <Description> </Description> <Implementation> <Task> <TaskApplication Id="c9adb277-16bd-11e2-8565-c38280f44478"></TaskApplication> </Task> </Implementation> </Activity> <Application Id="c9adb277-16bd-11e2-8565-c38280f44478" Name="calculateCreditIncreaseProposal"> <Description> </Description> <ExternalReference location="centrasite://uddi:c8b102f7-16bd-11e2-8565-f675722b0be7" xref="calculateCreditIncreaseProposal"></ExternalReference><ExtendedAttributes> <ExtendedAttribute Name="SST" Value="c8b102f7-16bd-11e2-8565-f675722b0be7"></ExtendedAttribute> </ExtendedAttributes> </Application>
Service task (NOT using CentraSite)
An Activity with a <TaskService> construct
<Activity Id="89d57a0c-8c1f-11e2-5b38-efea8f839e4d" Name="ws7"> <Description /> <Implementation> <Task> <TaskService /> </Task> </Implementation> <NodeGraphicsInfos> <NodeGraphicsInfo BorderColor="0,0,0" FillColor="136,187,255" Height="61" LaneId="89d57a05-8c1f-11e2-5b38-efea8f839e4d" PageId="738ef641-8c1f-11e2-5b38-efea8f839e4dPAGE" Width="98"> <Coordinates XCoordinate="121" YCoordinate="271" /> </NodeGraphicsInfo> </NodeGraphicsInfos> </Activity>
Business rule task
An Activity with a TaskBusinessRule implementation
<Activity Name="Task1" Id="4d34c7a1-4d62-4dad-87b1-deee02578ead"> <Description> </Description> <Implementation> <Task> <TaskBusinessRule/> </Task> </Implementation> <Acvitity>
User task
An Activity whose implementation is a TaskUser + Performer
<Activity Name="Task1" Id="4d34c7a1-4d62-4dad-87b1-deee02578ead"> <Implementation> <Task> <TaskUser> <Performers> <Performer>test_</Performer> <Performer>abc</Performer> </Performers> </TaskUser> </Task> ... </Activity>
Manual task
An Activity with a TaskManual implementation
<Activity Name="Task1" Id="S24"> <Implementation> <Task> <TaskManual> <Performers> <Performer>test_</Performer> <Performer>abc</Performer> </Performers> </TaskManual> </Task> ... </Activity>
Send task
An Activity whose implementation is a TaskSend
<Activity Name="Task8" Id="4d34c7a1-4d62-4dad-87b1-deee02578ead"> ... <Implementation> <Task> <TaskSend/> </Task> </Implementation> </Activity>
Receive task
An Activity with a TaskReceive implementation
<Activity Name="Task9" Id="4d34c7a1-4d62-4dad-87b1-deee02578ead"> ... <Implementation> <Task> <TaskReceive Instantiate="false"/> </Task> </Implementation> ... </Activity>
Call activity calling either a BPMN Callable Process or a webMethods Referenced Process
Results in multiple WorkflowProcess elements in XPDL, one for the parent process, and one for either the BPMN Callable Process or the webMethods Referenced Process. The parent process has an Activity whose implementation is a subflow. The ID attribute of the subflow matches the ID of the call activity.
<Activity Name="Call Activity1" Id="4d34c7a1-4d62-4dad-87b1-deee02578ead"> <Description> </Description> <Implementation> <SubFlow Id="xpdl1_c1"/> </Implementation> <NodeGraphicsInfos> <NodeGraphicsInfo Width="75.0" Height="47.0"> <Coordinates YCoordinate="280.0" XCoordinate="105.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos> </Activity>
The referenced process is exported as a WorkflowProcess whose ID matches the subflow ID.
Subprocess
There are two parts to subprocess mapping.
1. The subprocess itself is represented as BlockActivity element:
<BlockActivity View="EXPANDED" ActivitySetId="a6b99dac-2746-4d4a-82e4-02e68bad55adACTIVITYSET"/>
2. The contents of the subprocess (steps, etc. within the subprocess) are represented as an ActivitySet:
<ActivitySet Name="Subprocess1" Id="a6b99dac-2746-4d4a-82e4-02e68bad55adACTIVITYSET"> <Activities> <Activity Name="Message Event1" Id="7b9176b8-b8c0-489f-bc54-80ceb36d6f8b"> <Description> </Description> <Event> <StartEvent Trigger="Message"/> </Event> <NodeGraphicsInfos> <NodeGraphicsInfo Width="35.0" Height="35.0" PageId="3c1f437e-1216-4045-8062-825a7702e55bPAGE"> <Coordinates YCoordinate="39.0" XCoordinate="64.0"/> </NodeGraphicsInfo> <Activity> <Activity Name="Message Event2" Id="418db8db-e5e6-49bc-95db-f914c7de4292"> ... </Activity> </ActivitySet>
Subprocess loop marker on a subprocess or a call activity
A marker that shows that the subprocess or call activity should be looped. Looping behavior is based on a Boolean condition. The subprocess or call activity will loop as long as the Boolean condition is true. The condition is evaluated for every loop iteration, and may also be evaluated at the beginning or at the end of the iteration. Another option is to specify a numeric cap, the value of which the number of iterations may not exceed.
<Activity Name="Subprocess1" Id="d61205b2-dec8-4fdf-9ce0-c3a56ba97bba"> <Description> </Description> <BlockActivity View="EXPANDED" ActivitySetId="d61205b2-dec8-4fdf-9ce0-c3a56ba97bbaACTIVITYSET"/> <Loop LoopType="Standard"> <LoopStandard TestTime="Before" LoopMaximum="123"/> </Loop> <NodeGraphicsInfos> <NodeGraphicsInfo Width="336.0" Height="227.0" PageId="006f3646-2ad3-49fc-a50c-249fd9b516cbPAGE"> <Coordinates YCoordinate="74.0" XCoordinate="323.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos> </Activity>
Standard loop marker on a task
Regular (standard) loop on a task
<Loop LoopType="Standard"> <LoopStandard TestTime="Before" LoopMaximum="10"/> </Loop>
Note:
Standard looping is not available for any type of BPMN task in Designer 9.0.
Parallel multiple instance (MI) marker
Loop with a Parallel attribute
not supported in Designer 9.0
Sequential multiple instance (MI) marker
Loop with a Sequential attribute
not supported in Designer 9.0
Compensation marker
isCompensating attribute
Event subprocess
not supported in Designer 8.2
Error handler
Timeout handler
Cancel handler
Sequence flow
A Transition. The "From" attribute refers to the ID of the source. The "To" Attribute refers to the ID of the target.
<Transition Name="From "Message Event1" to "Call Activity1" " To="S5" From="S3" Id="T9">
Default flow
A Transition (same as sequence flow above). The "From" attribute refers to the ID of the source. The "To" Attribute refers to the ID of the target.
<Transition Name="From "Message Event1" to "Call Activity1" " To="S5" From="S3" Id="T9">
Conditional flow
A Transition with a Condition Construct
None start event
An Activity with a StartEvent whose trigger is "None"
<Activity> <Event> <StartEvent Trigger="None"/> </Event> </Activity>
Throwing none intermediate event
An Activity that throws an Intermediate Event. The event is IntermediateEvent whose trigger attribute is "None" (a None event)
<Activity Name="None Event1" Id="b1bf9ad0-74f2-4fe3-bb55-f35acca1bad9"> <Description> </Description> <Event> <IntermediateEvent Trigger="None"/> </Event> ... </Activity>
None end event
An Activity with an EndEvent whose Result attribute value is "None"
<Activity> <Event> <EndEvent Result="None"/> </Event> </Activity>
Message start event
An Activity with a StartEvent whose trigger is a message
<Activity Name="Message Event1" Id="S19"> ... <Event> <StartEvent Trigger="Message"/> </Event> ... </Activity>
Message end event
An Activity with an EndEvent whose result is a message
<Activity Name="Message Event3" Id="S32"> ... <Event> <EndEvent Result="Message"/> </Event> </Activity>
Throwing message intermediate event
An Activity with an IntermediateEvent triggered by a Message. The CatchThrow atribute has a value of "THROW" indicating that the message is thrown.
<Activities> <Activity Name="Message Throw" Id="4b64afb5-edf1-4b92-b98c-98d6ca0b3601"> <Description> </Description> <Event> <IntermediateEvent Trigger="Message"> <TriggerResultMessage CatchThrow="THROW"/> </IntermediateEvent> </Event> <NodeGraphicsInfos> <NodeGraphicsInfo Width="35.0" Height="35.0" LaneId="d27f70dc-c404-48ae-942f-c126ac361427" PageId="2fdb377f-8e60-4dbd-a906-59693ba3c40cPAGE"> <Coordinates YCoordinate="197.0" XCoordinate="235.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos> <Extensions> <webMethodsDesignerCommonExtensions isTestAfter="false" loopMaximum="0" retries="0" retryCount="1" retryInterval="60000" stepLock="false" logicalServer="Default"> <documentation/> <fontData fontSize="8" italicFont="false" fontFamily="Tahoma" boldFont="false" red="0" green="0" blue="0"/> <ext:wmExpressionFilter/> </webMethodsDesignerCommonExtensions> <webMethodsDesignerEventExtensions isStart="false" correlationServiceName="" correlationFieldName="" useCorrelation="false" receiveType="EMPTY" receiveProtocol="SUBSCRIPTION" isStartStepServiceRequired="false" externalizeConditions="false" allowsSynchronousReply="false"/> </Extensions> </Activity> </Activities>
Catching message intermediate event
An Activity with an IntermediateEvent triggered by a Message. The CatchThrow atribute has a value of "CATCH" indicating that the message is caught by the Activity.
<Activities> <Activity Name="Message Catch" Id="c2c75b01-cb42-41ef-b79a-3a82b5877120"> <Description> </Description> <Event> <IntermediateEvent Trigger="Message"> <TriggerResultMessage CatchThrow="CATCH"/> </IntermediateEvent> </Event> <NodeGraphicsInfos> <NodeGraphicsInfo Width="35.0" Height="35.0" LaneId="d27f70dc-c404-48ae-942f-c126ac361427" PageId="2fdb377f-8e60-4dbd-a906-59693ba3c40cPAGE"> <Coordinates YCoordinate="197.0" XCoordinate="105.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos> <Extensions> <webMethodsDesignerCommonExtensions isTestAfter="false" loopMaximum="0" retries="0" retryCount="1" retryInterval="60000" stepLock="false" logicalServer="Default"> <documentation/> <fontData fontSize="8" italicFont="false" fontFamily="Tahoma" boldFont="false" red="0" green="0" blue="0"/> <ext:wmExpressionFilter/> </webMethodsDesignerCommonExtensions> <webMethodsDesignerEventExtensions isStart="false" correlationServiceName="" correlationFieldName="" useCorrelation="false" receiveType="EMPTY" receiveProtocol="SUBSCRIPTION" isStartStepServiceRequired="true" externalizeConditions="false" allowsSynchronousReply="false"/> </Extensions> </Activity> </Activities>
Interrupting boundary message intermediate event
An IntermediateEvent attached to an Activity, indicated by the "Target" attribute of the <IntermediateEvent>. The event interrupts the flow of the process, so the "Interrupting" attribute has a value of "true". The Activity to which the <Intermediate Event> is attached is indicated by its"Target" attribute.
<Activity Name="Attached Intermediate Message Interrupting event" Id="d802b7ae-9b98-4278-82d7-be220c7ae4c0"> <Description> </Description> <Event> <IntermediateEvent Interrupting="true" Target="04975f26-d385-4d54-bb1e-604713235d34" Trigger="Message"> <TriggerResultMessage CatchThrow="CATCH"/> </IntermediateEvent> </Event> <NodeGraphicsInfos> <NodeGraphicsInfo Width="35.0" Height="35.0" LaneId="d27f70dc-c404-48ae-942f-c126ac361427" PageId="2fdb377f-8e60-4dbd-a906-59693ba3c40cPAGE"> <Coordinates YCoordinate="193.0" XCoordinate="198.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos> </Activity>
Non-interrupting boundary message intermediate event
An IntermediateEvent attached to an Activity, indicated by the "Target" attribute of the <IntermediateEvent>. The IntermediateEvent is triggered by a message whose"Interrupting" attribute has a value of "false".
<Activity Name="Attached Intermediate Message Non interrupting event" Id="d802b7ae-9b98-4278-82d7-be220c7ae4c0"> <Description> </Description> <Event> <IntermediateEvent Interrupting="false" Target="04975f26-d385-4d54-bb1e-604713235d34" Trigger="Message"> <TriggerResultMessage CatchThrow="CATCH"/> </IntermediateEvent> </Event> <NodeGraphicsInfos> <NodeGraphicsInfo Width="35.0" Height="35.0" LaneId="d27f70dc-c404-48ae-942f-c126ac361427" PageId="2fdb377f-8e60-4dbd-a906-59693ba3c40cPAGE"> <Coordinates YCoordinate="193.0" XCoordinate="198.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos> </Activity>
Boundary interrupting timer intermediate event
An Activity with an IntermediateEvent. The "Target" attribute of the IntermediateEvent is the ID of the parent Activity associated with the Timer. The "Interrupting" attribute is "true".
<Activity Name="Timer1" Id="500b242f-ffc8-4c18-bacd-e9948b00c3d8"> <Description> </Description> <Event> <IntermediateEvent Interrupting="true" Target="e8065ce7-745e-4fba-9294-ca9522f81776" Trigger="Timer"/> </Event> <NodeGraphicsInfos> <NodeGraphicsInfo Width="23.0" Height="23.0" LaneId="d27f70dc-c404-48ae-942f-c126ac361427" PageId="2fdb377f-8e60-4dbd-a906-59693ba3c40cPAGE"> <Coordinates YCoordinate="205.0" XCoordinate="222.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos> </Activity>
Non-interrupting boundary timer intermediate event
An Activity with an IntermediateEvent. The "Target" attribute of the IntermediateEvent is the ID of the parent Activity associated with the Timer. The "Interrupting" attribute is "false".
<Activity Name="Timer2" Id="81969c32-62b4-4d39-9a2b-0c80e595d870"> <Description> </Description> <Event> <IntermediateEvent Interrupting="false" Target="a2c162bb-0a9c-425e-9993-b8f890b308ec" Trigger="Timer"/> </Event> <NodeGraphicsInfos> <NodeGraphicsInfo Width="23.0" Height="23.0" LaneId="d27f70dc-c404-48ae-942f-c126ac361427" PageId="2fdb377f-8e60-4dbd-a906-59693ba3c40cPAGE"> <Coordinates YCoordinate="205.0" XCoordinate="475.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos> </Activity>
Escalation intermediate event
not supported in Designer 9.0
Escalation end event
not supported in Designer 9.0
Conditional start event
not supported in Designer 9.0
Conditional intermediate event
not supported in Designer 9.0
Conditional end event
not supported in Designer 9.0
Interrupting boundary error intermediate event
Activity with an IntermediateEvent whose trigger is an error. The value of the "Target" attribute for the IntermediateEvent matches the associated activity.
<Activity Name="Error1" Id="S24"> ... <Event> <IntermediateEvent Target="S18" Trigger="Error"/> </Event> ... </Activity>
Error end event
Activity with an EndEvent whose result is an error.
<Activity Name="Error Event1" Id="S31"> ... <Event> <EndEvent Result="Error"/> </Event> ... </Activity>
Interrupting boundary cancel intermediate event
not supported in Designer 9.0
Cancel end event
not supported in Designer 9.0
Interrupting boundary compensation intermediate event
not supported in Designer 9.0
Compensation end event
not supported in Designer 8.2
Signal start event
An Activity with a StartEvent whose trigger is a Signal, as indicated by the value of the "Trigger" attribute.
<Activity Name="Signal Event1" Id="80b5ff5b-95d7-4fa0-8654-d28fc5bcba97"> <Description> </Description> <Event> <StartEvent Trigger="Signal"/> </Event> <NodeGraphicsInfos> <NodeGraphicsInfo Width="35.0" Height="35.0" PageId="006f3646-2ad3-49fc-a50c-249fd9b516cbPAGE"> <Coordinates YCoordinate="182.0" XCoordinate="243.0"/> </NodeGraphicsInfo> </NodeGraphicsInfos>
Catching signal intermediate event
An Activity, with an Intermediate event, that catches a signal . The "CatchThrow” attribute has a value of "CATCH" and the value of the Trigger attribute is "Signal")
<Activity Name="Signal Event2" Id="be77266a-cf58-43b2-9932-227ded08d8d7"> ... <Event> <IntermediateEvent Trigger="Signal"> <TriggerResultSignal CatchThrow="CATCH"/> </IntermediateEvent> </Event> ... </Activity>
Throwing signal intermediate event
An Activity, with an Intermediate event, that throws a signal . The "CatchThrow” attribute has a value of "THROW" and the value of the Trigger attribute is "Signal")
<Activity Name="Signal Event2" Id="be77266a-cf58-43b2-9932-227ded08d8d7"> ... <Event> <IntermediateEvent Trigger="Signal"> <TriggerResultSignal CatchThrow="THROW"/> </IntermediateEvent> </Event> ... </Activity>
Interrupting boundary signal intermediate event
An Activity with an IntermediateEvent whose trigger is a signal. The value of the "Target" attribute for the IntermediateEvent matches the associated activity (the step on which the event is placed).
<Activity Name="Signal1" Id="d80ca1b1-4ddd-400c-9ae3-55b7de4cb645"> ... <Event> <IntermediateEvent Interrupting="true" Target="9048f37a-4134-43e1-8f7d-5dceb27456f6" Trigger="Signal"> </IntermediateEvent> </Event> ... </Activity>
Non-interrupting boundary signal intermediate event
An Activity with an IntermediateEvent whose trigger is a signal. The value of the "Target" attribute for the IntermediateEvent matches the associated activity (the step on which the event is placed).
<Activity Name="Signal1" Id="d80ca1b1-4ddd-400c-9ae3-55b7de4cb645"> ... <Event> <IntermediateEvent Interrupting="false" Target="9048f37a-4134-43e1-8f7d-5dceb27456f6" Trigger="Signal"> </IntermediateEvent> </Event> ... </Activity>
Signal end event
An Activity with an EndEvent resulting in a Signal (as indicated by the Result attribute).
<Activity Name="Signal Event2" Id="be77266a-cf58-43b2-9932-227ded08d8d7"> ... <Event> <EndEvent Result="Signal"/> </Event> ... </Activity>
Terminate end event
An Activity with an EndEvent whose result attribute is "Terminate"
<Activity Name="Terminate1" Id="S30"> .... <Event> <EndEvent Result="Terminate"/> </Event> ... </Activity>
Note:
Extensions added to reflect Terminate Status.
Exclusive gateway
An Activity with a Route construct whose GatewayType is "Exclusive"
<Activity Name="Gateway1" Id="S55"> ... <Route GatewayType="Exclusive"/> ... </Activity>
Inclusive gateway
An Activity with a Route construct whose GatewayType is "Inclusive"
<Activity Name="Gateway1" Id="S55"> ... <Route GatewayType="Inclusive"/> ... </Activity>
Parallel gateway
An Activity with a Route construct whose GatewayType is "Parallel"
<Activity Name="Gateway1" Id="S55"> ... <Route GatewayType="Parallel"/> ... </Activity>
Complex gateway
An Activity with a Route construct whose GatewayType is "Complex"
<Activity Name="Gateway1" Id="S55"> ... <Route GatewayType="Complex"/> ... </Activity>
Note:
The legacy webMethods gateway is imported as a complex gateway.
Event-based exclusive gateway
not supported in Designer 9.0
Parallel event-based gateway
not supported in Designer 9.0
Message line
An Association whose "Target" and "Source" attributes specify IDs of the source and target
<Association Name="From "annotationNode" to "Call Activity1" " Target="S5" Source="N13" Id="T14"> ... </Association>
Annotation
An Artifact of type "Annotation". The value of the TextAnnotation attribute is the annotation text specified.
<Artifact TextAnnotation="Used to be known as referenced subprocess" ArtifactType="Annotation" Id="N13"> </Artifact>
Note:
The sticky note style Note in Designer is mapped the same way as an Annotation in Designer.
Group
not supported in Designer 9.0
Pool
A Pool is mapped to a Pool as well a WorkflowProcess (if you select that option in the import wizard)
Swimlane
A Lane construct within a Pool
Data Input
not supported in Designer 9.0
Data Output
not supported in Designer 9.0
Data Collection Object
not supported in Designer 9.0
Data Store
not supported in Designer 9.0
Data Message
not supported in Designer 9.0
SimulationInformation
Attribute of an XPDL Activity which maps to a resource assigned to a process step in a Designer process simulation (.simulation file). Properties and values in the XPDL correspond to resource information in the process. In the Designer process simulation, SimulationInformation maps to a simulation resource for a process step with the naming convention <activity name>_Activity Resource. Simulation step scenarios are created for Designer activity steps (tasks and call activities). SimulationInformation is mapped for these step types only. SimulationInformation properties include:
*Cost: assigned to the Fixed Cost of the resource
*TimeEstimation: the Duration value is assigned to a Designer simulation scenario, which has a Process Time property. Other TimeEstimation values are ignored, as they do not correspond to existing simulation properties.
Exported joins are mapped as follows in the table below:
Exported Designer Process Model Join Type
XPDL Join Type
AND
PARALLEL
COMPLEX
COMPLEX
OR
OR
Unsynchronized OR
XOR
Related Topics