Activiti——HelloWorld-模拟流程执行(三)
生活随笔
收集整理的這篇文章主要介紹了
Activiti——HelloWorld-模拟流程执行(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.流程圖
| 【流程原圖】 | 【注釋圖】 |
| ?? |
??
2.部署流程定義
/*** 部署流程定義*/@Testpublic void deploymentProcessDefinition() {Deployment deployment = processEngine.getRepositoryService()// 與流程定義和部署對象相關的Service.createDeployment()// 創建一個部署對象.name("HelloWorld入門程序")// 添加部署的名稱.addClasspathResource("diagrans/helloword.bpmn")// 從類路徑(classpath)下加載文件,一次只能加載一個文件.addClasspathResource("diagrans/helloword.png")// 從類路徑(classpath)下加載文件,一次只能加載一個文件.deploy();// 完成部署System.out.println("=======打印部署對象信息========");System.out.println("流程ID:" + deployment.getId());// 流程ID:2501System.out.println("流程部署名稱:" + deployment.getName());// 流程部署名稱:HelloWorld入門程序System.out.println(deployment);// DeploymentEntity[id=1,name=HelloWorld入門程序]}
這里使用RepositoryService部署流程定義addClasspathResource 從類路徑(classpath)下加載文件,一次只能加載一個文件
3.啟動流程實例
/*** 啟動流程實例*/@Testpublic void startProcessInstance() {// 流程定義的KeyString processDefinitionKey = "helloworld";ProcessInstance processInstance = processEngine.getRuntimeService()// 與正在執行的流程實例和執行對象相關的Service.startProcessInstanceByKey(processDefinitionKey);// 使用流程定義的key啟動流程實例,key對應helloworld.bpmn文件中id的屬性System.out.println("流程實例ID:" + processInstance.getId());// 流程實例ID:5001System.out.println("流程定義ID:" + processInstance.getProcessDefinitionId());// 流程定義ID:helloworld:1:2504}
這里使用RuntimeService啟動流程實例
4.查看個人任務
/*** 查看我的個人任務*/@Testpublic void queryMyTasks() {String assignee = "張三";List<Task> list = processEngine.getTaskService()// 獲得任務相關的Service.createTaskQuery()// 創建任務查詢對象.taskAssignee(assignee)// 指定個人任務查詢:辦理人.list();// 任務列表打印if (list != null && list.size() > 0) {for (Task task : list) {System.out.println("任務ID:" + task.getId());System.out.println("任務名稱:" + task.getName());System.out.println("任務的創建時間:" + task.getCreateTime());System.out.println("任務的辦理人:" + task.getAssignee());System.out.println("流程實例ID:" + task.getProcessInstanceId());System.out.println("執行對象ID:" + task.getExecutionId());System.out.println("流程定義ID:" + task.getProcessDefinitionId());System.out.println("==============快樂分割線=================");}}/**打印預期效果:任務ID:5004任務名稱:提交申請任務的創建時間:Mon Jun 05 16:16:47 CST 2017任務的辦理人:張三流程實例ID:5001執行對象ID:5001流程定義ID:helloworld:1:2504==============快樂分割線=================*/}
這里使用TaskService完成任務查詢
4.完成我的任務
/*** 完成我的任務*/@Testpublic void completeMyTasks() {String taskId = "5004";processEngine.getTaskService()//獲取正在執行任務管理相關的Service.complete(taskId);System.out.println("完成的任務ID:"+taskId);}
備注:此時流程依次執行的順序是
【張三】發起申請(啟動流程實例)——> 【張三】查看個人任務并完成任務——> 【李四】查看個人任務并完成任務——>【王五】查看個人任務并完成任務——>流程結束。
源碼下載
總結
以上是生活随笔為你收集整理的Activiti——HelloWorld-模拟流程执行(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 春秋作下一句是什么啊?
- 下一篇: 红棉吉他有一款g273多少钱?