activiti操作入門文檔

1.新建一個(gè)流程實(shí)例:

模型名稱:由用戶自定義輸入

模型分類:由用戶自定義選擇

模型key:需要使用審批流程的功能模塊的實(shí)體類名稱(比如請(qǐng)假流程,他的實(shí)體類為L(zhǎng)eave)

模型描述:由用戶自定義輸入


2.解釋審批流首界面屬性含義:

流程名稱:生成的審批流png圖片的后綴,就是一個(gè)標(biāo)識(shí)

名稱:生成審批流文件的前綴,就是一個(gè)標(biāo)識(shí)

描述:目前審批流實(shí)例描述

流程作者:由用戶自定義輸入

流程版本:目前這一版的bpmn.xml的版本,就是一個(gè)標(biāo)識(shí),不是流程模型的版本

目標(biāo)命名空間:bpmn.xml中的targetNameSpace,用來(lái)區(qū)分bpmn.xml文件的,自定義輸入即可

執(zhí)行監(jiān)聽器:業(yè)務(wù)流程運(yùn)行中監(jiān)聽整個(gè)開始,結(jié)束,連線(全局)

事件監(jiān)聽器:選擇流程實(shí)例中的事件進(jìn)行監(jiān)聽(一個(gè)流程實(shí)例中的所有內(nèi)置事件)

信號(hào)定義:定義一些信號(hào)的引用給信號(hào)事件使用,就是讓信號(hào)事件使用我這邊定義的信號(hào)

消息定義:定義一些消息的引用給消息事件使用,跟上面那個(gè)一樣的


3.線含義解釋

流向線:

順序流:也就是單向的連線,比較常用

關(guān)聯(lián)流:跟具體的某個(gè)活動(dòng)進(jìn)行關(guān)聯(lián)比如我那個(gè)補(bǔ)償事件就是一個(gè)做關(guān)聯(lián)用的


4.開始事件

id:當(dāng)前這個(gè)活動(dòng)的id,意思是什么呢就是一個(gè)Id標(biāo)識(shí)相當(dāng)于跟任務(wù)的key一樣,必須唯一,不填內(nèi)部生成一個(gè)sid拼接activiti內(nèi)部規(guī)則生成的唯一id,并且有命名規(guī)則:要以字母或下劃線或(-)字符開頭,后接 XML 規(guī)范中允許的任意字母數(shù)字以清、重音字符展父、變音符號(hào)纹冤、句點(diǎn) (.)陵叽、連字符(-)和下劃線 (_) 的組合。

名稱:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)名稱

描述:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)描述

執(zhí)行監(jiān)聽器:業(yè)務(wù)流程運(yùn)行中監(jiān)聽整個(gè)開始,結(jié)束,連線(針對(duì)于當(dāng)前這個(gè)節(jié)點(diǎn))

發(fā)起人:由用戶自定義輸入(可以在監(jiān)聽器中做用戶判斷,一般沒(méi)什么用)

自定義表單:也是由用戶自己設(shè)置表單路徑提供給后端代碼做處理實(shí)現(xiàn)每個(gè)節(jié)點(diǎn)打開頁(yè)面不同,目前功能未實(shí)現(xiàn)

動(dòng)態(tài)表單屬性:設(shè)置一些表單內(nèi)部的一些字段的數(shù)據(jù),目前功能未實(shí)現(xiàn)


5.用戶任務(wù)

任務(wù)監(jiān)聽器:監(jiān)聽目前任務(wù)節(jié)點(diǎn)的生命周期有代理人賦值階段,創(chuàng)建階段,完成階段,刪除階段,后面給大家做實(shí)驗(yàn)

id:跟開始事件ID一樣的,就不多講解了

名稱:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)名稱

描述:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)描述

異步:跟定時(shí)器相關(guān)的操作,如果勾選了異步就代表你目前的這個(gè)任務(wù)不在主線程中執(zhí)行,在子線程中執(zhí)行,那

獨(dú)立:把目前這個(gè)異步的節(jié)點(diǎn)進(jìn)行一個(gè)串行化,為什么會(huì)有這個(gè)獨(dú)立這個(gè)東西存在呢,可以看下方解釋

異步產(chǎn)生的問(wèn)題

單獨(dú)勾選的作用

執(zhí)行監(jiān)聽器:業(yè)務(wù)流程運(yùn)行中監(jiān)聽整個(gè)開始,結(jié)束,連線(針對(duì)于當(dāng)前這個(gè)節(jié)點(diǎn)),后面給大家做實(shí)驗(yàn)

