[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: BPMN2 file: defaultGovernanceRegistryProcess.bpmn20.xml
Attached is the defaultGovernanceCollaboration.png BPMN2 collaboration diagram consisting of 3 pools (Submitter, Registry, Reviewer). This gives the overview of the Default Governance Collaboration and the processes for each of its 3 particpants. Also attached is the the BPMN2 file describing the BPMN2 process for the Registry participant. THis is the process that will be executed by the RegRep server to govern objects that are governed by the Default Governance Collaboration. Please note that the BPMN2 diagram is slightly older than the BPMN2 XML file. I will make it consistent with the file for the next draft of the spec. I would like to propose that we review it during our meeting today. Thank you. -- Regards, Farrukh Najmi Web: http://www.wellfleetsoftware.com
<?xml version="1.0" encoding="UTF-8"?> <definitions id="defaultChangeReviewProcess" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="urn:oasis:names:tc:ebxml-regrep:xsd:rs:4.0:governance:default:registry" xmlns:tns="urn:oasis:names:tc:ebxml-regrep:xsd:rs:4.0:governance:default:registry" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:gov="urn:oasis:names:tc:ebxml-regrep:xsd:rs:4.0:governance" xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:4.0" xmlns:act="urn:oasis:names:tc:ebxml-regrep:xsd:rs:4.0:actions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:java="http://jcp.org/en/jsr/detail?id=270" xmlns:roles="urn:acme:roles" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd urn:oasis:names:tc:ebxml-regrep:xsd:rim:4.0 ../xsd/rim.xsd"> <import importType="http://www.omg.org/spec/BPMN/20100524/MODEL" location="./regrep-core.bpmn20.xml" namespace="urn:oasis:names:tc:ebxml-regrep:xsd:rs:4.0:governance"/> <process id="registryProcess" name="Registry Process"> <!-- The input data for the process --> <ioSpecification> <dataInput itemSubjectRef="requestForReviewItemDefinition" id="RequestForReviewDataInputOfProcess" /> <dataInput itemSubjectRef="reviewOutcomeItemDefinition" id="ReviewOutcomeDataInputOfProcess" /> <inputSet> <dataInputRefs>RequestForReviewDataInputOfProcess</dataInputRefs> </inputSet> <outputSet></outputSet> </ioSpecification> <laneSet id="registryPool"> <lane name="Registry" id="registryLane"> <flowNodeRef>requestForReviewReceived</flowNodeRef> <flowNodeRef>requestForReviewNotify</flowNodeRef> <flowNodeRef>awaitReviewOutcome</flowNodeRef> <flowNodeRef>reviewOutcomeGateway</flowNodeRef> <flowNodeRef>rejectedSetStatus</flowNodeRef> <flowNodeRef>approvedSetStatus</flowNodeRef> <flowNodeRef>rejectedNotify</flowNodeRef> <flowNodeRef>approvedNotify</flowNodeRef> </lane> </laneSet> <!-- Registry lane flowNodes --> <startEvent id="requestForReviewReceived" name="RequestForReview Received"> <dataOutput itemSubjectRef="requestForReviewItemDefinition" id="RequestForReviewDataOutputOfStartEvent" /> <dataOutputAssociation> <sourceRef>RequestForReviewDataInputOfProcess</sourceRef> <targetRef>RequestForReviewDataOutputOfStartEvent</targetRef> </dataOutputAssociation> <messageEventDefinition messageRef="requestForReviewMessage"/> </startEvent> <sequenceFlow sourceRef="requestForReviewReceived" targetRef="requestForReviewNotify"> <conditionExpression> ${getDataObject("RequestForReviewDataInputOfProcess")/@action == "urn:test:action:RequestForReview"} </conditionExpression> </sequenceFlow> <sendTask id="requestForReviewNotify" name="Notify(RequestForReview)" messageRef="tns:RequestForReviewNotificationMessage" operationRef="gov:sendNotificationOperation"> <ioSpecification> <dataInput itemSubjectRef="tns:requestForReviewNotificationItemDefinition" id="RequestForReviewNotificationDataInputOfSendTask" /> <inputSet> <dataInputRefs>RequestForReviewNotificationDataInputOfSendTask</dataInputRefs> </inputSet> <outputSet /> </ioSpecification> <dataInputAssociation> <sourceRef>RequestForReviewDataOutputOfStartEvent</sourceRef> <targetRef>RequestForReviewNotificationDataInputOfSendTask</targetRef> <assignment> <from>urn:test:roles:Reviewer</from> <to>${getDataInput("RequestForReviewNotificationDataInputOfSendTask")/toRole}</to> </assignment> <assignment> <from>fn:concat('Request for review of object with id:', ${getDataObject("RequestForReviewDataInputOfProcess")/@targetObject}</from> <to>${getDataInput("RequestForReviewNotificationDataInputOfSendTask")/@subject}</to> </assignment> <assignment> <from> fn:concat('A new request has arrived for the review of object with id:', ${getDataObject("RequestForReviewDataInputOfProcess")/@targetObject} </from> <to>${getDataInput("RequestForReviewNotificationDataInputOfSendTask")/@message}</to> </assignment> </dataInputAssociation> </sendTask> <sequenceFlow sourceRef="requestForReviewNotify" targetRef="awaitReviewOutcome"></sequenceFlow> <intermediateCatchEvent id="awaitReviewOutcome" name="AwaitReviewOutcome"> <dataOutput itemSubjectRef="awaitReviewOutcomeItemDefinition" id="ReviewOutcomeDataOutputOfEvent" /> <dataOutputAssociation> <sourceRef>ReviewOutcomeDataOutputOfEvent</sourceRef> <targetRef>ReviewOutcomeDataInputOfProcess</targetRef> </dataOutputAssociation> <messageEventDefinition messageRef="reviewOutcomeMessage"/> </intermediateCatchEvent> <sequenceFlow sourceRef="awaitReviewOutcome" targetRef="reviewOutcomeGateway" /> <exclusiveGateway name="Review Outcome" gatewayDirection="Diverging" id="reviewOutcomeGateway" /> <sequenceFlow sourceRef="awaitReviewOutcome" targetRef="rejectedSetStatus" name="Reject"> <conditionExpression xsi:type="tFormalExpression"> ${getDataObject("ReviewOutcomeDataInputOfProcess")[@action = "urn:test:actions:Reject"]} </conditionExpression> </sequenceFlow> <sequenceFlow sourceRef="awaitReviewOutcome" targetRef="approvedSetStatus" name="Approve"> <conditionExpression xsi:type="tFormalExpression"> ${getDataObject("ReviewOutcomeDataInputOfProcess")[@action = "urn:test:actions:Approve"]} </conditionExpression> </sequenceFlow> <scriptTask name="SetStatus(Rejected)" id="rejectedSetStatus" scriptFormat="text/x-groovy"> <ioSpecification> <dataInput itemSubjectRef="tns:ReviewOutcomeItem" id="ReviewOutcomeInputOfRejectedScriptTask" /> <inputSet> <dataInputRefs>ReviewOutcomeInputOfRejectedScriptTask</dataInputRefs> </inputSet> <outputSet/> </ioSpecification> <dataInputAssociation> <sourceRef>ReviewOutcomeDataInputOfProcess</sourceRef> <targetRef>ReviewOutcomeInputOfRejectedScriptTask</targetRef> </dataInputAssociation> <script><![CDATA[ reviewOutcome = getDataInput("ReviewOutcomeInputOfRejectedScriptTask") targetObject = reviewOutcome.getTargetObject() CoreCanonocalFunctions.setStatus(targetObject, "urn:test:status:Rejected") ]]></script> </scriptTask> <scriptTask name="SetStatus(Approved)" id="approvedSetStatus" scriptFormat="text/x-groovy"> <ioSpecification> <dataInput itemSubjectRef="tns:ReviewOutcomeItem" id="ReviewOutcomeInputOfApprovedScriptTask" /> <inputSet> <dataInputRefs>ReviewOutcomeInputOfApprovedScriptTask</dataInputRefs> </inputSet> <outputSet/> </ioSpecification> <dataInputAssociation> <sourceRef>ReviewOutcomeDataInputOfProcess</sourceRef> <targetRef>ReviewOutcomeInputOfApprovedScriptTask</targetRef> </dataInputAssociation> <script><![CDATA[ reviewOutcome = getDataInput("ReviewOutcomeInputOfApprovedScriptTask") targetObject = reviewOutcome.getTargetObject() CoreCanonocalFunctions.setStatus(targetObject, "urn:test:status:Approved") ]]></script> </scriptTask> <sequenceFlow sourceRef="rejectedSetStatus" targetRef="rejectedNotify"></sequenceFlow> <sequenceFlow sourceRef="approvedSetStatus" targetRef="approvedNotify"></sequenceFlow> <sendTask id="rejectedNotify" name="Notify(Rejected)" messageRef="tns:RequestForReviewNotificationMessage" operationRef="gov:sendNotificationOperation"> <ioSpecification> <dataInput itemSubjectRef="tns:rejectedNotificationItemDefinition" id="RejectedNotificationDataInputOfSendTask" /> <inputSet> <dataInputRefs>RejectedNotificationDataInputOfSendTask</dataInputRefs> </inputSet> <outputSet /> </ioSpecification> <dataInputAssociation> <sourceRef>RequestForReviewDataOutputOfStartEvent</sourceRef> <targetRef>RejectedNotificationDataInputOfSendTask</targetRef> <assignment> <from>urn:test:roles:Submitter</from> <to>${getDataInput("RequestForReviewNotificationDataInputOfSendTask")/toRole}</to> </assignment> <assignment> <from>fn:concat('Review failed for the object with id:', ${getDataObject("RequestForReviewDataInputOfProcess")/@targetObject}</from> <to>${getDataInput("RequestForReviewNotificationDataInputOfSendTask")/@subject}</to> </assignment> <assignment> <from> fn:concat('Reveviers have rejected the object with id:', ${getDataObject("RequestForReviewDataInputOfProcess")/@targetObject} </from> <to>${getDataInput("RequestForReviewNotificationDataInputOfSendTask")/@message}</to> </assignment> </dataInputAssociation> </sendTask> <sendTask id="approvedNotify" name="Notify(Approved)" messageRef="tns:ApprovedNotificationMessage" operationRef="gov:sendNotificationOperation"> <ioSpecification> <dataInput itemSubjectRef="tns:approvedNotificationItemDefinition" id="ApprovedNotificationDataInputOfSendTask" /> <inputSet> <dataInputRefs>ApprovedNotificationDataInputOfSendTask</dataInputRefs> </inputSet> <outputSet /> </ioSpecification> <dataInputAssociation> <sourceRef>RequestForReviewDataOutputOfStartEvent</sourceRef> <targetRef>ApprovedNotificationDataInputOfSendTask</targetRef> <assignment> <from>urn:test:roles:Submitter</from> <to>${getDataInput("RequestForReviewNotificationDataInputOfSendTask")/toRole}</to> </assignment> <assignment> <from>fn:concat('Review passed for object with id:', ${getDataObject("RequestForReviewDataInputOfProcess")/@targetObject}</from> <to>${getDataInput("RequestForReviewNotificationDataInputOfSendTask")/@subject}</to> </assignment> <assignment> <from> fn:concat('Reveviers have rejected the object with id:', ${getDataObject("RequestForReviewDataInputOfProcess")/@targetObject} </from> <to>${getDataInput("RequestForReviewNotificationDataInputOfSendTask")/@message}</to> </assignment> </dataInputAssociation> </sendTask> <sequenceFlow sourceRef="rejectedNotify" targetRef="endEvent"></sequenceFlow> <sequenceFlow sourceRef="approvedNotify" targetRef="endEvent"></sequenceFlow> <endEvent id="endEvent" /> </process> <itemDefinition id="requestForReviewItemDefinition" isCollection="false" itemKind="Information" structureRef="rim:WorkflowActionType" /> <itemDefinition id="requestForReviewNotificationItemDefinition" isCollection="false" itemKind="Information" structureRef="rim:EmailMessageType" /> </definitions>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]