成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Flowable 中 ReceiveTask 怎么玩?

開發 前端
ReceiveTask 往往適用于一些不明確的阻塞,例如:一個復雜的計算需要等待很多條件,這些條件是需要人為來判斷是否可以執行,而不是直接執行,這個時候,工作人員如果判斷可以繼續了,那么就 Trigger 一下使流程繼續向下執行。

在之前的案例中,松哥和大家舉例最多的 Task 主要是 UserTask 和 ServiceTask,ReceiveTask 雖然也和大家提過但是沒有仔細講過,今天我們就來捋一捋 ReceiveTask 在 Flowable 中到底怎么玩。

1. 使用場景

接受任務(Receive Task),接觸過 Flowable 的小伙伴應該是見過或者聽說過,它的圖標如下圖:

圖片

ReceiveTask 可以算是 Flowable 中最簡單的一種任務,當該任務到達的時候,它不做任何邏輯,而是被動地等待用戶 Trigger。

ReceiveTask 往往適用于一些不明確的阻塞,例如:一個復雜的計算需要等待很多條件,這些條件是需要人為來判斷是否可以執行,而不是直接執行,這個時候,工作人員如果判斷可以繼續了,那么就 Trigger 一下使流程繼續向下執行。

基于以上介紹,ReceiveTask 還有一個中文名字叫做等待任務,也就是說,流程走到 ReceiveTask 這個節點的時候,就卡住了,需要用戶手動點一下,流程才會繼續向下走。

2. 實踐

2.1 繪制流程圖

我們繪制一個簡單的流程圖來看下 ReceiveTask 到底是啥樣子,流程圖如下:

圖片

ReceiveTask 圖標上有一個信封。

小伙伴們繪制的時候,首先選擇用戶任務:

圖片

然后點擊設置按鈕,將用戶任務切換為 ReceiveTask 即可:

圖片

繪制完成后,我們下載這個流程圖對應的 XML 文件。

來看看,帶 ReceiveTask 的流程圖是下面這樣的:

<process id="receiveTask_demo" name="接收任務測試流程" isExecutable="true">
<documentation>接收任務測試流程</documentation>
<startEvent id="startEvent" flowable:formFieldValidation="true"></startEvent>
<sequenceFlow id="sid-9E7B327E-EFC8-4D29-8C6F-157D5E1B7A4E" sourceRef="startEvent" targetRef="todaySales"></sequenceFlow>
<receiveTask id="todaySales" name="統計今日銷售額"></receiveTask>
<receiveTask id="sendMsg" name="發送今日銷售業績給老板"></receiveTask>
<endEvent id="endEvent"></endEvent>
<sequenceFlow id="s2" sourceRef="todaySales" targetRef="sendMsg"></sequenceFlow>
<sequenceFlow id="s3" sourceRef="sendMsg" targetRef="endEvent"></sequenceFlow>
</process>

2.2 部署

這個松哥在之前的文章中已經反復介紹過多次了,這里就不再贅述了,大家參考我們之前的文章部署并啟動上面這個流程。

2.3 分析

當流程啟動之后,按照我們前面文章的分析,我們先去數據庫中 ACT_RU_TASK? 表進行查看,發現該表空空如也。也就是 ReceiveTask 并不會被記錄在 ACT_RU_TASK? 表中,他們只是單純的被記錄在 ACT_RU_EXECUTION 表中,因為在該表中,我們可以查看 ReceiveTask 的記錄。

對于 ReceiveTask 的觸發方式也很簡單,如下:

@Test
void test10() {
List<Execution> list = runtimeService.createExecutionQuery().activityId("todaySales").list();
for (Execution execution : list) {
runtimeService.trigger(execution.getId());
}
}

由于 ReceiveTask 的觸發需要傳入的參數是執行實例 ID 而不是流程實例 ID,所以我們要查詢出來當前待觸發的執行實例 ID。具體的查詢方式就是根據 ReceiveTask 的節點名稱去查詢。

查詢到執行實例 ID 之后,調用 trigger 方法完成觸發,使得流程繼續向下走。

好啦,現在流程進入到發送今日銷售業績給老板這個環節了,老辦法繼續查詢并執行:

@Test
void test10() {
List<Execution> list = runtimeService.createExecutionQuery().activityId("sendMsg").list();
for (Execution execution : list) {
runtimeService.trigger(execution.getId());
}
}

這個執行完層后,這個流程就結束了?,F在我們去查看 ACT_RU_ACTINST? 表已經空了,查看 ACT_RU_EXECUTION 表也空了。

責任編輯:武曉燕 來源: 江南一點雨
相關推薦

2022-11-14 10:44:59

HTMLFlowable外置

2022-02-18 11:05:25

Jpa配置Address

2018-06-26 15:58:39

進程內緩存緩存數據

2021-10-27 15:04:27

OpenTTD模型火車開源

2017-09-19 14:13:53

Snapshot數據庫HBase

2022-04-13 10:05:48

網關Flowable事件訂閱

2012-06-26 11:27:40

Windows Pho

2018-02-28 10:05:00

AI電商業務人臉識別

2020-11-16 07:15:41

Linux權限管理

2017-03-28 11:39:58

深信服超融合平臺

2023-02-13 18:32:59

AI繪畫

2020-02-12 11:34:56

架構平滑上云機房遷移

2021-01-20 05:35:08

PythonMock微服務

2022-05-30 16:19:26

C#多態底層虛方法

2022-06-21 14:18:06

RBACTienChin項目

2011-07-10 14:01:45

復合一體機技巧

2011-08-31 14:41:37

憤怒的小鳥小游戲android游戲

2023-05-03 21:14:05

UbuntuwindowsIntel

2015-12-16 18:07:09

樂視體育

2020-05-28 15:41:48

微軟C+語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成人免费在线视频 | 午夜av电影 | 国产精品美女久久久久久免费 | 国产精品夜间视频香蕉 | 国产乱码精品一区二区三区忘忧草 | 中文字幕精品一区二区三区精品 | 国产精品成av人在线视午夜片 | 激情五月综合 | 国产成人精品区一区二区不卡 | 色视频在线观看 | 色爱综合网| 欧美综合久久 | 在线免费观看成人 | 亚洲精品一级 | 亚洲综合久久久 | 青青草华人在线视频 | 久久久91 | 欧美激情视频一区二区三区在线播放 | 日韩午夜网站 | 欧产日产国产精品v | 国产一区在线免费 | 国产一区二区三区在线 | 天天干干 | 日韩精品久久一区二区三区 | 亚洲精品aⅴ | 日韩精品一区二区三区中文在线 | 插插宗合网 | www.久久精品视频 | jav成人av免费播放 | 777777777亚洲妇女| 中文字幕在线观看精品 | 色婷婷一区 | 色资源在线 | 国产精品一区在线观看 | www日本在线 | 成人动慢| 免费国产视频 | 九九久久99 | 中文字幕人成乱码在线观看 | 久久99深爱久久99精品 | 国产欧美精品在线观看 |