2.activiti核心API使用

1.ProcessEngine 最核心的類,其他類都需借助它

    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

getDefaultProceeEngine方法時會自動加載classpath下名為activiti.cfg.xml文件
該對象可獲取各個service

2.RepositoryService
是Activiti的倉庫服務(wù)類。所謂的倉庫指流程定義文檔的兩個文件:bpmn文件和流程圖片。

(1)創(chuàng)建
     RepositoryService repositoryService =  processEngine.getRepositoryService();
(2)可以產(chǎn)生DeploymentBuilder,用來定義流程部署的相關(guān)參數(shù)
     DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
(3)刪除流程定義
   repositoryService.deleteDeployment(deploymentId);

3.RuntimeService
是activiti的流程執(zhí)行服務(wù)類。可以從這個服務(wù)類中獲取很多關(guān)于流程執(zhí)行相關(guān)的信息。
4.TaskService
是activiti的任務(wù)服務(wù)類??梢詮倪@個類中獲取任務(wù)的信息。
5.HistoryService
是activiti的查詢歷史信息的類。在一個流程執(zhí)行完成后,這個對象為我們提供查詢歷史信息。
6.ProcessDefinition
流程定義類??梢詮倪@里獲得資源文件等。
7.ProcessInstance
代表流程定義的執(zhí)行實例。如范冰冰請了一天的假,她就必須發(fā)出一個流程實例的申請。一個流程實例包括了所有的運行節(jié)點。我們可以利用這個對象來了解當前流程實例的進度等信息。流程實例就表示一個流程從開始到結(jié)束的最大的流程分支,即一個流程中流程實例只有一個。
8.Execution
Activiti用這個對象去描述流程執(zhí)行的每一個節(jié)點。在沒有并發(fā)的情況下,Execution就是同ProcessInstance。流程按照流程定義的規(guī)則執(zhí)行一次的過程,就可以表示執(zhí)行對象Execution。
9.helloword
(1)畫流程圖


2.png

(2)部署流程定義

    Deployment deployment = processEngine.getRepositoryService()//與流程定義和部署對象相關(guān)的Service
                .createDeployment()//創(chuàng)建一個部署對象
                .name("測試Helloword")//添加部署的名稱
                .addClasspathResource("diagrams/helloworld.bpmn")//從classpath的資源中加載,一次只能加載一個文件
                .addClasspathResource("diagrams/helloworld.png")//從classpath的資源中加載,一次只能加載一個文件
                .deploy();//完成部署

(3)啟動實例

    @Test
    public void startProcessInstance() {
        //流程定義的key
        String processDefinitionKey = "helloworld1";
        //與正在執(zhí)行的流程實例和執(zhí)行對象相關(guān)的Service
        //使用流程定義的key啟動流程實例,key對應(yīng)helloworld.bpmn文件中id的屬性值,使用key值啟動,默認是按照最新版本的流程定義啟動
        ProcessInstance pi = processEngine.getRuntimeService()
                .startProcessInstanceByKey(processDefinitionKey);
        //流程實例ID    101
        System.out.println("流程實例ID:" + pi.getId());
        //流程定義ID   helloworld:1:4
        System.out.println("流程定義ID:" + pi.getProcessDefinitionId());
    }

(4)查看我的個人任務(wù)

 String assignee = "張三";
        List<Task> list = processEngine.getTaskService()//與正在執(zhí)行的任務(wù)管理相關(guān)的Service
                .createTaskQuery()//創(chuàng)建任務(wù)查詢對象
                .taskAssignee(assignee)//指定個人任務(wù)查詢,指定辦理人
                .list();
        if (list != null && list.size() > 0) {
            for (Task task : list) {
                System.out.println("任務(wù)ID:" + task.getId());
                System.out.println("任務(wù)名稱:" + task.getName());
                System.out.println("任務(wù)的創(chuàng)建時間:" + task.getCreateTime());
                System.out.println("任務(wù)的辦理人:" + task.getAssignee());
                System.out.println("流程實例ID:" + task.getProcessInstanceId());
                System.out.println("執(zhí)行對象ID:" + task.getExecutionId());
                System.out.println("流程定義ID:" + task.getProcessDefinitionId());
                System.out.println("########################################################");
            }
        }

(5) 完成任務(wù)

       //任務(wù)ID
       String taskId = "1202";
       //與正在執(zhí)行的任務(wù)管理相關(guān)的Service
       processEngine.getTaskService()
               .complete(taskId);
       System.out.println("完成任務(wù):任務(wù)ID:" + taskId);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 30,194評論 8 265
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,309評論 6 13
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,621評論 1 32
  • 不知何處是開始 也不知何處是結(jié)束 我行走在無邊的曠野 追尋著迷失的夢 一圈,一圈又一圈 看,他就在前面 快到了,就...
    怪咖_gj閱讀 198評論 0 0

友情鏈接更多精彩內(nèi)容