<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實例
    主站蜘蛛池模板: 亚洲国产精品成人久久久| 久久精品亚洲一区二区| 久久精品无码一区二区三区免费| 亚洲精品无码永久在线观看你懂的| 一级毛片成人免费看a| 亚洲Av无码国产情品久久| 免费又黄又爽又猛大片午夜| 国产中文字幕免费| 国产亚洲综合久久| 亚洲国产a级视频| 在线免费视频你懂的| 亚洲AV无码专区亚洲AV伊甸园| 成人免费区一区二区三区| 久久青青草原亚洲AV无码麻豆 | 成人免费视频一区二区三区| 久久精品国产亚洲av麻豆蜜芽| 中文字幕影片免费在线观看| 在线亚洲高清揄拍自拍一品区| 国外成人免费高清激情视频| 亚洲AV日韩AV永久无码色欲| 亚洲欧洲精品成人久久曰影片 | 亚洲欧洲日韩国产一区二区三区| 日韩视频在线精品视频免费观看 | 深夜福利在线免费观看| 亚洲麻豆精品国偷自产在线91| 成人精品视频99在线观看免费| 亚洲综合无码一区二区| 毛片A级毛片免费播放| 日韩大片免费观看视频播放| 久久亚洲精品AB无码播放| 免费无遮挡无码视频在线观看| 亚洲国产人成中文幕一级二级| 免费无码黄网站在线看| 亚洲国产成人精品无码一区二区 | 免费国产成人午夜电影| 国产精品综合专区中文字幕免费播放 | 亚洲一卡2卡4卡5卡6卡残暴在线| 精品久久久久久久免费加勒比| 精选影视免费在线 | 亚洲成在人线电影天堂色| 国产精品深夜福利免费观看|