blob: 910437296e0feb34266e2c46be621c9303106e53 [file] [log] [blame]
<?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>