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

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

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

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
    流程定義文件
    <?xml version="1.0" encoding="UTF-8"?>

    <process-definition
      
    xmlns="urn:jbpm.org:jpdl-3.2"  name="forkjoin">
       
    <start-state name="開(kāi)始">
          
    <transition name="to join" to="fork"></transition>
       
    </start-state>
       
    <fork name="fork">
             
    <script>
                 
    <variable name="transitionNames" access="write"></variable>
                 
    <expression>
                     transitionNames=new ArrayList();
                     if(param>100){
                         transitionNames.add("to node1");
                         transitionNames.add("to node2");
                     }else{
                         transitionNames.add("to node3");
                         transitionNames.add("to node4");
                     }
                 
    </expression>
             
    </script>
          
    <transition name="to node1" to="node1"></transition>
          
    <transition name="to node2" to="node2"></transition>
          
    <transition name="to node3" to="node3"></transition>
          
    <transition name="to node4" to="node4"></transition>
       
    </fork>
       
    <join name="join">
          
    <transition name="to 結(jié)束" to="結(jié)束"></transition>
       
    </join>
       
    <end-state name="結(jié)束"></end-state>
       
    <node name="node1">
          
    <transition name="to join" to="join"></transition>
          
    <event type="node-enter">
              
    <script>
                  print("經(jīng)過(guò)"+node.getName());
              
    </script>
          
    </event>
       
    </node>
       
    <node name="node2">
          
    <transition name="to join" to="join"></transition>
          
    <event type="node-enter">
              
    <script>
                  print("經(jīng)過(guò)"+node.getName());
              
    </script>
          
    </event>
       
    </node>
       
    <node name="node3">
          
    <transition name="to join" to="join"></transition>
          
    <event type="node-enter">
              
    <script>
                  print("經(jīng)過(guò)"+node.getName());
              
    </script>
          
    </event>
       
    </node>
       
    <node name="node4">
          
    <transition name="to join" to="join"></transition>
          
    <event type="node-enter">
              
    <script>
                  print("經(jīng)過(guò)"+node.getName());
              
    </script>
          
    </event>
       
    </node>
    </process-definition>

    工作機(jī)制:是通過(guò)在fork節(jié)點(diǎn)添加<script></script>標(biāo)簽,在script內(nèi)部設(shè)置
    <variable name="transitionNames" access="write"></variable>切記此處access屬性設(shè)置為write

    <expression>
            transitionNames=new ArrayList();
            if(param>100){
             transitionNames.add("to node1");
             transitionNames.add("to node2");
            }else{
             transitionNames.add("to node3");
             transitionNames.add("to node4");
            }
    </expression>
    上面在流程實(shí)例上下文中定義了一個(gè)變量param,當(dāng)param大于100時(shí),執(zhí)行node1和node2節(jié)點(diǎn)
    測(cè)試一下:
    package com.jbpm;

    import org.jbpm.graph.def.ProcessDefinition;
    import org.jbpm.graph.exe.ProcessInstance;


    public class TestForkJoin {
        
        
    public static void main(String[] args) {
            ProcessDefinition processDefinition
    =ProcessDefinition.parseXmlResource("forkjoin/processdefinition.xml");
            ProcessInstance processInstance
    =new ProcessInstance(processDefinition);
            processInstance.getContextInstance().setVariable(
    "param"200);
            
    //processInstance.signal();
            System.err.println("當(dāng)前節(jié)點(diǎn)是:"+processInstance.getRootToken().getNode().getName());
            processInstance.signal();
            System.err.println(
    "當(dāng)前節(jié)點(diǎn)是:"+processInstance.getRootToken().getNode().getName());
        }
    }
    運(yùn)行結(jié)果
    當(dāng)前節(jié)點(diǎn)是:開(kāi)始
    11:44:07,703 [main] DEBUG GraphElement : event 'before-signal' on 'StartState(開(kāi)始)' for 'Token(/)'
    11:44:07,703 [main] DEBUG GraphElement : event 'node-leave' on 'StartState(開(kāi)始)' for 'Token(/)'
    11:44:07,718 [main] DEBUG GraphElement : event 'transition' on 'Transition(to join)' for 'Token(/)'
    11:44:07,718 [main] DEBUG GraphElement : event 'node-enter' on 'Fork(fork)' for 'Token(/)'
    11:44:07,719 [main] DEBUG Script : script input: {node=Fork(fork), param=200, token=Token(/), task=null, executionContext=ExecutionContext[Token(/)], taskInstance=null}
    11:44:07,814 [main] DEBUG Script : script output: {transitionNames=[to node1, to node2]}
    11:44:07,830 [main] DEBUG GraphElement : event 'node-leave' on 'Fork(fork)' for 'Token(/to node1)'
    11:44:07,830 [main] DEBUG GraphElement : event 'transition' on 'Transition(to node1)' for 'Token(/to node1)'
    11:44:07,830 [main] DEBUG GraphElement : event 'node-enter' on 'Node(node1)' for 'Token(/to node1)'
    11:44:07,830 [main] DEBUG GraphElement : executing action 'Script(10f6d3)'
    11:44:07,830 [main] DEBUG Token : token[0] is locked by token[0]
    11:44:07,830 [main] DEBUG Script : script input: {node=Node(node1), param=200, token=Token(/to node1), task=null, executionContext=ExecutionContext[Token(/to node1)], taskInstance=null}
    經(jīng)過(guò)node1
    11:44:07,861 [main] DEBUG Script : script output: {}
    11:44:07,861 [main] DEBUG Token : token[0] is unlocked by token[0]
    11:44:07,861 [main] DEBUG GraphElement : event 'node-leave' on 'Node(node1)' for 'Token(/to node1)'
    11:44:07,861 [main] DEBUG GraphElement : event 'transition' on 'Transition(to join)' for 'Token(/to node1)'
    11:44:07,861 [main] DEBUG GraphElement : event 'node-enter' on 'Join(join)' for 'Token(/to node1)'
    11:44:07,861 [main] DEBUG Join : join will not yet reactivate parent: found concurrent token 'Token(/to node2)'
    11:44:07,861 [main] DEBUG GraphElement : event 'node-leave' on 'Fork(fork)' for 'Token(/to node2)'
    11:44:07,861 [main] DEBUG GraphElement : event 'transition' on 'Transition(to node2)' for 'Token(/to node2)'
    11:44:07,861 [main] DEBUG GraphElement : event 'node-enter' on 'Node(node2)' for 'Token(/to node2)'
    11:44:07,861 [main] DEBUG GraphElement : executing action 'Script(cfec48)'
    11:44:07,861 [main] DEBUG Token : token[0] is locked by token[0]
    11:44:07,861 [main] DEBUG Script : script input: {node=Node(node2), param=200, token=Token(/to node2), task=null, executionContext=ExecutionContext[Token(/to node2)], taskInstance=null}
    經(jīng)過(guò)node2
    posted on 2011-06-16 11:45 雪山飛鵠 閱讀(1312) 評(píng)論(0)  編輯  收藏 所屬分類: jbpm4
    主站蜘蛛池模板: 曰批全过程免费视频在线观看无码| 亚洲AV成人精品日韩一区| 亚洲精品天天影视综合网| 国产亚洲视频在线播放| 国产亚洲精久久久久久无码AV| 亚洲国模精品一区| 中文字幕亚洲不卡在线亚瑟| 亚洲欧洲一区二区三区| 国产精品亚洲二区在线观看| 国产亚洲成人久久| 亚洲人成网站在线播放vr| 国产日韩亚洲大尺度高清| 亚洲国产综合专区在线电影| 久久久久亚洲精品无码蜜桃| 亚洲美女自拍视频| 中文字幕亚洲情99在线| 18禁亚洲深夜福利人口| 全部一级一级毛片免费看| 国产无遮挡色视频免费观看性色| 99视频在线观看免费| 亚欧日韩毛片在线看免费网站| **一级毛片免费完整视| 性生交片免费无码看人| 国产精品免费视频一区| 亚洲精品视频在线看| 亚洲VA中文字幕不卡无码| 亚洲最大福利视频网站| 亚洲精品天堂在线观看| 男男gvh肉在线观看免费| 国产A∨免费精品视频| 国产在线观看免费视频软件| 免费人成在线观看69式小视频| 四虎在线免费播放| 国产亚洲情侣一区二区无码AV| 亚洲短视频男人的影院| 亚洲熟女综合色一区二区三区| 免费一级毛片在线播放放视频| 任你躁在线精品免费| 一个人看www在线高清免费看| 免费久久精品国产片香蕉| 亚洲国产精品高清久久久|