Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?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: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://www.activiti.org/test">
- <process id="myProcess" name="My process" isExecutable="true">
- <startEvent id="alfrescoStartevent1" name="Alfresco start" activiti:formKey="wf:submitReviewTask">
- <extensionElements>
- <activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
- <activiti:field name="script">
- <activiti:string><![CDATA[var node = companyhome.childByNamePath[0].parent;
- node.setOwner("cm:creator"); // owner is now 'the creator of the document'
- node.takeOwnership(); // currently authenticated user running script is 'admin'
- model.owner = node.getOwner();]]></activiti:string>
- </activiti:field>
- </activiti:executionListener>
- </extensionElements>
- </startEvent>
- <userTask id="alfrescoUsertask1" name="Alfresco User Task" activiti:formKey="wf:activitiReviewTask">
- <extensionElements>
- <activiti:taskListener event="node-enter" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
- <activiti:field name="script">
- <activiti:string><![CDATA[var docList = "\t";
- for (var i = 0; i < bpm_package.children.length; i++)
- {
- docList += bpm_package.children[i].displayPath + "/" + bpm_package.children[i].properties["cm:name"] + "\n\t";
- }
- var email = actions.create("mail");
- email.parameters.subject = "New Alfresco Task";
- email.parameters.to = bpm_assignee.properties["cm:email"];
- email.parameters.from = "alfresco@kses.net";
- email.parameters.text = "You have been assigned to review the following documents by \"";
- email.parameters.text += initiator.properties["cm:userName"] + "\":\n\n" + docList;
- email.parameters.text += "\n\nPlease check your Alfresco task list.";
- email.execute(bpm_package);]]></activiti:string>
- </activiti:field>
- </activiti:taskListener>
- </extensionElements>
- </userTask>
- <sequenceFlow id="flow1" sourceRef="alfrescoStartevent1" targetRef="alfrescoUsertask1"></sequenceFlow>
- <parallelGateway id="parallelgateway1" name="Parallel Gateway"></parallelGateway>
- <sequenceFlow id="flow2" sourceRef="alfrescoUsertask1" targetRef="parallelgateway1"></sequenceFlow>
- <userTask id="alfrescoUsertask2" name="Approve" activiti:formKey="wf:approvedTask">
- <extensionElements>
- <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
- <activiti:field name="script">
- <activiti:string><![CDATA[var docList = "\t";
- for (var i = 0; i < bpm_package.children.length; i++)
- {
- docList += bpm_package.children[i].displayPath + "/" + bpm_package.children[i].properties["cm:name"] + "\n\t";
- bpm_package.children[i].properties["ks:status"] = "Approved";
- bpm_package.children[i].properties["ks:reviewComment"] = kswf_comment;
- bpm_package.children[i].save();
- var workingCopy = bpm_package.children[i].checkout();
- workingCopy.checkin("Document approved by " + bpm_assignee.properties["cm:userName"], true);
- /* get name without extension */
- var cmname = bpm_package.children[i].properties["cm:name"];
- var idx = cmname.length - 1;
- if(cmname.lastIndexOf(".") > 0)
- {
- idx = cmname.lastIndexOf(".");
- }
- var docname = cmname.substr(0, idx);
- /* find space where released documents live */
- var drafts = bpm_package.children[i].parent;
- var docroot = drafts.parent;
- var dest = docroot.childByNamePath("Released");
- /* see if document was created previously. if not, do initial version bump */
- var transdoc = dest.childByNamePath(docname + ".pdf");
- var bumpver = false;
- if(transdoc == null)
- {
- bumpver = true;
- }
- /* transform to pdf */
- var trans = actions.create("transform");
- trans.parameters["destination-folder"] = dest;
- trans.parameters["assoc-type"] = "{http://www.alfresco.org/model/content/1.0}contains";
- trans.parameters["assoc-name"] = "{http://www.alfresco.org/model/content/1.0}" + bpm_package.children[i].properties["cm:name"];
- trans.parameters["mime-type"] = "application/pdf";
- trans.execute(bpm_package.children[i]);
- /* update properties */
- transdoc = dest.childByNamePath(docname + ".pdf");
- if(transdoc != null)
- {
- if(bumpver == true)
- {
- workingCopy = transdoc.checkout();
- workingCopy.checkin("Initial version.", true);
- }
- workingCopy = transdoc.checkout();
- workingCopy.properties["ks:status"] = "Approved";
- workingCopy.properties["ks:reviewComment"] = kswf_comment;
- workingCopy.save();
- workingCopy.checkin("Document approved by " + bpm_assignee.properties["cm:userName"], true);
- }
- }
- var email = actions.create("mail");
- email.parameters.subject = "Alfresco Task Update: Approved";
- email.parameters.to = initiator.properties["cm:email"];
- email.parameters.from = "alfresco@kses.net";
- email.parameters.text = "The following documents were approved by \"" + bpm_assignee.properties["cm:userName"] + "\":\n\n" + docList;
- email.parameters.text += "\nComments:\n" + kswf_comment;
- email.execute(bpm_package);]]></activiti:string>
- </activiti:field>
- </activiti:taskListener>
- </extensionElements>
- </userTask>
- <userTask id="alfrescoUsertask3" name="Reject" activiti:formKey="wf:rejectedTask">
- <extensionElements>
- <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
- <activiti:field name="script">
- <activiti:string><![CDATA[var docList = "\t";
- for (var i = 0; i < bpm_package.children.length; i++)
- {
- docList += bpm_package.children[i].displayPath + "/" + bpm_package.children[i].properties["cm:name"] + "\n\t";
- bpm_package.children[i].properties["ks:status"] = "Rejected";
- bpm_package.children[i].properties["ks:reviewComment"] = kswf_comment;
- bpm_package.children[i].save();
- var workingCopy = bpm_package.children[i].checkout();
- workingCopy.checkin("Document rejected by " + bpm_assignee.properties["cm:userName"], false);
- }
- var email = actions.create("mail");
- email.parameters.subject = "Alfresco Task Update: Rejected";
- email.parameters.to = initiator.properties["cm:email"];
- email.parameters.from = "alfresco@kses.net";
- email.parameters.text = "The following documents were rejected by \"" + bpm_assignee.properties["cm:userName"] + "\":\n\n" + docList;
- email.parameters.text += "\nComments:\n" + kswf_comment;
- email.execute(bpm_package);]]></activiti:string>
- </activiti:field>
- </activiti:taskListener>
- </extensionElements>
- </userTask>
- <sequenceFlow id="flow4" sourceRef="parallelgateway1" targetRef="alfrescoUsertask3"></sequenceFlow>
- <sequenceFlow id="flow5" sourceRef="parallelgateway1" targetRef="alfrescoUsertask2"></sequenceFlow>
- <endEvent id="endevent1" name="End"></endEvent>
- <sequenceFlow id="flow8" sourceRef="alfrescoUsertask3" targetRef="endevent1"></sequenceFlow>
- <sequenceFlow id="flow9" sourceRef="alfrescoUsertask2" targetRef="endevent1"></sequenceFlow>
- </process>
- <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess">
- <bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess">
- <bpmndi:BPMNShape bpmnElement="alfrescoStartevent1" id="BPMNShape_alfrescoStartevent1">
- <omgdc:Bounds height="35.0" width="35.0" x="280.0" y="230.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="alfrescoUsertask1" id="BPMNShape_alfrescoUsertask1">
- <omgdc:Bounds height="55.0" width="105.0" x="380.0" y="220.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="parallelgateway1" id="BPMNShape_parallelgateway1">
- <omgdc:Bounds height="40.0" width="40.0" x="530.0" y="227.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="alfrescoUsertask2" id="BPMNShape_alfrescoUsertask2">
- <omgdc:Bounds height="55.0" width="105.0" x="580.0" y="140.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="alfrescoUsertask3" id="BPMNShape_alfrescoUsertask3">
- <omgdc:Bounds height="55.0" width="105.0" x="580.0" y="300.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
- <omgdc:Bounds height="35.0" width="35.0" x="755.0" y="310.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
- <omgdi:waypoint x="315.0" y="247.0"></omgdi:waypoint>
- <omgdi:waypoint x="380.0" y="247.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
- <omgdi:waypoint x="485.0" y="247.0"></omgdi:waypoint>
- <omgdi:waypoint x="530.0" y="247.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
- <omgdi:waypoint x="550.0" y="267.0"></omgdi:waypoint>
- <omgdi:waypoint x="550.0" y="327.0"></omgdi:waypoint>
- <omgdi:waypoint x="580.0" y="327.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
- <omgdi:waypoint x="550.0" y="227.0"></omgdi:waypoint>
- <omgdi:waypoint x="550.0" y="167.0"></omgdi:waypoint>
- <omgdi:waypoint x="580.0" y="167.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
- <omgdi:waypoint x="685.0" y="327.0"></omgdi:waypoint>
- <omgdi:waypoint x="755.0" y="327.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
- <omgdi:waypoint x="632.0" y="195.0"></omgdi:waypoint>
- <omgdi:waypoint x="772.0" y="310.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- </bpmndi:BPMNPlane>
- </bpmndi:BPMNDiagram>
- </definitions>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement