Alfresco 组成员数量的动态计算
例如,有一个Alfresco 组成员数量的动态计算,alfresco,activiti,Alfresco,Activiti,例如,有一个exclusivegateway和两个sequenceFlow <sequenceFlow id="flow1" sourceRef="exclusivegateway" targetRef="usertask1"> <conditionExpression xsi:type="tFormalExpression"> <![CDATA[${approveCount == N}]]> </conditionExp
exclusivegateway
和两个sequenceFlow
<sequenceFlow id="flow1" sourceRef="exclusivegateway" targetRef="usertask1">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${approveCount == N}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow2" sourceRef="exclusivegateway" targetRef="usertask2">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${approveCount < N}]]>
</conditionExpression>
</sequenceFlow>
根据条件,执行一项或另一项任务
在业务流程中,我希望动态计算数字N
。此数字等于业务流程所有参与者的总和。
(例如,我有两组,第一组包括10
参与者,第二组包括5
。然后N
必须等于15
)
在Activiti中,是否可以使用JavaScript计算这些组中的参与者数量?您完全可以使用JavaScript或Java API来获取两个组中的用户数量。查看此页面了解JS people API,例如: 因此,我设想在专用网关之前有一个脚本任务/执行侦听器,实现该逻辑应该是最简单的方法,因为它甚至不需要重新启动服务器:
var membersG1 = people.getMembers("GROUP_MY_GROUP1_NAME");
var membersG2 = people.getMembers("GROUP_MY_GROUP2_NAME");
execution.setVariable("N", membersG1.length + membersG2.length);
请注意,这是实现您指定内容的许多可能方法之一。您完全可以使用JavaScript或Java API获取两个组中的用户数。查看此页面了解JS people API,例如: 因此,我设想在专用网关之前有一个脚本任务/执行侦听器,实现该逻辑应该是最简单的方法,因为它甚至不需要重新启动服务器:
var membersG1 = people.getMembers("GROUP_MY_GROUP1_NAME");
var membersG2 = people.getMembers("GROUP_MY_GROUP2_NAME");
execution.setVariable("N", membersG1.length + membersG2.length);
请注意,这是实现您指定内容的许多可能方法之一。是的,您可以在javascript中执行数学运算。或者你可以使用脚本任务。是的,你可以用javascript做数学运算。也可以使用脚本任务。