mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Merged V1.3 to V1.4 (Workflow changes required)
svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4152 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4153 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4163 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4164 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4178 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4179 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4328 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4329 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4331 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4332 . git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4529 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
33
config/alfresco/extension/workflow-context.xml.sample
Normal file
33
config/alfresco/extension/workflow-context.xml.sample
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="sample.workflowBootstrap" parent="workflowDeployer">
|
||||
<property name="workflowDefinitions">
|
||||
<list>
|
||||
<props>
|
||||
<prop key="engineId">jbpm</prop>
|
||||
<prop key="location">alfresco/workflow/parallelreview_processdefinition.xml</prop>
|
||||
<prop key="mimetype">text/xml</prop>
|
||||
<prop key="redeploy">false</prop>
|
||||
</props>
|
||||
</list>
|
||||
</property>
|
||||
<property name="models">
|
||||
<list>
|
||||
<!-- NOTE: The above process definition relies on the default workflowModel.xml -->
|
||||
<!-- which is already registered during Alfresco startup. -->
|
||||
<!-- See bootstrap-context.xml (workflowBootstrap). -->
|
||||
</list>
|
||||
</property>
|
||||
<property name="labels">
|
||||
<list>
|
||||
<!-- NOTE: The above process definition relies on the default workflow-messages.properties -->
|
||||
<!-- which is already registered during Alfresco startup -->
|
||||
<!-- See bootstrap-context.xml (workflowBootstrap). -->
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -17,14 +17,8 @@
|
||||
<task name="wf:adhocTask" swimlane="assignee">
|
||||
<event type="task-create">
|
||||
<script>
|
||||
if (bpm_workflowDueDate != void)
|
||||
{
|
||||
taskInstance.dueDate = bpm_workflowDueDate;
|
||||
}
|
||||
if (bpm_workflowPriority != void)
|
||||
{
|
||||
taskInstance.priority = bpm_workflowPriority;
|
||||
}
|
||||
if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
|
||||
if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
|
||||
</script>
|
||||
</event>
|
||||
</task>
|
||||
|
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:parallelreview">
|
||||
|
||||
<swimlane name="initiator"></swimlane>
|
||||
|
||||
<start-state name="start">
|
||||
<task name="wf:submitParallelReviewTask" swimlane="initiator" />
|
||||
<transition name="" to="startreview">
|
||||
<script>
|
||||
<variable name="wf_approveCount" access="write" />
|
||||
<expression>
|
||||
wf_approveCount = 0;
|
||||
</expression>
|
||||
</script>
|
||||
</transition>
|
||||
</start-state>
|
||||
|
||||
<node name="startreview">
|
||||
<action class="org.alfresco.repo.workflow.jbpm.ForEachFork">
|
||||
<foreach>#{bpm_assignees}</foreach>
|
||||
<var>reviewer</var>
|
||||
</action>
|
||||
<transition name="review" to="review" />
|
||||
</node>
|
||||
|
||||
<task-node name="review">
|
||||
<task name="wf: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="endreview" />
|
||||
<transition name="approve" to="endreview">
|
||||
<script>
|
||||
<variable name="wf_approveCount" access="read,write" />
|
||||
<expression>
|
||||
wf_approveCount = wf_approveCount +1;
|
||||
</expression>
|
||||
</script>
|
||||
</transition>
|
||||
</task-node>
|
||||
|
||||
<join name="endreview">
|
||||
<transition to="isapproved" />
|
||||
</join>
|
||||
|
||||
<decision name="isapproved">
|
||||
<event type="node-enter">
|
||||
<script>
|
||||
<variable name="wf_reviewerCount" access="write"/>
|
||||
<variable name="wf_requiredPercent" access="write"/>
|
||||
<variable name="wf_actualPercent" access="write"/>
|
||||
<expression>
|
||||
wf_requiredPercent = wf_requiredApprovePercent;
|
||||
wf_reviewerCount = bpm_assignees.size();
|
||||
wf_actualPercent = ((wf_approveCount * 100) / wf_reviewerCount);
|
||||
</expression>
|
||||
</script>
|
||||
</event>
|
||||
<transition name="reject" to="rejected" />
|
||||
<transition name="approve" to="approved">
|
||||
<condition>#{wf_actualPercent >= wf_requiredApprovePercent}</condition>
|
||||
</transition>
|
||||
</decision>
|
||||
|
||||
<task-node name="rejected">
|
||||
<task name="wf:rejectedParallelTask" swimlane="initiator" />
|
||||
<transition to="end" />
|
||||
</task-node>
|
||||
|
||||
<task-node name="approved">
|
||||
<task name="wf:approvedParallelTask" swimlane="initiator" />
|
||||
<transition to="end" />
|
||||
</task-node>
|
||||
|
||||
<end-state name="end"/>
|
||||
|
||||
</process-definition>
|
@@ -17,14 +17,8 @@
|
||||
<task name="wf:reviewTask" swimlane="reviewer">
|
||||
<event type="task-create">
|
||||
<script>
|
||||
if (bpm_workflowDueDate != void)
|
||||
{
|
||||
taskInstance.dueDate = bpm_workflowDueDate;
|
||||
}
|
||||
if (bpm_workflowPriority != void)
|
||||
{
|
||||
taskInstance.priority = bpm_workflowPriority;
|
||||
}
|
||||
if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
|
||||
if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
|
||||
</script>
|
||||
</event>
|
||||
</task>
|
||||
|
@@ -35,6 +35,41 @@ wf_review.task.wf_approvedTask.description=Approved
|
||||
wf_review.node.end.title=End
|
||||
wf_review.node.end.description=End
|
||||
|
||||
|
||||
#
|
||||
# Parallel Review Workflow
|
||||
#
|
||||
|
||||
wf_parallelreview.workflow.title=Group Review & Approve
|
||||
wf_parallelreview.workflow.description=Group Review & approval of content
|
||||
|
||||
# Parallel Review & Approve Task Definitions
|
||||
|
||||
wf_workflowmodel.type.wf_submitParallelReviewTask.title=Start Group Review
|
||||
wf_workflowmodel.type.wf_submitParallelReviewTask.description=Submit documents for review & approval to a group of people
|
||||
wf_workflowmodel.property.wf_requiredApprovePercent.title=Required approval percentage
|
||||
wf_workflowmodel.property.wf_requiredApprovePercent.description=Percentage of reviewers who must approve for approval
|
||||
wf_workflowmodel.type.wf_rejectedParallelTask.title=Rejected
|
||||
wf_workflowmodel.type.wf_rejectedParallelTask.description=Rejected
|
||||
wf_workflowmodel.type.wf_approvedParallelTask.title=Approved
|
||||
wf_workflowmodel.type.wf_approvedParallelTask.description=Approved
|
||||
wf_workflowmodel.property.wf_reviewerCount.title=Number of reviewers
|
||||
wf_workflowmodel.property.wf_reviewerCount.description=Number of reviewers
|
||||
wf_workflowmodel.property.wf_requiredPercent.title=Required approval percentage
|
||||
wf_workflowmodel.property.wf_requiredPercent.description=Required approval percentage
|
||||
wf_workflowmodel.property.wf_approveCount.title=Reviewers who approved
|
||||
wf_workflowmodel.property.wf_approveCount.description=Reviewers who approved
|
||||
wf_workflowmodel.property.wf_actualPercent.title=Actual approval percentage
|
||||
wf_workflowmodel.property.wf_actualPercentdescription=Actual approval percentage
|
||||
|
||||
# Group Review & Approve Process Definitions
|
||||
|
||||
wf_parallelreview.node.review.transition.reject.title=Reject
|
||||
wf_parallelreview.node.review.transition.reject.description=Reject
|
||||
wf_parallelreview.node.review.transition.approve.title=Approve
|
||||
wf_parallelreview.node.review.transition.approve.description=Approve
|
||||
|
||||
|
||||
#
|
||||
# Adhoc Task Workflow
|
||||
#
|
||||
|
@@ -23,6 +23,26 @@
|
||||
<aspect>bpm:assignee</aspect>
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
|
||||
<type name="wf:submitParallelReviewTask">
|
||||
<parent>bpm:startTask</parent>
|
||||
<properties>
|
||||
<property name="wf:requiredApprovePercent">
|
||||
<type>d:int</type>
|
||||
<mandatory>true</mandatory>
|
||||
<default>50</default>
|
||||
<constraints>
|
||||
<constraint type="MINMAX">
|
||||
<parameter name="minValue"><value>1</value></parameter>
|
||||
<parameter name="maxValue"><value>100</value></parameter>
|
||||
</constraint>
|
||||
</constraints>
|
||||
</property>
|
||||
</properties>
|
||||
<mandatory-aspects>
|
||||
<aspect>bpm:assignees</aspect>
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
|
||||
<type name="wf:reviewTask">
|
||||
<parent>bpm:workflowTask</parent>
|
||||
@@ -32,7 +52,21 @@
|
||||
</property>
|
||||
</overrides>
|
||||
</type>
|
||||
|
||||
<type name="wf:rejectedParallelTask">
|
||||
<parent>bpm:workflowTask</parent>
|
||||
<mandatory-aspects>
|
||||
<aspect>wf:parallelReviewStats</aspect>
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
|
||||
<type name="wf:approvedParallelTask">
|
||||
<parent>bpm:workflowTask</parent>
|
||||
<mandatory-aspects>
|
||||
<aspect>wf:parallelReviewStats</aspect>
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
|
||||
|
||||
<!-- -->
|
||||
<!-- Adhoc Tasks -->
|
||||
@@ -84,6 +118,27 @@
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
|
||||
</types>
|
||||
</types>
|
||||
|
||||
<aspects>
|
||||
|
||||
<aspect name="wf:parallelReviewStats">
|
||||
<properties>
|
||||
<property name="wf:reviewerCount">
|
||||
<type>d:int</type>
|
||||
</property>
|
||||
<property name="wf:requiredPercent">
|
||||
<type>d:int</type>
|
||||
</property>
|
||||
<property name="wf:approveCount">
|
||||
<type>d:int</type>
|
||||
</property>
|
||||
<property name="wf:actualPercent">
|
||||
<type>d:int</type>
|
||||
</property>
|
||||
</properties>
|
||||
</aspect>
|
||||
|
||||
</aspects>
|
||||
|
||||
</model>
|
Reference in New Issue
Block a user