Flowable 6.X 抓取BPM 下所有的UserTask

Flowable 升級 6.x 版後 5.x 的一些功能若沒有使用 5.x 相容套件時將無法執行,其中我最需要的就是 UserTask,怎麼說呢?其實我想把這BPM 整合在自己的系統中,而當遇到UserTask時,我想外掛自己開發的流程控制模組,讓使用者在這節點上可以選擇要傳入的流程條件,意見,指派人員,所以抓取 UserTask 對我來說真的很重要,那 UserTask 要怎麼抓到呢?

首自我們用 Process Define ID 透過 repositoryService 去抓回原來的BPM Model

BpmnModel bpmnModel = repositoryService.getBpmnModel(processId);

再抓出 Process

org.flowable.bpmn.model.Process process = bpmnModel.getProcesses().get(0);

用 Process 去找出 UserTask 的 Elements,就可以得到所有的UserTask的List,當然若你抓到其他的Task,在UserTask.class 的地方可以換上其他 Task的類別,如: ServiceTask.class

Collection<UserTask> flowElements = process.findFlowElementsOfType(UserTask.class);
for (UserTask userTask : flowElements) {
    System.out.println("ID:"+userTask.getId());
    System.out.println("Name:"+userTask.getName());
}

Related Posts

發佈留言