任務(wù)多實(shí)例:多實(shí)例就跟寫java代碼使用for循環(huán)一樣,目的把這個(gè)任務(wù)動(dòng)態(tài)的根據(jù)集合分發(fā)給集合中設(shè)置的代理人,就是實(shí)現(xiàn)了個(gè)跟多人審批一樣的操作

下方的這些屬性我采用通俗易懂的講解

基數(shù)(多實(shí)例): 定義創(chuàng)建分發(fā)任務(wù)的次數(shù)(寫法:填數(shù)字就行了比如5),相當(dāng)于for循環(huán)中的i,比如++i

集合(多實(shí)例): 定義創(chuàng)建分發(fā)任務(wù)的集合(寫法:${bean.方法}),相當(dāng)于for循環(huán)讀取的那個(gè)List的集合

元素變量(多實(shí)例):定義集合的變量(寫法:item),相當(dāng)于for循環(huán)讀取的集合中每一個(gè)元素的變量

完成條件(多實(shí)例):定義結(jié)束for循環(huán)的條件(寫法:${bean.方法}),相當(dāng)于for循環(huán)中的break

是否為補(bǔ)償:標(biāo)注目前任務(wù)為補(bǔ)償任務(wù),如果有任務(wù)出錯(cuò)觸發(fā)了錯(cuò)誤邊界事件,會(huì)觸發(fā)補(bǔ)償任務(wù)進(jìn)行補(bǔ)償,需要搭配邊界修正事件一起使用,其實(shí)說(shuō)白了就在出錯(cuò)了再來(lái)一次。

代理人:由誰(shuí)來(lái)處理這個(gè)任務(wù),內(nèi)部又分代理人,候選人,候選組,后面會(huì)給大家測(cè)試

自定義表單:也是由用戶自己設(shè)置表單路徑提供給后端代碼做處理實(shí)現(xiàn)每個(gè)節(jié)點(diǎn)打開頁(yè)面不同,目前功能未實(shí)現(xiàn)

到期日期:由用戶自定義一個(gè)到期日期,這個(gè)日期數(shù)據(jù)是提供給后端代碼做處理,目前功能為實(shí)現(xiàn)(注意采用iso-8601格式比如2021-04-18T15:30:00)


6.結(jié)束事件

id:跟開始事件ID一樣的,就不多講解了

名稱:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)名稱

描述:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)描述

執(zhí)行監(jiān)聽器:業(yè)務(wù)流程運(yùn)行中監(jiān)聽整個(gè)開始,結(jié)束,連線(針對(duì)于當(dāng)前這個(gè)節(jié)點(diǎn)),后面給大家做實(shí)驗(yàn)


7.流向線

id:跟開始事件ID一樣的,就不多講解了

名稱:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)名稱

描述:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)描述

流轉(zhuǎn)條件:指定條件就行了,然后會(huì)根據(jù)條件是否走你這條線比如${num==5}

執(zhí)行監(jiān)聽器:業(yè)務(wù)流程運(yùn)行中監(jiān)聽整個(gè)開始,結(jié)束,連線(針對(duì)于當(dāng)前這個(gè)節(jié)點(diǎn)),后面給大家做實(shí)驗(yàn)

默認(rèn)流轉(zhuǎn):比如目前有3條線然后這三條線條件都為false,此時(shí)你其中一條勾選了默認(rèn)流轉(zhuǎn),就會(huì)走你勾選了默認(rèn)流轉(zhuǎn)的那條線路,并且忽略掉這一條的流轉(zhuǎn)條件

2.使用bpmn中的常用功能

新增了四個(gè)用戶:小貓,小可愛(ài),小狗,小豬

1.用戶活動(dòng)任務(wù)監(jiān)聽器,監(jiān)聽目前用戶任務(wù)節(jié)點(diǎn)生命周期,創(chuàng)建,代理人賦值,完成,刪除

事件:代理人賦值時(shí),創(chuàng)建,完成,刪除四種,后面測(cè)試他們有什么區(qū)別

注意:類,表達(dá)式,委托表達(dá)式 3選一

類:實(shí)現(xiàn)了TaskListener接口的實(shí)現(xiàn)類,直接復(fù)制粘貼他的類全路徑就好了

表達(dá)式:使用el表達(dá)式就行${bean.方法()}

委托表達(dá)式:使用實(shí)現(xiàn)了activiti內(nèi)置的一些接口的bean比如實(shí)現(xiàn)了TaskListener的bean,此時(shí)直接使用bean的名字就可以了不需要再去調(diào)用方法了,activiti內(nèi)部幫你調(diào)用了

注意:需要給目前的類添加到spring容器中

