posts - 0,comments - 10,trackbacks - 0

          -----本文原作者:孫文博,發(fā)于http://www.aygfsteel.com/swboo為了讓更多人了解如要轉載請說明,謝謝大家支持原創(chuàng).

          對于剛開始接觸JBPM的朋友來說,理解工作流引擎著個概念來說是要費工夫的(本人很苯,也是理解了好久才知道引擎的意思的).現(xiàn)在網(wǎng)上大多數(shù)的JBPM例子都是使用的是JUNIT來說明問題的,但是對于一些沒有從事過JAVA或的剛開始從事JAVA開發(fā)的朋友來說,無疑是很有難度的,所以我在這里寫一個WEB的例子來教大家JBPM的的使用,以及引擎的含義,好了接下來讓咱們開始.


          1環(huán)境準備
          至于如何配置JBPM環(huán)境我就不說了,要是不會請去看陳剛老師的BLOG上面很詳細(http://www.aygfsteel.com/chengang/category/12967.html)我在這里只做如何將JBPM和WEB組合起來

          1.1使用環(huán)境 

          JDK1.5
          Tomcat5.5.9
          JBPM3.1.4
          數(shù)據(jù)庫mssql2000

          1.2創(chuàng)建一個WEB項目,不說了用過eclipse的人都知道如何創(chuàng)建


          1.3創(chuàng)建一個流程定義,就是在web項目中添加Process Definition

          1.4流程定義代碼
          注明:下面我將流程寫如流程定義文件當中要是想使用請刪除里面的流程說明部分
          <?xml version="1.0" encoding="UTF-8"?>

          開始結點
          <process-definition
            xmlns=""  name="shenpi">
          流程開始結點
             <start-state name="start">
                <task name="startrequest">
                  <controller>
                設置請假人的程變量
                      <variable name="name"></variable>
                設置請假天數(shù)的流程變量
                      <variable name="countday"></variable>
                設置審批請假角色的流程變量
                      <variable name="roles"></variable>
                   </controller>
                </task>
                <event type="node-leave">
                當離開開始結點后處理的類
                   <action name="startleave" class="com.jbpm.handler.StartLeave"></action>
                </event>
                <transition name="" to="shenpi">
               </transition>  
             </start-state>

          審批結點
             <task-node name="shenpi">
          審批任務
                <task name="whoshenpi">
                 <controller>
          設置是否通過的流程變量
                      <variable name="shifoutongguo"></variable>
          保存該誰審批的流程變量
                     <variable name="who"></variable>
                   </controller>
                </task>
          用來處理進入審批結點的類
                <event type="node-enter">
                   <action name="com.jbpm.handler.ShenpiEnter"></action>
                </event>
          用來處理離開審批結點的類
                <event type="node-leave">
                   <action name="com.jbpm.handler.ShenpiLeave"></action>
                </event>

                <transition name="" to="decision1"></transition>
             </task-node>

          設置下一個人審批的結點
             <node name="whocheck">
          設置下一個審批人的類
              <action class="com.jbpm.handler.WhoCheckAction">
              </action>
          設置離開此結點的類
                <event type="node-leave">
                   <action name="whocheckleave" class="com.jbpm.handler.WhoCheckLeave"></action>
                </event>
          設置進入此結點的類
                <event type="node-enter">
                   <action name="whocheckenter" class="com.jbpm.handler.WhoCheckEnter"></action>
                </event>
                <transition name="" to="decision2"></transition>
             </node>

          判斷是否審批人是否通過的結點
             <decision name="decision1">
          判斷此業(yè)務流程的類
               <handler class="com.jbpm.decision.IsGoDecisionHandler"/>
                <transition name="end" to="end">
          判斷流程是否通過的類
                <action class="com.jbpm.handler.ProcessEnd"></action>
                </transition>
                <transition name="go" to="whocheck"></transition>
             </decision>

          判斷是否審批人是否是最后一個人的結點
             <decision name="decision2">
          判斷是否通過的類
             <handler class="com.jbpm.decision.IsGoDecisionHandler"/>
                <transition name="end" to="end">
          判斷是夠是最后一個人的類
                <action class="com.jbpm.handler.ProcessEnd"></action>
                </transition>
                <transition name="go" to="shenpi"></transition>
             </decision>

             流程結束結點
             <end-state name="end">
                判斷是否通過的變量
                  <controller>
                      <variable name="shifoutongguo" access="read"></variable>
                   </controller>     
             </end-state>
          </process-definition>



          1.5流程說明
          本流程定義了一個請假流程其中員工提出申請開始一個請假流程,然后主管審批,此例子我設置了3個chief來處理,只要里面一個不通過流程就結束了.

          (太晚了明天繼續(xù))2007.7.12
          posted on 2007-07-12 23:10 大博的BLOG 閱讀(6745) 評論(5)  編輯  收藏 所屬分類: jbpm

          FeedBack:
          # re: 一個完整的基于JBPM3.1.4工作流引擎的WEB請假流程例子------第一部分環(huán)境準備與工作流定義
          2008-01-05 18:49 | fengyuzd
          感謝博主能發(fā)表這么好的帖子,對我等新人確實有很重要的意義,十分感謝  回復  更多評論
            
          # re: 一個完整的基于JBPM3.1.4工作流引擎的WEB請假流程例子------第一部分環(huán)境準備與工作流定義[未登錄]
          2008-03-28 16:35 | wind
          樓主,你有沒有繼續(xù)?怎么沒有下文,我好需要啊!請樓主繼續(xù)  回復  更多評論
            
          # re: 一個完整的基于JBPM3.1.4工作流引擎的WEB請假流程例子------第一部分環(huán)境準備與工作流定義
          2008-10-27 16:27 | 上柳橙
          虎頭蛇尾嘛
          期待繼續(xù)  回復  更多評論
            
          # re: 一個完整的基于JBPM3.1.4工作流引擎的WEB請假流程例子------第一部分環(huán)境準備與工作流定義[未登錄]
          2009-12-03 15:41 | cc
          騙子  回復  更多評論
            
          # re: 一個完整的基于JBPM3.1.4工作流引擎的WEB請假流程例子------第一部分環(huán)境準備與工作流定義
          2012-02-21 13:53 | 扯淡
          就這樣太監(jiān)了?????  回復  更多評論
            
          主站蜘蛛池模板: 大理市| 宜君县| 定远县| 安达市| 稷山县| 通化县| 苍溪县| 安新县| 乌兰浩特市| 明光市| 平乡县| 太仆寺旗| 平罗县| 墨江| 丰都县| 古田县| 靖西县| 来凤县| 清丰县| 山西省| 新和县| 天长市| 巨野县| 四川省| 策勒县| 荣成市| 子洲县| 霍林郭勒市| 盐边县| 湘阴县| 金平| 红桥区| 醴陵市| 楚雄市| 永胜县| 泰安市| 姜堰市| 新沂市| 博兴县| 文成县| 克什克腾旗|