風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數據加載中……

          jBPM之hello world

          參考
          http://www.aygfsteel.com/chengang/archive/2006/07/13/57986.html

          下面是根據官方開發向導及自己的經驗寫的

          開發向導上提供的helloworld例子,這個流程是單向的,沒有任何的分支,且沒有自定義actionHandler,使用的是默認的handler
          public void testHelloWorldProcess() {
            // This method shows a process definition and one execution// of the process definition.  The process definition has // 3 nodes: an unnamed start-state, a state 's' and an // end-state named 'end'.// The next line parses a piece of xml text into a// ProcessDefinition.  A ProcessDefinition is the formal // description of a process represented as a java object.
            ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
              "<process-definition>" +
              "  <start-state>" +
              "    <transition to='s' />" +
              "  </start-state>" +
              "  <state name='s'>" +
              "    <transition to='end' />" +
              "  </state>" +
              "  <end-state name='end' />" +
              "</process-definition>"
            );
            
            // The next line creates one execution of the process definition.// After construction, the process execution has one main path// of execution (=the root token) that is positioned in the// start-state.
            ProcessInstance processInstance = 
                new ProcessInstance(processDefinition);
            
            // After construction, the process execution has one main path// of execution (=the root token).
            Token token = processInstance.getRootToken();
            
            // Also after construction, the main path of execution is positioned// in the start-state of the process definition.
            assertSame(processDefinition.getStartState(), token.getNode());
            
            // Let's start the process execution, leaving the start-state // over its default transition.
            token.signal();
            // The signal method will block until the process execution // enters a wait state.// The process execution will have entered the first wait state// in state 's'. So the main path of execution is now // positioned in state 's'
            assertSame(processDefinition.getNode("s"), token.getNode());
          
            // Let's send another signal.  This will resume execution by // leaving the state 's' over its default transition.
            token.signal();
            // Now the signal method returned because the process instance // has arrived in the end-state.
            
            assertSame(processDefinition.getNode("end"), token.getNode());
          }

          更詳細的例子可以看參考,里面有很詳細的操作說明。




          下面是根據參考例子測試時出現的一些問題及說明。
          一、關于數據庫,首先要修改數據庫連接,然后創建數據庫,里面的表格jBPM提供相應的API去創建。
          public?void?testDeployProcessDefinition()?throws?FileNotFoundException?{?
          ????????
          //?從?jbpm.cfg.xml?取得?jbpm?的配置?
          ????????JbpmConfiguration?config?=?JbpmConfiguration.getInstance();
          ????????config.dropSchema();//刪除數據表結構
          ????????config.createSchema();//創建數據表結構
          ????????
          //?創建一個?jbpm?容器?
          ????????JbpmContext?jbpmContext?=?config.createJbpmContext();?
          ????????
          //?由?processdefinition.xml?生成相對應的流程定義類?ProcessDefinition?
          ????????InputStream?is?=?new?FileInputStream("processes/simple/processdefinition.xml");?
          ????????ProcessDefinition?processDefinition?
          =?ProcessDefinition.parseXmlInputStream(is);?
          ????????
          ????????
          //?利用容器的方法將流程定義數據部署到數據庫上?
          ????????jbpmContext.deployProcessDefinition(processDefinition);?
          ????????
          //?關閉?jbpmContext?
          ????????jbpmContext.close();?
          ????}

          這個是根據流程配置文件最后生成的數據庫信息的測試方法,剛開始我還有一個疑問,數據庫和數據表是系統自動創建還
          是要手動創建,數據庫是要手動創建的,數據表可以自動創建的



          posted on 2007-01-18 10:55 風人園 閱讀(1012) 評論(0)  編輯  收藏 所屬分類: jBPM

          主站蜘蛛池模板: 通榆县| 九龙城区| 铁岭县| 卓尼县| 株洲市| 邹城市| 兴安盟| 吉首市| 西林县| 灵寿县| 双辽市| 泗阳县| 洞头县| 靖安县| 凤阳县| 怀宁县| 信宜市| 上高县| 淳安县| 龙泉市| 岳普湖县| 五峰| 西昌市| 兰考县| 康保县| 桑植县| 如皋市| 榕江县| 滦南县| 吉水县| 丘北县| 颍上县| 扶绥县| 岳普湖县| 黑水县| 锦州市| 桐城市| 秭归县| 嘉鱼县| 黔江区| 施甸县|