首页 > 解决方案 > Activiti BPMN:如何从当前任务中找到未来的任务

问题描述

我正在将Activiti BPMN 与我的 Java WebApp 集成。我已经成功地定义了流程并按照我的要求执行了它,尽管我遇到了一个问题,需要我找到当前执行任务中可能发生的所有未来任务可能性。

假设在我的 XML 中,我有一个包含 4 个任务(如任务 A)的工作流,然后是一个专用网关,然后是另外 3 个任务。我当前执行的任务是任务 A,现在我想知道未来任务的可能性(即网关之后的 3 个任务)。这有可能吗?

我被困在这里,无法找到任何解决方案。如果有人可以帮助我,我将不胜感激。

标签: javajava-8activiti

解决方案


请参阅Activiti 用户指南。与流程的任务相关的作业是在某些点创建的,并且它们不是同时创建的。创造工作的实际意义会有所不同。因此查询 ACT_RU_JOB 表可能不会有成效。获得任务的一种方法是处理附加到流程定义的 BPMN。可以从 Activiti API 或 REST API(部署中的资源)检索 BPMN 定义。一旦获得了 BPMN XML,就可以找到任务元素(用户任务、服务任务等)并按照顺序流来确定哪些任务以何种顺序出现。例如,请参考以下 BPMN 摘录:

<serviceTask id="servicetask1" 
             name="Process Init" 
             activiti:async="true" 
             activiti:class="ProcessInitDelegate"></serviceTask>

<serviceTask id="servicetask2" 
             name="Download Installed SW List" 
             activiti:async="true"
             activiti:class="EWSAttachmentDownloaderDelegate"></serviceTask>

 <sequenceFlow id="flow2" 
               sourceRef="servicetask1" 
               targetRef="servicetask2"></sequenceFlow>

在上面的例子中,很容易找到从“serviceTask1”出来的序列流,然后跟随它到“serviceTask2”。


推荐阅读