Activiti學習筆記3 — 流程定義

1、建立流程引擎對象ide

private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

2、發佈一個流程測試

 1 /**
 2      * 二、發佈一個流程 會在三張表中產生數據 
 3      *         act_ge_bytearray: 新增兩條記錄,保存規則定義文件,二進制文件 
 4      *         act_re_deployment: 新增一條記錄 
 5      *         act_re_procdef: 新增一條記錄
 6      */
 7     @Test
 8     public void testDeployProcess() {
 9         // 獲取RepositoryService實例
10         RepositoryService repositoryService = processEngine.getRepositoryService();
11         // 建立發佈對象
12         DeploymentBuilder builder = repositoryService.createDeployment();
13         // 加載發佈資源
14         builder.name("請假流程測試") // 設置流程顯示別名
15                 .addClasspathResource("leave.bpmn") // 設置流程規則文件
16                 .addClasspathResource("leave.png"); // 設置流程規則的圖片
17         // 發佈流程
18         builder.deploy();
19     }
View Code

3、查看流程定義ui

 1 /**
 2      * 三、查看流程定義 ID生成規則: {Key} + {Version} + {隨機數}
 3      */
 4     @Test
 5     public void testQueryProcessDifination() {
 6         // 建立倉庫服務實例
 7         RepositoryService repositoryService = processEngine.getRepositoryService();
 8         // 查詢
 9         ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
10         String key = "leaveflow";
11         String category = "com.mcs.Flow.Leave";
12         List<ProcessDefinition> list = query // 過濾條件
13                 .processDefinitionKey(key).processDefinitionCategory(category)
14                 // 排序條件
15                 .orderByProcessDefinitionVersion().asc()
16                 // 分頁顯示
17                 // .listPage(0, 10)
18                 // 返回結果
19                 .list();
20         long count = query.count();
21 
22         logger.info("Count:" + count);
23 
24         for (ProcessDefinition definition : list) {
25             logger.info("Id:" + definition.getId());
26             logger.info("Name:" + definition.getName());
27             logger.info("Category:" + definition.getCategory());
28             logger.info("Key:" + definition.getKey());
29             logger.info("ResourceName:" + definition.getResourceName());
30             logger.info("Version:" + definition.getVersion());
31         }
32 
33     }
View Code

4、流程定義刪除spa

 1 /**
 2      * 四、流程定義刪除
 3      */
 4     @Test
 5     public void testDeleteProcessDifination() {
 6         // 建立倉庫服務實例
 7         RepositoryService repositoryService = processEngine.getRepositoryService();
 8 
 9         String deploymentId = "5001";
10         // 普通刪除,只能刪除沒有任何關聯關係的的流程規則,若當前有流程在執行,則刪除失敗
11         repositoryService.deleteDeployment(deploymentId);
12         // 級聯刪除,刪除與之相關的全部信息,包括正在執行的流程與歷史信息
13         // repositoryService.deleteDeployment(deploymentId, true);
14     }
View Code

5、查看流程圖code

 1 /**
 2      * 五、查看流程圖
 3      * @throws IOException 
 4      */
 5     @Test
 6     public void testQueryProcessDifinationImage() throws IOException {
 7         // 建立倉庫服務實例
 8         RepositoryService repositoryService = processEngine.getRepositoryService();
 9 
10         // 經過部署ID獲取全部資源信息
11         String deploymentId = "10001";
12         String resourceName = "";
13         List<String> names = repositoryService.getDeploymentResourceNames(deploymentId);
14         for (String name : names) {
15             if (name.indexOf(".png") >= 0) {
16                 resourceName = name;
17                 logger.info(name);
18             }
19         }
20 
21         if (resourceName != "") {
22             InputStream image = repositoryService.getResourceAsStream(deploymentId, resourceName);
23 
24             FileUtils.copyInputStreamToFile(image,new File("d:/test.png"));
25         }
26 
27     }
View Code
相關文章
相關標籤/搜索