Architecting and designing : Business Process Analysis (BPA) : BPEL generation : BPEL to BPMN mapping reference : BPMN to BPEL mapping for Intermediate Boundary Events : Multiple Boundary Events
  
Multiple Boundary Events
It is legitimate for a process to have multiple boundary events, the example shown here is not a strict pattern but an example of how multiple boundary events are associated with the same process. The BPEL syntax is a combination of the above detailed boundary event patterns.
But for all of the boundary events there will be only one of the following elements associated with the Source Process, repetition of these elements is not permissible within the same Source Process..
<scope>
<variables>
<faultHandlers>
<compensationHandler>
<eventHandlers>
Within each element there can be multiple entries, see summary below.
<scope variableAccessSerializable="yes|no" standard-attributes>
<variables>?
<variable name="ncname" messageType="qname"?
type="qname"? element="qname"?/>+
</variables>
<faultHandlers>?
<catch faultName="qname"? faultVariable="ncname"?>*
Target Process
</catch>
<catchAll>?
Target Process
</catchAll>
</faultHandlers>
<compensationHandler>?
Target Process
</compensationHandler>
<eventHandlers>?
<onMessage partnerLink="ncname" portType="qname"
operation="ncname" variable="ncname"?>
Target Process
</onMessage>
<onAlarm for="duration-expr"?
until="deadline-expr"?>*
Target Process
</onAlarm>
</eventHandlers>
Source Process
</scope>
Note that characters are appended to elements, attributes indicate optionality and cardinality, as follows:
"?" (0 or 1)
"*" (0 or more)
"+" (1 or more).
Elements and attributes separated by "|" and grouped by "(" and ")" are meant to be syntactic alternatives.
See also
BPMN to BPEL mapping for Intermediate Boundary Events