Advertisement
Guest User

Custom Workflow

a guest
Dec 5th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.53 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://activiti.org/bpmn20" id="review-definitions">
  3. <process id="ksesWorkflow" name="Keystone Document Review" isExecutable="true">
  4. <startEvent id="start" activiti:formKey="wf:submitReviewTask"></startEvent>
  5. <sequenceFlow id="flow1" sourceRef="start" targetRef="reviewTask"></sequenceFlow>
  6. <userTask id="reviewTask" name="Review Task" activiti:assignee="${bpm_assignee.properties.userName}" activiti:formKey="wf:activitiReviewTask">
  7. <extensionElements>
  8. <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
  9. <activiti:field name="script">
  10. <activiti:string><![CDATA[if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
  11. if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;]]></activiti:string>
  12. </activiti:field>
  13. </activiti:taskListener>
  14. </extensionElements>
  15. </userTask>
  16. <sequenceFlow id="flow2" sourceRef="reviewTask" targetRef="reviewDecision"></sequenceFlow>
  17. <exclusiveGateway id="reviewDecision" name="Review Decision"></exclusiveGateway>
  18. <sequenceFlow id="flow3" sourceRef="reviewDecision" targetRef="approved">
  19. <conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_reviewOutcome == 'Approve'}]]></conditionExpression>
  20. </sequenceFlow>
  21. <sequenceFlow id="flow4" sourceRef="reviewDecision" targetRef="rejected"></sequenceFlow>
  22. <userTask id="approved" name="Document Approved" activiti:assignee="${initiator.properties.userName}" activiti:formKey="wf:approvedTask">
  23. <documentation>The document was reviewed and approved.</documentation>
  24. <extensionElements>
  25. <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
  26. <activiti:field name="script">
  27. <activiti:string><![CDATA[if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
  28. if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;]]></activiti:string>
  29. </activiti:field>
  30. </activiti:taskListener>
  31. <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
  32. <activiti:field name="script">
  33. <activiti:string><![CDATA[execution.setVariable('wf_reviewOutcome', task.getVariable('wf_reviewOutcome'));
  34.  
  35. for(var j = 0; j &lt; bpm_initiator.size(); j++) {
  36. var userName = bpm_initiator.get(j).properties.userName;
  37. for(var i = 0; i &lt; bpm_package.children.length; i++) {
  38. var resource = bpm_package.children;
  39. resource.setPermission("Editor", userName);
  40.  
  41. /* find space where released documents live */
  42. var drafts = bpm_package.children[i].parent;
  43. var docroot = drafts.parent;
  44. var dest = docroot.childByNamePath("Released");
  45. /* see if document was created previously. if not, do initial version bump */
  46. var transdoc = dest.childByNamePath(docname + ".pdf");
  47. var bumpver = false; /* transform to pdf */
  48. if(transdoc == null) var drafts = bpm_package.children[0].parent;
  49. { var docroot = drafts.parent;
  50. bumpver = true; var dest = docroot.childByNamePath("Released");
  51. }
  52.  
  53. var trans = actions.create("transform");
  54. trans.parameters["destination-folder"] = dest;
  55. trans.parameters["assoc-type"] = "{http://www.alfresco.org/model/content/1.0}contains";
  56. trans.parameters["assoc-name"] = String("{http://www.alfresco.org/model/content/1.0}" + bpm_package.children[0].properties["cm:name"]);
  57. trans.parameters["mime-type"] = "application/pdf";
  58. trans.execute(bpm_package.children[0]);
  59.  
  60. ]]></activiti:string>
  61. </activiti:field>
  62. </activiti:taskListener>
  63. </extensionElements>
  64. </userTask>
  65. <userTask id="rejected" name="Document Rejected" activiti:assignee="${initiator.properties.userName}" activiti:formKey="wf:rejectedTask">
  66. <documentation>The document was reviewed and rejected.</documentation>
  67. <extensionElements>
  68. <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
  69. <activiti:field name="script">
  70. <activiti:string><![CDATA[if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
  71. if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;]]></activiti:string>
  72. </activiti:field>
  73. </activiti:taskListener>
  74. </extensionElements>
  75. </userTask>
  76. <sequenceFlow id="flow5" sourceRef="approved" targetRef="end"></sequenceFlow>
  77. <sequenceFlow id="flow6" sourceRef="rejected" targetRef="end"></sequenceFlow>
  78. <endEvent id="end"></endEvent>
  79. </process>
  80. <bpmndi:BPMNDiagram id="BPMNDiagram_ksesWorkflow">
  81. <bpmndi:BPMNPlane bpmnElement="ksesWorkflow" id="BPMNPlane_ksesWorkflow">
  82. <bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start">
  83. <omgdc:Bounds height="35.0" width="35.0" x="30.0" y="200.0"></omgdc:Bounds>
  84. </bpmndi:BPMNShape>
  85. <bpmndi:BPMNShape bpmnElement="reviewTask" id="BPMNShape_reviewTask">
  86. <omgdc:Bounds height="55.0" width="105.0" x="105.0" y="190.0"></omgdc:Bounds>
  87. </bpmndi:BPMNShape>
  88. <bpmndi:BPMNShape bpmnElement="reviewDecision" id="BPMNShape_reviewDecision">
  89. <omgdc:Bounds height="40.0" width="40.0" x="250.0" y="197.0"></omgdc:Bounds>
  90. </bpmndi:BPMNShape>
  91. <bpmndi:BPMNShape bpmnElement="approved" id="BPMNShape_approved">
  92. <omgdc:Bounds height="55.0" width="105.0" x="330.0" y="137.0"></omgdc:Bounds>
  93. </bpmndi:BPMNShape>
  94. <bpmndi:BPMNShape bpmnElement="rejected" id="BPMNShape_rejected">
  95. <omgdc:Bounds height="55.0" width="105.0" x="330.0" y="257.0"></omgdc:Bounds>
  96. </bpmndi:BPMNShape>
  97. <bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end">
  98. <omgdc:Bounds height="35.0" width="35.0" x="620.0" y="147.0"></omgdc:Bounds>
  99. </bpmndi:BPMNShape>
  100. <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
  101. <omgdi:waypoint x="65.0" y="217.0"></omgdi:waypoint>
  102. <omgdi:waypoint x="105.0" y="217.0"></omgdi:waypoint>
  103. </bpmndi:BPMNEdge>
  104. <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
  105. <omgdi:waypoint x="210.0" y="217.0"></omgdi:waypoint>
  106. <omgdi:waypoint x="250.0" y="217.0"></omgdi:waypoint>
  107. </bpmndi:BPMNEdge>
  108. <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
  109. <omgdi:waypoint x="270.0" y="197.0"></omgdi:waypoint>
  110. <omgdi:waypoint x="270.0" y="164.0"></omgdi:waypoint>
  111. <omgdi:waypoint x="330.0" y="164.0"></omgdi:waypoint>
  112. </bpmndi:BPMNEdge>
  113. <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
  114. <omgdi:waypoint x="270.0" y="237.0"></omgdi:waypoint>
  115. <omgdi:waypoint x="270.0" y="284.0"></omgdi:waypoint>
  116. <omgdi:waypoint x="330.0" y="284.0"></omgdi:waypoint>
  117. </bpmndi:BPMNEdge>
  118. <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
  119. <omgdi:waypoint x="435.0" y="164.0"></omgdi:waypoint>
  120. <omgdi:waypoint x="620.0" y="164.0"></omgdi:waypoint>
  121. </bpmndi:BPMNEdge>
  122. <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
  123. <omgdi:waypoint x="435.0" y="284.0"></omgdi:waypoint>
  124. <omgdi:waypoint x="637.0" y="284.0"></omgdi:waypoint>
  125. <omgdi:waypoint x="637.0" y="182.0"></omgdi:waypoint>
  126. </bpmndi:BPMNEdge>
  127. </bpmndi:BPMNPlane>
  128. </bpmndi:BPMNDiagram>
  129. </definitions>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement