/**
* 获取流程的所有节点名称
*/
@Test
public void getActivityIds() {
// 获取 ProcessEngineConfiguration 对象
ProcessEngineConfiguration configuration = new StandaloneProcessEngineConfiguration();
// 配置相关的数据库连接信息
configuration.setJdbcDriver("com.mysql.cj.jdbc.Driver");
configuration.setJdbcUsername("root");
configuration.setJdbcPassword("root");
configuration.setJdbcUrl("jdbc:mysql://localhost:3306/flowable-learn?serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true");
// 如果数据库中的表结构不存在就新建
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
// 通过 ProcessEngineConfiguration 构建我们需要的 processEngine 对象
ProcessEngine processEngine = configuration.buildProcessEngine();
System.out.println("processEngine = " + processEngine);
// 通过流程引擎对象获取 RepositoryService
RepositoryService repositoryService = processEngine.getRepositoryService();
TaskService taskService = processEngine.getTaskService();
// 根据任务id查询当前任务
Task task = taskService.createTaskQuery().taskId("245003").singleResult();
// 获取流程定义id
String processDefinitionId = task.getProcessDefinitionId();
List<Process> processes = repositoryService.getBpmnModel(processDefinitionId).getProcesses();
System.out.println("processes.size() = " + processes.size());
for (Process process : processes) {
Collection<FlowElement> flowElements = process.getFlowElements();
if (!CollectionUtils.isEmpty(flowElements)) {
for (FlowElement flowElement : flowElements) {
// 筛选出用户任务的节点
if (flowElement instanceof UserTask) {
System.out.println("flowElement.getName() = " + flowElement.getName());
System.out.println("flowElement.getId() = " + flowElement.getId());
}
}
}
}
}
Flowable获取当前流程的所有节点的名称
于 2023-08-14 14:19:37 首次发布