字段:可以把目前設(shè)置的數(shù)據(jù)注入到類中的成員變量中去

名稱:類中的成員變量名稱

注意:數(shù)據(jù)這邊有三個(gè)填入,只能使用一種

字符串:用FixedValue接收

表達(dá)式:用Expression接收

生命周期順序:如下

用戶點(diǎn)擊提交

進(jìn)入監(jiān)聽代理人賦值階段

進(jìn)入監(jiān)聽用戶任務(wù)創(chuàng)建階段

用戶點(diǎn)擊審批目前任務(wù)

進(jìn)入監(jiān)聽用戶任務(wù)完成階段

進(jìn)入監(jiān)聽用戶任務(wù)刪除階段


2.用戶活動(dòng)執(zhí)行監(jiān)聽器,監(jiān)聽你這個(gè)節(jié)點(diǎn)的啟動(dòng),結(jié)束,還有一個(gè)是監(jiān)聽連線的,在線上面設(shè)置才有用

事件:監(jiān)聽節(jié)點(diǎn)的啟動(dòng),監(jiān)聽節(jié)點(diǎn)的結(jié)束,還有一個(gè)是監(jiān)聽連線的,在線上面設(shè)置才有

其他的就不過(guò)多講解了,上面都講過(guò)了

用戶點(diǎn)擊提交

進(jìn)入監(jiān)聽節(jié)點(diǎn)啟動(dòng)階段

用戶點(diǎn)擊審批

進(jìn)入監(jiān)聽節(jié)點(diǎn)結(jié)束階段

還有一個(gè)是在連線上設(shè)置的

只要到達(dá)了這條線就會(huì)進(jìn)入監(jiān)聽的方法


3.代理

代理人:可以設(shè)置目前用戶名稱比如,小狗

那此時(shí)到達(dá)這個(gè)節(jié)點(diǎn)是小狗用戶就是處理人

候選人:可以設(shè)置多個(gè)用戶用逗號(hào)隔開, 小狗,小可愛(ài),小貓

那此時(shí)到達(dá)這個(gè)節(jié)點(diǎn) 小狗,小可愛(ài),小貓 3人就會(huì)收到這個(gè)流程任務(wù),然后其中一個(gè)用戶處理了該任務(wù)其他用戶那里的流程任務(wù)也會(huì)被刪除,相當(dāng)于就是一個(gè)多人審批其中其中一個(gè)審理了就過(guò)了

候選組:這里是選擇項(xiàng)目中目前的角色,然后查詢當(dāng)前角色下的用戶進(jìn)行一個(gè)分發(fā)流程任務(wù),目前這個(gè)功能未實(shí)現(xiàn)


4.EL表達(dá)式用法

springBrean容器方式:{bean.getUserName()},也可以進(jìn)行傳參{bean.getUserName('test')}

獲取設(shè)置變量的方式: 有全局變量,跟局部變量

全局變量:整個(gè)流程實(shí)例執(zhí)行中都可以拿到的

局部變量:針對(duì)于某個(gè)節(jié)點(diǎn)才能拿到

例如:${userUp.name}


5.常用的一些網(wǎng)關(guān)

互斥網(wǎng)關(guān):互斥網(wǎng)關(guān)的作用就是在多條線中只會(huì)選擇一個(gè)線去執(zhí)行,比如我兩條線全部為True就會(huì)根據(jù)線的ID去比較看那個(gè)ID小就去執(zhí)行那條線,兩條線False也是一樣的

并行網(wǎng)關(guān):并行網(wǎng)關(guān)的作用可以讓多條線同時(shí)執(zhí)行,不過(guò)會(huì)無(wú)視掉線中的條件,還可以進(jìn)行一個(gè)多條線是否執(zhí)行完畢統(tǒng)計(jì)

包含網(wǎng)關(guān):內(nèi)部實(shí)現(xiàn)了并行網(wǎng)關(guān)跟互斥網(wǎng)關(guān)兩種網(wǎng)關(guān),其實(shí)就是既支持執(zhí)行多條線又支持有判斷條件

3.補(bǔ)充activiti定時(shí)器功能

1.首先需要添加定時(shí)器配置:

//啟用異步執(zhí)行器
config.setAsyncExecutorEnabled(true);
//激活異步執(zhí)行器線程池(Activiti啟動(dòng)創(chuàng)建線程池)
config.setAsyncExecutorActivate(true);
//激活作業(yè)執(zhí)行器(讓定時(shí)器工作)
config.setJobExecutorActivate(true);

2.講解定時(shí)器流程屬性,基本有些定時(shí)器bpmn屬性都是一樣的,大家注意一些靈活應(yīng)用:

