Activiti工做流(4):編寫一個HelloWorld

1.使用eclipse的activiti插件畫流程圖eclipse

在resource文件夾下新建一個工做流diagramspa

右鍵——new——other...——選擇activiti diagram.net

畫一個簡單的工做流程圖插件

在Event選出一個開始節點startEvent和一個結束節點endEventcode

在中間過程用task裏面的userTask對象

如:blog

 

2.部署流程定義(至關於在頁面選擇bpmn文件上傳部署)ip

 

[java]  view plain  copy
 
  1. ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();  
  2.   
  3. /**部署流程定義*/  
  4. @Test  
  5. public void deploymentProcessDefinition(){  
  6.     Deployment deployment = processEngine.getRepositoryService()//與流程定義和部署對象相關的Service  
  7.                     .createDeployment()//建立一個部署對象  
  8.                     .name("helloworld入門程序")//添加部署的名稱  
  9.                     .addClasspathResource("diagrams/helloworld.bpmn")//從classpath的資源中加載,一次只能加載一個文件  
  10.                     .addClasspathResource("diagrams/helloworld.png")//從classpath的資源中加載,一次只能加載一個文件  
  11.                     .deploy();//完成部署  
  12.     System.out.println("部署ID:"+deployment.getId());//1  
  13.     System.out.println("部署名稱:"+deployment.getName());//helloworld入門程序    
  14. }  

3.啓動流程實例(至關於新建一個流程)

 

 

[java]  view plain  copy
 
  1. ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();  
  2.       
  3.     /**啓動流程實例*/  
  4.     @Test  
  5.     public void startProcessInstance(){  
  6.         //流程定義的key  
  7.         String processDefinitionKey = "helloworld";  
  8.         ProcessInstance pi = processEngine.getRuntimeService()//與正在執行的流程實例和執行對象相關的Service  
  9.                         .startProcessInstanceByKey(processDefinitionKey);//使用流程定義的key啓動流程實例,key對應helloworld.bpmn文件中id的屬性值,使用key值啓動,默認是按照最新版本的流程定義啓動  
  10.         System.out.println("流程實例ID:"+pi.getId());//流程實例ID    101  
  11.         System.out.println("流程定義ID:"+pi.getProcessDefinitionId());//流程定義ID   helloworld:1:4  
  12.     }  

4.查詢當前人的我的任務(至關於查詢代辦列表)

 

 

[java]  view plain  copy
 
  1. ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();  
  2.       
  3. /**查詢當前人的我的任務*/  
  4. @Test  
  5. public void findMyPersonalTask(){  
  6.     String assignee = "王五";  
  7.     List<Task> list = processEngine.getTaskService()//與正在執行的任務管理相關的Service  
  8.                     .createTaskQuery()//建立任務查詢對象  
  9.                     .taskAssignee(assignee)//指定我的任務查詢,指定辦理人  
  10.                     .list();  
  11.     if(list!=null && list.size()>0){  
  12.         for(Task task:list){  
  13.             System.out.println("任務ID:"+task.getId());  
  14.             System.out.println("任務名稱:"+task.getName());  
  15.             System.out.println("任務的建立時間:"+task.getCreateTime());  
  16.             System.out.println("任務的辦理人:"+task.getAssignee());  
  17.             System.out.println("流程實例ID:"+task.getProcessInstanceId());  
  18.             System.out.println("執行對象ID:"+task.getExecutionId());  
  19.             System.out.println("流程定義ID:"+task.getProcessDefinitionId());  
  20.             System.out.println("########################################################");  
  21.         }  
  22.     }  
  23. }  

5.完成個人任務(至關於提交流程,流程進入下一環節)

 

 

[java]  view plain  copy
 
  1. ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();  
  2.   
  3.   
  4. /**完成個人任務*/  
  5. @Test  
  6. public void completeMyPersonalTask(){  
  7.     //任務ID  
  8.     String taskId = "302";  
  9.     processEngine.getTaskService()//與正在執行的任務管理相關的Service  
  10.                 .complete(taskId);  
  11.     System.out.println("完成任務:任務ID:"+taskId);  
  12. }  
相關文章
相關標籤/搜索