java - Activiti BPMN:如何从当前任务中找到未来的任务
问题描述
我正在将Activiti BPMN 与我的 Java WebApp 集成。我已经成功地定义了流程并按照我的要求执行了它,尽管我遇到了一个问题,需要我找到当前执行任务中可能发生的所有未来任务可能性。
假设在我的 XML 中,我有一个包含 4 个任务(如任务 A)的工作流,然后是一个专用网关,然后是另外 3 个任务。我当前执行的任务是任务 A,现在我想知道未来任务的可能性(即网关之后的 3 个任务)。这有可能吗?
我被困在这里,无法找到任何解决方案。如果有人可以帮助我,我将不胜感激。
解决方案
请参阅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”。
推荐阅读
- python - “datetime.date”类型的对象在python中没有len()“
- python - 找到对象边缘之间的中心线
- javascript - 在 tsconfig.json 中找不到“redux-logger”错误的类型定义文件
- python - 如何重新安装和恢复损坏的python?
- python - Pygame 窗口在退出时冻结
- python - 如何使用一个命令解压缩所有 .Z 文件
- javascript - 如何将输出分叉/集群进程通过管道传输到主 stdout/stderr
- swift - 使用 AVAssetExportSession 快速导出 MP4
- c# - 如何在文本块上将转换器文化置于多重绑定中
- excel - 满足条件时重置循环excel vba