這里講解定時(shí)邊界事件

首先來(lái)了解iso-8601,克隆表達(dá)式就不講了弄java的都是很常見的東西了

[R表示重復(fù),S表示秒,M表示分,D表示天,P表示時(shí)間段(比如8點(diǎn)15分),T表示精確到時(shí)間的時(shí)間段(比如8點(diǎn)15分30秒)注意配合使用]

id:跟開始事件ID一樣的,就不多講解了

名稱:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)名稱

描述:由用戶自定義輸入,當(dāng)前節(jié)點(diǎn)描述

循環(huán)時(shí)間:第一個(gè)觸發(fā)事件后,每隔多長(zhǎng)時(shí)間再觸發(fā)事件,這是一個(gè)持續(xù)的過(guò)程(目前支持兩種格式iso-8601跟cron表達(dá)式)

iso-8601循環(huán)格式:R[循環(huán)次數(shù)][/開始時(shí)間]/時(shí)間間隔[/結(jié)束時(shí)間]

例子:[]的可以忽略不寫

R4/2021-04-12T15:01/PT5S/2021-04-12T15:02:循環(huán)四次從2021年4月12日15點(diǎn)1分間隔5秒到2021年4月12日15點(diǎn)2分結(jié)束

R4/PT1M:循環(huán)四次間隔1分鐘

開始時(shí)間: 指定開始的時(shí)間(目前只支持iso-8601)。

例子:規(guī)定日期和時(shí)間的組合表示時(shí),要在時(shí)間前面加一大寫字母T

2021-04-12T16:04:30:2021年4月12日下午4點(diǎn)30分30秒

持續(xù)時(shí)間:指定多長(zhǎng)時(shí)間以后觸發(fā)事件。如:15 分鐘,2 天等(目前只支持iso-8601格式)

例子:不支持秒

P1D:代表1天后執(zhí)行此時(shí)間定時(shí)器

P1H:代表1小時(shí)后執(zhí)行此時(shí)間定時(shí)器

P1M:代表1分鐘后執(zhí)行此時(shí)間定時(shí)器

PT1M:代表1分鐘后執(zhí)行此時(shí)間定時(shí)器

結(jié)束時(shí)間:指定結(jié)束時(shí)間(目前只支持iso-8601)乞而。

例子:規(guī)定日期和時(shí)間的組合表示時(shí),要在時(shí)間前面加一大寫字母T

2021-04-12T16:04:30:2021年4月12日下午4點(diǎn)30分30秒

取消活動(dòng): 默認(rèn)true超時(shí)會(huì)直接取消這個(gè)定時(shí)器,為false,不取消,設(shè)置結(jié)束時(shí)間到了就會(huì)刪除這個(gè)定時(shí)任務(wù)


3.實(shí)踐操作:

具體定時(shí)器可以做很多事情,我這里為大家演示一般常用的審批代辦提醒功能吧

配置郵件服務(wù)器:開啟pop3,或者開啟對(duì)應(yīng)的郵件smtp服務(wù)器

配置郵件服務(wù)器:

配置定時(shí)邊界事件,循環(huán)4次間隔5秒

提交審批

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市慢显,隨后出現(xiàn)的幾起案子爪模,更是在濱河造成了極大的恐慌,老刑警劉巖荚藻,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屋灌,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡应狱,警方通過(guò)查閱死者的電腦和手機(jī)共郭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人除嘹,你說(shuō)我怎么就攤上這事写半。” “怎么了尉咕?”我有些...
    開封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵叠蝇,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我年缎,道長(zhǎng)悔捶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任晦款,我火速辦了婚禮炎功,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缓溅。我一直安慰自己,他們只是感情好赁温,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開白布坛怪。 她就那樣靜靜地躺著,像睡著了一般股囊。 火紅的嫁衣襯著肌膚如雪袜匿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天稚疹,我揣著相機(jī)與錄音居灯,去河邊找鬼。 笑死内狗,一個(gè)胖子當(dāng)著我的面吹牛怪嫌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柳沙,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼岩灭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了赂鲤?” 一聲冷哼從身側(cè)響起噪径,我...
    開封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎数初,沒(méi)想到半個(gè)月后找爱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泡孩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年车摄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡练般,死狀恐怖矗漾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薄料,我是刑警寧澤敞贡,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站摄职,受9級(jí)特大地震影響誊役,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谷市,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一蛔垢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迫悠,春花似錦鹏漆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鞠抑,卻和暖如春饭聚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搁拙。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工秒梳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人箕速。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓酪碘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親弧满。 傳聞我的和親對(duì)象是個(gè)殘疾皇子婆跑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容