BPMN to BPEL mapping for Intermediate Boundary Events
You can generate BPEL code for BPMN Intermediate Boundary Events.
REQTEXT
Message, Rule, and Link Events
Here the Target Process is the process that is the target of the outgoing boundary sequence flow and the Source Process is the process that has the boundary event attached to it.
Notes
For all intermediate boundary event patterns:
•There must not be any outgoing sequence flows from the Target Process for example,Process_2 must not have any outgoing sequence flows.
•The Target Process must have only one incoming sequence flow, and that must only be the boundary sequence flow.
•Boundary events that are of the stereotype message, rule or link must have an incoming a message flow attached to the target process. Events that are not of these types must not have any incoming message flows attached to the Target Process.
Using this construct means that after the Target Process has completed the flow of the process merges back into the Source Process. for example Process_1. This is in line with the strict use of the BPEL Scope element.
BPEL comments
1 A <scope> element is created and all subsequent constructs for this pattern reside within the scope.
2 The ncname of the scope attribute is taken from the name of the process that has the boundary event attached to it. "BPMN Process".name
3 The boundary event definition is obtained from the sequence flow definition. "Sequence Flow". "Initiating Event
4 The boundary event stereotype must be ONLY one of the following Trigger Types property which is determined from "BPMN Event".Stereotype
•message
5 The value of the <variableAccessSerializable> attribute is determined from the process symbol that the boundary event is attached to "Process"."Access Serializable" The value will be either a "yes" or "no"
6 The standard-attributes are determined from the process symbol that the boundary event is attached to.
7 A <variables> element is created and all variables obtained from the message flow definition are created here.
8 The variables are obtained from the "Message Flow"."Input Variable" and "Message Flow"."Output Variable"
9 The ncname of the attribute <variable name> is determined from the "BPEL Variable".name property
10 The value of "BPEL Variable". ". "Variable Type" determines which one out of the following attribute choices to create.
•If "BPEL Variable". "Variable Type" = "WSDL Message" then an attribute messageType is created and the qname is determined from the "BPEL Variable". "Message Type" Class definition. The qname is constructed from the Class.name prefixed with the name of the "Namespace" property Class.Namespace and a colon.
•If "BPEL Variable". "Variable Type" = "XML Schema Simple Type" then an attribute type is created and the qname is determined from the "BPEL Variable". "Simple Type"
•If "BPEL Variable". "Variable Type" = "XML Schema Element" then an attribute element is created and the qname is determined from the "BPEL Variable". "Schema Element"
11 A <faultHandlers> element is created.
12 A <catch> element is created and the qname for the faultName attribute in the <catch> element is taken from the BPMN message flow definition property "Message Flow". "Faultname"
13 An <eventHandlers> element is created and An <onMessage> element is created within the <eventHandlers> element.
14 The ncname of the <partnerLink> attribute is derived from the pool or lane that the message symbol is connected from by examining the name of the definition used in the pool or lane's property Participant.Participant.name. If the Participant property is not populated then the name is taken from the pool or lane name Participant.name.
15 The qname of the "portType" is constructed from the message flow symbol definition, which is a "Class" definition as follows.
•"Message Flow"."Port Type" gives a "Class" definition, in which its stereotype must be a " WSDL PortType" Determined from Class.Stereotype
•The name of the "Class", Class.name is prefixed with the name of the "Namespace" property Class.Namespace and a colon.
16 The ncname of the <operation> is determined from the "Class" definition "Message Flow".Operation.name. The class stereotype must be a "WSDL Operation" determined from Class.Stereotype
17 The ncname of the <variable> is taken from the BPEL Variable definition contained in "Message Flow"."Input Variable".name
18 The boundary sequence flow flowing out from the boundary event must connect to a Target Process symbol. This Target Process then performs all the subsequent activities, and the elements for the process sit within the <onMessage> element occupying the placeholder position indicated by "Target Process"
19 In case the Source Process itself has detail by way of children diagrams or embedded activities, these will occupy the placeholder position indicated by "Source Process.