有没有一种方法可以在Activiti流程定义中获取任务而不创建流程实例?

Out*_*ind 4 java activiti

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

我的要求如下

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

我已经遍历了Activiti API的Java文档和用户指南,但找不到方法。

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

Phi*_*tre 5

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

结果是一个Pojo,可用于o自省过程。初始pojo表示模型,该模型可以具有多个Process(但通常只有一个)。从给定的流程中,您可以使用findFlowElementsOfType(Class type)查找所有任务。

例如,此代码段应为您提供流程中的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))    
}
Run Code Online (Sandbox Code Playgroud)