亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Activiti如何啟動流程并使流程前進

發布時間:2020-10-20 16:51:41 來源:腳本之家 閱讀:189 作者:程序曉猿 欄目:編程語言

一、流程和任務的關系

以下是一個簡單的請假流程圖,其中有一個開始事件,兩個用戶任務,一個結束事件。

Activiti如何啟動流程并使流程前進

啟動流程后,activiti會自動創建第一個流程節點的用戶任務,然后我們完成第一個用戶任務流程就會前進到下一個流程節點,創建第二個節點的流程任務并刪除第一個流程任務。

二、開啟流程

activiti提供了一個RuntimeService服務組件來在流程運行時對流程實例進行管理與控制。開啟流程就需要使用其中的api

2.1根據流程定義key開啟流程

上一篇博客中說道了一個流程部署成功后,會在部署信息表act_re_deployment和流程定義表act_re_procdef中插入記錄。流程定義key就是act_re_procdef表中的KEY_字段的值。

Activiti如何啟動流程并使流程前進

當表中存在KEY_字段相同的記錄時,activiti會選擇版本號 VERSION_最新的一條流程定義記錄來開啟流程

  /**
   * 開啟流程,根據流程定義key開啟流程,
   * 如果流程定義表中有多個相同的流程定義key,activiti會根據版本號字段VERSION_選擇最新的版本來開啟流程
   */
  @Test
  public void test1() {
    String processDefinitionKey="process";
    //開啟流程,得到流程實例對象
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey);
    System.out.println(processInstance);
  }

activiti用ProcessInstance這個接口來描述開啟流程后得到的流程實例。

三、查詢用戶任務

開頭說到了開啟流程后會創建第一個流程節點的用戶任務,所以可以使用activiti提供的另一個服務組件TaskService來查詢用戶任務,TaskService中提供了和任務處理相關的api

3.1 TaskQuery

activiti提供了這個接口來封裝任務查詢相關的api,可以通過TaskService來獲取它的實現類對象

TaskQuery taskQuery = taskService.createTaskQuery();

然后taskQuery這個查詢對象的使用和activiti的其他查詢對象類似,先指定查詢條件,再執行查詢。這里我根據任務的代理人進行查詢,一個任務只能有一個代理人

  /**
   * 查詢開啟流程后自動創建的任務
   */
  @Test
  public void test2() {
    //根據任務的代理人進行查詢,一個任務的代理人是唯一的
    Task task = taskService.createTaskQuery().taskAssignee("tom").singleResult();
    System.out.println(task);
  }

activiti用Task來封裝任務對象,對應的是act_ru_task這張表的記錄。創建任務后會在這張表中插入一條記錄。

四、完成任務

可以使用taskService中的方法來完成當前任務,使流程向下一個節點移動。完成任務時需要給定任務id即act_ru_task表的主鍵Id,所以完成任務時可以先通過查詢方法給定條件查詢出一個任務對象,再完成這個任務。

  /**
   * 完成任務,使流程前進到下一個流程節點,并創建下一個節點的任務對象
   */
  @Test
  public void test3() {
    String taskId="4502";
    taskService.complete(taskId);
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

古田县| 华安县| 绥棱县| 崇阳县| 博乐市| 桓仁| 云霄县| 衡水市| 祥云县| 临清市| 普定县| 高邑县| 晋宁县| 南川市| 台中市| 东乡县| 察雅县| 鸡泽县| 靖安县| 邻水| 景洪市| 玛曲县| 德惠市| 阜阳市| 拜泉县| 隆德县| 华阴市| 新野县| 古交市| 绿春县| 卢氏县| 太白县| 东莞市| 东乌珠穆沁旗| 越西县| 乌拉特中旗| 淮滨县| 曲麻莱县| 保康县| 武胜县| 县级市|