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();ui

       1.1-4 .能夠產生RuntimeService spa

                               RuntimeService runtimeService = pocessEngine.getRuntimeService();orm

       1.1-5 .能夠產生TaskServicexml

                              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  資源文件表)                

相關文章
相關標籤/搜索