日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
體驗(yàn)一把Flowable三種常見(jiàn)網(wǎng)關(guān)

Flowable 中網(wǎng)關(guān)類(lèi)型其實(shí)也不少,常見(jiàn)的主要有三種類(lèi)型,分別是:

創(chuàng)新互聯(lián)建站-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比石河子網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式石河子網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋石河子地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴(lài)。

  • 排他網(wǎng)關(guān)
  • 并行網(wǎng)關(guān)
  • 包容網(wǎng)關(guān)

這三個(gè)里邊最常用的當(dāng)然就是排他網(wǎng)關(guān)了,今天松哥就來(lái)和小伙伴們聊一聊這三種網(wǎng)關(guān),一起來(lái)體驗(yàn)一把這三種網(wǎng)關(guān)各自的特征。

1. 排他網(wǎng)關(guān)

首先就是排他網(wǎng)關(guān)了,這個(gè)也叫互斥網(wǎng)關(guān),長(zhǎng)得像下圖這樣:

排他網(wǎng)關(guān)可以有 N 個(gè)入口,但是只有一個(gè)有效出口。

松哥舉一個(gè)例子:

假設(shè)我有一個(gè)請(qǐng)假流程,請(qǐng)假 1 天,組長(zhǎng)審批,請(qǐng)假小于 3 天,項(xiàng)目經(jīng)理審批,請(qǐng)假大于 3 天,總監(jiān)審批,據(jù)此,我們可以繪制如下流程圖:

在這個(gè)流程圖中,當(dāng)流程從排他網(wǎng)關(guān)出來(lái)的時(shí)候,我們?cè)O(shè)置一個(gè)變量,根據(jù)變量的值,來(lái)決定下一個(gè)走哪一個(gè) Task,例如組長(zhǎng)審批,我們做如下配置:

這個(gè)流條件表示當(dāng) days 這個(gè)變量的值小于等于 1 的時(shí)候,就會(huì)進(jìn)入到組長(zhǎng)審批這個(gè) Task。

按照類(lèi)似的方式,我們來(lái)設(shè)置經(jīng)理審批:

最后,總監(jiān)審批的條件如下:

最終,我們來(lái)看下這個(gè)流程對(duì)應(yīng)的 XML 文件,如下:


測(cè)試流程
















1 && days<=3}]]>


3}]]>

可以看到,在 sequenceFlow 標(biāo)簽中,有一個(gè) conditionExpression 標(biāo)簽,這個(gè)標(biāo)簽的內(nèi)容就是具體的條件了。

現(xiàn)在,我們部署一下這個(gè)流程,然后按照如下方式來(lái)啟動(dòng):

@Test
void test01(){
Map variables = new HashMap<>();
variables.put("days", 3);
ProcessInstance pi = runtimeService.startProcessInstanceByKey("demo01", variables);
logger.info("id:{},activityId:{}", pi.getId(), pi.getActivityId());
}

注意,這個(gè)啟動(dòng)的時(shí)候,傳入一個(gè) days 變量,系統(tǒng)將來(lái)會(huì)根據(jù)這個(gè)變量來(lái)決定這個(gè)流程要走到哪一個(gè) Task。流程啟動(dòng)成功之后,我們?nèi)ビ^(guān)察 ACT_RU_TASK 表,就可以看到流程的執(zhí)行是否和我們所預(yù)想的一致。

2. 并行網(wǎng)關(guān)

并行網(wǎng)關(guān),從名字上大概也能看出來(lái),這種網(wǎng)關(guān)一般用在并行任務(wù)上,并行網(wǎng)關(guān)如下圖:

并行網(wǎng)關(guān)一般是成對(duì)出現(xiàn)的,一個(gè)出現(xiàn)的并行網(wǎng)關(guān)用來(lái)分流,第二個(gè)出現(xiàn)的并行網(wǎng)關(guān)用來(lái)聚合。

我畫(huà)一個(gè)簡(jiǎn)單的并行網(wǎng)關(guān)的例子,如下圖:

小伙伴們看到,這是一個(gè)簡(jiǎn)化的生產(chǎn)筆記本的流程圖,當(dāng)屏幕和鍵盤(pán)都生產(chǎn)好之后,再進(jìn)行組裝,整個(gè)流程圖中存在兩個(gè)并行網(wǎng)關(guān)(成對(duì)出現(xiàn))。

