国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JBPM源碼分析(二)---acceptToken函數

2019-11-18 11:20:56
字體:
來源:轉載
供稿:網友

acceptToken是JBPM工作流引擎中的核心函數,它在每個節點中都有具體的實現。這個函數主要決定該節點如何處理到達該節點的令牌。理解了acceptToken,JBPM工作流的運行過程就懂得了一半。acctpToken在各節點類中具體實現的功能如下所示:

一、TransitionImpl

1)        觸發Transition事件;

2)        將到達節點作為當前執行上下文節點;

3)        達到節點接受令牌(執行節點的acceptToken)。

二、DecisionImpl

1)        觸發DECISION_ENTER事件;

2)        調用DecisionHandler得到要執行的轉換(Transition);

3)        觸發DECISION_LEAVE事件;

4)        轉換接受令牌(執行節點的acceptToken)。

三、Fork

1)        觸發FORK_ENTER事件;

2)        將運行上下文中令牌的State和ActorId置null;

3)        調用ForkHander;

缺省的ForkHander,對于每一個它的轉換按順序執行以下操作:

l         觸發FORK_EVERY_LEAVE事件;

l         創建令牌,上下文中的令牌與新建令牌為父子關系;

l         子令牌數據庫持久化;

l         將上下文中的令牌置為子令牌,上下文的當前節點備份;

l         當前轉換接受令牌;

l         將上下文中的令牌置為父令牌,節點還原;

l         子令牌reactiveJoin屬性設定為將父令牌中的correspondingJoin。

四、Join

1)        假如當前上下文中的令牌沒有結束,結束令牌(包括該令牌的所有子令牌);

2)        觸發JOIN_EVERY_ENTER事件;

3)        清楚上下文中的臨時變量;

4)        將令牌、當前Join節點置為當前運行上下文中的令牌和節點;

5)        執行JoinHander。

缺省的JoinHander在所有兄弟令牌都到達該Join節點后,激活父令牌,執行Join的轉換。父令牌激活時會觸發JOIN_LEAVE事件。

五、StateImpl、StartStateImpl

1)        將上下文中令牌的狀態設定為當前狀態;

2)        觸發STATE_ENTER事件;

3)        假如狀態設定了swimlane屬性,從swimlane中取出actorId值設定為上下文中令牌的actorId值;

4)        假如State要求必須assignment但actorId為null,則報錯;

5)        記錄StateLog在令牌中;

6)        觸發STATE_AFTER_ASSIGNMENT事件。

六、EndStateImpl

1)        將lastLog置空;

2)        上下文中的令牌置為當前令牌;

3)        結束令牌(會觸發PROCESS_END事件)。

七、MilestoneImpl

1)        將上下文中令牌的狀態設定為當前狀態;

2)        觸發MILESTONE_ENTER事件;

3)        從上下文中取出名稱為Milestone名稱的變量;

4)        假如變量存在(不為null),觸發MILESTONE_LEAVE事件,執行Milestone轉換(進入下一個狀態);否則,將令牌中的actorId值置空,在令牌中記錄日志(等待)。

八、ProcessStateImpl

1)        在上下文令牌中記錄狀態日志;

2)        取得ProcessInvocationHandler,啟動子工作流程;

3)        工作流啟動成功后,將上下文中令牌actorId置空,當前狀態設定為令牌當前狀態,令牌子進程實例設定為已經啟動成功的子工作流程;否則報錯。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南溪县| 虹口区| 乐昌市| 镇远县| 浑源县| 石柱| 保靖县| 库伦旗| 阳信县| 兴安盟| 曲麻莱县| 安宁市| 都匀市| 韶关市| 宁波市| 泰兴市| 嫩江县| 垣曲县| 嘉鱼县| 自贡市| 宜城市| 乐都县| 墨竹工卡县| 汤原县| 孟村| 景洪市| 安阳市| 宁强县| 克什克腾旗| 丽水市| 饶阳县| 白城市| 永定县| 攀枝花市| 尉犁县| 仁化县| 荥经县| 辽宁省| 汉阴县| 博湖县| 措美县|