タスクをグループ化する ReceiveTask を含む Activiti ワークフローがあります。ReceiveTask のイベント開始時にトリガーするリスナーがあり、新しく追加されたタスクのプロパティをチェックして、同じプロパティを持つ他のタスクが ReceiveTask にあるかどうかを確認します。はいの場合は、次のステップに進むようにすべてをトリガーしたいと思います。
<receiveTask id="IssuePost" name="Issue Post">
<extensionElements>
<activiti:executionListener event="start" delegateExpression="${IssuePost}"></activiti:executionListener>
</extensionElements>
</receiveTask>
タスクが ReceiveTask に問題なく移動すると、私の Java Listener クラス IssuePost が呼び出されます。その ReceiveTask にある他のタスクのリストを取得できます。タスクをトリガーしてワークフローの次のステップに進むのに問題があります。タスクで「シグナル」を呼び出すと、ループに陥ります。IssuePost リスナーは、Alfresco/Activiti があきらめて例外をスローするまで、無限ループでトリガーされ続けます。
List<NodeRef> siblingNodes = searchService.selectNodes( parent, xpath, null, namespacePrefixResolver, false );
if( siblingNodes.size() == batchCount )
{
for( int i=0; i < siblingNodes.size(); i++ )
{
List<WorkflowInstance> workflows = workflowService.getWorkflowsForContent( siblingNodes.get( i ), true );
// this line causes the loop.
workflowService.signal( workflows.get(0).getId(), null );
リスナーをトリガーせずに、ワークフローの次のステップに進むように ReceiveTask のタスクに信号を送るにはどうすればよいですか? ワークフローの次のステップへの ReceiveTask からのフローは 1 つだけです。