<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BlogJava 聯系 聚合 管理  

    Blog Stats

    隨筆檔案

    文章檔案


    gyl868

    2009年8月8日 #

    一 : 重要概念

    1 : process definition(流程定義):

             工作流的流程的完整定義,包括節點和節點之間的走向等關鍵信息。通常以xml格式提供。一個具體的系統往往是由許多個流程組成的。

    2 : process instance(流程實例):

             每個process defination生成的業務層的實例。當process instance創建以后,代表流程的執行路徑,并被定義到開始節點。


    3  : token(令牌):

             表示了一個執行的路徑,它是運行時產生的。當實例建立以后,令牌也就產生了。

    4 : node:

             表示流程中的一個節點。

    5 : transition:

             關聯兩個節點,用于表示節點的走向

    6 : signal:

             讓一個token執行下一步。process instance也有signal,當用process instance的signal時,其實就是運行process instance根令牌(root token)的signal.   當token進入到一個node時,node會被執行,并產生一些事件,比如進入、離開節點等,這也是執行業務邏輯的地方。事件由action來表示。
     

    7 : 事件Event 

    Event反映的是流程執行中的各個時刻。在流程執行中JBPM引擎會在計算下一個狀態的時候觸發各種事件。一個事件通常和流程定義中的一個元素相關聯,比如流程定義本身,節點或者轉移。大部分的元素能夠觸發不同類型的事件,比如一個節點可以觸發節點進入事件,節點離開事件。事件其實是和動作連接在一起的。每個事件維護一個動作列表。當JBPM引擎觸發一個事件的時候,該事件維護的動作列表中的動作將被執行。

    事件類型

    在JBPM中事件類型是寫死在事件類中的,共有16種:

    EVENTTYPE_TRANSITION = "transition"; // 轉移
    EVENTTYPE_BEFORE_SIGNAL = "before-signal"; // 發信號前
    EVENTTYPE_AFTER_SIGNAL = "after-signal"; // 發信號后
    EVENTTYPE_PROCESS_START = "process-start"; // 處理開始狀態
    EVENTTYPE_PROCESS_END = "process-end"; // 處理結束狀態
    EVENTTYPE_NODE_ENTER = "node-enter"; // 進入節點
    EVENTTYPE_NODE_LEAVE = "node-leave"; // 離開節點
    EVENTTYPE_SUPERSTATE_ENTER = "superstate-enter"; // 進入超級狀態
    EVENTTYPE_SUPERSTATE_LEAVE = "superstate-leave"; // 離開超級狀態
    EVENTTYPE_SUBPROCESS_CREATED = "subprocess-created"; // 子流程創建
    EVENTTYPE_SUBPROCESS_END = "subprocess-end"; // 子流程結束
    EVENTTYPE_TASK_CREATE = "task-create"; // 任務創建
    EVENTTYPE_TASK_ASSIGN = "task-assign"; // 任務分派
    EVENTTYPE_TASK_START = "task-start"; // 任務啟動
    EVENTTYPE_TASK_END = "task-end"; // 任務結束
    EVENTTYPE_TIMER = "timer"; // 定時器



    二 : 常用 API


    ProcessInstance是ProcessDefinition的一個執行實例,想象一下對于訂票流程,每個客戶的訂票動作都會根據訂票流程定義而創建一個流程實例,也就是執行實例ProcessInstance.當一個ProcessInstance被創建后,負責執行主路徑的token也被創建,這個token就是根token(root token),根token此時位于流程定義的開始狀態start state.

    創建執行實例很簡單有2種方式 :

    1 : 通過 ProcessDefinition 類的 createProcessInstance() 方法

    //得到 processDefinition 
    ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("processdefinition.xml");
    //通過 processDefinition 創建 出 processInstance
    ProcessInstance  processInstance = processDefinition.createProcessInstance();

    2 :通過 ProcessInstance 類的  構造函數

    //得到 jbpmContext
    JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();

    //得到 processDefinition
    ProcessDefinition processDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition("baoxiao");

    //得到 processInstance
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
    posted @ 2009-08-08 22:52 gyl868 閱讀(112) | 評論 (0)編輯 收藏

    僅列出標題  
    主站蜘蛛池模板: 久久国产美女免费观看精品| 成年免费a级毛片免费看无码| 最刺激黄a大片免费网站| 亚洲熟妇丰满多毛XXXX| 久久高潮一级毛片免费| 国产亚洲精品无码成人| a视频在线免费观看| 亚洲AV无码欧洲AV无码网站| 日本免费中文视频| v片免费在线观看| 亚洲第一区精品日韩在线播放| 亚洲黄色三级视频| jjizz全部免费看片| 亚洲乱码一二三四五六区| 91视频国产免费| 亚洲av无码有乱码在线观看| 免费va人成视频网站全| 老司机精品视频免费| 亚洲免费在线观看| 久久久免费的精品| 国产精品高清视亚洲精品| 麻豆国产精品入口免费观看| 一级毛片成人免费看a| 亚洲AV无码专区在线播放中文| 69av免费视频| 国产精品日本亚洲777| 国产aⅴ无码专区亚洲av麻豆 | 国产gav成人免费播放视频| 永久免费无码网站在线观看个| 精品亚洲综合在线第一区| av无码久久久久不卡免费网站| 亚洲男人天堂2017| 国产免费看JIZZ视频| 黄色网址大全免费| 亚洲AV成人精品网站在线播放| 国产无人区码卡二卡三卡免费 | 久青草视频97国内免费影视| 亚洲日韩乱码中文无码蜜桃| 亚洲国产成人久久综合区| 中文字幕在线观看免费视频| 羞羞视频网站免费入口|