我有一个 Activiti 工作流,其中包含一个 ReceiveTask,我在其中对任务进行分组。我有一个侦听器,它在 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 流出到工作流的下一步。