<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                使用監聽器的方式來指定負責人,那么在流程設計時就不需要指定assignee。 任務監聽器是發生對應的任務相關事件時執行自定義 java 邏輯或表達式。 <br/> 使用監聽器分配負責人的步驟如下: **1. 指定監聽器屬性** :-: ![](https://img.kancloud.cn/58/db/58dbf83d53243532bc0884038d25e274_410x161.png) ![](https://img.kancloud.cn/ef/bc/efbc4e9e391e2ab24a116ada37f87bbb_1195x135.png) `evection-listener.bpmn` ```java // Event可選值: public interface BaseTaskListener extends Serializable { String EVENTNAME_CREATE = "create"; // 任務創建后觸發 String EVENTNAME_ASSIGNMENT = "assignment"; // 任務分配后觸發 String EVENTNAME_COMPLETE = "complete"; // 任務完成后觸發 String EVENTNAME_DELETE = "delete"; // 任務刪除后觸發 String EVENTNAME_ALL_EVENTS = "all"; // 所有事件發生都觸發 } Type可選值: Class Expression Delegate Expression ``` 我就不用上面的圖形化操作了,直接在XML中指定。 ```xml ... <userTask activiti:exclusive="true" id="_4" name="創建出差申請單"> <extensionElements> <!-- event=all,class就是指定的監聽器 --> <activiti:taskListener class="com.example.learn.flowable.listener.MyTaskListener" event="all" /> </extensionElements> </userTask> <userTask activiti:exclusive="true" id="_5" name="總經理審批"> <extensionElements> <activiti:taskListener class="com.example.learn.flowable.listener.MyTaskListener" event="all" /> </extensionElements> </userTask> ... ``` **2. 定義監聽器** ```java public class MyTaskListener implements TaskListener { @Override public void notify(DelegateTask delegateTask) { //判斷當前的任務名稱是 創建出差申請單 并且是 create 事件 if ("創建出差申請單".equals(delegateTask.getName()) && "create".equals(delegateTask.getEventName())) { //設置該任務負責人為 張三 delegateTask.setAssignee("張三"); } } } ``` **3. 測試** ```java public class ListenerDemo { /** * 1. 先進行流程部署 */ @Test public void testDeployment() { //1、獲取ProcessEngine ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); //2、獲取RepositoryServcie RepositoryService repositoryService = processEngine.getRepositoryService(); //3、部署流程 Deployment deploy = repositoryService.createDeployment() .name("測試監聽器") //部署名稱 .addClasspathResource("bpmn/evection-listener.bpmn") .deploy(); //流程部署id=15001 System.out.println("流程部署id=" + deploy.getId()); //流程部署名稱=測試監聽器 System.out.println("流程部署名稱=" + deploy.getName()); } /** * 2. 啟動流程,創建流程實例 */ @Test public void startDemoListener() { //獲取流程引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); //獲取RunTimeService RuntimeService runtimeService = processEngine.getRuntimeService(); //根據流程key啟動流程實例 runtimeService.startProcessInstanceByKey("evection-listener"); } } ``` ```sql # 創建出差申請單這個節點就會分配一個負責人為張三 mysql> select * from act_ru_task; +------+------+---------------+---------------+------------------+----------------+-----------------+--------------+-----------... | ID_ | REV_ | EXECUTION_ID_ | PROC_INST_ID_ | PROC_DEF_ID_ | NAME_ | PARENT_TASK_ID_ | DESCRIPTION_ | TASK_D... +------+------+---------------+---------------+------------------+----------------+-----------------+--------------+-----------... | 5005 | 1 | 5002 | 5001 | evection-listener:1:15004 | 創建出差申請單 | NULL | NULL | _4 | NULL | 張三 | ... +------+------+---------------+---------------+------------------+----------------+-----------------+--------------+-----------... ``` **** 參考文檔:https://tkjohn.github.io/flowable-userguide/#taskListeners
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看