Activiti6.0整合SpringBoot2.0學(xué)習(xí)(三)

一、排他網(wǎng)關(guān)(Exclusive Gateway)

排他網(wǎng)關(guān)其實(shí)就是一個(gè)條件選擇器瞒爬,看你選擇了什么條件牛柒,流程圖的路線就會走到哪一個(gè)節(jié)點(diǎn)务豺。


排他網(wǎng)關(guān)的設(shè)置

值得注意:

  1. 排他網(wǎng)關(guān)必須要設(shè)置流程圖非默認(rèn)線路的條件1目瘛J睦椤!
    條件設(shè)置
  2. 在設(shè)置排他網(wǎng)關(guān)的條件的時(shí)候鸥咖,默認(rèn)路線的條件不用在流程圖上設(shè)置什么燕鸽,但是在后臺設(shè)置參數(shù)變量的時(shí)候也需要把參數(shù)設(shè)置為空字符串("")
variables1.put("operate", ""); // 設(shè)置用戶的操作 為空 表示走flow3的默認(rèn)路線

二兄世、定時(shí)邊界任務(wù)

定時(shí)邊界任務(wù)表示在某個(gè)時(shí)間點(diǎn)執(zhí)行它啼辣,或者是隔多長時(shí)間后出發(fā),還可以設(shè)置循環(huán)規(guī)則御滩。


定時(shí)邊界任務(wù)

Cancel activity:

  1. true時(shí)鸥拧,當(dāng)timer觸發(fā)時(shí),當(dāng)前的activity被中斷(流程結(jié)束);
  2. false時(shí)削解,當(dāng)timer觸發(fā)時(shí)富弦,不會被中斷(流程原點(diǎn),流程不會結(jié)束)氛驮;當(dāng)執(zhí)行循環(huán)定時(shí)器時(shí)腕柜,雖然Cancel activity=true,但是該acitivity還是會持續(xù)生成矫废。

Time duration:延時(shí)多長時(shí)間后觸發(fā)盏缤。例:P20D 表示20天以后觸發(fā)
Time date:什么時(shí)間觸發(fā),采用ISO 8601的時(shí)間格式蓖扑。例:2018-06-12T12:12:23 表示在2018年06 月12日 12:12:23觸發(fā)
Time cycle:循環(huán)規(guī)則唉铜。規(guī)則:R【循環(huán)次數(shù)】【/開始時(shí)間】/時(shí)間間隔【/結(jié)束時(shí)間】。

variables2.put("startTime", "2018-6-11T14:22:00"); // 設(shè)置定時(shí)邊界任務(wù)的觸發(fā)時(shí)間 注意:后面的時(shí)間必須是ISO 8601時(shí)間格式的字符串B筛堋L读鳌竞惋!

排他網(wǎng)關(guān)和定時(shí)邊界任務(wù)完整代碼:

@RequestMapping("exclusiveGateway")  
    public void exclusiveGateway() {  
        //根據(jù)bpmn文件部署流程  
        repositoryService.createDeployment().addClasspathResource("exclusiveGateway.bpmn").deploy();
        // 設(shè)置User Task1受理人變量
        Map<String, Object> variables = new HashMap<>();
        variables.put("user1", "007");
        //采用key來啟動流程定義并設(shè)置流程變量,返回流程實(shí)例  
        ProcessInstance pi = runtimeService.startProcessInstanceByKey("exclusiveGatewayAndTimerBoundaryEventProcess", variables);  
        String processId = pi.getId();  
        System.out.println("流程創(chuàng)建成功灰嫉,當(dāng)前流程實(shí)例ID:"+processId);
        // 注意 這里需要拿007來查詢拆宛,key-value需要拿value來獲取任務(wù)
        List<Task> list = taskService.createTaskQuery().taskAssignee("007").list();
        Map<String, Object> variables1 = new HashMap<>();
        variables1.put("user2", "lili"); // 設(shè)置User Task2的受理人變量
        variables1.put("operate", ""); // 設(shè)置用戶的操作 為空 表示走flow3的默認(rèn)路線
        taskService.complete(list.get(0).getId(), variables1);
        System.out.println("User Task1被完成了,此時(shí)流程已流轉(zhuǎn)到User Task2");
        List<Task> list1 = taskService.createTaskQuery().taskAssignee("lili").list();
        Map<String, Object> variables2 = new HashMap<>();
        variables2.put("user4", "bobo");
        variables2.put("startTime", "2018-06-11T14:22:00"); // 設(shè)置定時(shí)邊界任務(wù)的觸發(fā)時(shí)間 注意:后面的時(shí)間必須是ISO 8601時(shí)間格式的字符串0靖ΑR忍簟!
        taskService.complete(list1.get(0).getId(), variables2);
        List<Task> list2 = taskService.createTaskQuery().taskAssignee("bobo").list();
        if(list2!=null && list2.size()>0){ 
            for(org.activiti.engine.task.Task task:list2){  
                System.out.println("任務(wù)ID:"+task.getId());  
                System.out.println("任務(wù)的辦理人:"+task.getAssignee());  
                System.out.println("任務(wù)名稱:"+task.getName());  
                System.out.println("任務(wù)的創(chuàng)建時(shí)間:"+task.getCreateTime());  
                System.out.println("流程實(shí)例ID:"+task.getProcessInstanceId());  
                System.out.println("#######################################");
            }
        }
    }

