As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
<decision name="submitserialreview"> <transition name="endreview" to="endreview" /> <transition name="review" to="serialreview"> <condition>#{wcmwf_approveCnt < wcmwf_reviewerCnt}</condition> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> <expression> var mail = actions.create("mail"); mail.parameters.to = "recipient_email@xxxx.com"; mail.parameters.subject = "New Alfresco workflow submission: " + wcmwf_label + " by " + person.properties.userName; mail.parameters.from = initiator.properties["cm:email"]; mail.parameters.text = person.properties.firstName + " " + person.properties.lastName + " has submitted the following content for your approval"; mail.execute(bpm_package); </expression> </script> </action> </transition> </decision>
<?xml version="1.0" encoding="UTF-8"?> <!– This describes a process for submitting changed content in a user –> <!– sandbox, via an approver, to the staging sandbox. –> <process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wcmwf:submit"> <swimlane name="initiator"/> <!– –> <!– Start Review –> <!– –> <start-state name="start"> <task name="wcmwf:submitReviewTask" swimlane="initiator"/> <transition name="" to="initialise" /> </start-state> <swimlane name="assignee"> <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/> </swimlane> <decision name="initialise"> <event type="node-enter"> <script> <variable name="wcmwf_reviewCycle" access="write"/> <expression> wcmwf_reviewCycle = 1; </expression> </script> </event> <transition name="" to="serialorparallel" /> <transition name="checklinks" to="checklinks"> <condition>#{wcmwf_validateLinks != null && wcmwf_validateLinks == true}</condition> </transition> </decision> <!– –> <!– Validate Links being submitted –> <!– –> <decision name="checklinks"> <event type="node-enter"> <action class="org.alfresco.repo.avm.wf.AVMSubmitLinkChecker" /> </event> <transition name="brokenlinkspresent" to="verifybrokenlinks" /> <transition name="nobrokenlinks" to="serialorparallel" > <condition>#{wcmwf_brokenLinks == 0}</condition> </transition> </decision> <task-node name="verifybrokenlinks"> <task name="wcmwf:verifyBrokenLinksTask" swimlane="initiator" /> <transition name="abort" to="end" /> <transition name="continue" to="serialorparallel" /> </task-node> <!– –> <!– Split into Serial or Parallel Review –> <!– –> <decision name="serialorparallel"> <event type="node-enter"> <script> <variable name="wcmwf_reviewerCnt" access="write"/> <variable name="wcmwf_approveCnt" access="write"/> <variable name="wcmwf_reviewType" access="write"/> <expression> wcmwf_reviewerCnt = bpm_assignees.size(); wcmwf_approveCnt = 0; wcmwf_reviewType = wcmwf_submitReviewType; </expression> </script> </event> <transition name="serial" to="submitserialreview" /> <transition name="parallel" to="submitparallelreview"> <condition>#{wcmwf_reviewType == "Parallel"}</condition> </transition> </decision> <!– –> <!– Serial Review –> <!– –> <task name="wcmwf:submitSerialReview" swimlane="assignee"></task> <decision name="submitserialreview"> <transition name="endreview" to="endreview" /> <transition name="review" to="serialreview"> <condition>#{wcmwf_approveCnt < wcmwf_reviewerCnt}</condition> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> <expression> for each (user in people.getMembers(people.getGroup('GROUP_Sample2-ContentManager'), false)){ var mail = actions.create("mail"); mail.parameters.to = user.properties["cm:email"]; mail.parameters.subject = "New Alfresco workflow submission: " + wcmwf_label + " by " + person.properties.userName; mail.parameters.from = initiator.properties["cm:email"]; mail.parameters.text = "Dear " + ":\u000D" + person.properties.firstName + " " + person.properties.lastName + " has submitted the following content in Alfresco for your approval:\u000D" + bpm_workflowDescription; mail.execute(bpm_package); } </expression> </script> </action> </transition> </decision> <task-node name="serialreview"> <task name="wcmwf:reviewTask"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignees.get(wcmwf_approveCnt)}</actor> </assignment> <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> </event> </task> <transition name="approve" to="submitserialreview"> <script> <variable name="wcmwf_approveCnt" access="read, write"/> <expression> wcmwf_approveCnt = wcmwf_approveCnt + 1; </expression> </script> </transition> <transition name="reject" to="endreview" /> </task-node> <!– –> <!– Parallel Review –> <!– –> <node name="submitparallelreview"> <action class="org.alfresco.repo.workflow.jbpm.ForEachFork"> <foreach>#{bpm_assignees}</foreach> <var>reviewer</var> </action> <transition name="review" to="parallelreview" /> </node> <task-node name="parallelreview"> <task name="wcmwf:parallelReviewTask"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{reviewer}</actor> </assignment> <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> </event> </task> <transition name="approve" to="joinparallelreview"> <script> <variable name="wcmwf_approveCnt" access="read,write" /> <expression> wcmwf_approveCnt = wcmwf_approveCnt +1; </expression> </script> </transition> <transition name="reject" to="joinparallelreview" /> </task-node> <join name="joinparallelreview"> <transition to="endreview" /> </join> <!– –> <!– End the Review –> <!– –> <decision name="endreview"> <transition name="rejected" to="rejected" /> <transition name="approved" to="onapprove"> <condition>#{wcmwf_approveCnt == wcmwf_reviewerCnt}</condition> </transition> </decision> <task-node name="rejected"> <task name="wcmwf:rejectedTask" swimlane="initiator" > <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> </event> </task> <transition name="abort" to="end" /> <transition name="resubmit" to="serialorparallel"> <!– restart review process (next cycle) –> <script> <variable name="wcmwf_reviewCycle" access="read,write" /> <expression> wcmwf_reviewCycle = wcmwf_reviewCycle +1; </expression> </script> </transition> </task-node> <decision name="onapprove"> <transition name="launchnow" to="submitted" /> <transition name="launchpending" to="submitpending"> <condition>#{wcmwf_launchDate != null}</condition> </transition> </decision> <task-node name="submitpending" end-tasks="true"> <task name="wcmwf:submitpendingTask" swimlane="initiator"> <event type="task-create"> <script> taskInstance.dueDate = wcmwf_launchDate; </script> </event> <timer duedate="#{wcmwf_launchDate}" transition="launch" > <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submission " + bpm_workflowDescription + " submitted at " + wcmwf_launchDate + " by " + person.properties.userName); </script> </action> </timer> </task> <transition name="cancel" to="submitcancelled" /> <transition name="launch" to="submitted" /> </task-node> <task-node name="submitcancelled"> <task name="wcmwf:submitcancelledTask" swimlane="initiator" /> <transition name="" to="end" /> </task-node> <task-node name="submitted" end-tasks="true"> <task name="wcmwf:submittedTask" swimlane="initiator"> <timer duedate="5 seconds" transition="onsubmit"> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: Triggering submit for " + bpm_workflowDescription); </script> </action> </timer> <event type="task-end"> <script> <variable name="submitfailed" access="write"/> <expression>submitfailed = false;</expression> </script> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: Start submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); </script> </action> <action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/> <action class="org.alfresco.repo.avm.wf.AVMDeployHandler"/> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: End submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); </script> </action> </event> </task> <transition name="onsubmit" to="checkfailedsubmit"> <exception-handler> <script> <variable name="submitfailed" access="write"/> <expression> logger.log("WCM Submit Process: Submit failed for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); submitfailed = true; </expression> </script> </exception-handler> </transition> </task-node> <decision name="checkfailedsubmit"> <transition name="failure" to="submitfailed"> <condition>#{submitfailed == true}</condition> </transition> <transition name="success" to="end"> <condition>#{submitfailed == false}</condition> </transition> </decision> <task-node name="submitfailed"> <task name="wcmwf:submitfailedTask" swimlane="initiator"/> <transition name="" to="end"/> </task-node> <!– –> <!– End the Process –> <!– –> <end-state name="end"/> <event type="process-end"> <action class="org.alfresco.repo.avm.wf.AVMRemoveAllSrcWebappsHandler"/> <action class="org.alfresco.repo.avm.wf.AVMReleaseTestServerHandler"/> <action class="org.alfresco.repo.avm.wf.AVMRemoveWFStoreHandler"/> </event> </process-definition>
<?xml version="1.0" encoding="UTF-8"?> <!– This describes a process for submitting changed content in a user –> <!– sandbox, via an approver, to the staging sandbox. –> <process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wcmwf:submit"> <swimlane name="initiator"/> <!– –> <!– Start Review –> <!– –> <start-state name="start"> <task name="wcmwf:submitReviewTask" swimlane="initiator"/> <transition name="" to="initialise" /> </start-state> <swimlane name="assignee"> <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/> </swimlane> <swimlane name="emailedAssignee"> <assignment actor-id="#{bpm_assignees.get(wcmwf_approveCnt)}"/> </swimlane> <decision name="initialise"> <event type="node-enter"> <script> <variable name="wcmwf_reviewCycle" access="write"/> <expression> wcmwf_reviewCycle = 1; </expression> </script> </event> <transition name="" to="serialorparallel" /> <transition name="checklinks" to="checklinks"> <condition>#{wcmwf_validateLinks != null && wcmwf_validateLinks == true}</condition> </transition> </decision> <!– –> <!– Validate Links being submitted –> <!– –> <decision name="checklinks"> <event type="node-enter"> <action class="org.alfresco.repo.avm.wf.AVMSubmitLinkChecker" /> </event> <transition name="brokenlinkspresent" to="verifybrokenlinks" /> <transition name="nobrokenlinks" to="serialorparallel" > <condition>#{wcmwf_brokenLinks == 0}</condition> </transition> </decision> <task-node name="verifybrokenlinks"> <task name="wcmwf:verifyBrokenLinksTask" swimlane="initiator" /> <transition name="abort" to="end" /> <transition name="continue" to="serialorparallel" /> </task-node> <!– –> <!– Split into Serial or Parallel Review –> <!– –> <decision name="serialorparallel"> <event type="node-enter"> <script> <variable name="wcmwf_reviewerCnt" access="write"/> <variable name="wcmwf_approveCnt" access="write"/> <variable name="wcmwf_reviewType" access="write"/> <expression> wcmwf_reviewerCnt = bpm_assignees.size(); wcmwf_approveCnt = 0; wcmwf_reviewType = wcmwf_submitReviewType; </expression> </script> </event> <transition name="serial" to="submitserialreview" /> <transition name="parallel" to="submitparallelreview"> <condition>#{wcmwf_reviewType == "Parallel"}</condition> </transition> </decision> <!– –> <!– Serial Review –> <!– –> <task name="wcmwf:submitSerialReview" swimlane="assignee"></task> <decision name="submitserialreview"> <transition name="endreview" to="endreview" /> <transition name="review" to="serialreview"> <condition>#{wcmwf_approveCnt < wcmwf_reviewerCnt}</condition> </transition> </decision> <task-node name="serialreview"> <task name="wcmwf:reviewTask" swimlane="emailedAssignee"> <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> <action class="org.alfresco.module.sncfgrimoireprocessamp.repo.workflow.jbpm.AlfrescoJavaScriptGP"> <runas>admin</runas> <script> <variable name="emailedAssignee" access="read" /> <expression> var emailAddress = emailedAssignee.properties.email; // YOUR CODE HERE TO SEND THE EMAIL </expression> </script> </action> </event> </task> <transition name="approve" to="submitserialreview"> <script> <variable name="wcmwf_approveCnt" access="read, write"/> <expression> wcmwf_approveCnt = wcmwf_approveCnt + 1; </expression> </script> </transition> <transition name="reject" to="endreview" /> </task-node> <!– –> <!– Parallel Review –> <!– –> <node name="submitparallelreview"> <action class="org.alfresco.repo.workflow.jbpm.ForEachFork"> <foreach>#{bpm_assignees}</foreach> <var>reviewer</var> </action> <transition name="review" to="parallelreview" /> </node> <task-node name="parallelreview"> <task name="wcmwf:parallelReviewTask"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{reviewer}</actor> </assignment> <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> </event> </task> <transition name="approve" to="joinparallelreview"> <script> <variable name="wcmwf_approveCnt" access="read,write" /> <expression> wcmwf_approveCnt = wcmwf_approveCnt +1; </expression> </script> </transition> <transition name="reject" to="joinparallelreview" /> </task-node> <join name="joinparallelreview"> <transition to="endreview" /> </join> <!– –> <!– End the Review –> <!– –> <decision name="endreview"> <transition name="rejected" to="rejected" /> <transition name="approved" to="onapprove"> <condition>#{wcmwf_approveCnt == wcmwf_reviewerCnt}</condition> </transition> </decision> <task-node name="rejected"> <task name="wcmwf:rejectedTask" swimlane="initiator" > <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> </event> </task> <transition name="abort" to="end" /> <transition name="resubmit" to="serialorparallel"> <!– restart review process (next cycle) –> <script> <variable name="wcmwf_reviewCycle" access="read,write" /> <expression> wcmwf_reviewCycle = wcmwf_reviewCycle +1; </expression> </script> </transition> </task-node> <decision name="onapprove"> <transition name="launchnow" to="submitted" /> <transition name="launchpending" to="submitpending"> <condition>#{wcmwf_launchDate != null}</condition> </transition> </decision> <task-node name="submitpending" end-tasks="true"> <task name="wcmwf:submitpendingTask" swimlane="initiator"> <event type="task-create"> <script> taskInstance.dueDate = wcmwf_launchDate; </script> </event> <timer duedate="#{wcmwf_launchDate}" transition="launch" > <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submission " + bpm_workflowDescription + " submitted at " + wcmwf_launchDate + " by " + person.properties.userName); </script> </action> </timer> </task> <transition name="cancel" to="submitcancelled" /> <transition name="launch" to="submitted" /> </task-node> <task-node name="submitcancelled"> <task name="wcmwf:submitcancelledTask" swimlane="initiator" /> <transition name="" to="end" /> </task-node> <task-node name="submitted" end-tasks="true"> <task name="wcmwf:submittedTask" swimlane="initiator"> <timer duedate="5 seconds" transition="onsubmit"> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: Triggering submit for " + bpm_workflowDescription); </script> </action> </timer> <event type="task-end"> <script> <variable name="submitfailed" access="write"/> <expression>submitfailed = false;</expression> </script> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: Start submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); </script> </action> <action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/> <action class="org.alfresco.repo.avm.wf.AVMDeployHandler"/> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: End submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); </script> </action> </event> </task> <transition name="onsubmit" to="checkfailedsubmit"> <exception-handler> <script> <variable name="submitfailed" access="write"/> <expression> logger.log("WCM Submit Process: Submit failed for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); submitfailed = true; </expression> </script> </exception-handler> </transition> </task-node> <decision name="checkfailedsubmit"> <transition name="failure" to="submitfailed"> <condition>#{submitfailed == true}</condition> </transition> <transition name="success" to="end"> <condition>#{submitfailed == false}</condition> </transition> </decision> <task-node name="submitfailed"> <task name="wcmwf:submitfailedTask" swimlane="initiator"/> <transition name="" to="end"/> </task-node> <!– –> <!– End the Process –> <!– –> <end-state name="end"/> <event type="process-end"> <action class="org.alfresco.repo.avm.wf.AVMRemoveAllSrcWebappsHandler"/> <action class="org.alfresco.repo.avm.wf.AVMReleaseTestServerHandler"/> <action class="org.alfresco.repo.avm.wf.AVMRemoveWFStoreHandler"/> </event> </process-definition>
javax.faces.FacesException: Error calling action method of component with id dialog:finish-buttoncaused by:javax.faces.el.EvaluationException: Exception while invoking expression #{DialogManager.finish}caused by:org.alfresco.error.AlfrescoRuntimeException: Failed to submit to workflowcaused by:org.alfresco.service.cmr.workflow.WorkflowException: Failed to signal transition 'null' from workflow task 'jbpm$244'caused by:org.jbpm.graph.def.DelegationException: couldn't evaluate expression '#{bpm_assignees.get(wcmwf_approveCnt)}'caused by:org.jbpm.JbpmException: couldn't evaluate expression '#{bpm_assignees.get(wcmwf_approveCnt)}'caused by:org.jbpm.jpdl.el.ELException: Encountered "(", expected one of ["}", ".", ">", "gt", "<", "lt", "==", "eq", "<=", "le", ">=", "ge", "!=", "ne", "[", "+", "-", "*", "/", "div", "%", "mod", "and", "&&", "or", "||", "?"]
<?xml version="1.0" encoding="UTF-8"?><!– This describes a process for submitting changed content in a user –><!– sandbox, via an approver, to the staging sandbox. –><process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wcmwf:submit"> <swimlane name="initiator"/> <!– –> <!– Start Review –> <!– –> <start-state name="start"> <task name="wcmwf:submitReviewTask" swimlane="initiator"/> <transition name="" to="initialise" /> </start-state> <swimlane name="assignee"> <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/> </swimlane><swimlane name="emailedAssignee"> <assignment actor-id="#{bpm_assignees.get(wcmwf_approveCnt)}"/> </swimlane> <decision name="initialise"> <event type="node-enter"> <script> <variable name="wcmwf_reviewCycle" access="write"/> <expression> wcmwf_reviewCycle = 1; </expression> </script> </event> <transition name="" to="serialorparallel" /> <transition name="checklinks" to="checklinks"> <condition>#{wcmwf_validateLinks != null && wcmwf_validateLinks == true}</condition> </transition> </decision> <!– –> <!– Validate Links being submitted –> <!– –> <decision name="checklinks"> <event type="node-enter"> <action class="org.alfresco.repo.avm.wf.AVMSubmitLinkChecker" /> </event> <transition name="brokenlinkspresent" to="verifybrokenlinks" /> <transition name="nobrokenlinks" to="serialorparallel" > <condition>#{wcmwf_brokenLinks == 0}</condition> </transition> </decision> <task-node name="verifybrokenlinks"> <task name="wcmwf:verifyBrokenLinksTask" swimlane="initiator" /> <transition name="abort" to="end" /> <transition name="continue" to="serialorparallel" /> </task-node> <!– –> <!– Split into Serial or Parallel Review –> <!– –> <decision name="serialorparallel"> <event type="node-enter"> <script> <variable name="wcmwf_reviewerCnt" access="write"/> <variable name="wcmwf_approveCnt" access="write"/> <variable name="wcmwf_reviewType" access="write"/> <expression> wcmwf_reviewerCnt = bpm_assignees.size(); wcmwf_approveCnt = 0; wcmwf_reviewType = wcmwf_submitReviewType; </expression> </script> </event> <transition name="serial" to="submitserialreview" /> <transition name="parallel" to="submitparallelreview"> <condition>#{wcmwf_reviewType == "Parallel"}</condition> </transition> </decision> <!– –> <!– Serial Review –> <!– –> <task name="wcmwf:submitSerialReview" swimlane="assignee"></task> <decision name="submitserialreview"> <transition name="endreview" to="endreview" /> <transition name="review" to="serialreview"> <condition>#{wcmwf_approveCnt < wcmwf_reviewerCnt}</condition> </transition> </decision> <task-node name="serialreview"> <task name="wcmwf:reviewTask" swimlane="emailedAssignee"> <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> <action class="org.alfresco.module.sncfgrimoireprocessamp.repo.workflow.jbpm.AlfrescoJavaScriptGP"> <runas>admin</runas> <script> <variable name="emailedAssignee" access="read" /> <expression> var emailAddress = emailedAssignee.properties.email; var mail = actions.create("mail"); mail.parameters.to = emailAddress; mail.parameters.subject = "New Alfresco workflow submission: " + wcmwf_label + " by " + person.properties.userName; mail.parameters.from = person.properties.email; mail.parameters.text = "Dear " + ":\u000D" + person.properties.firstName + " " + person.properties.lastName + " has submitted the following content in Alfresco for your approval:\u000D" + bpm_workflowDescription; mail.execute(bpm_package); </expression> </script> </action> </event> </task> <transition name="approve" to="submitserialreview"> <script> <variable name="wcmwf_approveCnt" access="read, write"/> <expression> wcmwf_approveCnt = wcmwf_approveCnt + 1; </expression> </script> </transition> <transition name="reject" to="endreview" /> </task-node> <!– –> <!– Parallel Review –> <!– –> <node name="submitparallelreview"> <action class="org.alfresco.repo.workflow.jbpm.ForEachFork"> <foreach>#{bpm_assignees}</foreach> <var>reviewer</var> </action> <transition name="review" to="parallelreview" /> </node> <task-node name="parallelreview"> <task name="wcmwfarallelReviewTask"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{reviewer}</actor> </assignment> <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> </event> </task> <transition name="approve" to="joinparallelreview"> <script> <variable name="wcmwf_approveCnt" access="read,write" /> <expression> wcmwf_approveCnt = wcmwf_approveCnt +1; </expression> </script> </transition> <transition name="reject" to="joinparallelreview" /> </task-node> <join name="joinparallelreview"> <transition to="endreview" /> </join> <!– –> <!– End the Review –> <!– –> <decision name="endreview"> <transition name="rejected" to="rejected" /> <transition name="approved" to="onapprove"> <condition>#{wcmwf_approveCnt == wcmwf_reviewerCnt}</condition> </transition> </decision> <task-node name="rejected"> <task name="wcmwf:rejectedTask" swimlane="initiator" > <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> </event> </task> <transition name="abort" to="end" /> <transition name="resubmit" to="serialorparallel"> <!– restart review process (next cycle) –> <script> <variable name="wcmwf_reviewCycle" access="read,write" /> <expression> wcmwf_reviewCycle = wcmwf_reviewCycle +1; </expression> </script> </transition> </task-node> <decision name="onapprove"> <transition name="launchnow" to="submitted" /> <transition name="launchpending" to="submitpending"> <condition>#{wcmwf_launchDate != null}</condition> </transition> </decision> <task-node name="submitpending" end-tasks="true"> <task name="wcmwf:submitpendingTask" swimlane="initiator"> <event type="task-create"> <script> taskInstance.dueDate = wcmwf_launchDate; </script> </event> <timer duedate="#{wcmwf_launchDate}" transition="launch" > <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submission " + bpm_workflowDescription + " submitted at " + wcmwf_launchDate + " by " + person.properties.userName); </script> </action> </timer> </task> <transition name="cancel" to="submitcancelled" /> <transition name="launch" to="submitted" /> </task-node> <task-node name="submitcancelled"> <task name="wcmwf:submitcancelledTask" swimlane="initiator" /> <transition name="" to="end" /> </task-node> <task-node name="submitted" end-tasks="true"> <task name="wcmwf:submittedTask" swimlane="initiator"> <timer duedate="5 seconds" transition="onsubmit"> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: Triggering submit for " + bpm_workflowDescription); </script> </action> </timer> <event type="task-end"> <script> <variable name="submitfailed" access="write"/> <expression>submitfailed = false;</expression> </script> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: Start submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); </script> </action> <action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/> <action class="org.alfresco.repo.avm.wf.AVMDeployHandler"/> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: End submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); </script> </action> </event> </task> <transition name="onsubmit" to="checkfailedsubmit"> <exception-handler> <script> <variable name="submitfailed" access="write"/> <expression> logger.log("WCM Submit Process: Submit failed for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); submitfailed = true; </expression> </script> </exception-handler> </transition> </task-node> <decision name="checkfailedsubmit"> <transition name="failure" to="submitfailed"> <condition>#{submitfailed == true}</condition> </transition> <transition name="success" to="end"> <condition>#{submitfailed == false}</condition> </transition> </decision> <task-node name="submitfailed"> <task name="wcmwf:submitfailedTask" swimlane="initiator"/> <transition name="" to="end"/> </task-node> <!– –> <!– End the Process –> <!– –> <end-state name="end"/> <event type="process-end"> <action class="org.alfresco.repo.avm.wf.AVMRemoveAllSrcWebappsHandler"/> <action class="org.alfresco.repo.avm.wf.AVMReleaseTestServerHandler"/> <action class="org.alfresco.repo.avm.wf.AVMRemoveWFStoreHandler"/> </event></process-definition>
<swimlane name="emailedAssignee"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignees.get(wcmwf_approveCnt)}</actor> </assignment> </swimlane>
<?xml version="1.0" encoding="UTF-8"?> <!– This describes a process for submitting changed content in a user –> <!– sandbox, via an approver, to the staging sandbox. –> <process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wcmwf:submit"> <swimlane name="initiator"/> <!– –> <!– Start Review –> <!– –> <start-state name="start"> <task name="wcmwf:submitReviewTask" swimlane="initiator"/> <transition name="" to="initialise" /> </start-state> <swimlane name="assignee"> <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/> </swimlane> <decision name="initialise"> <event type="node-enter"> <script> <variable name="wcmwf_reviewCycle" access="write"/> <expression> wcmwf_reviewCycle = 1; </expression> </script> </event> <transition name="" to="serialorparallel" /> <transition name="checklinks" to="checklinks"> <condition>#{wcmwf_validateLinks != null && wcmwf_validateLinks == true}</condition> </transition> </decision> <!– –> <!– Validate Links being submitted –> <!– –> <decision name="checklinks"> <event type="node-enter"> <action class="org.alfresco.repo.avm.wf.AVMSubmitLinkChecker" /> </event> <transition name="brokenlinkspresent" to="verifybrokenlinks" /> <transition name="nobrokenlinks" to="serialorparallel" > <condition>#{wcmwf_brokenLinks == 0}</condition> </transition> </decision> <task-node name="verifybrokenlinks"> <task name="wcmwf:verifyBrokenLinksTask" swimlane="initiator" /> <transition name="abort" to="end" /> <transition name="continue" to="serialorparallel" /> </task-node> <!– –> <!– Split into Serial or Parallel Review –> <!– –> <decision name="serialorparallel"> <event type="node-enter"> <script> <variable name="wcmwf_reviewerCnt" access="write"/> <variable name="wcmwf_approveCnt" access="write"/> <variable name="wcmwf_reviewType" access="write"/> <expression> wcmwf_reviewerCnt = bpm_assignees.size(); wcmwf_approveCnt = 0; wcmwf_reviewType = wcmwf_submitReviewType; </expression> </script> </event> <transition name="serial" to="submitserialreview" /> <transition name="parallel" to="submitparallelreview"> <condition>#{wcmwf_reviewType == "Parallel"}</condition> </transition> </decision> <!– –> <!– Serial Review –> <!– –> <task name="wcmwf:submitSerialReview" swimlane="assignee"></task> <decision name="submitserialreview"> <transition name="endreview" to="endreview" /> <transition name="review" to="serialreview"> <condition>#{wcmwf_approveCnt < wcmwf_reviewerCnt}</condition> </transition> </decision> <task-node name="serialreview"> <task name="wcmwf:reviewTask" > <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignees.get(wcmwf_approveCnt)}</actor> </assignment> <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <runas>admin</runas> <script> <variable name="bpm_assignees" access="read" /> <variable name="wcmwf_approveCnt" access="read" /> <expression> var current_assignee = bpm_assignees.get(wcmwf_approveCnt); var emailAddress = current_assignee.properties.email; var mail = actions.create("mail"); mail.parameters.to = emailAddress; mail.parameters.subject = "New Alfresco workflow submission: " + wcmwf_label + " by " + person.properties.userName; mail.parameters.from = person.properties.email; mail.parameters.text = "Dear " + ":\u000D" + person.properties.firstName + " " + person.properties.lastName + " has submitted the following content in Alfresco for your approval:\u000D" + bpm_workflowDescription; mail.execute(bpm_package); </expression> </script> </action> </event> </task> <transition name="approve" to="submitserialreview"> <script> <variable name="wcmwf_approveCnt" access="read, write"/> <expression> wcmwf_approveCnt = wcmwf_approveCnt + 1; </expression> </script> </transition> <transition name="reject" to="endreview" /> </task-node> <!– –> <!– Parallel Review –> <!– –> <node name="submitparallelreview"> <action class="org.alfresco.repo.workflow.jbpm.ForEachFork"> <foreach>#{bpm_assignees}</foreach> <var>reviewer</var> </action> <transition name="review" to="parallelreview" /> </node> <task-node name="parallelreview"> <task name="wcmwf:parallelReviewTask"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{reviewer}</actor> </assignment> <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> </event> </task> <transition name="approve" to="joinparallelreview"> <script> <variable name="wcmwf_approveCnt" access="read,write" /> <expression> wcmwf_approveCnt = wcmwf_approveCnt +1; </expression> </script> </transition> <transition name="reject" to="joinparallelreview" /> </task-node> <join name="joinparallelreview"> <transition to="endreview" /> </join> <!– –> <!– End the Review –> <!– –> <decision name="endreview"> <transition name="rejected" to="rejected" /> <transition name="approved" to="onapprove"> <condition>#{wcmwf_approveCnt == wcmwf_reviewerCnt}</condition> </transition> </decision> <task-node name="rejected"> <task name="wcmwf:rejectedTask" swimlane="initiator" > <event type="task-assign"> <script> if (wcmwf_reviewCycle > 1) taskInstance.description = taskInstance.description + " (" + wcmwf_reviewCycle + ")"; </script> </event> </task> <transition name="abort" to="end" /> <transition name="resubmit" to="serialorparallel"> <!– restart review process (next cycle) –> <script> <variable name="wcmwf_reviewCycle" access="read,write" /> <expression> wcmwf_reviewCycle = wcmwf_reviewCycle +1; </expression> </script> </transition> </task-node> <decision name="onapprove"> <transition name="launchnow" to="submitted" /> <transition name="launchpending" to="submitpending"> <condition>#{wcmwf_launchDate != null}</condition> </transition> </decision> <task-node name="submitpending" end-tasks="true"> <task name="wcmwf:submitpendingTask" swimlane="initiator"> <event type="task-create"> <script> taskInstance.dueDate = wcmwf_launchDate; </script> </event> <timer duedate="#{wcmwf_launchDate}" transition="launch" > <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submission " + bpm_workflowDescription + " submitted at " + wcmwf_launchDate + " by " + person.properties.userName); </script> </action> </timer> </task> <transition name="cancel" to="submitcancelled" /> <transition name="launch" to="submitted" /> </task-node> <task-node name="submitcancelled"> <task name="wcmwf:submitcancelledTask" swimlane="initiator" /> <transition name="" to="end" /> </task-node> <task-node name="submitted" end-tasks="true"> <task name="wcmwf:submittedTask" swimlane="initiator"> <timer duedate="5 seconds" transition="onsubmit"> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: Triggering submit for " + bpm_workflowDescription); </script> </action> </timer> <event type="task-end"> <script> <variable name="submitfailed" access="write"/> <expression>submitfailed = false;</expression> </script> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: Start submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); </script> </action> <action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/> <action class="org.alfresco.repo.avm.wf.AVMDeployHandler"/> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: End submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); </script> </action> </event> </task> <transition name="onsubmit" to="checkfailedsubmit"> <exception-handler> <script> <variable name="submitfailed" access="write"/> <expression> logger.log("WCM Submit Process: Submit failed for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); submitfailed = true; </expression> </script> </exception-handler> </transition> </task-node> <decision name="checkfailedsubmit"> <transition name="failure" to="submitfailed"> <condition>#{submitfailed == true}</condition> </transition> <transition name="success" to="end"> <condition>#{submitfailed == false}</condition> </transition> </decision> <task-node name="submitfailed"> <task name="wcmwf:submitfailedTask" swimlane="initiator"/> <transition name="" to="end"/> </task-node> <!– –> <!– End the Process –> <!– –> <end-state name="end"/> <event type="process-end"> <action class="org.alfresco.repo.avm.wf.AVMRemoveAllSrcWebappsHandler"/> <action class="org.alfresco.repo.avm.wf.AVMReleaseTestServerHandler"/> <action class="org.alfresco.repo.avm.wf.AVMRemoveWFStoreHandler"/> </event> </process-definition>
javax.faces.FacesException: Error calling action method of component with id dialog:finish-button caused by: javax.faces.el.EvaluationException: Exception while invoking expression #{DialogManager.finish} caused by: org.alfresco.error.AlfrescoRuntimeException: Failed to submit to workflow caused by: org.alfresco.service.cmr.workflow.WorkflowException: Failed to signal transition 'null' from workflow task 'jbpm$256' caused by: org.jbpm.graph.def.DelegationException: Failed to execute supplied script: ReferenceError: "wcmwf_label" is not defined. (AlfrescoJS#1) caused by: org.jbpm.graph.def.DelegationException: Failed to execute supplied script: ReferenceError: "wcmwf_label" is not defined. (AlfrescoJS#1) caused by: org.alfresco.scripts.ScriptException: Failed to execute supplied script: ReferenceError: "wcmwf_label" is not defined. (AlfrescoJS#1) caused by: org.alfresco.error.AlfrescoRuntimeException: ReferenceError: "wcmwf_label" is not defined. (AlfrescoJS#1) caused by: org.mozilla.javascript.EcmaError: ReferenceError: "wcmwf_label" is not defined. (AlfrescoJS#1)
Hi,I too have the same problem.Can anyone help me pls?Thanks
<decision name="submitserialreview"> <transition name="endreview" to="endreview" /> <transition name="review" to="serialreview"> <condition>#{wcmwf_approveCnt < wcmwf_reviewerCnt}</condition> <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> var mail = actions.create("mail"); var to = "" ; var from = initiator.properties.email ; var subject = "Review content created by " + initiator.properties.userName ; if(bpm_assignees.get(wcmwf_approveCnt).type == "{http://www.alfresco.org/model/content/1.0}person") { to = bpm_assignees.get(wcmwf_approveCnt).properties.email; } else { to = search.findNode(bpm_assignees.get(wcmwf_approveCnt)).properties['cm:email']; } mail.parameters.to = to ; mail.parameters.subject = subject ; mail.parameters.from = from ; var mailText = "Review the content created by " + initiator.properties.userName + "\n"; mail.parameters.text = mailText; mail.execute(bpm_package); </script> </action> </transition> </decision>