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

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

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

    隨筆-54  評論-0  文章-2  trackbacks-0

       今天是jBPM的第二天,內容不多,定義不少,主要講了流程變量,節點和事件等知識,全是新的知識,剛學肯定生疏,久了就沒問題了,編程嘛,多敲代碼,多 調試,才是王道。
     
    1. 流程變量

    通過org.jbpm.context.exe.ContextInstance來操 作變量。

    2.變量的生命周期

    變量的訪問和賦值是在某一個token上進行的,缺省時,是基于root Token。每個Token(執行路線)有它自己的一套流程變量。變量的作用域和所屬的Token的生命周期一致,不同的Token上的同名變量互不影 響。
     
    3.變量值要求

    變量名的類型為java.lang.String,支持的變量值類型如下(文檔10.1節)。(

    如 果變量值是classes that are persistable with hibernate,則POJO的id應為long型或String型。
     
    saveOrUpdate( po );
    savePoIdAndPoClassAsVariable()
    session.get( class, id )
    節點

    1. 流程圖中的各種節點的作用及用法

    為什么需要多種節點類型?

    需要有不同類型(作用)的節點,才能設計出復雜的流程圖。 Jbpm有一套預先定義好的節點類型。如果不夠用,也可以使用自定義節點進行擴展,以完成不同的流程的需要。

    不同的節點類型代表不同的行 為。

    每個流程都必須要有開始節點和結束節點。

    2.預定義節點

    start-state,開始節點:標識流 程開始、
    end-state,結束節點:標識流程結束、
    task-node,任務節點:可以放0個或多個任務、
    decision, 決策節點:路徑選擇,只使用一個流轉(叉路口)、
    fork/join,分支節點/合并節點:可以分為多個并行執行的分支、
    state,狀 態節點:等待。


    每個節點都對應一個類(Jbpm的持久化類),都是org.jbpm.graph.def.Node的子類。節點 都有名字、流轉(end-state除外)。

    event事件

    事 件。

    1, 有幾種事件,分別在什么時候觸發
    2, 怎么指定當事件觸發時做什么事(Action)
     1, 節點的事件

    a)      進入節點(node-enter)。(開始節點沒有)

    b)      離開節點(node-leave)。(結束節點沒有)

    2, 流轉的事件

    a)      只有一個:使用流轉(take a transition)

    3, 任務的事件

    a)      創建任務(task-create)

    b)      分配任務(task-assign)

    c)      開始任務(task-start)à TaskInstance.start()

    d)      結束任務(task-end)à TaskInstance.end()
     每個事件有一個動作(action)清單。當jBPM引擎產生一個事件,動作(action)清單就會被 執行. 不同的節點支持的事件類型不同,是由event元素所在的節點的類型決定的,例如transition只有一個事件。
    可以在event元 素用可以指定一個動作,當指定的事件發生時,這個動作被執行。

    可以給同一個事件指定多個動作,當這個事件觸發的時候,這些動作執行的順序 和定義先后順序是一致的。

    不同元素支持不同的事件類型:

    一般的節點都具有的事件:node-enter,進入節點、 node-leave,離開節點;
    start-state只有node-leave;
    end-state只有node-enter;
    transition 只有一個執行轉換的事件(taking a transition)。因為只有一個事件,所以配置時不用寫event元素,而直接配置Action。
    task 有task-create,任務創建、task-assign,任務分配、task-start,任務開始、task-end,任務結束。

    關 于哪些元素支持哪些事件,可以通過文檔的18.4節中的xml文件的寫法中獲得。

    如果配置的事件類型不存在,不會報錯,也不會執行。

    注 意:在事件中定義的動作(Action)不應該(不能)影響流程的執行。即不要在事件的動作中給token發信號,否則會拋異常:token is locked。(在Node中配置的Action可以給Token發信號。)

    事件執行的順序:

    已觸發事件:node-leave

    已觸發事件:transition

    已 觸發事件:node-enter

    已觸發事件:task-create

    已觸發事件:task-assign

    已 觸發事件:task-start

    已觸發事件:task-end
     

    ************************* 動態的創建不確定數量的任務實例 *********

    會簽。

    實現任務分配給多個人,在流程定義中定義的相 應的任務,不指定參與者,也不知道指定為誰。需要做以下工作:
    1,  阻止jBPM自動創建任務實例(設置task-node的create-tasks="false")
    2,  在node-enter事件中定義一個動作指定用于創建TaskInstance的類。

    類 CreateTaskInstancesAction要接管兩個操作:創建與分配任務實例。
     創建任務實例要調用方法:

      TaskMgmtInstance.createTaskInstance(Task, ExecutionContext);

    其中的 Task 是任務的定義,可以先得到當前的節點:

      TaskNode taskNode = (TaskNode) executionContext.getNode();

    然后通過任務的名字得到任務的定義:

      Task task = taskNode.getTask("審批");

     

    任務分配

    個人任務:actor-id=”xxx”
                       

    查詢組任務列表的方法為:

    TaskMgmtSession.findPooledTaskInstances(String actorId)
                          

    對于一個組任務,如果他的actorId為null,組中所 有的用戶都可以在組任務列表中看到這個任務。如果使用TaskInstance.setActorId(String)方法設置這個任務由指定的 acrorId來辦理,這時pooledActors中的其他人就看不到這個任務了,就是說actorId會屏蔽pooledActors; 當這個用戶因某些原因不能辦理任務時,可以把這個任務再退回到組任務列表中,方法是調用TaskInstance.setActorId(null)設置 actorId為null,這時pooledActors中的所有人又都可以看到這個任務了。

    不管使用哪種方式分配任務,參與者 (Actor-id,字符串類型)的計算(確定)都是由業務層負責解釋的。

        最后湯兄給我們推薦了一些好書,學習java必須準備三樣: 心態,基礎,睡覺。能學多少學多少。明天才是OA工作流項目的開始!加油。。。
    posted on 2010-02-01 21:59 d66380022 閱讀(261) 評論(0)  編輯  收藏
    主站蜘蛛池模板: 亚洲人成自拍网站在线观看| 91亚洲国产成人久久精品网站| 亚洲av成人一区二区三区在线播放| 在线看片v免费观看视频777| 亚洲高清美女一区二区三区| 永久看日本大片免费35分钟| 亚洲酒色1314狠狠做| xx视频在线永久免费观看| 久久精品国产亚洲av麻豆图片 | 亚洲中文字幕人成乱码| 国产精品视频免费观看| 亚洲娇小性xxxx色| 大香人蕉免费视频75| 国产精品无码亚洲一区二区三区| 免费v片视频在线观看视频| 一级午夜免费视频| 亚洲AV无码日韩AV无码导航| 亚洲视频免费在线观看| 在线亚洲高清揄拍自拍一品区| 大地资源二在线观看免费高清 | 亚洲七七久久精品中文国产| 97在线免费视频| 久久久久亚洲AV无码网站| 欧美最猛性xxxxx免费| 免费人成大片在线观看播放| 亚洲精品无码午夜福利中文字幕| 免费不卡在线观看AV| 亚洲中文无码mv| 2048亚洲精品国产| 99re视频精品全部免费| 中国亚洲呦女专区| 国产gv天堂亚洲国产gv刚刚碰| 最近中文字幕mv免费高清在线| 久久精品亚洲日本波多野结衣| 亚洲日韩欧洲无码av夜夜摸| 91成年人免费视频| 国产成人无码精品久久久免费 | 亚洲AV无码一区二三区| 日韩免费无码视频一区二区三区| 亚洲中文无码亚洲人成影院| 亚洲AV永久精品爱情岛论坛|