運(yùn)行程序椿肩,瀏覽器訪問: http://localhost:8080/activiti/exclusiveGateway

運(yùn)行結(jié)果

三瞻颂、學(xué)習(xí)小結(jié)及注意事項(xiàng)

  1. 在使用排他網(wǎng)關(guān)時(shí),需設(shè)置默認(rèn)路線郑象,并且默認(rèn)路線不用設(shè)置條件贡这;
  2. 定時(shí)邊界任務(wù)使用時(shí),若不需要中斷流程厂榛,Cancel activity設(shè)置為false盖矫;使用ISO 8601的格式設(shè)置時(shí)間,請將啟動時(shí)間設(shè)置到當(dāng)前時(shí)間之后击奶,否則數(shù)據(jù)庫的ACT_RU_TIMER_JOB里面的任務(wù)永遠(yuǎn)不會被執(zhí)行辈双!

github地址:github源碼

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市柜砾,隨后出現(xiàn)的幾起案子湃望,更是在濱河造成了極大的恐慌,老刑警劉巖痰驱,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件证芭,死亡現(xiàn)場離奇詭異,居然都是意外死亡担映,警方通過查閱死者的電腦和手機(jī)废士,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝇完,“玉大人官硝,你說我怎么就攤上這事《掏桑” “怎么了氢架?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長忿危。 經(jīng)常有香客問我达箍,道長,這世上最難降的妖魔是什么铺厨? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任缎玫,我火速辦了婚禮硬纤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赃磨。我一直安慰自己筝家,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布邻辉。 她就那樣靜靜地躺著溪王,像睡著了一般。 火紅的嫁衣襯著肌膚如雪值骇。 梳的紋絲不亂的頭發(fā)上莹菱,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機(jī)與錄音吱瘩,去河邊找鬼道伟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛使碾,可吹牛的內(nèi)容都是我干的蜜徽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼票摇,長吁一口氣:“原來是場噩夢啊……” “哼拘鞋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起矢门,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤盆色,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后颅和,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體傅事,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缕允,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年峡扩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片障本。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡教届,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驾霜,到底是詐尸還是另有隱情案训,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布粪糙,位于F島的核電站强霎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蓉冈。R本人自食惡果不足惜城舞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一轩触、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧家夺,春花似錦脱柱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至煌茴,卻和暖如春随闺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蔓腐。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工板壮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人合住。 一個(gè)月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓绰精,卻偏偏與公主長得像,于是被迫代替她去往敵國和親透葛。 傳聞我的和親對象是個(gè)殘疾皇子笨使,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)僚害,斷路器硫椰,智...
    卡卡羅2017閱讀 134,702評論 18 139
  • 事件(Event) 事件用來表明流程的生命周期中發(fā)生了什么事. 事件總是畫成一個(gè)圓圈.在BPMN 2.0中, 事...
    我相信你愛過gg閱讀 11,017評論 0 6
  • 最近和爸媽交流的不是很多,這也是我一直不敢說自己成熟的原因萨蚕,因?yàn)殚_口閉口離不開我爸爸我媽媽靶草,我爸爸說,我媽媽說岳遥。 ...
    機(jī)智的一顆蛋閱讀 470評論 0 0
  • 作者:燁竹 HTTP的認(rèn)證方式 BASIC 認(rèn)證(基本認(rèn)證)DIGEST 認(rèn)證(摘要認(rèn)證)SSL 客戶端認(rèn)證For...
    DragonRat閱讀 1,245評論 0 1
  • 現(xiàn)在有兩個(gè)選擇 一份目前的看上去還可以的工作 輕松 穩(wěn)定 但是發(fā)展很小 做到不舒坦 這時(shí)候出現(xiàn)另外一份工作 工資不...
    鹿蔓蔓閱讀 159評論 0 0