seasun  
          在不斷模仿、思考、總結(jié)中一步一步進(jìn)步!
          公告
          •     我的blog中的部分資源是來自于網(wǎng)絡(luò)上,如果您認(rèn)為侵犯了您的權(quán)利,請及時聯(lián)系我我會盡快刪除!E-MAIL:shiwenfeng@aliyun.com和QQ:281340916,歡迎交流。

          日歷
          <2009年12月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          常用鏈接

          隨筆分類

          good blog author

          積分與排名

          • 積分 - 81784
          • 排名 - 699

          最新評論

          閱讀排行榜

           

          jbpm概念
          1 : process definition(流程定義):
                   工作流的流程的完整定義,包括節(jié)點和節(jié)點之間的走向等關(guān)鍵信息。通常以xml格式提供。一個具體的系統(tǒng)往往是由許多個流程組成的。
          2 : process instance(流程實例):
                   每個process defination生成的業(yè)務(wù)層的實例。當(dāng)process instance創(chuàng)建以后,代表流程的執(zhí)行路徑,并被定義到開始節(jié)點。
          3  : token(令牌):
                   表示了一個執(zhí)行的路徑,它是運(yùn)行時產(chǎn)生的。當(dāng)實例建立以后,令牌也就產(chǎn)生了。
          4 : node:
                   表示流程中的一個節(jié)點。
          5 : transition:
                   關(guān)聯(lián)兩個節(jié)點,用于表示節(jié)點的走向
          6 : signal:
                   讓一個token執(zhí)行下一步。process instance也有signal,當(dāng)用process instance的signal時,其實就是運(yùn)行process instance根令牌(root token)的signal.   當(dāng)token進(jìn)入到一個node時,node會被執(zhí)行,并產(chǎn)生一些事件,比如進(jìn)入、離開節(jié)點等,這也是執(zhí)行業(yè)務(wù)邏輯的地方。事件由action來表示。
          7 : 事件Event 
                  Event反映的是流程執(zhí)行中的各個時刻。在流程執(zhí)行中JBPM引擎會在計算下一個狀態(tài)的時候觸發(fā)各種事件。一個事件通常和流程定義中的一個元素相關(guān)聯(lián),比如流程定義本身,節(jié)點或者轉(zhuǎn)移。大部分的元素能夠觸發(fā)不同類型的事件,比如一個節(jié)點可以觸發(fā)節(jié)點進(jìn)入事件,節(jié)點離開事件。事件其實是和動作連接在一起的。每個事件維護(hù)一個動作列表。當(dāng)JBPM引擎觸發(fā)一個事件的時候,該事件維護(hù)的動作列表中的動作將被執(zhí)行。
           

          事件類型
          在JBPM中事件類型是寫死在事件類中的,共有16種:
          EVENTTYPE_TRANSITION = "transition"; // 轉(zhuǎn)移
          EVENTTYPE_BEFORE_SIGNAL = "before-signal"; // 發(fā)信號前
          EVENTTYPE_AFTER_SIGNAL = "after-signal"; // 發(fā)信號后
          EVENTTYPE_PROCESS_START = "process-start"; // 處理開始狀態(tài)
          EVENTTYPE_PROCESS_END = "process-end"; // 處理結(jié)束狀態(tài)
          EVENTTYPE_NODE_ENTER = "node-enter"; // 進(jìn)入節(jié)點
          EVENTTYPE_NODE_LEAVE = "node-leave"; // 離開節(jié)點
          EVENTTYPE_SUPERSTATE_ENTER = "superstate-enter"; // 進(jìn)入超級狀態(tài)
          EVENTTYPE_SUPERSTATE_LEAVE = "superstate-leave"; // 離開超級狀態(tài)
          EVENTTYPE_SUBPROCESS_CREATED = "subprocess-created"; // 子流程創(chuàng)建
          EVENTTYPE_SUBPROCESS_END = "subprocess-end"; // 子流程結(jié)束
          EVENTTYPE_TASK_CREATE = "task-create"; // 任務(wù)創(chuàng)建
          EVENTTYPE_TASK_ASSIGN = "task-assign"; // 任務(wù)分派
          EVENTTYPE_TASK_START = "task-start"; // 任務(wù)啟動
          EVENTTYPE_TASK_END = "task-end"; // 任務(wù)結(jié)束
          EVENTTYPE_TIMER = "timer"; // 定時器

          常用API
          ProcessInstance是ProcessDefinition的一個執(zhí)行實例,想象一下對于訂票流程,每個客戶的訂票動作都會根據(jù)訂票流程定義而創(chuàng)建一個流程實例,也就是執(zhí)行實例ProcessInstance.當(dāng)一個ProcessInstance被創(chuàng)建后,負(fù)責(zé)執(zhí)行主路徑的token也被創(chuàng)建,這個token就是根token(root token),根token此時位于流程定義的開始狀態(tài)start state.

          創(chuàng)建執(zhí)行實例很簡單有2種方式 :
          1 : 通過 ProcessDefinition 類的 createProcessInstance() 方法

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

          2 :通過 ProcessInstance 類的  構(gòu)造函數(shù)
          //得到 jbpmContext
          JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();

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

          //得到 processInstance
           ProcessInstance processInstance = new ProcessInstance(processDefinition);

           

          posted on 2009-12-04 12:42 shiwf 閱讀(653) 評論(0)  編輯  收藏 所屬分類: 1.05 jbpm

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
           
          Copyright © shiwf Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 廊坊市| 安吉县| 华坪县| 吴忠市| 周至县| 宜城市| 博乐市| 望城县| 宽甸| 满城县| 淄博市| 宜城市| 阿坝县| 江孜县| 安岳县| 竹山县| 蕉岭县| 韶关市| 平乐县| 靖西县| 休宁县| 黑河市| 米脂县| 忻城县| 高碑店市| 玛多县| 荆州市| 吴忠市| 雷州市| 沙湾县| 金乡县| 格尔木市| 沭阳县| 犍为县| 永济市| 汤原县| 嘉祥县| 会宁县| 泗阳县| 鸡东县| 海盐县|