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

    主站蜘蛛池模板: 亚洲成在人线电影天堂色| 久久亚洲精品人成综合网| 亚洲av中文无码字幕色不卡| 免费视频爱爱太爽了| 亚洲综合激情九月婷婷| 95老司机免费福利| 亚洲一区二区三区在线| 成年男女免费视频网站| 亚洲色大成网站www永久网站| 好男人视频社区精品免费| 亚洲欧美日韩中文二区| 四虎国产精品免费视| 特级aa**毛片免费观看| 中文字幕人成人乱码亚洲电影 | 国产又黄又爽又刺激的免费网址 | 久久综合亚洲色HEZYO社区| 91精品啪在线观看国产线免费| 亚洲精品国产免费| 成人人免费夜夜视频观看| 色偷偷亚洲男人天堂| 国产成人亚洲精品91专区手机| 久久国产乱子伦精品免费不卡| 亚洲女人影院想要爱| 国产精品免费看久久久无码| 一级女人18片毛片免费视频| 亚洲国产精品自在线一区二区 | 一区二区3区免费视频| 亚洲国产精品成人精品无码区在线| 蜜桃视频在线观看免费视频网站WWW| 亚洲欧洲国产经精品香蕉网| 好大好深好猛好爽视频免费| 一级毛片免费一级直接观看| 亚洲av日韩av高潮潮喷无码| 噼里啪啦免费观看高清动漫4| 午夜亚洲国产精品福利| 久久久亚洲精品无码| 日本免费中文字幕在线看| 一个人免费视频观看在线www| 久久精品国产亚洲AV久| 国产成人综合亚洲AV第一页| 国内免费高清在线观看|