在這個(gè)流程圖中,連接線(xiàn)上是不需要設(shè)置條件的(不同于拍他網(wǎng)關(guān)),這里即使你設(shè)置了條件,這個(gè)條件也是不會(huì)生效的。

我們來(lái)看下這個(gè)并行網(wǎng)關(guān)流程圖對(duì)應(yīng)的 XML 文件,如下:


測(cè)試流程


























現(xiàn)在我們把這個(gè)流程部署并啟動(dòng)。

流程啟動(dòng)成功之后,我們發(fā)現(xiàn)在 ACT_RU_TASK 表中有兩個(gè)需要執(zhí)行的 Task,如下圖:

這兩個(gè) Task,如果只執(zhí)行掉其中一個(gè),那么還剩下另外一個(gè) Task,如果兩個(gè)都執(zhí)行了,那么你就會(huì)看到一個(gè)新的 Task,如下圖(兩個(gè)并行任務(wù)執(zhí)行完成后,進(jìn)入到下一個(gè)任務(wù)):

好啦,這就是并行網(wǎng)關(guān)。

3. 包容網(wǎng)關(guān)

包容網(wǎng)關(guān),有時(shí)候也叫相容網(wǎng)關(guān)、兼容網(wǎng)關(guān)等,如下圖:

包容誰(shuí)呢?包容排他網(wǎng)關(guān)和并行網(wǎng)關(guān)。也就是說(shuō),這種包容網(wǎng)關(guān)可以根據(jù)實(shí)際條件轉(zhuǎn)為排他網(wǎng)關(guān)或者并行網(wǎng)關(guān)。

舉個(gè)栗子:

假如說(shuō)報(bào)銷(xiāo)金額大于 500,zhangsan 審批,報(bào)銷(xiāo)金額大于 1000,則需要 zhangsan 和 lisi 同時(shí)審批,且 zhangsan 和 lisi 審批無(wú)先后順序。

據(jù)此,我繪制如下流程圖:

在報(bào)銷(xiāo)金額大于 500 上設(shè)置如下條件:

大于 1000 上設(shè)置如下條件:

接下來(lái)我們來(lái)部署好這個(gè)流程。

部署好之后,我們首先來(lái)啟動(dòng)流程,第一次啟動(dòng)的時(shí)候,我們?cè)O(shè)置報(bào)銷(xiāo)金額為 666,如下:

@Test
void test01(){
Map variables = new HashMap<>();
variables.put("money", 666);
ProcessInstance pi = runtimeService.startProcessInstanceByKey("demo01", variables);
logger.info("id:{},activityId:{}", pi.getId(), pi.getActivityId());
}

流程啟動(dòng)之后,我們?cè)?nbsp;ACT_RU_TASK 表中可以看到,該 zhangsan 審批了,如下:

zhangsan 審批之后,就是 wangwu 審批了,我就不演示了。

假設(shè)我們啟動(dòng)流程的時(shí)候,報(bào)銷(xiāo)金額為 2000,如下:

@Test
void test01(){
Map variables = new HashMap<>();
variables.put("money", 2000);
ProcessInstance pi = runtimeService.startProcessInstanceByKey("demo01", variables);
logger.info("id:{},activityId:{}", pi.getId(), pi.getActivityId());
}

那么此時(shí)你就會(huì)看到,在 ACT_RU_TASK 表中,出現(xiàn)了兩條記錄,分別是 zhangsan 審批和 lisi 審批,此時(shí)這兩個(gè)審批就是一個(gè)并行任務(wù)了:

接下來(lái)就按并行任務(wù)的模式來(lái),這兩個(gè)人都審批了,才會(huì)進(jìn)入到 wangwu 審批。

這就是兼容網(wǎng)關(guān)的特點(diǎn),即根據(jù)實(shí)際情況,會(huì)變成排他網(wǎng)關(guān)或者并行網(wǎng)關(guān)。

好啦,三種常見(jiàn)的網(wǎng)關(guān)就和小伙伴們分享完啦,感興趣的小伙伴趕緊試一試吧~


文章名稱(chēng):體驗(yàn)一把Flowable三種常見(jiàn)網(wǎng)關(guān)
文章鏈接:http://www.dlmjj.cn/article/dpdisgd.html