动态计算群组成员数量
Dynamic calculation of the number of groups members
比如有一个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来计算这些组的参与者人数?
您绝对可以使用 Java 脚本或 Java API 来获取几个组中的用户数。检查此页面以了解 JS 人员 API 例如:http://docs.alfresco.com/5.1/references/API-JS-getMembers.html
所以我设想在您的专属网关之前有一个脚本 task/execution 侦听器,实现该逻辑应该是最简单的方法,因为它甚至不需要重新启动服务器:
var membersG1 = people.getMembers("GROUP_MY_GROUP1_NAME");
var membersG2 = people.getMembers("GROUP_MY_GROUP2_NAME");
execution.setVariable("N", membersG1.length + membersG2.length);
请注意,这是实现您指定内容的众多可能方法之一。
比如有一个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来计算这些组的参与者人数?
您绝对可以使用 Java 脚本或 Java API 来获取几个组中的用户数。检查此页面以了解 JS 人员 API 例如:http://docs.alfresco.com/5.1/references/API-JS-getMembers.html
所以我设想在您的专属网关之前有一个脚本 task/execution 侦听器,实现该逻辑应该是最简单的方法,因为它甚至不需要重新启动服务器:
var membersG1 = people.getMembers("GROUP_MY_GROUP1_NAME");
var membersG2 = people.getMembers("GROUP_MY_GROUP2_NAME");
execution.setVariable("N", membersG1.length + membersG2.length);
请注意,这是实现您指定内容的众多可能方法之一。