BPMN 2.0 FTF Avatar
  1. OMG Issue

BPMN2 — Missing definition of the participant Buyer

  • Key: BPMN2-291
  • Legacy Issue Number: 15163
  • Status: closed  
  • Source: Camunda Services GmbH ( Gerardo Navarro Suarez)
  • Summary:

    Table 10.19, the XML serialization of the Buyer process in figure 10.23 (pg. 150) is shown. The process model in figure 10.23 shows a Pool named Buyer. The metamodell provides the possibility to define pools as participants, which have a reference to the process definition. But Table 10.19 doesn’t contain any definition of a participant.

    ---Proposal--------------- 04/07/2010 -------------------------
    ##Proposed Resolution: Fixed

    (a) Update Table 10.19 by replacing the XML with the following XML,which adds a collaboration with a participant and a laneSet. The collaboration represents the pool Buyer in figure 10.23 (pg. 150).

    <definitions id="Definition"
    targetNamespace="http://www.example.org/UserTaskExample"
    typeLanguage="http://www.w3.org/2001/XMLSchema"
    expressionLanguage="http://www.w3.org/1999/XPath"
    xmlns="http://schema.omg.org/spec/BPMN/2.0"
    xmlns:tns="http://www.example.org/UserTaskExample">

    <resource id="regionalManager" name="Regional Manager">
    <resourceParameter id="buyerName" isRequired="true" name="Buyer Name" type="xsd:string"/>
    <resourceParameter id="region" isRequired="false" name="Region" type="xsd:string"/>
    </resource>

    <resource id="departmentalReviewer" name="Departmental Reviewer">
    <resourceParameter id="buyerName" isRequired="true" name="Buyer Name" type="xsd:string"/>
    </resource>

    <collaboration id="BuyerCollaboration" name="Buyer Collaboration">
    <participant id="BuyerParticipant" name="Buyer" processRef="BuyerProcess"/>
    </collaboration>

    <!-- Process definition -->
    <process id="BuyerProcess" name="Buyer Process">

    <laneSet id="BuyerLaneSet">
    <lane id="ByerLane">
    <flowElementRef>StartProcess</flowElementRef>
    <flowElementRef>QuotationHandling</flowElementRef>
    <flowElementRef>ApproveOrder</flowElementRef>
    <flowElementRef>OrderApprovedDecision</flowElementRef>
    <flowElementRef>TerminateProcess</flowElementRef>
    <flowElementRef>OrderAndShipment</flowElementRef>
    <flowElementRef>OrderHandling</flowElementRef>
    <flowElementRef>ShipmentHandling</flowElementRef>
    <flowElementRef>OrderAndShipmentMerge</flowElementRef>
    <flowElementRef>ReviewOrder</flowElementRef>
    <flowElementRef>EndProcess</flowElementRef>
    </lane>
    </laneSet>

    <startEvent id="StartProcess"/>

    <sequenceFlow sourceRef="StartProcess" targetRef="QuotationHandling"/>

    <task id="QuotationHandling" name="Quotation Handling"/>

    <sequenceFlow sourceRef="QuotationHandling" targetRef="ApproveOrder"/>

    <userTask id="ApproveOrder" name="ApproveOrder">
    <potentialOwner resourceRef="tns:regionalManager">
    <resourceParameterBinding parameterRef="tns:buyerName">
    <formalExpression>getDataInput('order')/address/name</formalExpression>
    </resourceParameterBinding>
    <resourceParameterBinding parameterRef="tns:region">
    <formalExpression>getDataInput('order')/address/country</formalExpression>
    </resourceParameterBinding>
    </potentialOwner>
    </userTask>

    <sequenceFlow sourceRef="ApproveOrder" targetRef="OrderApprovedDecision"/>

    <exclusiveGateway id="OrderApprovedDecision" gatewayDirection="diverging"/>

    <sequenceFlow sourceRef="OrderApprovedDecision" targetRef="OrderAndShipment">
    <conditionExpression>Was the Order Approved?</conditionExpression>
    </sequenceFlow>

    <sequenceFlow sourceRef="OrderApprovedDecision" targetRef="TerminateProcess">
    <conditionExpression>Was the Order NOT Approved?</conditionExpression>
    </sequenceFlow>

    <endEvent id="TerminateProcess">
    <terminateEventDefinition id="TerminateEvent"/>
    </endEvent>

    <parallelGateway id="OrderAndShipment" gatewayDirection="diverging"/>

    <sequenceFlow sourceRef="OrderAndShipment" targetRef="OrderHandling"/>

    <sequenceFlow sourceRef="OrderAndShipment" targetRef="ShipmentHandling"/>

    <task id="OrderHandling" name="Order Handling"/>

    <task id="ShipmentHandling" name="Shipment Handling"/>

    <sequenceFlow sourceRef="OrderHandling" targetRef="OrderAndShipmentMerge"/>

    <sequenceFlow sourceRef="ShipmentHandling" targetRef="OrderAndShipmentMerge"/>

    <parallelGateway id="OrderAndShipmentMerge" gatewayDirection="converging"/>

    <sequenceFlow targetRef="OrderAndShipmentMerge" sourceRef="ReviewOrder"/>

    <userTask id="ReviewOrder" name="Review Order">
    <potentialOwner resourceRef="tns:departmentalReviewer">
    <resourceParameterBinding parameterRef="tns:buyerName">
    <formalExpression>getDataInput('order')/address/name</formalExpression>
    </resourceParameterBinding>
    </potentialOwner>
    </userTask>

    <sequenceFlow sourceRef="ReviewOrder" targetRef="EndProcess"/>

    <endEvent id="EndProcess"/>
    </process>
    </definitions>

  • Reported: BPMN 2.0b1 — Wed, 7 Apr 2010 04:00 GMT
  • Disposition: Resolved — BPMN 2.0
  • Disposition Summary:

    (a) Update Table 10.19 by replacing the XML with the following
    XML,which adds a collaboration with a participant and a laneSet. The
    collaboration represents the pool Buyer in figure 10.23 (pg. 150).
    <definitions id="Definition"
    targetNamespace="http://www.example.org/UserTaskExample"
    typeLanguage="http://www.w3.org/2001/XMLSchema"
    expressionLanguage="http://www.w3.org/1999/XPath"
    xmlns="http://schema.omg.org/spec/BPMN/2.0"
    xmlns:tns="http://www.example.org/UserTaskExample">
    <resource id="regionalManager" name="Regional Manager">
    <resourceParameter id="buyerName" isRequired="true" name="Buyer Name" type="xsd:string"/>
    <resourceParameter id="region" isRequired="false" name="Region" type="xsd:string"/>
    </resource>
    <resource id="departmentalReviewer" name="Departmental Reviewer">
    <resourceParameter id="buyerName" isRequired="true" name="Buyer Name" type="xsd:string"/>
    </resource>
    <collaboration id="BuyerCollaboration" name="Buyer Collaboration">
    <participant id="BuyerParticipant" name="Buyer" processRef="BuyerProcess"/>
    </collaboration>
    <!-- Process definition -->
    <process id="BuyerProcess" name="Buyer Process">
    <laneSet id="BuyerLaneSet">
    <lane id="ByerLane">
    <flowElementRef>StartProcess</flowElementRef>
    <flowElementRef>QuotationHandling</flowElementRef>
    <flowElementRef>ApproveOrder</flowElementRef>
    <flowElementRef>OrderApprovedDecision</flowElementRef>
    <flowElementRef>TerminateProcess</flowElementRef>
    <flowElementRef>OrderAndShipment</flowElementRef>
    <flowElementRef>OrderHandling</flowElementRef>
    <flowElementRef>ShipmentHandling</flowElementRef>
    <flowElementRef>OrderAndShipmentMerge</flowElementRef>
    <flowElementRef>ReviewOrder</flowElementRef>
    <flowElementRef>EndProcess</flowElementRef>
    </lane>
    </laneSet>
    <startEvent id="StartProcess"/>
    <sequenceFlow sourceRef="StartProcess" targetRef="QuotationHandling"/>
    <task id="QuotationHandling" name="Quotation Handling"/>
    <sequenceFlow sourceRef="QuotationHandling" targetRef="ApproveOrder"/>
    <userTask id="ApproveOrder" name="ApproveOrder">
    <potentialOwner resourceRef="tns:regionalManager">
    <resourceParameterBinding parameterRef="tns:buyerName">
    <formalExpression>getDataInput('order')/address/name</formalExpression>
    </resourceParameterBinding>
    <resourceParameterBinding parameterRef="tns:region">
    <formalExpression>getDataInput('order')/address/country</formalExpression>
    </resourceParameterBinding>
    </potentialOwner>
    </userTask>
    <sequenceFlow sourceRef="ApproveOrder" targetRef="OrderApprovedDecision"/>
    <exclusiveGateway id="OrderApprovedDecision" gatewayDirection="diverging"/>
    <sequenceFlow sourceRef="OrderApprovedDecision" targetRef="OrderAndShipment">
    <conditionExpression>Was the Order Approved?</conditionExpression>
    </sequenceFlow>
    <sequenceFlow sourceRef="OrderApprovedDecision" targetRef="TerminateProcess">
    <conditionExpression>Was the Order NOT Approved?</conditionExpression>
    </sequenceFlow>
    <endEvent id="TerminateProcess">
    <terminateEventDefinition id="TerminateEvent"/>
    </endEvent>
    <parallelGateway id="OrderAndShipment" gatewayDirection="diverging"/>
    <sequenceFlow sourceRef="OrderAndShipment" targetRef="OrderHandling"/>
    <sequenceFlow sourceRef="OrderAndShipment" targetRef="ShipmentHandling"/>
    <task id="OrderHandling" name="Order Handling"/>
    <task id="ShipmentHandling" name="Shipment Handling"/>
    <sequenceFlow sourceRef="OrderHandling" targetRef="OrderAndShipmentMerge"/>
    <sequenceFlow sourceRef="ShipmentHandling" targetRef="OrderAndShipmentMerge"/>
    <parallelGateway id="OrderAndShipmentMerge" gatewayDirection="converging"/>
    <sequenceFlow targetRef="OrderAndShipmentMerge" sourceRef="ReviewOrder"/>
    <userTask id="ReviewOrder" name="Review Order">
    <potentialOwner resourceRef="tns:departmentalReviewer">
    <resourceParameterBinding parameterRef="tns:buyerName">
    <formalExpression>getDataInput('order')/address/name</formalExpression>
    </resourceParameterBinding>
    </potentialOwner>
    </userTask>
    <sequenceFlow sourceRef="ReviewOrder" targetRef="EndProcess"/>
    <endEvent id="EndProcess"/>
    </process>
    </definitions>
    Disposition: Resolved

  • Updated: Fri, 6 Mar 2015 20:57 GMT