Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="kswf:submitapprove">
- <swimlane name="initiator" />
- <start-state name="start">
- <task name="kswf:submitDoc" swimlane="initiator" />
- <transition name="" to="Submit" />
- </start-state>
- <swimlane name="assignee">
- <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
- </swimlane>
- <node name="Submit">
- <transition name="" to="Document Review"></transition>
- </node>
- <task-node name="Document Review">
- <task name="kswf:reviewDoc" swimlane="assignee" />
- <event type="node-enter">
- <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
- <script>
- 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);
- </script>
- </action>
- </event>
- <transition name="approve" to="Approved" />
- <transition name="reject" to="Revise" />
- </task-node>
- <node name="Approved">
- <event type="node-enter">
- <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
- <script>
- <variable name="kswf_comment" access="read,write" />
- <variable name="bpm_package" access="read" />
- <variable name="bpm_assignee" access="read" />
- <variable name="initiator" access="read" />
- <expression>
- 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);
- </expression>
- </script>
- </action>
- </event>
- <transition name="" to="endstate"></transition>
- </node>
- <task-node name="Revise">
- <task name="kswf:reviseDoc" swimlane="initiator"></task>
- <event type="node-enter">
- <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
- <script>
- <variable name="kswf_comment" access="read,write" />
- <variable name="bpm_package" access="read" />
- <variable name="bpm_assignee" access="read" />
- <variable name="initiator" access="read" />
- <expression>
- 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);
- </expression>
- </script>
- </action>
- </event>
- <transition name="submit" to="Submit"></transition>
- <transition name="done" to="endstate"></transition>
- </task-node>
- <end-state name="endstate" />
- </process-definition>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement