1. 程式人生 > 其它 >1、flowable-流程的基本使用API

1、flowable-流程的基本使用API

Flowable.6.3.0.BPMN.userguide.zh_CN.RC1.pdf 提取碼:cc42

flowable流程引擎的基本使用

1、流程部署

2、bpmn轉image

3、流程部署的查詢

4、流程例項啟動

5、查詢組任務

6、任務的申領/認領

7、完成使用者任務

8、流程例項的查詢

/**
 * springboot環境下測試
 *
 * @Auther: xuminggang
 * @Description: com.yxx.flowable
 * @version: 1.0
 */
@SpringBootTest
@RunWith(SpringRunner.class)
@Data
public class ProcessTest { private static final String IMAGE_TYPE = "png"; @Value("宋體") private String activityFontName; @Value("宋體") private String labelFontName; @Value("宋體") private String annotationFontName; @Autowired private ProcessEngine processEngine;
/** * 例項例項查詢 */ @Test public void testQueryHistory() { HistoryService historyService = processEngine.getHistoryService(); List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery().finished().list(); for (HistoricProcessInstance historicProcessInstance : list) { List
<HistoricTaskInstance> list1 = historyService.createHistoricTaskInstanceQuery() .orderByHistoricTaskInstanceEndTime() .asc() .processInstanceId(historicProcessInstance.getId()) .list(); System.out.println("------------" + historicProcessInstance.getName()); for (HistoricTaskInstance historicTaskInstance : list1) { System.out.println(historicTaskInstance.getName() + historicTaskInstance.getAssignee()); } System.out.println("------------"); } } /** * 完成使用者任務 */ @Test public void testComplete() { TaskService taskService = processEngine.getTaskService(); taskService.complete("10005"); } /** * 認領/申領任務 */ @Test public void testClaimTask() { TaskService taskService = processEngine.getTaskService(); Task task = taskService.createTaskQuery().taskId("20002").singleResult(); System.out.println("task==>" + task.getName() + "==將被lisi認領"); taskService.claim(task.getId(), "lisi"); } /** * 查詢組任務 */ @Test public void testQueryGroupTask() { TaskService taskService = processEngine.getTaskService(); List<Task> list = taskService.createTaskQuery() // .taskCandidateGroup("accountancy") .taskCandidateGroup("management") // .taskAssignee("zhangsan") .list(); for (Task task : list) { System.out.println("taskID==>" + task.getId()); System.out.println("taskName==>" + task.getName()); System.out.println("task-Defi-KEY==>" + task.getTaskDefinitionKey()); System.out.println("----------------------------------"); } } /** * 啟動流程例項 */ @Test public void testStartProcessInstance() { RuntimeService runtimeService = processEngine.getRuntimeService(); ProcessInstance financialReport = runtimeService.startProcessInstanceByKey("financialReport"); } /** * 查詢部署 */ @Test public void testQueryDeployment() { RepositoryService repositoryService = processEngine.getRepositoryService(); List<Deployment> list = repositoryService.createDeploymentQuery().list(); for (Deployment deployment : list) { System.out.println("部署ID===》" + deployment.getId()); System.out.println("部署key===》" + deployment.getKey()); System.out.println("部署名稱===》" + deployment.getName()); System.out.println("部署時間===》" + deployment.getDeploymentTime()); } } /** * 流程定義 * 通過bpmnmodel轉xml * 轉圖片 */ @Test public void testBpmn2Img() throws IOException { DefaultProcessDiagramGenerator defaultProcessDiagramGenerator = new DefaultProcessDiagramGenerator(); RepositoryService repositoryService = processEngine.getRepositoryService(); ProcessDefinition financialReport = repositoryService.createProcessDefinitionQuery().latestVersion().processDefinitionKey("financialReport").singleResult(); BpmnModel bpmnModel = repositoryService.getBpmnModel(financialReport.getId()); // bpmnxml檔案下載 BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter(); byte[] bytes = bpmnXMLConverter.convertToXML(bpmnModel); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); FileOutputStream fileOutputStream = new FileOutputStream(new File("E:\\ideaProject\\study\\flowable\\flowable-boot\\src\\main\\resources\\demo.xml")); IOUtils.copy(byteArrayInputStream, fileOutputStream); // 獲取圖片 InputStream inputStream = defaultProcessDiagramGenerator .generateDiagram(bpmnModel, IMAGE_TYPE, Collections.<String>emptyList(), Collections.<String>emptyList(), activityFontName, labelFontName, annotationFontName, null, 2.0); // 直接轉圖片會存在問題,亂碼 //InputStream inputStream = defaultProcessDiagramGenerator // .generatePngDiagram(bpmnModel); fileOutputStream = new FileOutputStream(new File("E:\\ideaProject\\study\\flowable\\flowable-boot\\src\\main\\resources\\demo.png")); IOUtils.copy(inputStream, fileOutputStream); } /** * 部署 */ @Test public void testDeploy() { RepositoryService repositoryService = processEngine.getRepositoryService(); repositoryService.createDeployment() .addClasspathResource("flow/FinancialReportProcess.bpmn20.xml") .deploy(); } }