Files
alfresco-community-repo/config/alfresco/workflow/submit_processdefinition.xml
Derek Hulley be54a05c8e Merged V3.1 to HEAD
12984: Sharepoint: Build fix after recent change to SiteService and bumped module version to 1.1
   12997: (RECORD ONLY - Already merged) Added home property to start scripts; updated readmes; updated installers
   13140: Merged V3.0 to V3.1
      13138 Merged V2.2 to V3.0
         13133: Fix ETWOTWO-1078: wcm submit does not complete when using Oracle
   13146: Merged V3.0 to V3.1
      13052: CIFS throws a NullPointerException if a non-relative path is received for a folder search. JLAN-69
   13147: Updated svn:mergeinfo
   13151: (RECORD ONLY) Changed labs -> enterprise for distribution bundles
   13157: Partial fix for ETHREEOH-1277 - fixes usage of Application.getMessage()
   ___________________________________________________________________
   Modified: svn:mergeinfo
      Merged /alfresco/BRANCHES/V3.0:r13052,13138
      Merged /alfresco/BRANCHES/V2.2:r13133
      Merged /alfresco/BRANCHES/V3.1:r12984,12997,13140,13146-13147,13151,13154,13157


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13603 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2009-03-12 14:01:59 +00:00

289 lines
11 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="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>