alfresco-community-repo/config/alfresco/workflow/submit_processdefinition.xml
Derek Hulley f44d8cb56c Merged V2.1 to HEAD
6436: Support for virtualized cookie paths, aggressive cleanup of sockets when virt server is down.
   6439: Fix for WCM-619 & WCM-571
   6440: Encoding of text/html files created inline using the web-client now has sensible default. AWC-1324.
   6442: Fix for WCM-621 (reviewer can not view or run links report)
   6443: Fix for AWC-1488. Dashboard
   6444: Fix for WCM-693 issue with submitting a deleted directory if no workflow associated with web project.
   6445: Icons for use in fix for WCM-522
   6446: Office Add-Ins: Fix for AWC-1481 - Login dialog can appear recursively


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6733 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2007-09-10 22:07:27 +00:00

237 lines
8.5 KiB
XML

<?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>
<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 &amp;&amp; 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 -->
<!-- -->
<decision name="submitserialreview">
<transition name="endreview" to="endreview" />
<transition name="review" to="serialreview">
<condition>#{wcmwf_approveCnt &lt; 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>
</event>
</task>
<transition name="reject" to="endreview" />
<transition name="approve" to="submitserialreview">
<script>
<variable name="wcmwf_approveCnt" access="read, write"/>
<expression>
wcmwf_approveCnt = wcmwf_approveCnt + 1;
</expression>
</script>
</transition>
</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:reviewTask">
<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="reject" to="joinparallelreview" />
<transition name="approve" to="joinparallelreview">
<script>
<variable name="wcmwf_approveCnt" access="read,write" />
<expression>
wcmwf_approveCnt = wcmwf_approveCnt +1;
</expression>
</script>
</transition>
</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">
<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">
<event type="node-enter">
<action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/>
</event>
<task name="wcmwf:submittedTask" 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.AVMRemoveWFStoreHandler"/>
</event>
</process-definition>