动态计算组成员数量

时间:2017-02-27 12:22:01

标签: alfresco activiti

例如,有一个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)。

通过使用JavaScript计算这些组中的参与者数量,是否可以在Activiti中使用?

我将非常感谢这些信息。谢谢大家。

1 个答案:

答案 0 :(得分:3)

您绝对可以使用JavaScript或Java API来获取几个组中的用户数。检查此页面是否有JS人员API,例如:http://docs.alfresco.com/5.1/references/API-JS-getMembers.html

所以我想象一下在你的专属网关之前的一个脚本任务/执行监听器,实现这个逻辑应该是最简单的方法,因为它甚至不需要重新启动服务器:

var membersG1 = people.getMembers("GROUP_MY_GROUP1_NAME");
var membersG2 = people.getMembers("GROUP_MY_GROUP2_NAME");
execution.setVariable("N", membersG1.length + membersG2.length);

请注意,这是实现您指定内容的众多可能方法之一。