0

假设您有一堆单独的任务在您的工作流程中移动。这些任务通过它们的属性进行高级分组。当任务到达工作流中的特定 ReceiveTask 时,侦听器会检查其组中的所有任务是否都在 ReceiveTask 中。如果没有,监听器什么也不做。如果是,则向该组中的所有任务发出信号以继续进行工作流的下一步。

示例:每个任务代表一本书中的一页。当页面任务到达 ReceiveTask 时,会检查书籍中的所有页面是否都在那里。如果是,他们都可以继续前进。如果没有,他们就坐在那里。

ReceiveTask 上的 Java 侦听器向书中的其他页面发出信号以继续工作流的正确方法是什么?代码示例将非常有帮助。

似乎每个页面都在自己的工作流实例中,并且 WorkflowService.signal( pathID, transitionID ) 可能是使其他页面任务移动的方法,但是当我这样做时,我会遇到各种工作流异常这个。

SEVERE: Error while closing command context org.activiti.engine.ActivitiException: org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener doesn't implement interface org.activiti.engine.delegate.ExecutionListener nor interface org.activiti.engine.delegate.JavaDelegate

对我来说没有多大意义。我是否遇到了某种 Activit 事务问题?

使用 Alfresco 社区版 4.2c

4

1 回答 1

2

我没有直接得到答案,但我在 Alfresco Enterprise 4.1.2 上得到了完全相同的异常,我发现的几乎唯一的参考资料是你在 Alfresco 论坛上的问题,现在在这里。

在我看来,Activiti 设计器中存在一个错误,它将任务侦听器放在执行侦听器应该去的地方。我直接转到 XML 并将 org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener 更改为 org.alfresco.repo.workflow.activiti.listener.ScriptExecutionListener 并且该特定错误消失了。

于 2013-04-18T14:00:09.317 回答