08-04-2015 05:33 AM
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[// check Assignee
var assignee = task.getVariable('wfCompnetOC_assignee');
logger.log("Your Assignee is "+assignee);
// set assignee
execution.setVariable('assigneeGlobal', assignee);
var assigneeGlobal = execution.getVariable('assigneeGlobal');
// Set Description
execution.setVariable('bpm_workflowDescription', 'Opportunity Create');
//set group psse Manager
execution.setVariable('psseManager','WF_SO_USR_PSSE_MGR');
var groupGlobal = execution.getVariable('psseManager');
logger.log('Group Global '+groupGlobal);
// call workflow
logger.log("Script Triggered");
var nodeRef = companyhome.childByNamePath("Registering Opportunity");
var nodeRefNew = nodeRef.nodeRef;
logger.log("Node Old "+nodeRef);
logger.log("NodeRef "+nodeRefNew);
var wf = actions.create("start-workflow");
wf.parameters.workflowName = "activiti$wfCompnetOA";
wf.parameters["wfCompnetOA:opportunityId"] = execution.getVariable('wfCompnetOC_opportunityId');
wf.parameters["bpm:workflowDescription"] = "Workflow Opportunity Create";
wf.parameters["wfCompnetOA:deskripsiOpportunityId"] = execution.getVariable('wfCompnetOC_deskripsiOpportunityId');
wf.parameters["wfCompnetOA:groupAssignee"] = groupGlobal;
wf.parameters["wfCompnetOA:pathCogsFolder"] = execution.getVariable('cogsFolder');
wf.parameters["wfCompnetOA:pathBoqFolder"] = execution.getVariable('boqFolder');
wf.parameters["wfCompnetOA:pathSowFolder"] = execution.getVariable('sowFolder');
wf.parameters["wfCompnetOA:pathProposalFolder"] = execution.getVariable('proposalFolder');
wf.parameters["wfCompnetOA:assignee"] = assigneeGlobal;
wf.execute(nodeRefNew);
logger.log("Executed Group Already");]]></activiti:string>
</activiti:field>
08-10-2015 08:21 AM
08-11-2015 04:25 AM
<?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="wfCompnetOC" name="Opportunity Create" isExecutable="true">
<startEvent id="startevent1" name="Start" activiti:formKey="wfCompnetOC:startTask"></startEvent>
<endEvent id="endevent1" name="End"></endEvent>
<userTask id="usertask1" name="ADMIN TASK" activiti:assignee="${initiator.properties.userName}" activiti:formKey="wfCompnetOC:admin">
<extensionElements>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[// check Assignee
var assignee = task.getVariable('wfCompnetOC_assignee');
logger.log("Your Assignee is "+assignee);
// set assignee
execution.setVariable('assigneeGlobal', assignee);
var assigneeGlobal = execution.getVariable('assigneeGlobal');
// Set Description
execution.setVariable('bpm_workflowDescription', 'Opportunity Create');
//set group psse Manager
execution.setVariable('psseManager','WF_SO_USR_PSSE_MGR');
var groupGlobal = execution.getVariable('psseManager');
logger.log('Group Global '+groupGlobal);
// call workflow
logger.log("Script Triggered");
var nodeRef = companyhome.childByNamePath("Registering Opportunity");
var nodeRefNew = nodeRef.nodeRef;
logger.log("Node Old "+nodeRef);
logger.log("NodeRef "+nodeRefNew);
var wf = actions.create("start-workflow");
wf.parameters.workflowName = "activiti$wfCompnetOA";
wf.parameters["wfCompnetOA:opportunityId"] = execution.getVariable('wfCompnetOC_opportunityId');
wf.parameters["bpm:workflowDescription"] = "Workflow Opportunity Create";
wf.parameters["wfCompnetOA:deskripsiOpportunityId"] = execution.getVariable('wfCompnetOC_deskripsiOpportunityId');
wf.parameters["wfCompnetOA:groupAssignee"] = groupGlobal;
wf.parameters["wfCompnetOA:pathCogsFolder"] = execution.getVariable('cogsFolder');
wf.parameters["wfCompnetOA:pathBoqFolder"] = execution.getVariable('boqFolder');
wf.parameters["wfCompnetOA:pathSowFolder"] = execution.getVariable('sowFolder');
wf.parameters["wfCompnetOA:pathProposalFolder"] = execution.getVariable('proposalFolder');
wf.parameters["wfCompnetOA:assignee"] = assigneeGlobal;
wf.execute(nodeRefNew);
logger.log("Executed Group Already");]]></activiti:string>
</activiti:field>
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1">
<extensionElements>
<activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionListener">
<activiti:field name="script">
<activiti:string><![CDATA[logger.log("Logged The Opportunity Create");
// Workflow Description
execution.setVariable('bpm_workflowDescription','Opportunity Create');
// get the opportunity
var opportunityId = execution.getVariable('wfCompnetOC_opportunityId');
//get the assignee
//var assignee = execution.getVariable('wfCompnetOC_assignee');
logger.log("Your Opportunity Number is "+opportunityId);
//logger.log("Your assignee is "+assignee);
// Check Is Folder is Exist
var checkFolderParent = companyhome.childByNamePath("Registering Opportunity");
// result creation folder Opportunity
var resultCreation;
// child folder result creation
var resultCreationOpportunity;
var resultCreationCogs;
var resultCreationBoq;
var resultCreationSoW;
var resultCreationProposal;
// Check the Folder
if(checkFolderParent == null){
logger.log("Start creating Folder ");
resultCreation = companyhome.createFolder("Registering Opportunity");
logger.log("Your Folder Creation is "+resultCreation);
// create Opportunity
resultCreationOpportunity = resultCreation.createFolder(opportunityId);
logger.log("OpportunityId "+resultCreationOpportunity);
var homeFolderAndOpportunity = resultCreation.name+"/"+resultCreationOpportunity.name;
logger.log("Home Folder Plus Opp —>"+homeFolderAndOpportunity);
execution.setVariable('homeFolder', homeFolderAndOpportunity);
// create COGS
resultCreationCogs = resultCreationOpportunity.createFolder("COGS");
logger.log("Check COGS Creation Folder "+resultCreationCogs.name);
var cogsPath = homeFolderAndOpportunity+"/"+resultCreationCogs.name;
logger.log("COGS Folder "+cogsPath);
execution.setVariable('cogsFolder',cogsPath);
//logger.log("COGS Has Been SET "+resulCreationCogs);
// Create Boq
resultCreationBoq = resultCreationOpportunity.createFolder("BOQS");
logger.log("Check BOQ —–> "+resultCreationBoq);
var boqPath = homeFolderAndOpportunity+"/"+resultCreationBoq.name;
execution.setVariable('boqFolder',boqPath);
//Create SOW
resultCreationSoW = resultCreationOpportunity.createFolder("Scope of Work");
var sowPath = homeFolderAndOpportunity+"/"+resultCreationSoW.name;
execution.setVariable('sowFolder',sowPath);
logger.log("Check SOW —-> "+resultCreationSoW);
// Create Proposal
resultCreationProposal = resultCreationOpportunity.createFolder("Proposal");
var proposalPath = homeFolderAndOpportunity+"/"+resultCreationProposal.name;
execution.setVariable("proposalFolder", proposalPath);
logger.log("Check Proposal —-> "+resultCreationProposal);
}else{
logger.log("Start creating Folder ");
//resultCreation = companyhome.createFolder("Registering Opportunity");
logger.log("Your Folder Creation is "+checkFolderParent);
// create Opportunity
resultCreationOpportunity = checkFolderParent.createFolder(opportunityId);
logger.log("OpportunityId "+resultCreationOpportunity);
var homeFolderAndOpportunity = checkFolderParent.name+"/"+resultCreationOpportunity.name;
logger.log("Home Folder Plus Opp —>"+homeFolderAndOpportunity);
execution.setVariable('homeFolder', homeFolderAndOpportunity);
// create COGS
resultCreationCogs = resultCreationOpportunity.createFolder("COGS");
logger.log("Check COGS Creation Folder "+resultCreationCogs.name);
var cogsPath = homeFolderAndOpportunity+"/"+resultCreationCogs.name;
logger.log("COGS Folder "+cogsPath);
execution.setVariable('cogsFolder',cogsPath);
//logger.log("COGS Has Been SET "+resulCreationCogs);
// Create Boq
resultCreationBoq = resultCreationOpportunity.createFolder("BOQS");
logger.log("Check BOQ —–> "+resultCreationBoq);
var boqPath = homeFolderAndOpportunity+"/"+resultCreationBoq.name;
execution.setVariable('boqFolder',boqPath);
//Create SOW
resultCreationSoW = resultCreationOpportunity.createFolder("Scope of Work");
var sowPath = homeFolderAndOpportunity+"/"+resultCreationSoW.name;
execution.setVariable('sowFolder',sowPath);
logger.log("Check SOW —-> "+resultCreationSoW);
// Create Proposal
resultCreationProposal = resultCreationOpportunity.createFolder("Proposal");
var proposalPath = homeFolderAndOpportunity+"/"+resultCreationProposal.name;
execution.setVariable("proposalFolder", proposalPath);
logger.log("Check Proposal —-> "+resultCreationProposal);
}]]></activiti:string>
</activiti:field>
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
</activiti:executionListener>
</extensionElements>
</sequenceFlow>
<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="endevent1"></sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_wfCompnetOC">
<bpmndi:BPMNPlane bpmnElement="wfCompnetOC" id="BPMNPlane_wfCompnetOC">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="35.0" width="35.0" x="130.0" y="163.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
<omgdc:Bounds height="35.0" width="35.0" x="480.0" y="163.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
<omgdc:Bounds height="55.0" width="105.0" x="280.0" y="153.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="165.0" y="180.0"></omgdi:waypoint>
<omgdi:waypoint x="280.0" y="180.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="385.0" y="180.0"></omgdi:waypoint>
<omgdi:waypoint x="480.0" y="180.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
08-11-2015 04:45 AM
08-11-2015 04:50 AM
<?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="wfCompnetOC" name="Opportunity Create" isExecutable="true">
<startEvent id="startevent1" name="Start" activiti:formKey="wfCompnetOC:startTask"></startEvent>
<endEvent id="endevent1" name="End"></endEvent>
<userTask id="usertask1" name="ADMIN TASK" activiti:assignee="${initiator.properties.userName}" activiti:formKey="wfCompnetOC:admin">
<extensionElements>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[// check Assignee
var assignee = task.getVariable('wfCompnetOC_assignee');
logger.log("Your Assignee is "+assignee);
// set assignee
execution.setVariable('assigneeGlobal', assignee);
var assigneeGlobal = execution.getVariable('assigneeGlobal');
// Set Description
execution.setVariable('bpm_workflowDescription', 'Opportunity Create');
//set group psse Manager
execution.setVariable('psseManager','WF_SO_USR_PSSE_MGR');
var groupGlobal = execution.getVariable('psseManager');
logger.log('Group Global '+groupGlobal);
// call workflow
logger.log("Script Triggered");
var nodeRef = companyhome.childByNamePath("Registering Opportunity");
var nodeRefNew = nodeRef.nodeRef;
logger.log("Node Old "+nodeRef);
logger.log("NodeRef "+nodeRefNew);
var wf = actions.create("start-workflow");
wf.parameters.workflowName = "activiti$wfCompnetOA";
wf.parameters["wfCompnetOA:opportunityId"] = execution.getVariable('wfCompnetOC_opportunityId');
wf.parameters["bpm:workflowDescription"] = "Workflow Opportunity Create";
wf.parameters["wfCompnetOA:deskripsiOpportunityId"] = execution.getVariable('wfCompnetOC_deskripsiOpportunityId');
wf.parameters["wfCompnetOA:groupAssignee"] = groupGlobal;
wf.parameters["wfCompnetOA:pathCogsFolder"] = execution.getVariable('cogsFolder');
wf.parameters["wfCompnetOA:pathBoqFolder"] = execution.getVariable('boqFolder');
wf.parameters["wfCompnetOA:pathSowFolder"] = execution.getVariable('sowFolder');
wf.parameters["wfCompnetOA:pathProposalFolder"] = execution.getVariable('proposalFolder');
wf.parameters["wfCompnetOA:assignee"] = assigneeGlobal;
wf.execute(nodeRefNew);
logger.log("Executed Group Already");]]></activiti:string>
</activiti:field>
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1">
<extensionElements>
<activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionListener">
<activiti:field name="script">
<activiti:string><![CDATA[logger.log("Logged The Opportunity Create");
// Workflow Description
execution.setVariable('bpm_workflowDescription','Opportunity Create');
// get the opportunity
var opportunityId = execution.getVariable('wfCompnetOC_opportunityId');
//get the assignee
//var assignee = execution.getVariable('wfCompnetOC_assignee');
logger.log("Your Opportunity Number is "+opportunityId);
//logger.log("Your assignee is "+assignee);
// Check Is Folder is Exist
var checkFolderParent = companyhome.childByNamePath("Registering Opportunity");
// result creation folder Opportunity
var resultCreation;
// child folder result creation
var resultCreationOpportunity;
var resultCreationCogs;
var resultCreationBoq;
var resultCreationSoW;
var resultCreationProposal;
// Check the Folder
if(checkFolderParent == null){
logger.log("Start creating Folder ");
resultCreation = companyhome.createFolder("Registering Opportunity");
logger.log("Your Folder Creation is "+resultCreation);
// create Opportunity
resultCreationOpportunity = resultCreation.createFolder(opportunityId);
logger.log("OpportunityId "+resultCreationOpportunity);
var homeFolderAndOpportunity = resultCreation.name+"/"+resultCreationOpportunity.name;
logger.log("Home Folder Plus Opp —>"+homeFolderAndOpportunity);
execution.setVariable('homeFolder', homeFolderAndOpportunity);
// create COGS
resultCreationCogs = resultCreationOpportunity.createFolder("COGS");
logger.log("Check COGS Creation Folder "+resultCreationCogs.name);
var cogsPath = homeFolderAndOpportunity+"/"+resultCreationCogs.name;
logger.log("COGS Folder "+cogsPath);
execution.setVariable('cogsFolder',cogsPath);
//logger.log("COGS Has Been SET "+resulCreationCogs);
// Create Boq
resultCreationBoq = resultCreationOpportunity.createFolder("BOQS");
logger.log("Check BOQ —–> "+resultCreationBoq);
var boqPath = homeFolderAndOpportunity+"/"+resultCreationBoq.name;
execution.setVariable('boqFolder',boqPath);
//Create SOW
resultCreationSoW = resultCreationOpportunity.createFolder("Scope of Work");
var sowPath = homeFolderAndOpportunity+"/"+resultCreationSoW.name;
execution.setVariable('sowFolder',sowPath);
logger.log("Check SOW —-> "+resultCreationSoW);
// Create Proposal
resultCreationProposal = resultCreationOpportunity.createFolder("Proposal");
var proposalPath = homeFolderAndOpportunity+"/"+resultCreationProposal.name;
execution.setVariable("proposalFolder", proposalPath);
logger.log("Check Proposal —-> "+resultCreationProposal);
}else{
logger.log("Start creating Folder ");
//resultCreation = companyhome.createFolder("Registering Opportunity");
logger.log("Your Folder Creation is "+checkFolderParent);
// create Opportunity
resultCreationOpportunity = checkFolderParent.createFolder(opportunityId);
logger.log("OpportunityId "+resultCreationOpportunity);
var homeFolderAndOpportunity = checkFolderParent.name+"/"+resultCreationOpportunity.name;
logger.log("Home Folder Plus Opp —>"+homeFolderAndOpportunity);
execution.setVariable('homeFolder', homeFolderAndOpportunity);
// create COGS
resultCreationCogs = resultCreationOpportunity.createFolder("COGS");
logger.log("Check COGS Creation Folder "+resultCreationCogs.name);
var cogsPath = homeFolderAndOpportunity+"/"+resultCreationCogs.name;
logger.log("COGS Folder "+cogsPath);
execution.setVariable('cogsFolder',cogsPath);
//logger.log("COGS Has Been SET "+resulCreationCogs);
// Create Boq
resultCreationBoq = resultCreationOpportunity.createFolder("BOQS");
logger.log("Check BOQ —–> "+resultCreationBoq);
var boqPath = homeFolderAndOpportunity+"/"+resultCreationBoq.name;
execution.setVariable('boqFolder',boqPath);
//Create SOW
resultCreationSoW = resultCreationOpportunity.createFolder("Scope of Work");
var sowPath = homeFolderAndOpportunity+"/"+resultCreationSoW.name;
execution.setVariable('sowFolder',sowPath);
logger.log("Check SOW —-> "+resultCreationSoW);
// Create Proposal
resultCreationProposal = resultCreationOpportunity.createFolder("Proposal");
var proposalPath = homeFolderAndOpportunity+"/"+resultCreationProposal.name;
execution.setVariable("proposalFolder", proposalPath);
logger.log("Check Proposal —-> "+resultCreationProposal);
}]]></activiti:string>
</activiti:field>
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
</activiti:executionListener>
</extensionElements>
</sequenceFlow>
<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="endevent1"></sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_wfCompnetOC">
<bpmndi:BPMNPlane bpmnElement="wfCompnetOC" id="BPMNPlane_wfCompnetOC">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="35.0" width="35.0" x="130.0" y="163.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
<omgdc:Bounds height="35.0" width="35.0" x="480.0" y="163.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
<omgdc:Bounds height="55.0" width="105.0" x="280.0" y="153.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="165.0" y="180.0"></omgdi:waypoint>
<omgdi:waypoint x="280.0" y="180.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="385.0" y="180.0"></omgdi:waypoint>
<omgdi:waypoint x="480.0" y="180.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
08-20-2015 11:47 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: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">
<signal id="cancelReviewTasks" name="cancelReviewTasks"></signal>
<process id="reviewAndApprove" name="Review And Approve" isExecutable="true">
<extensionElements>
<activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionListener">
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
<activiti:field name="script">
<activiti:string><![CDATA[// check if document is valid for R&A workflow
if (bpm_package.children.length > 0) {
if (!bpm_package.children[0].hasAspect("uc:reviewApprove")){
bpm_package.removeNode(bpm_package.children[0]);
bpm_package.save();
throw new Error("\n\nThe selected document is not valid for a Review and Approve workflow.\nWorkflow is being cancelled.");
workflow.cancel();
workflow['delete']();
}
}
// set workflow properties
if (typeof ucwf_reviewersList !== 'undefined') {
execution.setVariable('wf_reviewerCount', ucwf_reviewersList.size());
}
else execution.setVariable('wf_reviewerCount', 0);
execution.setVariable('ucwf_workflowDueDate', bpm_workflowDueDate);
execution.setVariable('ucwf_workflowPriority', bpm_workflowPriority);
execution.setVariable('docOwner', bpm_package.children[0].getOwner());]]></activiti:string>
</activiti:field>
</activiti:executionListener>
</extensionElements>
<startEvent id="startevent1" name="Start" activiti:formKey="ucwf:startReviewAndApproveTask"></startEvent>
<serviceTask id="alfrescoScripttask1" name="Alfresco Script Task" activiti:class="org.alfresco.repo.workflow.activiti.script.AlfrescoScriptDelegate">
<extensionElements>
<activiti:field name="script">
<activiti:string><![CDATA[
execution.setVariable('wf_documentApproved', false);
// set doc permissions: only read for everyone except reviewers
var docNode = bpm_package.children[0];
var perms = docNode.getPermissions();
docNode.setInheritsPermissions(false);
if (!docNode.properties["uc:isOriginal"]) {
for each (perm in perms) {
var tokens = perm.split(";");
docNode.removePermission(tokens[2], tokens[1]);
if (tokens[0].equals("ALLOWED")) docNode.setPermission("Read", tokens[1]);
}
}
docNode.setPermission("Collaborator", docOwner);
docNode.setPermission("Collaborator", ucwf_approverAssignee.properties.userName);
for (i = 0; i != wf_reviewerCount; i++) {
docNode.setPermission("Collaborator", ucwf_reviewersList.get(i).properties.userName);
}
docNode.save();
]]></activiti:string>
</activiti:field>
</extensionElements>
</serviceTask>
<subProcess id="subprocess2" name="Approve Process">
<startEvent id="startevent3" name="Start"></startEvent>
<endEvent id="endevent8" name="End"></endEvent>
<userTask id="alfrescoUsertask12" name="Approver for Document Review" activiti:assignee="${ucwf_approverAssignee.properties.userName}" activiti:formKey="ucwf:ucReviewAndApproveTask">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[task.description = "Review Document";
if (typeof execution.getVariable('ucwf_workflowDueDate') != 'undefined') task.dueDate = execution.getVariable('ucwf_workflowDueDate');
if (typeof execution.getVariable('ucwf_workflowPriority') != 'undefined') task.priority = execution.getVariable('ucwf_workflowPriority');]]></activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
<activiti:field name="script">
<activiti:string><![CDATA[var mail = actions.create("mail");
mail.parameters.to = initiator.properties.email;
mail.parameters.from = ucwf_approverAssignee.properties.email;
mail.parameters.template = companyhome.childByNamePath("Data Dictionary/Email Templates/wf-email-reviewOutcome.html.ftl");
var templateArgs = new Array();
templateArgs['task'] = "Approval";
templateArgs['role'] = "Approver";
templateArgs['firstName'] = ucwf_approverAssignee.properties.firstName;
if (ucwf_approverAssignee.properties.lastName != 'undefined' && ucwf_approverAssignee.properties.lastName != null) templateArgs['lastName'] = ucwf_approverAssignee.properties.lastName;
else templateArgs['lastName'] = "";
templateArgs['docName'] = bpm_package.children[0].properties["cm:name"];
if(task.getVariableLocal('wf_reviewOutcome') == 'Approve') {
execution.setVariable('wf_documentApproved', true);
mail.parameters.subject = "Document Approved";
templateArgs['outcome'] = "Approved";
} else {
execution.setVariable('wf_documentApproved', false);
mail.parameters.subject = "Document Rejected";
templateArgs['outcome'] = "Rejected";
}
var templateModel = new Array();
templateModel['args'] = templateArgs;
mail.parameters.template_model = templateModel;
mail.execute(bpm_package);]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<sequenceFlow id="flow116" sourceRef="startevent3" targetRef="alfrescoUsertask12"></sequenceFlow>
<sequenceFlow id="flow117" sourceRef="alfrescoUsertask12" targetRef="endevent8"></sequenceFlow>
</subProcess>
<exclusiveGateway id="exclusivegateway1" name="Exclusive Gateway"></exclusiveGateway>
<sequenceFlow id="flow33" sourceRef="exclusivegateway1" targetRef="subprocess1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_reviewerCount > 0}]]></conditionExpression>
</sequenceFlow>
<subProcess id="subprocess1" name="Review Process">
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="ucwf_reviewersList" activiti:elementVariable="reviewer"></multiInstanceLoopCharacteristics>
<startEvent id="startevent2" name="Start"></startEvent>
<endEvent id="endevent5" name="End"></endEvent>
<userTask id="alfrescoUsertask11" name="Reviewer for Document Review" activiti:assignee="${reviewer.properties.userName}" activiti:formKey="ucwf:ucReviewAndApproveTask">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[task.description = "Review Document";
if (typeof execution.getVariable('ucwf_workflowDueDate') != 'undefined') task.dueDate = execution.getVariable('ucwf_workflowDueDate');
if (typeof execution.getVariable('ucwf_workflowPriority') != 'undefined') task.priority = execution.getVariable('ucwf_workflowPriority');]]></activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
<activiti:field name="script">
<activiti:string><![CDATA[var mail = actions.create("mail");
mail.parameters.to = initiator.properties.email;
mail.parameters.from = reviewer.properties.email;
mail.parameters.template = companyhome.childByNamePath("Data Dictionary/Email Templates/wf-email-reviewOutcome.html.ftl");
var templateArgs = new Array();
templateArgs['task'] = "Review";
templateArgs['role'] = "Reviewer";
templateArgs['firstName'] = reviewer.properties.firstName;
if (reviewer.properties.lastName != 'undefined' && reviewer.properties.lastName != null) templateArgs['lastName'] = reviewer.properties.lastName;
else templateArgs['lastName'] = "";
templateArgs['docName'] = bpm_package.children[0].properties["cm:name"];
if(task.getVariableLocal('wf_reviewOutcome') == 'Approve') {
mail.parameters.subject = "Document Reviewed and Approved";
templateArgs['outcome'] = "Approved";
} else {
mail.parameters.subject = "Document Reviewed and Rejected";
templateArgs['outcome'] = "Rejected";
}
var templateModel = new Array();
templateModel['args'] = templateArgs;
mail.parameters.template_model = templateModel;
mail.execute(bpm_package);]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<sequenceFlow id="flow114" sourceRef="startevent2" targetRef="alfrescoUsertask11"></sequenceFlow>
<sequenceFlow id="flow115" sourceRef="alfrescoUsertask11" targetRef="endevent5"></sequenceFlow>
</subProcess>
<boundaryEvent id="boundarysignal1" name="Signal" attachedToRef="subprocess1" cancelActivity="true">
<signalEventDefinition signalRef="cancelReviewTasks"></signalEventDefinition>
</boundaryEvent>
<sequenceFlow id="flow34" sourceRef="exclusivegateway1" targetRef="endevent3">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_reviewerCount == 0}]]></conditionExpression>
</sequenceFlow>
<endEvent id="endevent3" name="End"></endEvent>
<sequenceFlow id="flow107" sourceRef="subprocess1" targetRef="inclusivegateway1"></sequenceFlow>
<inclusiveGateway id="inclusivegateway1" name="Inclusive Gateway"></inclusiveGateway>
<sequenceFlow id="flow106" sourceRef="inclusivegateway1" targetRef="usertask2"></sequenceFlow>
<userTask id="usertask2" name="Document Rejected: Revise Document" activiti:assignee="${docOwner}" activiti:formKey="ucwf:reviseDocument">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[task.description = "Document Rejected: Revise Document";
task.setVariableLocal('ucwf_reviewersList', execution.getVariable('ucwf_reviewersList'));
task.setVariableLocal('ucwf_approverAssignee', execution.getVariable('ucwf_approverAssignee'));]]></activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
<activiti:field name="script">
<activiti:string><![CDATA[
// remove previous R&A's permissions
var docNode = bpm_package.children[0];
docNode.setInheritsPermissions(false);
docNode.removePermission("Collaborator", execution.getVariable('ucwf_approverAssignee').properties.userName);
for (i = 0; i != wf_reviewerCount; i++) {
docNode.removePermission("Collaborator", execution.getVariable('ucwf_reviewersList').get(i).properties.userName);
}
// update assignees and properties
execution.setVariable('ucwf_approverAssignee', task.getVariableLocal('ucwf_approverAssignee'));
execution.setVariable('ucwf_reviewersList', task.getVariableLocal('ucwf_reviewersList'));
if (typeof task.getVariableLocal('ucwf_reviewersList') != 'undefined' && task.getVariableLocal('ucwf_reviewersList') != null)
execution.setVariable('wf_reviewerCount', task.getVariableLocal('ucwf_reviewersList').size());
else execution.setVariable('wf_reviewerCount', 0);
execution.setVariable('bpm_workflowDueDate', task.getVariableLocal('bpm_dueDate'));
execution.setVariable('bpm_workflowPriority', task.getVariableLocal('bpm_priority'));
]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<sequenceFlow id="flow80" sourceRef="subprocess2" targetRef="exclusivegateway4"></sequenceFlow>
<exclusiveGateway id="exclusivegateway4" name="Exclusive Gateway"></exclusiveGateway>
<sequenceFlow id="flow50" sourceRef="exclusivegateway4" targetRef="inclusivegateway1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_documentApproved == false}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow83" sourceRef="exclusivegateway4" targetRef="signalintermediatethrowevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_documentApproved == true}]]></conditionExpression>
</sequenceFlow>
<intermediateThrowEvent id="signalintermediatethrowevent1" name="SignalThrowEvent">
<signalEventDefinition signalRef="cancelReviewTasks"></signalEventDefinition>
</intermediateThrowEvent>
<sequenceFlow id="flow118" sourceRef="signalintermediatethrowevent1" targetRef="alfrescoUsertask10"></sequenceFlow>
<userTask id="alfrescoUsertask10" name="Release Document" activiti:assignee="iageeva" activiti:formKey="ucwf:releaseDocument">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[task.description = "Upload Signed PDF";
if (typeof execution.getVariable('ucwf_workflowDueDate') != 'undefined') task.dueDate = execution.getVariable('ucwf_workflowDueDate');
if (typeof execution.getVariable('ucwf_workflowPriority') != 'undefined') task.priority = execution.getVariable('ucwf_workflowPriority');]]></activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
<activiti:field name="script">
<activiti:string><![CDATA[if (bpm_package.children.length < 2) {
throw new Error("\n\nYou must attach a signed PDF file before ending the task.");
} else if ((new String(bpm_package.children[0].name)).indexOf('.pdf') == -1 && (new String(bpm_package.children[1].name)).indexOf('.pdf') == -1) {
throw new Error("\n\nYou must attach an Adbode PDF Document.");
}
else {
var docNode = bpm_package.children[1];
var pdfNode = bpm_package.children[0];
if ((new String(docNode.name)).indexOf('.doc') == -1 && (new String(pdfNode.name)).indexOf('.pdf') == -1) {
docNode = bpm_package.children[0];
pdfNode = bpm_package.children[1];
if ((new String(docNode.name)).indexOf('.doc') == -1 && (new String(pdfNode.name)).indexOf('.pdf') == -1) throw new Error("\n\nCannot read workflow items.");
}
// set pdf name to same as doc
pdfNode.name = docNode.name.substr(0, docNode.name.lastIndexOf('.')) + ".pdf";
// VERSIONS
// If already released, increment major version
if (pdfNode.properties["uc:isReleased"]) {
pdfNode.createVersion("", true);
docNode.createVersion("", true);
} else { // if unreleased, set version to 1.0
pdfNode.removeAspect("cm:versionable");
pdfNode.addAspect("cm:versionable");
pdfNode.createVersion("1.0", true);
docNode.removeAspect("cm:versionable");
docNode.addAspect("cm:versionable");
docNode.createVersion("1.0", true);
}
// create association between PDF and original
var assoc = pdfNode.createAssociation(docNode, "uc:originalDocument");
// ASPECTS
// PDF: isReleased = true, add CR aspect
pdfNode.addAspect("uc:released", {"uc:isReleased" : true, "uc:approver" : ucwf_approverAssignee.properties.userName});
pdfNode.addAspect("uc:changeRequest"); //released pdf can now have changeRequest
// DOC: isOriginal = true, remove reviewApprove aspect
docNode.addAspect("uc:released", {"uc:isOriginal" : true, "uc:approver" : ucwf_approverAssignee.properties.userName});
docNode.removeAspect("uc:reviewApprove"); //can no longer be used in R&A workflow
// PDF PERMISSIONS
// set all permissions to read
var pdfPerms = pdfNode.getPermissions();
pdfNode.setInheritsPermissions(false);
for each (perm in pdfPerms) {
var tokens = perm.split(";");
pdfNode.removePermission(tokens[2], tokens[1]);
if (tokens[0].equals("ALLOWED")) pdfNode.setPermission("Read", tokens[1]);
}
// DOC PERMSSIONS
// remove all permissions
var docPerms = docNode.getPermissions();
docNode.setInheritsPermissions(false);
for each (perm in docPerms) {
var tokens = perm.split(";");
docNode.removePermission(tokens[2], tokens[1]);
}
// only allow admins to view
docNode.setPermission("Read", "GROUP_ALFRESCO_ADMINISTRATORS");
// save both
pdfNode.save();
docNode.save();
// prepare email
var toMany = [];
toMany.push(initiator.properties.userName);
toMany.push(ucwf_approverAssignee.properties.userName);
toMany.push("iageeva");
if (typeof ucwf_reviewersList !== 'undefined' && ucwf_reviewersList !== null) {
for (i = 0; i < ucwf_reviewersList.size(); i++) {
toMany.push(ucwf_reviewersList.get(i).properties.userName);
}
}
toMany = toMany.filter(function(item, pos) {
return toMany.indexOf(item) == pos;
});
var mail = actions.create("mail");
mail.parameters.to_many = toMany;
mail.parameters.subject = "Document Signed and Released!";
mail.parameters.template = companyhome.childByNamePath("Data Dictionary/Email Templates/wf-email-docReleased.html.ftl");
var templateArgs = new Array();
templateArgs['docName'] = pdfNode.name;
templateArgs['docUrl'] = pdfNode.url;
var templateModel = new Array();
templateModel['args'] = templateArgs;
mail.parameters.template_model = templateModel;
mail.execute(bpm_package);
purposefulError;
}]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<parallelGateway id="parallelgateway1" name="Parallel Gateway"></parallelGateway>
<sequenceFlow id="flow121" sourceRef="parallelgateway1" targetRef="subprocess2"></sequenceFlow>
<sequenceFlow id="flow122" sourceRef="parallelgateway1" targetRef="exclusivegateway1"></sequenceFlow>
<endEvent id="terminateendevent2" name="TerminateEndEvent">
<terminateEventDefinition></terminateEventDefinition>
</endEvent>
<sequenceFlow id="flow124" sourceRef="alfrescoUsertask10" targetRef="terminateendevent2"></sequenceFlow>
<sequenceFlow id="flow125" sourceRef="startevent1" targetRef="alfrescoScripttask1"></sequenceFlow>
<sequenceFlow id="flow126" sourceRef="alfrescoScripttask1" targetRef="parallelgateway1"></sequenceFlow>
<sequenceFlow id="flow127" sourceRef="usertask2" targetRef="alfrescoScripttask1"></sequenceFlow>
</process>
<?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="changeRequest" name="Change Request" isExecutable="true">
<extensionElements>
<activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionListener">
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
<activiti:field name="script">
<activiti:string><![CDATA[execution.setVariable('ucwf_workflowDueDate', bpm_workflowDueDate);
execution.setVariable('ucwf_workflowPriority', bpm_workflowPriority);
if (bpm_package.children.length > 0) {
if (!bpm_package.children[0].hasAspect("uc:changeRequest")){
bpm_package.removeNode(bpm_package.children[0]);
bpm_package.save();
throw new Error("\n\nThe selected document is not valid for a Change Request.\nWorkflow is being cancelled.");
workflow.cancel();
workflow['delete']();
} //else {
//execution.setVariable('ucwf_assignee', bpm_package.children[0].getOwner());
//execution.setVariable('ucwf_approver', bpm_package.children[0].properties["uc:approver"]);
//}
}]]></activiti:string>
</activiti:field>
</activiti:executionListener>
</extensionElements>
<startEvent id="startevent1" name="Start" activiti:formKey="ucwf:startChangeRequestTask"></startEvent>
<userTask id="usertask3" name="Choose Approver and Changer" activiti:assignee="iageeva" activiti:formKey="ucwf:selectChangeRequestAssignees">
<extensionElements>
<!– <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[ //auto-fill assignees?
]]></activiti:string>
</activiti:field>
</activiti:taskListener> –>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[
execution.setVariable('ucwf_crApproverAssignee', task.getVariable('ucwf_crApproverAssignee'));
execution.setVariable('ucwf_crChangerAssignee', task.getVariable('ucwf_crChangerAssignee'));
]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<sequenceFlow id="flow12" sourceRef="usertask3" targetRef="usertask2"></sequenceFlow>
<userTask id="usertask2" name="Approve Change Request" activiti:assignee="${ucwf_crApproverAssignee.properties.userName}" activiti:formKey="ucwf:approveChangeRequest">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[task.description = "Change Request Approval";
if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
execution.setVariable('ucwf_requestOutcome', '');
]]></activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[execution.setVariable('ucwf_requestOutcome', task.getVariableLocal('wf_reviewOutcome'));]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<exclusiveGateway id="exclusivegateway1" name="Exclusive Gateway"></exclusiveGateway>
<sequenceFlow id="flow7" sourceRef="exclusivegateway1" targetRef="endevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${ucwf_requestOutcome == 'Reject'}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow6" sourceRef="exclusivegateway1" targetRef="usertask1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${ucwf_requestOutcome == 'Approve'}]]></conditionExpression>
</sequenceFlow>
<userTask id="usertask1" name="Make Changes" activiti:assignee="${ucwf_crChangerAssignee.properties.userName}" activiti:formKey="ucwf:changeRequestTask">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="runAs">
<activiti:string><![CDATA[admin]]></activiti:string>
</activiti:field>
<activiti:field name="script">
<activiti:string><![CDATA[task.description = "Change Request";
if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
// remove write permissions from pdf
var pdfNode = bpm_package.children[0];
pdfNode.removeAspect("uc:changeRequest");
// get original doc and give write permissions to assignee
var docNode = pdfNode.assocs["uc:originalDocument"][0];
docNode.setPermission("Collaborator", ucwf_crChangerAssignee.properties.userName);
// replace pdf in package items with original
bpm_package.removeNode(pdfNode);
bpm_package.addNode(docNode);
bpm_package.save();]]></activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[bpm_package.children[0].addAspect("uc:reviewApprove");
// start R&A workflow
/*var wfdef = workflow.getDefinitionByName("activiti$reviewAndApprove");
var wfparams = new Object();
wfparams["bpm:workflowDescription"] = "Review and Approve";
wfparams["bpm:workflowDueDate"] = bpm_workflowDueDate;
wfparams["bpm:workflowPriority"] = bpm_workflowPriority;
var reviewers = [];
if (typeof task.getVariable('ucwf_reviewersList') !== 'undefined') {
for (i = 0; i != task.getVariable('ucwf_reviewersList').size(); i++) {
var reviewer = task.getVariable('ucwf_reviewersList').get(i);
reviewers.push(reviewer.nodeRef);
}
}
wfparams["ucwf:reviewersList"] = reviewers;
wfparams["ucwf:approverAssignee"] = task.getVariable('ucwf_approverAssignee');
var wfpackage = workflow.createPackage();
wfpackage.addNode(bpm_package.children[0]);
var wfPath = wfdef.startWorkflow(wfpackage, wfparams);
var startTask = wfPath.getTasks()[0];
var transitions = startTask.getTransitions();
var transition;
for each (trans in transitions) {
transition = transitions[trans];
}
startTask.endTask(transition);*/
var wf = actions.create("start-workflow");
wf.parameters.workflowName = "activiti$reviewAndApprove";
var reviewers = [];
if (typeof task.getVariable('ucwf_reviewersList') !== 'undefined') {
for (i = 0; i != task.getVariable('ucwf_reviewersList').size(); i++) {
var reviewer = task.getVariable('ucwf_reviewersList').get(i);
reviewers.push(reviewer.nodeRef);
}
}
wf.parameters["ucwf:reviewersList"] = reviewers;
wf.parameters["ucwf:approverAssignee"] = task.getVariable('ucwf_approverAssignee');
wf.parameters["bpm:workflowDescription"] = "Review and Approve";
wf.parameters["bpm:workflowDueDate"] = bpm_workflowDueDate;
wf.parameters["bpm:workflowPriority"] = bpm_workflowPriority;
wf.execute(bpm_package.children[0]);
]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow8" sourceRef="startevent1" targetRef="usertask3"></sequenceFlow>
<sequenceFlow id="flow9" sourceRef="usertask2" targetRef="exclusivegateway1"></sequenceFlow>
<sequenceFlow id="flow11" sourceRef="usertask1" targetRef="endevent1"></sequenceFlow>
</process>
08-26-2015 05:21 PM
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.