mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merged V4.0-BUG-FIX to HEAD
37124: ALF-14220: Parallel reviews now takes into account maximum percentage of approval rate possible when deciding to add new task git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@37125 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -476,4 +476,6 @@ patch.syncSetDefinitionsContainer.description=Patch to add the root folder for S
|
|||||||
patch.swsdpPatch.description=Patch to fix up the Sample: Web Site Design Project.
|
patch.swsdpPatch.description=Patch to fix up the Sample: Web Site Design Project.
|
||||||
patch.swsdpPatch.success=Successfully patched the Sample: Web Site Design Project.
|
patch.swsdpPatch.success=Successfully patched the Sample: Web Site Design Project.
|
||||||
patch.swsdpPatch.skipped=Skipped, not required.
|
patch.swsdpPatch.skipped=Skipped, not required.
|
||||||
patch.swsdpPatch.missingSurfConfig=surf-config folder is not present in Sample: Web Site Design Project.
|
patch.swsdpPatch.missingSurfConfig=surf-config folder is not present in Sample: Web Site Design Project.
|
||||||
|
|
||||||
|
patch.redeployParallelActivitiWorkflows.description=Patch that redeploys both parallel activiti workflows, completion-condition now takes into account if minimum approval percentage can still be achived.
|
@@ -3196,5 +3196,27 @@
|
|||||||
<property name="siteService" ref="siteService" />
|
<property name="siteService" ref="siteService" />
|
||||||
<property name="hiddenAspect" ref="hiddenAspect" />
|
<property name="hiddenAspect" ref="hiddenAspect" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="patch.redeployParallelActivitiWorkflows" class="org.alfresco.repo.admin.patch.impl.GenericWorkflowPatch" parent="basePatch" >
|
||||||
|
<property name="id"><value>patch.redeployParallelActivitiWorkflows</value></property>
|
||||||
|
<property name="description"><value>patch.redeployParallelActivitiWorkflows.description</value></property>
|
||||||
|
<property name="fixesFromSchema"><value>0</value></property>
|
||||||
|
<property name="fixesToSchema"><value>6009</value></property>
|
||||||
|
<property name="targetSchema"><value>6010</value></property>
|
||||||
|
<property name="workflowDefinitions">
|
||||||
|
<list>
|
||||||
|
<props>
|
||||||
|
<prop key="engineId">activiti</prop>
|
||||||
|
<prop key="location">alfresco/workflow/parallel-review.bpmn20.xml</prop>
|
||||||
|
<prop key="mimetype">text/xml</prop>
|
||||||
|
</props>
|
||||||
|
<props>
|
||||||
|
<prop key="engineId">activiti</prop>
|
||||||
|
<prop key="location">alfresco/workflow/parallel-review-group.bpmn20.xml</prop>
|
||||||
|
<prop key="mimetype">text/xml</prop>
|
||||||
|
</props>
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
@@ -19,4 +19,4 @@ version.build=@build-number@
|
|||||||
|
|
||||||
# Schema number
|
# Schema number
|
||||||
|
|
||||||
version.schema=6009
|
version.schema=6010
|
||||||
|
@@ -13,7 +13,11 @@
|
|||||||
<activiti:field name="script">
|
<activiti:field name="script">
|
||||||
<activiti:string>
|
<activiti:string>
|
||||||
execution.setVariable('wf_approveCount', 0);
|
execution.setVariable('wf_approveCount', 0);
|
||||||
|
execution.setVariable('wf_rejectCount', 0);
|
||||||
|
|
||||||
execution.setVariable('wf_actualPercent', 0);
|
execution.setVariable('wf_actualPercent', 0);
|
||||||
|
execution.setVariable('wf_actualRejectPercent', 0);
|
||||||
|
|
||||||
execution.setVariable('wf_requiredPercent', wf_requiredApprovePercent);
|
execution.setVariable('wf_requiredPercent', wf_requiredApprovePercent);
|
||||||
</activiti:string>
|
</activiti:string>
|
||||||
</activiti:field>
|
</activiti:field>
|
||||||
@@ -62,11 +66,17 @@
|
|||||||
<activiti:field name="script">
|
<activiti:field name="script">
|
||||||
<activiti:string>
|
<activiti:string>
|
||||||
if(task.getVariableLocal('wf_reviewOutcome') == 'Approve') {
|
if(task.getVariableLocal('wf_reviewOutcome') == 'Approve') {
|
||||||
var newApprovedCount = wf_approveCount + 1;
|
var newApprovedCount = wf_approveCount + 1;
|
||||||
var newApprovedPercentage = (newApprovedCount / wf_reviewerCount) * 100;
|
var newApprovedPercentage = (newApprovedCount / wf_reviewerCount) * 100;
|
||||||
|
|
||||||
execution.setVariable('wf_approveCount', newApprovedCount);
|
execution.setVariable('wf_approveCount', newApprovedCount);
|
||||||
execution.setVariable('wf_actualPercent', newApprovedPercentage);
|
execution.setVariable('wf_actualPercent', newApprovedPercentage);
|
||||||
|
} else {
|
||||||
|
var newRejectCount = wf_rejectCount + 1;
|
||||||
|
var newRejectPercentage = (newRejectCount / wf_reviewerCount) * 100;
|
||||||
|
|
||||||
|
execution.setVariable('wf_rejectCount', newRejectCount);
|
||||||
|
execution.setVariable('wf_actualRejectPercent', newRejectPercentage);
|
||||||
}
|
}
|
||||||
</activiti:string>
|
</activiti:string>
|
||||||
</activiti:field>
|
</activiti:field>
|
||||||
@@ -83,7 +93,7 @@
|
|||||||
<multiInstanceLoopCharacteristics isSequential="false">
|
<multiInstanceLoopCharacteristics isSequential="false">
|
||||||
<loopDataInputRef>wf_groupMembers</loopDataInputRef>
|
<loopDataInputRef>wf_groupMembers</loopDataInputRef>
|
||||||
<inputDataItem name="reviewAssignee" />
|
<inputDataItem name="reviewAssignee" />
|
||||||
<completionCondition>${wf_actualPercent >= wf_requiredApprovePercent}</completionCondition>
|
<completionCondition>${wf_actualPercent >= wf_requiredApprovePercent || wf_requiredApprovePercent > (100 - wf_actualRejectPercent)}</completionCondition>
|
||||||
</multiInstanceLoopCharacteristics>
|
</multiInstanceLoopCharacteristics>
|
||||||
</userTask>
|
</userTask>
|
||||||
|
|
||||||
@@ -118,6 +128,8 @@
|
|||||||
task.setVariableLocal('wf_requiredPercent', wf_requiredPercent);
|
task.setVariableLocal('wf_requiredPercent', wf_requiredPercent);
|
||||||
task.setVariableLocal('wf_actualPercent', wf_actualPercent);
|
task.setVariableLocal('wf_actualPercent', wf_actualPercent);
|
||||||
task.setVariableLocal('wf_approveCount', wf_approveCount);
|
task.setVariableLocal('wf_approveCount', wf_approveCount);
|
||||||
|
task.setVariableLocal('wf_rejectCount', wf_rejectCount);
|
||||||
|
task.setVariableLocal('wf_actualRejectPercent', wf_actualRejectPercent);
|
||||||
</activiti:string>
|
</activiti:string>
|
||||||
</activiti:field>
|
</activiti:field>
|
||||||
</activiti:taskListener>
|
</activiti:taskListener>
|
||||||
@@ -146,6 +158,8 @@
|
|||||||
task.setVariableLocal('wf_requiredPercent', wf_requiredPercent);
|
task.setVariableLocal('wf_requiredPercent', wf_requiredPercent);
|
||||||
task.setVariableLocal('wf_actualPercent', wf_actualPercent);
|
task.setVariableLocal('wf_actualPercent', wf_actualPercent);
|
||||||
task.setVariableLocal('wf_approveCount', wf_approveCount);
|
task.setVariableLocal('wf_approveCount', wf_approveCount);
|
||||||
|
task.setVariableLocal('wf_rejectCount', wf_rejectCount);
|
||||||
|
task.setVariableLocal('wf_actualRejectPercent', wf_actualRejectPercent);
|
||||||
</activiti:string>
|
</activiti:string>
|
||||||
</activiti:field>
|
</activiti:field>
|
||||||
</activiti:taskListener>
|
</activiti:taskListener>
|
||||||
|
@@ -13,7 +13,11 @@
|
|||||||
<activiti:field name="script">
|
<activiti:field name="script">
|
||||||
<activiti:string>
|
<activiti:string>
|
||||||
execution.setVariable('wf_approveCount', 0);
|
execution.setVariable('wf_approveCount', 0);
|
||||||
execution.setVariable('wf_actualPercent', 0);
|
execution.setVariable('wf_rejectCount', 0);
|
||||||
|
|
||||||
|
execution.setVariable('wf_actualPercent', 0);
|
||||||
|
execution.setVariable('wf_actualRejectPercent', 0);
|
||||||
|
|
||||||
execution.setVariable('wf_reviewerCount', bpm_assignees.size());
|
execution.setVariable('wf_reviewerCount', bpm_assignees.size());
|
||||||
execution.setVariable('wf_requiredPercent', wf_requiredApprovePercent);
|
execution.setVariable('wf_requiredPercent', wf_requiredApprovePercent);
|
||||||
</activiti:string>
|
</activiti:string>
|
||||||
@@ -44,11 +48,17 @@
|
|||||||
<activiti:field name="script">
|
<activiti:field name="script">
|
||||||
<activiti:string>
|
<activiti:string>
|
||||||
if(task.getVariableLocal('wf_reviewOutcome') == 'Approve') {
|
if(task.getVariableLocal('wf_reviewOutcome') == 'Approve') {
|
||||||
var newApprovedCount = wf_approveCount + 1;
|
var newApprovedCount = wf_approveCount + 1;
|
||||||
var newApprovedPercentage = (newApprovedCount / wf_reviewerCount) * 100;
|
var newApprovedPercentage = (newApprovedCount / wf_reviewerCount) * 100;
|
||||||
|
|
||||||
execution.setVariable('wf_approveCount', newApprovedCount);
|
execution.setVariable('wf_approveCount', newApprovedCount);
|
||||||
execution.setVariable('wf_actualPercent', newApprovedPercentage);
|
execution.setVariable('wf_actualPercent', newApprovedPercentage);
|
||||||
|
} else {
|
||||||
|
var newRejectCount = wf_rejectCount + 1;
|
||||||
|
var newRejectPercentage = (newRejectCount / wf_reviewerCount) * 100;
|
||||||
|
|
||||||
|
execution.setVariable('wf_rejectCount', newRejectCount);
|
||||||
|
execution.setVariable('wf_actualRejectPercent', newRejectPercentage);
|
||||||
}
|
}
|
||||||
</activiti:string>
|
</activiti:string>
|
||||||
</activiti:field>
|
</activiti:field>
|
||||||
@@ -65,7 +75,7 @@
|
|||||||
<multiInstanceLoopCharacteristics isSequential="false">
|
<multiInstanceLoopCharacteristics isSequential="false">
|
||||||
<loopDataInputRef>bpm_assignees</loopDataInputRef>
|
<loopDataInputRef>bpm_assignees</loopDataInputRef>
|
||||||
<inputDataItem name="reviewAssignee" />
|
<inputDataItem name="reviewAssignee" />
|
||||||
<completionCondition>${wf_actualPercent >= wf_requiredApprovePercent}</completionCondition>
|
<completionCondition>${wf_actualPercent >= wf_requiredApprovePercent || wf_requiredApprovePercent > (100 - wf_actualRejectPercent)}</completionCondition>
|
||||||
</multiInstanceLoopCharacteristics>
|
</multiInstanceLoopCharacteristics>
|
||||||
</userTask>
|
</userTask>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user