java - 有没有办法在不创建流程实例的情况下获取Activiti流程定义中的任务?

标签 java activiti

我必须使用我项目的服务公开 Activiti API 进程。

我的要求如下:

我想在运行流程之前使用 Java 了解有关 Activiti 流程定义中任务的详细信息,即。在创建 Activiti ProcessInstance 之前。有什么办法可以实现吗?

我已经多次浏览 Activiti API 的 Java 文档和用户指南,但找不到方法。

任何帮助将不胜感激,谢谢。

最佳答案

您可以使用 RepositoryService 接口(interface)中提供的 getBpmnModel(processDefinitionId) 方法。

结果是一个 Pojo,您可以使用它来检查流程。初始的pojo代表模型,可以有多个Processes(但通常只有一个)。从给定的流程中,您可以使用 findFlowElementsOfType(类类型)找到所有任务。

例如,此代码段应为您提供流程中的 UserTasks 列表(未经测试但应让您了解需要什么):

BpmnModel model = processEngine.getRepositoryService().getBpmnModel(someProcessId);
List<Process> processes = model.getProcesses();
List<UserTask> userTasks = new ArrayList<>();
for( Process p : processes ) {
     userTasks.addAll( p.findFlowElementsOfType(UserTask.class))    
}

关于java - 有没有办法在不创建流程实例的情况下获取Activiti流程定义中的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35695638/

相关文章:

java - Java 左子树中最右边的节点

workflow - Alfresco:如何更改自定义工作流程的启动任务名称?

java - 在多模块环境中使用依赖注入(inject)(通过 Guice)

java - ThreadPoolExecutor 类似于 Executors.cachedThreadPool 但具有最大线程和队列

java - Activiti - 如何从扩展 EnumFormType 的自定义表单类型获取信息,例如 "values"?

java - Activiti - 如何在 Java 中为独占网关设置条件

java - 为什么Activiti中的流程在生命周期中会丢失boundaryEvent

mysql - JSF Bean 创建失败

java - 如何使用单 Spark 上下文在 Apache Spark 中运行并发作业(操作)

java - 如何检索 JSON 对象中的 JSON 数据?