<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)編輯 收藏

    僅列出標題  
    主站蜘蛛池模板: 成年女人男人免费视频播放| 污视频在线观看免费| 最近中文字幕mv手机免费高清| 亚洲经典在线中文字幕| 久久免费精彩视频| 亚洲狠狠狠一区二区三区| 色se01短视频永久免费| 亚洲人成网站999久久久综合| 爽爽日本在线视频免费| 妇女自拍偷自拍亚洲精品| 亚洲VA综合VA国产产VA中| 一区二区三区免费在线视频 | 亚洲乱码中文字幕小综合| 久久精品国产免费观看三人同眠 | 亚洲中久无码永久在线观看同| 一道本不卡免费视频| 亚洲精品成人无限看| 久久国产精品免费视频| 亚洲娇小性xxxx色| 国产资源免费观看| caoporm超免费公开视频| 久久亚洲日韩看片无码| 男女交性永久免费视频播放| 丁香六月婷婷精品免费观看 | 亚洲中文字幕一区精品自拍| 国产极品粉嫩泬免费观看 | 亚洲五月丁香综合视频| 国产小视频在线免费| a级毛片毛片免费观看永久| 亚洲欧洲日产专区| 又大又粗又爽a级毛片免费看| 成人A片产无码免费视频在线观看| 亚洲成人黄色在线| 免费人成视频在线观看不卡| 久久精品私人影院免费看| 亚洲AV无码无限在线观看不卡| 久久精品国产精品亚洲下载| 欧洲一级毛片免费| 皇色在线免费视频| 日韩亚洲不卡在线视频中文字幕在线观看 | 久久免费香蕉视频|