Activiti5工作流引擎

1.核心API

    1.1ProcessEngine

       1.1-1 .PocessEngine是Activiti中最核心的類,其他的類都是由他而來;

       1.1-2 .產生方式:ProcessEngine  processEngine = ProcessEngines.getDefaultProcessEngine();調用         ProcessEngine的getDefaultProcessEngine()方法會自動加載classpath下名爲activit.cfg.xml文件;

       1.1-3 .可以產生:RepositoryService    

                               RepositoryService repositoryService =pocessEngine.getRepositoryService();

       1.1-4 .可以產生RuntimeService 

                               RuntimeService runtimeService = pocessEngine.getRuntimeService();

       1.1-5 .可以產生TaskService

                              TaskService taskService = processEngine.getTaskService();

      各個Service的作用   :

                            RepositoryService  管理流程定義
                            RuntimeService      執行管理 包括啓動,推進,刪除流程實例等
                            TaskService             任務管理
                            IdentityService        組織機構管理
                            HistoryService          歷史管理(執行完的數據管理)
                            FormService             一個可選服務,任務表單管理

                           ManagerService     

  1.2.RepositoryService   

               是Activiti的倉庫服務類。所謂的倉庫服務類就是指倉庫流程定義文檔的兩個文件:bpmn文件和流程圖片
             可以產生DeploymentBuilder,用來定義流程部署的相關參數
                          DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
                         刪除流程定義  repositoryService.deleteDepioyment(deploymentId);

  1.3RuntimeService

              是Activitie流程執行服務類,可以從這個服務類中獲取很多相關流程執行相關信息;

  1.4TaskService 

              是Activitie 任務服務類,可以從類中獲取任務的信息

  1.5HistoryService

              是activitie 查詢歷史信息的類。在一個流程執行完之後,這個對象爲我們提高查詢歷史信息;

  1.6ProcessDefinition

             是activitie流程定義類,可以從這裏獲取資源文件

  1.7ProcessIntance

             代表流程定義的執行實例,流程實例就是一個流程從開始到結束的最大流程分支,即一個流程中流程實例只有一個;

  5.8Execution

           activiti用這個對象去描述流程執行的每個節點。在沒有併發的情況下,Execution就是同ProcessInstsnce。
 流程按照流程定義的規則執行一次的過程,就可以表示執行對象Execution
               ProcessInstance 的源代碼
             public  interface  ProcessInstance extends Execution{    }

   總結

     在一個流程定義中,執行對象可以存在多個,但是流程實例只能有一個;
     當流程按照規則只執行一次的時候,那麼流程實例就是流程對象;

                     

2.基本流程實例

   2.1:流程圖

           開始------提交申請-----審批(部門經理)-----審批(經理)

   2.2:部署流程定義

                 獲取流程引擎
             ProcessEngine   processEngine  =ProcessEngine.getDefaultProcessEngine();
             獲取倉庫服務的實例
            Deployment   deployment   = processEngine.getRepositoryService().createDeployment()
                                                     .addClasspathResource("*.bpmn").addClasspathResource("*.png")  
                                                     .deploy();

   2.3:啓動流程實例

          //指定任務辦理者

           String assignee ="XX";

          //獲取流程引擎對象

           ProcessEngine   processEngine =ProcessEngine.getDefaultProcessEngine();

          //查詢任務列表

          List<Task> taskList =processEngine.getTaskService().createTaskQuery().taskAssignee(xx).list(); 

          //遍歷查看內容

         For(Task task : taskList){

           task.getId();

           task.getName();

          }         


   2.4 辦理任務

        String taskId ="12";

       ProcessEngine  processEngine = ProcessEngine.getDefaultProcessEngine();

       processEngince.getTaskService().complete(taskId);
             

    3.部署流程定義(classpath路徑加載文件)

         --先獲取流程引擎對象:

         --通過流程引擎獲取一個RepositoryService對象(也就是倉庫對象)

         --由倉庫的服務對象產生一個部署對象配置對象,用來封裝部署操作的相關對象;

         --這是一個 鏈式編程,在部署配置對象中設置顯示名,上傳流程定義規則文件;

         --向數據庫表中存放流程定義的規則信息

         --分別操作三張表 (act_redeployment 部署對象表 )(act_re_procdef 流程定義表)
             (act_ge_bytearray  資源文件表)                









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章