| <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> |
| <definitions name="Incident Management" id="_98a0678d9e194de9b3d9284886c3" |
| targetNamespace="http://fox.camunda.com/model/98a0678d9e194de9b3d9284886c3" |
| xmlns:tns="http://fox.camunda.com/model/98a0678d9e194de9b3d9284886c3" |
| xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" |
| xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" |
| xmlns:di="http://www.omg.org/spec/DD/20100524/DI" |
| xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns:java="http://jcp.org/en/jsr/detail?id=270" |
| typeLanguage="http://jcp.org/en/jsr/detail?id=270" |
| expressionLanguage="http://www.jcp.org/en/jsr/detail?id=245"> |
| <!-- |
| Java SE 6 is used as type language for the model whereas the Java |
| Unified Expression Language serves as language for Expressions. |
| --> |
| |
| <collaboration id="C1275940773964"> |
| <participant name="Trouble Ticket System" processRef="tns:WFP-1-1" |
| id="_1-1" /> |
| </collaboration> |
| |
| <process isExecutable="true" id="WFP-1-1"> |
| |
| <ioSpecification> |
| <dataInput itemSubjectRef="tns:IssueItem" id="IssueDataInputOfProcess" /> |
| <inputSet> |
| <dataInputRefs>IssueDataInputOfProcess</dataInputRefs> |
| </inputSet> |
| <outputSet></outputSet> |
| </ioSpecification> |
| |
| <!-- |
| This Lane Set partitions the Flow Nodes of the Process according to |
| the Resources that are responsible for them. However, this does not |
| affect the actual assignment of Resources to Activities as meaning |
| of the Lanes is up to the modeler and not specified in BPMN. |
| --> |
| <laneSet id="ls_1-1"> |
| <lane name="1st level support" |
| partitionElementRef="tns:FirstLevelSupportResource" id="_1-9"> |
| <flowNodeRef>_1-13</flowNodeRef> |
| <flowNodeRef>_1-26</flowNodeRef> |
| <flowNodeRef>_1-77</flowNodeRef> |
| <flowNodeRef>_1-128</flowNodeRef> |
| <flowNodeRef>_1-150</flowNodeRef> |
| <flowNodeRef>_1-201</flowNodeRef> |
| <flowNodeRef>_1-376</flowNodeRef> |
| </lane> |
| <lane name="2nd level support" |
| partitionElementRef="tns:SecondLevelSupportResource" id="_1-11"> |
| <flowNodeRef>_1-252</flowNodeRef> |
| <flowNodeRef>_1-303</flowNodeRef> |
| <flowNodeRef>_1-325</flowNodeRef> |
| </lane> |
| </laneSet> |
| |
| <startEvent name="Issue received" id="_1-13"> |
| <dataOutput itemSubjectRef="tns:IssueItem" |
| id="IssueDataOutputOfStartEvent" /> |
| <dataOutputAssociation> |
| <sourceRef>IssueDataOutputOfStartEvent</sourceRef> |
| <targetRef>IssueDataInputOfProcess</targetRef> |
| </dataOutputAssociation> |
| <messageEventDefinition messageRef="tns:IssueMessage" /> |
| </startEvent> |
| |
| <sequenceFlow sourceRef="_1-13" targetRef="_1-26" id="_1-390" /> |
| |
| <!-- |
| This script task uses the Groovy programming language to create a |
| Data Object and fill it with data of the Item received in the |
| Message that started the Process. |
| --> |
| <scriptTask name="Open ticket" scriptFormat="text/x-groovy" id="_1-26"> |
| <ioSpecification> |
| <dataInput itemSubjectRef="tns:IssueItem" |
| id="IssueDataInputOfScriptTask" /> |
| <dataOutput itemSubjectRef="tns:TicketItem" id="TicketDataOutputOfScriptTask"/> |
| <inputSet> |
| <dataInputRefs>IssueDataInputOfScriptTask</dataInputRefs> |
| </inputSet> |
| <outputSet> |
| <dataOutputRefs>TicketDataOutputOfScriptTask</dataOutputRefs> |
| </outputSet> |
| </ioSpecification> |
| <dataInputAssociation> |
| <sourceRef>IssueDataInputOfProcess</sourceRef> |
| <targetRef>IssueDataInputOfScriptTask</targetRef> |
| </dataInputAssociation> |
| <dataOutputAssociation> |
| <sourceRef>TicketDataOutputOfScriptTask</sourceRef> |
| <targetRef>TicketDataObject</targetRef> |
| </dataOutputAssociation> |
| <script><![CDATA[ |
| issueReport = getDataInput("IssueDataInputOfScriptTask") |
| |
| ticket = new TroubleTicket() |
| ticket.setDate = new Date() |
| ticket.setState = "Open" |
| ticket.setReporter = issueReport.getAuthor() |
| ticket.setDesctiption = issueReport.getText() |
| |
| setDataOutput("TicketDataOutputOfScriptTask", ticket) |
| ]]></script> |
| </scriptTask> |
| |
| <dataObject id="TicketDataObject" itemSubjectRef="tns:TicketItem" /> |
| |
| <sequenceFlow sourceRef="_1-26" targetRef="_1-77" id="_1-392" /> |
| |
| <userTask name="edit 1st level ticket" id="_1-77"> |
| <ioSpecification> |
| <dataInput itemSubjectRef="tns:TicketItem" id="TicketDataInputOf_1-77" /> |
| <dataOutput itemSubjectRef="tns:TicketItem" id="TicketDataOutputOf_1-77" /> |
| <inputSet> |
| <dataInputRefs>TicketDataInputOf_1-77</dataInputRefs> |
| </inputSet> |
| <outputSet> |
| <dataOutputRefs>TicketDataOutputOf_1-77</dataOutputRefs> |
| </outputSet> |
| </ioSpecification> |
| <dataInputAssociation> |
| <sourceRef>TicketDataObject</sourceRef> |
| <targetRef>TicketDataInputOf_1-77</targetRef> |
| </dataInputAssociation> |
| <dataOutputAssociation> |
| <sourceRef>TicketDataOutputOf_1-77</sourceRef> |
| <targetRef>TicketDataObject</targetRef> |
| </dataOutputAssociation> |
| <potentialOwner> |
| <resourceRef>tns:FirstLevelSupportResource</resourceRef> |
| </potentialOwner> |
| </userTask> |
| |
| <sequenceFlow sourceRef="_1-77" targetRef="_1-128" id="_1-394" /> |
| |
| <exclusiveGateway name="Result?" gatewayDirection="Diverging" |
| id="_1-128" /> |
| |
| <sequenceFlow sourceRef="_1-128" targetRef="_1-252" |
| name="2nd level issue" id="_1-402"> |
| <conditionExpression xsi:type="tFormalExpression"> |
| ${getDataObject("TicketDataObject").status == "Open"} |
| </conditionExpression> |
| </sequenceFlow> |
| <sequenceFlow sourceRef="_1-128" targetRef="_1-150" |
| name="Issue resolved" id="_1-396"> |
| <conditionExpression xsi:type="tFormalExpression"> |
| ${getDataObject("TicketDataObject").status == "Resolved"} |
| </conditionExpression> |
| </sequenceFlow> |
| |
| <userTask name="edit 2nd level ticket" id="_1-252"> |
| <ioSpecification> |
| <dataInput itemSubjectRef="tns:TicketItem" id="TicketDataInputOf_1-252" /> |
| <dataOutput itemSubjectRef="tns:TicketItem" id="TicketDataOutputOf_1-252" /> |
| <inputSet> |
| <dataInputRefs>TicketDataInputOf_1-252</dataInputRefs> |
| </inputSet> |
| <outputSet> |
| <dataOutputRefs>TicketDataOutputOf_1-252</dataOutputRefs> |
| </outputSet> |
| </ioSpecification> |
| <dataInputAssociation> |
| <sourceRef>TicketDataObject</sourceRef> |
| <targetRef>TicketDataInputOf_1-252</targetRef> |
| </dataInputAssociation> |
| <dataOutputAssociation> |
| <sourceRef>TicketDataOutputOf_1-252</sourceRef> |
| <targetRef>TicketDataObject</targetRef> |
| </dataOutputAssociation> |
| <potentialOwner> |
| <resourceRef>tns:SecondLevelSupportResource</resourceRef> |
| </potentialOwner> |
| </userTask> |
| |
| <sequenceFlow sourceRef="_1-252" targetRef="_1-303" id="_1-404" /> |
| |
| <exclusiveGateway name="Result?" gatewayDirection="Diverging" |
| id="_1-303" /> |
| |
| <sequenceFlow sourceRef="_1-303" targetRef="_1-325" |
| name="Fix in Next release" id="_1-410"> |
| <conditionExpression xsi:type="tFormalExpression"> |
| ${getDataObject("TicketDataObject").status == "Deferred"} |
| </conditionExpression> |
| </sequenceFlow> |
| |
| <sequenceFlow sourceRef="_1-303" targetRef="_1-150" |
| name="Issue resolved" id="_1-406"> |
| <conditionExpression xsi:type="tFormalExpression"> |
| ${getDataObject("TicketDataObject").status == "Resolved"} |
| </conditionExpression> |
| </sequenceFlow> |
| |
| <serviceTask name="Insert issue into product backlog" |
| operationRef="tns:addTicketOperation" id="_1-325"> |
| <ioSpecification> |
| <dataInput itemSubjectRef="tns:TicketItem" id="TicketDataInputOf_1-325" /> |
| <inputSet> |
| <dataInputRefs>TicketDataInputOf_1-325</dataInputRefs> |
| </inputSet> |
| <outputSet /> |
| </ioSpecification> |
| <dataInputAssociation> |
| <sourceRef>TicketDataObject</sourceRef> |
| <targetRef>TicketDataInputOf_1-325</targetRef> |
| </dataInputAssociation> |
| </serviceTask> |
| |
| <sequenceFlow sourceRef="_1-325" targetRef="_1-150" id="_1-408" /> |
| |
| <sendTask name="Send mail to account manager" messageRef="tns:AnswerMessage" |
| operationRef="tns:sendMailToIssueReporterOperation" id="_1-150"> |
| <ioSpecification> |
| <dataInput itemSubjectRef="tns:AnswerItem" id="AnswerDataInputOfSendTask" /> |
| <inputSet> |
| <dataInputRefs>AnswerDataInputOfSendTask</dataInputRefs> |
| </inputSet> |
| <outputSet /> |
| </ioSpecification> |
| <dataInputAssociation> |
| <sourceRef>TicketDataObject</sourceRef> |
| <targetRef>AnswerDataInputOfSendTask</targetRef> |
| <assignment> |
| <from>${getDataObject("TicketDataObject").reporter}</from> |
| <to>${getDataInput("AnswerDataInputOfSendTask").recipient</to> |
| </assignment> |
| <assignment> |
| <from> |
| A ticket has been created for your issue, which is now in |
| status ${getDataObject("TicketDataObject").status}. |
| </from> |
| <to>${getDataInput("AnswerDataInputOfSendTask").body}</to> |
| </assignment> |
| </dataInputAssociation> |
| </sendTask> |
| |
| <sequenceFlow sourceRef="_1-150" targetRef="_1-201" id="_1-398" /> |
| |
| <scriptTask name="Close ticket" scriptFormat="text/x-groovy" |
| id="_1-201"> |
| <ioSpecification> |
| <dataInput itemSubjectRef="tns:TicketItem" id="TicketDataInputOf_1-398" /> |
| <inputSet> |
| <dataInputRefs>TicketDataInputOf_1-398</dataInputRefs> |
| </inputSet> |
| <outputSet /> |
| </ioSpecification> |
| <dataInputAssociation> |
| <sourceRef>TicketDataObject</sourceRef> |
| <targetRef>TicketDataInputOf_1-398</targetRef> |
| </dataInputAssociation> |
| <script><![CDATA[ |
| ticket = getDataInput("TicketDataInputOf_1-398") |
| ticket.close() |
| ]]></script> |
| </scriptTask> |
| |
| <sequenceFlow sourceRef="_1-201" targetRef="_1-376" id="_1-400" /> |
| |
| <endEvent id="_1-376" /> |
| |
| </process> |
| |
| <resource id="FirstLevelSupportResource" name="1st Level Support" /> |
| |
| <resource id="SecondLevelSupportResource" name="2nd Level Support" /> |
| |
| <interface name="Product Backlog Interface" |
| implementationRef="java:com.camunda.examples.incidentmanagement.ProductBacklog"> |
| <operation name="addTicketOperation" implementationRef="addTicket" |
| id="addTicketOperation"> |
| <inMessageRef>tns:AddTicketMessage</inMessageRef> |
| </operation> |
| </interface> |
| |
| <interface name="Mail Interface" |
| implementationRef="java:com.camunda.examples.incidentmanagement.Mail"> |
| <operation name="sendMailToIssueReporterOperation" implementationRef="sendMail" |
| id="sendMailToIssueReporterOperation"> |
| <inMessageRef>tns:AnswerMessage</inMessageRef> |
| </operation> |
| </interface> |
| |
| <message id="IssueMessage" name="Issue Message" itemRef="tns:IssueItem" /> |
| |
| <message id="AddTicketMessage" name="addTicket Message" |
| itemRef="tns:TicketItem" /> |
| |
| <message id="AnswerMessage" name="Answer Message" itemRef="tns:AnswerItem" /> |
| |
| <itemDefinition id="IssueItem" isCollection="false" itemKind="Information" |
| structureRef="com.camunda.examples.incidentmanagement.IssueReport" /> |
| |
| <itemDefinition id="TicketItem" isCollection="false" itemKind="Information" |
| structureRef="com.camunda.examples.incidentmanagement.TroubleTicket" /> |
| |
| <itemDefinition id="AnswerItem" isCollection="false" itemKind="Information" |
| structureRef="com.camunda.examples.incidentmanagement.Answer" /> |
| |
| <bpmndi:BPMNDiagram documentation="" |
| id="Trisotech.Visio-_1" name="Process Engine Only" resolution="96.00000267028808"> |
| <bpmndi:BPMNPlane bpmnElement="C1275940773964"> |
| <bpmndi:BPMNShape bpmnElement="_1-1" isHorizontal="true" |
| id="Trisotech.Visio__1-1"> |
| <dc:Bounds height="396.0" width="1103.0" x="1.0" y="177.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-9" isHorizontal="true" |
| id="Trisotech.Visio__1__1-9"> |
| <dc:Bounds height="144.0" width="1073.0" x="31.0" y="177.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-11" isHorizontal="true" |
| id="Trisotech.Visio__1__1-11"> |
| <dc:Bounds height="252.0" width="1073.0" x="31.0" y="321.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-13" |
| id="Trisotech.Visio__1__1-13"> |
| <dc:Bounds height="30.0" width="30.0" x="66.0" y="233.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-26" |
| id="Trisotech.Visio__1__1-26"> |
| <dc:Bounds height="68.0" width="83.0" x="139.0" y="215.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-77" |
| id="Trisotech.Visio__1__1-77"> |
| <dc:Bounds height="68.0" width="83.0" x="266.0" y="215.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-128" |
| isMarkerVisible="false" id="Trisotech.Visio__1__1-128"> |
| <dc:Bounds height="42.0" width="42.0" x="385.0" y="228.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-150" |
| id="Trisotech.Visio__1__1-150"> |
| <dc:Bounds height="68.0" width="83.0" x="767.0" y="225.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-201" |
| id="Trisotech.Visio__1__1-201"> |
| <dc:Bounds height="68.0" width="83.0" x="893.0" y="225.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-376" |
| id="Trisotech.Visio__1__1-376"> |
| <dc:Bounds height="32.0" width="32.0" x="1013.0" y="243.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-252" |
| id="Trisotech.Visio__1__1-252"> |
| <dc:Bounds height="68.0" width="83.0" x="446.0" y="357.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-303" |
| isMarkerVisible="false" id="Trisotech.Visio__1__1-303"> |
| <dc:Bounds height="42.0" width="42.0" x="573.0" y="370.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape bpmnElement="_1-325" |
| id="Trisotech.Visio__1__1-325"> |
| <dc:Bounds height="68.0" width="83.0" x="641.0" y="429.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNEdge bpmnElement="_1-398" |
| id="Trisotech.Visio__1__1-398"> |
| <di:waypoint x="850.0" y="259.0" /> |
| <di:waypoint x="868.0" y="259.0" /> |
| <di:waypoint x="893.0" y="259.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-402" |
| id="Trisotech.Visio__1__1-402"> |
| <di:waypoint x="406.0" y="269.0" /> |
| <di:waypoint x="406.0" y="390.0" /> |
| <di:waypoint x="446.0" y="391.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-392" |
| id="Trisotech.Visio__1__1-392"> |
| <di:waypoint x="222.0" y="249.0" /> |
| <di:waypoint x="266.0" y="249.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-390" |
| id="Trisotech.Visio__1__1-390"> |
| <di:waypoint x="97.0" y="249.0" /> |
| <di:waypoint x="115.0" y="249.0" /> |
| <di:waypoint x="139.0" y="249.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-410" |
| id="Trisotech.Visio__1__1-410"> |
| <di:waypoint x="594.0" y="411.0" /> |
| <di:waypoint x="594.0" y="462.0" /> |
| <di:waypoint x="641.0" y="463.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-400" |
| id="Trisotech.Visio__1__1-400"> |
| <di:waypoint x="976.0" y="259.0" /> |
| <di:waypoint x="994.0" y="259.0" /> |
| <di:waypoint x="1013.0" y="259.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-394" |
| id="Trisotech.Visio__1__1-394"> |
| <di:waypoint x="349.0" y="249.0" /> |
| <di:waypoint x="367.0" y="249.0" /> |
| <di:waypoint x="385.0" y="249.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-404" |
| id="Trisotech.Visio__1__1-404"> |
| <di:waypoint x="529.0" y="391.0" /> |
| <di:waypoint x="547.0" y="391.0" /> |
| <di:waypoint x="573.0" y="390.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-406" |
| id="Trisotech.Visio__1__1-406"> |
| <di:waypoint x="614.0" y="390.0" /> |
| <di:waypoint x="672.0" y="390.0" /> |
| <di:waypoint x="672.0" y="258.0" /> |
| <di:waypoint x="767.0" y="259.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-396" |
| id="Trisotech.Visio__1__1-396"> |
| <di:waypoint x="426.0" y="249.0" /> |
| <di:waypoint x="444.0" y="249.0" /> |
| <di:waypoint x="444.0" y="247.0" /> |
| <di:waypoint x="767.0" y="247.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge bpmnElement="_1-408" |
| id="Trisotech.Visio__1__1-408"> |
| <di:waypoint x="724.0" y="463.0" /> |
| <di:waypoint x="742.0" y="463.0" /> |
| <di:waypoint x="742.0" y="270.0" /> |
| <di:waypoint x="767.0" y="270.0" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNEdge> |
| </bpmndi:BPMNPlane> |
| </bpmndi:BPMNDiagram> |
| |
| </definitions> |
| |