mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
WCM submit (for approval) workflow.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4540 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -169,6 +169,7 @@
|
||||
<prop key="redeploy">false</prop>
|
||||
</props>
|
||||
<props>
|
||||
<!-- WCM workflow definition -->
|
||||
<prop key="engineId">jbpm</prop>
|
||||
<prop key="location">alfresco/workflow/submit_processdefinition.xml</prop>
|
||||
<prop key="mimetype">text/xml</prop>
|
||||
@@ -178,12 +179,14 @@
|
||||
</property>
|
||||
<property name="models">
|
||||
<list>
|
||||
<value>alfresco/workflow/workflowModel.xml</value>
|
||||
<value>alfresco/workflow/workflowModel.xml</value>
|
||||
<value>alfresco/workflow/wcmWorkflowModel.xml</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="labels">
|
||||
<list>
|
||||
<value>alfresco/workflow/workflow-messages</value>
|
||||
<value>alfresco/workflow/workflow-messages</value>
|
||||
<value>alfresco/workflow/wcm-workflow-messages</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
@@ -59,7 +59,7 @@
|
||||
</bean>
|
||||
|
||||
<!-- MBeanServer Connector (registers itself with custom alfrescoMBeanServer) -->
|
||||
<bean id="serverConnector"
|
||||
<!-- <bean id="serverConnector"
|
||||
class="org.springframework.jmx.support.ConnectorServerFactoryBean"
|
||||
depends-on="registry">
|
||||
|
||||
@@ -69,7 +69,6 @@
|
||||
|
||||
<property name="environment">
|
||||
<map>
|
||||
<!-- The following keys are only valid when sun jmx is used -->
|
||||
<entry key="jmx.remote.x.password.file" value="${alfresco.jmx.dir}/alfresco-jmxrmi.password"/>
|
||||
<entry key="jmx.remote.x.access.file" value="${alfresco.jmx.dir}/alfresco-jmxrmi.access"/>
|
||||
</map>
|
||||
@@ -80,11 +79,11 @@
|
||||
<property name="server" ref="alfrescoMBeanServer"/>
|
||||
<property name="beans">
|
||||
<map>
|
||||
<!-- MBeans to register with alfrescoMBeanServer -->
|
||||
<entry key="Alfresco:Name=VirtServerRegistry,Type=VirtServerRegistry" value-ref="VirtServerRegistry"/>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
-->
|
||||
|
||||
<!-- MBeans registered with alfrescoMBeanServer -->
|
||||
<bean id="VirtServerRegistry"
|
||||
|
@@ -1,28 +1,144 @@
|
||||
<?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="wf:submit">
|
||||
|
||||
<swimlane name="initiator"/>
|
||||
|
||||
<start-state name="start">
|
||||
<task name="wf:submitWebContentTask" swimlane="initiator"/>
|
||||
<transition name="" to="review"/>
|
||||
</start-state>
|
||||
|
||||
<swimlane name="assignee">
|
||||
<assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
|
||||
</swimlane>
|
||||
|
||||
<task-node name="review">
|
||||
<task name="wf:reviewTask" swimlane="assignee"/>
|
||||
<transition name="Approve" to="end">
|
||||
<action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/>
|
||||
</transition>
|
||||
</task-node>
|
||||
|
||||
<end-state name="end"/>
|
||||
|
||||
<?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="serialorparallel"/>
|
||||
|
||||
<event type="node-leave">
|
||||
<script>
|
||||
<variable name="wcmwf_reviewerCnt" access="write"/>
|
||||
<variable name="wcmwf_approveCnt" access="write"/>
|
||||
<expression>
|
||||
wcmwf_reviewerCnt = bpm_assignees.size();
|
||||
wcmwf_approveCnt = 0;
|
||||
</expression>
|
||||
</script>
|
||||
</event>
|
||||
</start-state>
|
||||
|
||||
|
||||
<!-- -->
|
||||
<!-- Split into Serial or Parallel Review -->
|
||||
<!-- -->
|
||||
|
||||
<decision name="serialorparallel">
|
||||
<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 < wcmwf_reviewerCnt}</condition>
|
||||
</transition>
|
||||
</decision>
|
||||
|
||||
<task-node name="serialreview">
|
||||
<task name="wcmwf:reviewTask">
|
||||
<event type="task-create">
|
||||
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
|
||||
<script>
|
||||
taskInstance.actorId = bpm_assignees.get(wcmwf_approveCnt).properties.userName;
|
||||
</script>
|
||||
</action>
|
||||
</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">
|
||||
<event type="task-create">
|
||||
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
|
||||
<script>
|
||||
taskInstance.actorId = reviewer.properties["cm:userName"];
|
||||
</script>
|
||||
</action>
|
||||
</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="approved">
|
||||
<condition>#{wcmwf_approveCnt == wcmwf_reviewerCnt}</condition>
|
||||
<action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/>
|
||||
</transition>
|
||||
</decision>
|
||||
|
||||
<task-node name="rejected">
|
||||
<task name="wcmwf:rejectedTask" swimlane="initiator" />
|
||||
<transition name="" to="end" />
|
||||
</task-node>
|
||||
|
||||
<task-node name="approved">
|
||||
<task name="wcmwf:approvedTask" swimlane="initiator" />
|
||||
<transition name="" to="end" />
|
||||
</task-node>
|
||||
|
||||
|
||||
<!-- -->
|
||||
<!-- End the Process -->
|
||||
<!-- -->
|
||||
|
||||
<end-state name="end"/>
|
||||
|
||||
</process-definition>
|
38
config/alfresco/workflow/wcm-workflow-messages.properties
Normal file
38
config/alfresco/workflow/wcm-workflow-messages.properties
Normal file
@@ -0,0 +1,38 @@
|
||||
# Display labels for out-of-the-box WCM Content-oriented Workflows
|
||||
|
||||
#
|
||||
# Submit Workflow
|
||||
#
|
||||
|
||||
wcmwf_submit.workflow.title=Web Site Submission
|
||||
wcmwf_submit.workflow.description=Submit changes for approval
|
||||
wcmwf_submit.node.serialreview.transition.reject.title=Reject
|
||||
wcmwf_submit.node.serialreview.transition.reject.description=Reject
|
||||
wcmwf_submit.node.serialreview.transition.approve.title=Approve
|
||||
wcmwf_submit.node.serialreview.transition.approve.description=Approve
|
||||
wcmwf_submit.node.parallelreview.transition.reject.title=Reject
|
||||
wcmwf_submit.node.parallelreview.transition.reject.description=Reject
|
||||
wcmwf_submit.node.parallelreview.transition.approve.title=Approve
|
||||
wcmwf_submit.node.parallelreview.transition.approve.description=Approve
|
||||
|
||||
# Submit Task Definitions
|
||||
|
||||
wcmwf_workflowmodel.type.wcmwf_submitReviewTask.title=Web Site Submission
|
||||
wcmwf_workflowmodel.type.wcmwf_submitReviewTask.description=Submit changes for approval
|
||||
wcmwf_workflowmodel.type.wcmwf_reviewTask.title=Review
|
||||
wcmwf_workflowmodel.type.wcmwf_reviewTask.description=Review Documents to approve or reject them
|
||||
wcmwf_workflowmodel.type.wcmwf_rejectedTask.title=Rejected
|
||||
wcmwf_workflowmodel.type.wcmwf_rejectedTask.description=Rejected
|
||||
wcmwf_workflowmodel.type.wcmwf_approvedTask.title=Approved
|
||||
wcmwf_workflowmodel.type.wcmwf_approvedTask.description=Approved
|
||||
|
||||
wcmwf_workflowmodel.property.wcmwf_reviewType.title=Type of Review
|
||||
wcmwf_workflowmodel.property.wcmwf_reviewType.description=Serial or parallel review
|
||||
wcmwf_workflowmodel.property.wcmwf_fromPath.title=Source Folder Path
|
||||
wcmwf_workflowmodel.property.wcmwf_fromPath.description=Folder Path where items have been submitted from
|
||||
wcmwf_workflowmodel.property.wcmwf_label.title=Submission Label
|
||||
wcmwf_workflowmodel.property.wcmwf_label.description=Label associated with the submission
|
||||
wcmwf_workflowmodel.property.wcmwf_reviewerCnt.title=Total Reviewed
|
||||
wcmwf_workflowmodel.property.wcmwf_reviewerCnt.description=Count of people who reviewed
|
||||
wcmwf_workflowmodel.property.wcmwf_approveCnt.title=Total Approved
|
||||
wcmwf_workflowmodel.property.wcmwf_approveCnt.description=Count of people who approved
|
138
config/alfresco/workflow/wcmWorkflowModel.xml
Normal file
138
config/alfresco/workflow/wcmWorkflowModel.xml
Normal file
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<model name="wcmwf:workflowmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
|
||||
|
||||
<imports>
|
||||
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
|
||||
<import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/>
|
||||
</imports>
|
||||
|
||||
<namespaces>
|
||||
<namespace uri="http://www.alfresco.org/model/wcmworkflow/1.0" prefix="wcmwf"/>
|
||||
</namespaces>
|
||||
|
||||
<constraints>
|
||||
|
||||
<constraint name="wcmwf:reviewType" type="LIST">
|
||||
<parameter name="allowedValues">
|
||||
<!-- TODO: Determine if priority values can be mapped to human-readable strings -->
|
||||
<list>
|
||||
<value>Serial</value>
|
||||
<value>Parallel</value>
|
||||
</list>
|
||||
</parameter>
|
||||
</constraint>
|
||||
|
||||
</constraints>
|
||||
|
||||
<types>
|
||||
|
||||
<!-- -->
|
||||
<!-- Base WCM "start" task & workflow task definitions -->
|
||||
<!-- -->
|
||||
<!-- Note: Useful for dispatching WCM specific -->
|
||||
<!-- behaviour -->
|
||||
<!-- -->
|
||||
|
||||
<type name="wcmwf:startTask">
|
||||
<parent>bpm:startTask</parent>
|
||||
</type>
|
||||
|
||||
<type name="wcmwf:workflowTask">
|
||||
<parent>bpm:workflowTask</parent>
|
||||
</type>
|
||||
|
||||
<!-- -->
|
||||
<!-- WCM Tasks -->
|
||||
<!-- -->
|
||||
|
||||
<type name="wcmwf:submitReviewTask">
|
||||
<parent>wcmwf:startTask</parent>
|
||||
<mandatory-aspects>
|
||||
<aspect>wcmwf:reviewType</aspect>
|
||||
<aspect>wcmwf:submission</aspect>
|
||||
<aspect>bpm:assignees</aspect>
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
|
||||
<type name="wcmwf:reviewTask">
|
||||
<parent>wcmwf:workflowTask</parent>
|
||||
<mandatory-aspects>
|
||||
<aspect>wcmwf:submission</aspect>
|
||||
<!-- One or more reviewers - this is here to allow view of all reviewers -->
|
||||
<!-- in the review task -->
|
||||
<aspect>wcmwf:reviewType</aspect>
|
||||
<aspect>bpm:assignees</aspect>
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
|
||||
<type name="wcmwf:rejectedTask">
|
||||
<parent>wcmwf:workflowTask</parent>
|
||||
<mandatory-aspects>
|
||||
<aspect>wcmwf:reviewType</aspect>
|
||||
<aspect>bpm:assignees</aspect>
|
||||
<aspect>wcmwf:reviewStats</aspect>
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
|
||||
<type name="wcmwf:approvedTask">
|
||||
<parent>wcmwf:workflowTask</parent>
|
||||
<mandatory-aspects>
|
||||
<aspect>wcmwf:reviewType</aspect>
|
||||
<aspect>bpm:assignees</aspect>
|
||||
<aspect>wcmwf:reviewStats</aspect>
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
|
||||
</types>
|
||||
|
||||
<aspects>
|
||||
|
||||
<aspect name="wcmwf:submission">
|
||||
<properties>
|
||||
<property name="wcmwf:fromPath">
|
||||
<title>Source Folder Path</title>
|
||||
<description>Folder where items have been submitted from</description>
|
||||
<type>d:text</type>
|
||||
<mandatory>true</mandatory>
|
||||
</property>
|
||||
<property name="wcmwf:label">
|
||||
<title>Snapshot Label</title>
|
||||
<type>d:text</type>
|
||||
<mandatory>true</mandatory>
|
||||
</property>
|
||||
</properties>
|
||||
</aspect>
|
||||
|
||||
<aspect name="wcmwf:reviewType">
|
||||
<properties>
|
||||
<property name="wcmwf:reviewType">
|
||||
<title>Serial or Parallel Review</title>
|
||||
<type>d:text</type>
|
||||
<mandatory>true</mandatory>
|
||||
<default>Serial</default>
|
||||
<constraints>
|
||||
<constraint ref="wcmwf:reviewType" />
|
||||
</constraints>
|
||||
</property>
|
||||
</properties>
|
||||
</aspect>
|
||||
|
||||
<aspect name="wcmwf:reviewStats">
|
||||
<properties>
|
||||
<property name="wcmwf:reviewerCnt">
|
||||
<title>Reviewer Count</title>
|
||||
<type>d:int</type>
|
||||
<mandatory>true</mandatory>
|
||||
</property>
|
||||
<property name="wcmwf:approveCnt">
|
||||
<title>Approver Count</title>
|
||||
<type>d:int</type>
|
||||
<mandatory>true</mandatory>
|
||||
</property>
|
||||
</properties>
|
||||
</aspect>
|
||||
|
||||
</aspects>
|
||||
|
||||
</model>
|
Reference in New Issue
Block a user