2017-02-27 12 views
0

例えば、exclusivegatewayと2つの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を動的に計算したいと考えています。この数値は、ビジネスプロセスのすべての参加者の合計に等しい。 (たとえば、2つのグループがあり、最初のグループには10が含まれ、2番目のグループには5が含まれています。N15と等しくなければなりません)。

は、それがこれらのグループの参加者の数を計算するためにJavaScriptを使用してActivitiには可能ですか?...

私は情報のために非常に感謝されます。ありがとうございます。

+1

はい、JavaScriptで数学演算を行うことができます。 またはスクリプトタスクを使用できます。 – vikash

+0

ご意見ありがとうございます。グループにアクセスし、JavaScriptを使用して参加者の数を数える必要があります。 –

+0

私はWeb Script FrameworkとRESTアーキテクチャを使用する必要があると思います... –

答えて

3

JavaScriptやJava APIのいずれかを使用して、いくつかのグループのユーザー数を取得できます。例えば、JS people 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); 

これは、指定したものを実装するための多くの可能な方法の1つです。

+0

優秀!そんな徹底的な答えをありがとう! –

関連する問題