paulwong

          啟動(dòng)JBPM流程的代碼

          /**
               * 啟動(dòng)一個(gè)流程實(shí)例。
               * 
               * 
          @param name
               *            流程名稱。
               * 
          @param version
               *            版本號(hào),默認(rèn)取最新版本。
               * 
          @param formID
               *            與業(yè)務(wù)相關(guān)的表單編號(hào),可選字段。 該參數(shù)的含義為:業(yè)務(wù)系統(tǒng)可以在填寫(xiě)完表單信息后,將表單實(shí)例的ID作為流程實(shí)例變量
               *            保存到工作流系統(tǒng)中,通過(guò)該ID可以在業(yè)務(wù)系統(tǒng)中查找表單信息。當(dāng)然,也可以將表單實(shí) 際信息按照字段進(jìn)行留成實(shí)例變量賦值。
               * 
          @param actor
               *            流程實(shí)例發(fā)起人。
               * 
          @return 實(shí)例ID號(hào)+任務(wù)實(shí)例ID(如果有),格式‘實(shí)例ID-任務(wù)實(shí)例ID’。
               
          */

              
          public String startProcessInstance(String name, int version, String formID,
                      String actor);
                  jbpmContext 
          = jbpmConfiguration.createJbpmContext();
                  
          try {
                      ProcessDefinition def;
                      
          if (version == 0{
                          def 
          = jbpmContext.getGraphSession()
                                  .findLatestProcessDefinition(name);
                      }
           else {
                          def 
          = jbpmContext.getGraphSession().findProcessDefinition(name,
                                  version);
                      }

                      ProcessInstance instance 
          = new ProcessInstance(def);            
                      TaskInstance taskInstance 
          = instance.getTaskMgmtInstance().createStartTaskInstance();                
                      
                      
          if ((formID != null&& (!formID.equals("")))
                          instance.getContextInstance()
                                  .setVariable(
                                          name 
          + "-" + version + "-" + instance.getId()
                                                  
          + "-Form", formID);
                      jbpmContext.save(instance);
                      String rtn 
          = String.valueOf(instance.getId());
                      
                      
          //如果有啟動(dòng)任務(wù)
                      if (taskInstance != null){
                          taskInstance.setActorId(actor);
                          rtn 
          += "-" + String.valueOf(taskInstance.getId());
                      }
          else{
                          instance.getRootToken().signal();
                      }

                      
          return rtn;
                  }
           catch (Exception e) {
                      e.printStackTrace();
                      log.error(e.getMessage());
                  }
           finally {
                      jbpmContext.close();
                  }

                  
          return "";
              }

          posted on 2008-12-31 12:16 paulwong 閱讀(965) 評(píng)論(0)  編輯  收藏 所屬分類: JBPM

          主站蜘蛛池模板: 阿拉善盟| 中山市| 城步| 景谷| 镇赉县| 辉南县| 昔阳县| 清新县| 平湖市| 康马县| 武义县| 普定县| 吉木乃县| 西华县| 枣强县| 郑州市| 化州市| 琼结县| 山东| 瑞安市| 淮南市| 揭东县| 拉孜县| 青神县| 平南县| 渑池县| 仙居县| 台湾省| 陇川县| 东明县| 枣庄市| 科技| 大悟县| 滦平县| 兴仁县| 邯郸县| 曲阜市| 吉木萨尔县| 南靖县| 怀安县| 奉化市|