12-16-2012 01:42 AM
12-16-2012 09:21 AM
12-17-2012 02:18 PM
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlnsmgdc="http://www.omg.org/spec/DD/20100524/DC" xmlnsmgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="ticketProcess" name="Ticket Process">
<startEvent id="startevent1" name="Start">
<extensionElements>
<activiti:formProperty id="date" name="Creation Date" type="string" variable="${date}" datePattern=""dd/MM/yyyy HH:mm" " readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="groupname" name="Group" type="string" variable="${groupname}" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="useremail" name="Email" type="string" variable="${useremail}" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="applicationName" name="Application Name" type="string" variable="${applicationName}" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="companyName" name="Company Name" type="string" variable="${companyName}" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="country" name="Country" type="string" variable="${country}" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="interfaceName" name="Interface Name" type="string" variable="${interfaceName}" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="macAddress" name="MAC Address" type="string" variable="${macAddress}" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="issueDate" name="License Issue Date" type="string" variable="${issueDate}" datePattern=""EEE MMM dd HH:mm:ss z yyyy"" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="expiryDate" name="Expiry Date" type="string" variable="${expiryDate}" datePattern=""EEE MMM dd HH:mm:ss z yyyy"" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="comment" name="Comment" type="string" variable="${comment}" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="exception" name="Exception" type="string" variable="${exception}" readable="true" writable="true"></activiti:formProperty>
<activiti:formProperty id="deploymentUrl" name="Deployment Url" type="string" variable="${deploymentUrl}" readable="true" writable="false"></activiti:formProperty>
</extensionElements>
</startEvent>
<serviceTask id="newTicketNotification" name="Send New Ticket Notification" activiti:type="mail">
<extensionElements>
<activiti:field name="to" expression="${to}"></activiti:field>
<activiti:field name="from" expression="${from}"></activiti:field>
<activiti:field name="subject" expression="Ticket ${ticketId} created"></activiti:field>
<activiti:field name="html">
<activiti:expression><![CDATA[<html>
<body>
<p>Hello!</p>
<p>A new Ticket with id <strong>${ticketId}</strong> has been automatically created </p>
<p>The ticket wa submitted by: ${date} </p>
<p>you can view it on: ${url}</p>
<p> this email is automatically generated , please don't reply to it </p>
<p> Kind regards,</p>
</body>
</html>]]></activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
<userTask id="firstLineSupport" name="First Line Support" activiti:assignee="1" activitiriority="High">
<documentation>
Please Reply to Ticket ${ticketId}
</documentation>
<extensionElements>
<activiti:formProperty id="status" name="Ticket status?" type="enum" variable="${status}" required="true" readable="true" writable="true">
<activiti:value id="resolved" name="Resolved"></activiti:value>
<activiti:value id="open" name="Open"></activiti:value>
<activiti:value id="idel" name="Idel"></activiti:value>
</activiti:formProperty>
<activiti:formProperty id="customerCareComment" name="Customer Care Comment" type="string"></activiti:formProperty>
</extensionElements>
</userTask>
<boundaryEvent id="boundarytimer5" name="" cancelActivity="true" attachedToRef="firstLineSupport">
<timerEventDefinition>
<timeDuration>${escalationTime}</timeDuration>
</timerEventDefinition>
</boundaryEvent>
<serviceTask id="escalationEmail" name="Ticket Escilation Notification" activiti:async="true" activiti:type="mail">
<extensionElements>
<activiti:field name="to" expression="${to}"></activiti:field>
<activiti:field name="from" expression="${from}"></activiti:field>
<activiti:field name="subject" expression="Ticket ${ticketId} Escalation"></activiti:field>
<activiti:field name="cc" expression="${cc}"></activiti:field>
<activiti:field name="html">
<activiti:expression><![CDATA[<html>
<body>
Dear all <br/>
Ticket with id ${ticketId} is Escalated due to not action about it from ${to} side <br/>
Kind regards,<br/>
</body>
</html>]]></activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
<userTask id="usertask3" name="Customer Reply" activiti:assignee="${customerId}">
<documentation>
Please Reply to Ticket ${ticketId}
</documentation>
<extensionElements>
<activiti:formProperty id="customerComment" name="Customer Comment" type="string"></activiti:formProperty>
</extensionElements>
</userTask>
<boundaryEvent id="boundarytimer6" cancelActivity="true" attachedToRef="usertask3">
<timerEventDefinition>
<timeDuration>${customerTime}</timeDuration>
</timerEventDefinition>
</boundaryEvent>
<serviceTask id="mailtask2" name="Customer Does not reply email" activiti:type="mail">
<extensionElements>
<activiti:field name="to" expression="${to}"></activiti:field>
<activiti:field name="from" expression="${from}"></activiti:field>
<activiti:field name="subject" expression="No Reply for Ticket ${ticketId}"></activiti:field>
<activiti:field name="html">
<activiti:expression><![CDATA[<html>
<body>
Dear ${customerEmail} <br/>
No reply for Ticket ${ticketId} your side <br/>
Kind regards,<br/>
</body>
</html>]]></activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
<endEvent id="endevent2" name="End"></endEvent>
<sequenceFlow id="flow2" name="" sourceRef="newTicketNotification" targetRef="firstLineSupport"></sequenceFlow>
<sequenceFlow id="flow3" name="" sourceRef="boundarytimer5" targetRef="escalationEmail"></sequenceFlow>
<sequenceFlow id="flow8" name="" sourceRef="boundarytimer6" targetRef="mailtask2"></sequenceFlow>
<sequenceFlow id="flow9" name="" sourceRef="mailtask2" targetRef="endevent2"></sequenceFlow>
<sequenceFlow id="flow17" name="" sourceRef="startevent1" targetRef="newTicketNotification"></sequenceFlow>
<sequenceFlow id="flow19" name="" sourceRef="firstLineSupport" targetRef="exclusivegateway2"></sequenceFlow>
<serviceTask id="mailtask3" name="Customer Reply Notification" activiti:type="mail">
<extensionElements>
<activiti:field name="to" expression="${to}"></activiti:field>
<activiti:field name="from" expression="${from}"></activiti:field>
<activiti:field name="subject" expression="Ticket ${ticketId} replayed by customer"></activiti:field>
<activiti:field name="text">
<activiti:expression><![CDATA[hola!]]></activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
<serviceTask id="mailtask4" name="Support Reply Notification" activiti:type="mail">
<extensionElements>
<activiti:field name="to" expression="${to}"></activiti:field>
<activiti:field name="from" expression="${from}"></activiti:field>
<activiti:field name="subject" expression="Ticket ${ticketId} replayed by staff"></activiti:field>
<activiti:field name="text">
<activiti:expression><![CDATA[hi]]></activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
<sequenceFlow id="flow22" name="relpyToTicket" sourceRef="exclusivegateway2" targetRef="mailtask4"></sequenceFlow>
<sequenceFlow id="flow23" name="" sourceRef="mailtask4" targetRef="usertask3"></sequenceFlow>
<sequenceFlow id="flow24" name="" sourceRef="mailtask3" targetRef="firstLineSupport"></sequenceFlow>
<exclusiveGateway id="exclusivegateway1" name="Exclusive Gateway"></exclusiveGateway>
<sequenceFlow id="flow25" name="" sourceRef="usertask3" targetRef="exclusivegateway1"></sequenceFlow>
<sequenceFlow id="flow26" name="Solution pending or rejected" sourceRef="exclusivegateway1" targetRef="mailtask3"></sequenceFlow>
<sequenceFlow id="flow27" name="Solution Approved" sourceRef="exclusivegateway1" targetRef="endevent2"></sequenceFlow>
<userTask id="usertask4" name="Second Line Support" activiti:assignee="${customerCareId}" activitiriority="High">
<extensionElements>
<activiti:formProperty id="status" name="Ticket status?" type="enum" variable="${status}" required="true" readable="true" writable="true">
<activiti:value id="resolved" name="Resolved"></activiti:value>
<activiti:value id="open" name="Open"></activiti:value>
<activiti:value id="idel" name="Idel"></activiti:value>
</activiti:formProperty>
<activiti:formProperty id="customerCareComment" name="Customer Care Comment" type="string"></activiti:formProperty>
</extensionElements>
</userTask>
<sequenceFlow id="flow28" name="" sourceRef="escalationEmail" targetRef="usertask4"></sequenceFlow>
<exclusiveGateway id="exclusivegateway2" name="Exclusive Gateway"></exclusiveGateway>
<sequenceFlow id="flow29" name="" sourceRef="usertask4" targetRef="exclusivegateway2"></sequenceFlow>
<serviceTask id="mailtask5" name="Ticket Closed Notification" activiti:type="mail">
<extensionElements>
<activiti:field name="to" expression="${to}"></activiti:field>
<activiti:field name="from" expression="${from}"></activiti:field>
<activiti:field name="subject" expression="Ticket ${ticketId} Closed"></activiti:field>
<activiti:field name="text">
<activiti:expression><![CDATA[Ticket ${ticketId} Closed]]></activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
<sequenceFlow id="flow30" name="tikect Rejected" sourceRef="exclusivegateway2" targetRef="mailtask5"></sequenceFlow>
<endEvent id="endevent3" name="End"></endEvent>
<sequenceFlow id="flow31" name="" sourceRef="mailtask5" targetRef="endevent3"></sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_ticketProcess">
<bpmndi:BPMNPlane bpmnElement="ticketProcess" id="BPMNPlane_ticketProcess">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="35" width="35" x="50" y="300"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="newTicketNotification" id="BPMNShape_newTicketNotification">
<omgdc:Bounds height="55" width="105" x="200" y="290"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="firstLineSupport" id="BPMNShape_firstLineSupport">
<omgdc:Bounds height="55" width="105" x="387" y="290"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="boundarytimer5" id="BPMNShape_boundarytimer5">
<omgdc:Bounds height="30" width="30" x="425" y="330"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="escalationEmail" id="BPMNShape_escalationEmail">
<omgdc:Bounds height="55" width="105" x="387" y="460"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="usertask3" id="BPMNShape_usertask3">
<omgdc:Bounds height="55" width="105" x="1000" y="290"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="boundarytimer6" id="BPMNShape_boundarytimer6">
<omgdc:Bounds height="30" width="30" x="1040" y="330"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="mailtask2" id="BPMNShape_mailtask2">
<omgdc:Bounds height="55" width="105" x="1002" y="460"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent2" id="BPMNShape_endevent2">
<omgdc:Bounds height="35" width="35" x="1220" y="470"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="mailtask3" id="BPMNShape_mailtask3">
<omgdc:Bounds height="55" width="105" x="771" y="60"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="mailtask4" id="BPMNShape_mailtask4">
<omgdc:Bounds height="55" width="105" x="771" y="290"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="BPMNShape_exclusivegateway1">
<omgdc:Bounds height="40" width="40" x="1217" y="299"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="usertask4" id="BPMNShape_usertask4">
<omgdc:Bounds height="55" width="105" x="598" y="460"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegateway2" id="BPMNShape_exclusivegateway2">
<omgdc:Bounds height="40" width="40" x="630" y="297"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="mailtask5" id="BPMNShape_mailtask5">
<omgdc:Bounds height="55" width="105" x="598" y="160"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent3" id="BPMNShape_endevent3">
<omgdc:Bounds height="35" width="35" x="806" y="170"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="305" y="317"></omgdi:waypoint>
<omgdi:waypoint x="387" y="317"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
<omgdi:waypoint x="440" y="360"></omgdi:waypoint>
<omgdi:waypoint x="439" y="460"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
<omgdi:waypoint x="1055" y="360"></omgdi:waypoint>
<omgdi:waypoint x="1054" y="460"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
<omgdi:waypoint x="1107" y="487"></omgdi:waypoint>
<omgdi:waypoint x="1220" y="487"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17">
<omgdi:waypoint x="85" y="317"></omgdi:waypoint>
<omgdi:waypoint x="200" y="317"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow19" id="BPMNEdge_flow19">
<omgdi:waypoint x="492" y="317"></omgdi:waypoint>
<omgdi:waypoint x="630" y="317"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow22" id="BPMNEdge_flow22">
<omgdi:waypoint x="670" y="317"></omgdi:waypoint>
<omgdi:waypoint x="771" y="317"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="13" width="100" x="-40" y="8"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow23" id="BPMNEdge_flow23">
<omgdi:waypoint x="876" y="317"></omgdi:waypoint>
<omgdi:waypoint x="1000" y="317"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow24" id="BPMNEdge_flow24">
<omgdi:waypoint x="771" y="87"></omgdi:waypoint>
<omgdi:waypoint x="439" y="87"></omgdi:waypoint>
<omgdi:waypoint x="439" y="290"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow25" id="BPMNEdge_flow25">
<omgdi:waypoint x="1105" y="317"></omgdi:waypoint>
<omgdi:waypoint x="1217" y="319"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow26" id="BPMNEdge_flow26">
<omgdi:waypoint x="1237" y="299"></omgdi:waypoint>
<omgdi:waypoint x="1236" y="87"></omgdi:waypoint>
<omgdi:waypoint x="876" y="87"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="39" width="100" x="78" y="99"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow27" id="BPMNEdge_flow27">
<omgdi:waypoint x="1237" y="339"></omgdi:waypoint>
<omgdi:waypoint x="1237" y="470"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="13" width="100" x="10" y="0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow28" id="BPMNEdge_flow28">
<omgdi:waypoint x="492" y="487"></omgdi:waypoint>
<omgdi:waypoint x="598" y="487"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow29" id="BPMNEdge_flow29">
<omgdi:waypoint x="650" y="460"></omgdi:waypoint>
<omgdi:waypoint x="650" y="337"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow30" id="BPMNEdge_flow30">
<omgdi:waypoint x="650" y="297"></omgdi:waypoint>
<omgdi:waypoint x="650" y="215"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="13" width="100" x="10" y="0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow31" id="BPMNEdge_flow31">
<omgdi:waypoint x="703" y="187"></omgdi:waypoint>
<omgdi:waypoint x="806" y="187"></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration()
.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE)
.setJdbcUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8")
.setJdbcUsername("root")
.setJdbcPassword("root")
.setJdbcDriver("com.mysql.jdbc.Driver")
.setJobExecutorActivate(true)
.setMailServerHost("mail.xxxxxxx.com")
.setMailServerPort(26)
.setMailServerUsername("notifications@xxxxxxx.com")
.setMailServerPassword("notiF#@!")
.setJobExecutorActivate(true)
.buildProcessEngine();
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("to", "xxxxxxx@xxxxxxx.com");
variables.put("from", "xxxxxxx@xxxxxxx.com");
variables.put("ticketId", "123456789");
variables.put("url", "http://xxxxxxx.xxxxxxx.com/xxxxxxx");
variables.put("date", new SimpleDateFormat("dd/MM/yyyy").format(new Date()));
variables.put("escalationTime", "PT5M");
variables.put("cc", "xxxxxxx@xxxxxxx.xxxxxxx");
variables.put("customerTime", "PT5M");
variables.put("customerCareId", "customerCareId!!");
IdentityService identityService = ProcessEngines.getDefaultProcessEngine().getIdentityService();
Authentication.setAuthenticatedUserId("1");
Map<String, String> formVars = new HashMap<String, String>();
formVars.put("to", "xxxxxxx@xxxxxxx.com");
formVars.put("from", "xxxxxxx@xxxxxxx.com");
formVars.put("ticketId", "123456789");
formVars.put("url", "http://xxxxxxx.xxxxxxx.com/xxxxxxx");
formVars.put("date", new SimpleDateFormat("dd/MM/yyyy").format(new Date()));
formVars.put("escalationTime", "PT5M");
formVars.put("cc", "xxxxxxx@xxxxxxx.com");
formVars.put("customerTime", "PT5M");
formVars.put("customerCareId", "customerCareId!!");
RuntimeService runtimeService = processEngine.getRuntimeService();
FormService formService = processEngine.getFormService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("ticketProcess", variables);
ProcessInstance instance = formService.submitStartFormData("ticketProcess:5:1931", formVars);
12-18-2012 11:33 AM
12-24-2012 01:00 PM
12-25-2012 04:38 AM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.