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

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

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

    posts - 26,  comments - 7,  trackbacks - 0

      作者:sunking

     

    在下面的例子里,我們將向您展示如何能給用戶分配任務。因為在jBPM工作流

    引擎和組織機構模型之間是分離的,對計算參與者的表達語言將總是被限制的。

    因此,你必須指定一個任務處理的實現,包括計算任務參與者。

     

    public void testTaskAssignment() {
      
    /*
    這個下面展示的業務是基于hello world業務之上。
    這個狀態節點將被任務節點取代。這個任務節點是一個在JPDL中的節點,它表現為一個等待狀態和在業務能繼續被執行之前,生成的任務被完成。
    */
      ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
        "<process-definition name='the baby process'>" +
        "  <start-state>" +
        "    <transition name='baby cries' to='t' />" +
        "  </start-state>" +
        "  <task-node name='t'>" +
        "    <task name='change nappy'>" +
        "      <assignment class='org.jbpm.tutorial.taskmgmt.NappyAssignmentHandler' />" +
        "    </task>" +
        "    <transition to='end' />" +
        "  </task-node>" +
        "  <end-state name='end' />" +
        "</process-definition>"
      );
      
      
    //創建一個業務定義的執行。
      ProcessInstance processInstance = 
          new ProcessInstance(processDefinition);
      Token token = processInstance.getRootToken();
      
      
    /*
    我們啟動業務執行,離開在它缺省轉換的啟動狀態上。
    */
      token.signal();
      
    /*
    這個signal方法將阻止它繼續,直到業務執行進入一個等待狀態。在這個情況下,這是個任務節點。
    */
      assertSame(processDefinition.getNode("t"), token.getNode());
     
      
    /*
    當執行到達任務節點,一個任務 ‘change nappy’被創建和
    NappyAssignmentHandler被調用確定任務被分配給誰。
    NappyAssignmentHandler將返回’papa’.
    */
     
     
    /*
    在真實的環境里,這個任務被在org.jbpm.db.TaskMgmtSession
    里面的方法從數據庫中取出。當我們不想包括例子里的持久化復雜性時,我
    們將取得第一個業務實例的任務例子。(在測試情節中我們只有一個實例)
    */
      TaskInstance taskInstance = (TaskInstance)  
          processInstance
            .getTaskMgmtInstance()
            .getTaskInstances()
            .iterator().next();
     
      
    //現在我們檢查是否taskInstance確實被分配給’papa’.
      assertEquals("papa", taskInstance.getActorId() );
      
      
    //現在我們猜想’papa’已經完成了職責,標記這個任務完成了。
      taskInstance.end();
      
    //當這些是最后要作的任務時,完成的任務觸發器將延續這個業務實例的執行。
     
      
      assertSame(processDefinition.getNode("end"), token.getNode());
    }
    posted on 2007-09-23 16:29 jbpm 閱讀(1178) 評論(0)  編輯  收藏 所屬分類: jbpm實例
    主站蜘蛛池模板: 亚洲av片一区二区三区| 亚洲线精品一区二区三区影音先锋 | 久久国产亚洲电影天堂| 久久99精品免费一区二区| 久久久久无码专区亚洲av| 无码精品人妻一区二区三区免费 | 亚洲无码在线播放| 久久不见久久见免费影院www日本| 国产黄色一级毛片亚洲黄片大全| 亚洲电影中文字幕| 99久久综合精品免费| 亚洲一区免费视频| 永久免费看bbb| 免费人成网站永久| 国产aⅴ无码专区亚洲av麻豆| 亚洲乱色伦图片区小说 | 成年免费a级毛片免费看无码| 精品亚洲成α人无码成α在线观看 | 无限动漫网在线观看免费| 亚洲熟妇AV一区二区三区宅男| 在线免费观看一级毛片| 免费在线观看一区| 亚洲av中文无码乱人伦在线r▽| 91在线手机精品免费观看| 中文字幕乱码亚洲无线三区 | 无码天堂va亚洲va在线va| 国产亚洲人成A在线V网站| 999任你躁在线精品免费不卡| 亚洲天堂福利视频| 免费a级黄色毛片| 国产精品偷伦视频观看免费| 亚洲伊人色一综合网| 亚洲国产成人精品91久久久| 久久亚洲免费视频| 亚洲av无码专区在线电影天堂| 最近新韩国日本免费观看 | 曰批视频免费30分钟成人| 污网站在线免费观看| 91久久亚洲国产成人精品性色| 午夜免费福利在线| 无码一区二区三区免费|