<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      camunda_18_user_task_assignment

      Camunda 后臺數據庫內建有幾個人員/組織數據表, 但在User task assignment方便, 并不強制我們要將自己的人員/組織數據導入到這些table中. 舉例講, 我們需要將某個user task指派給 demo123 這個用戶, 直接在該user task設定 assignee 為 demo123 即可, 就這么簡單.

      指定 Assignment 的幾種形式:

      • Assignee: 直接指派到人.
      • Candidate Users, 指派多個人, 按逗號分隔.
      • Candidate Groups, 指派到多個組, 按逗號分隔.
        說明: 在TaskList應用中, 對于后兩種形式的指派, 操作人員在執行user task之前, 還需要先做任務認領, 誰認領任務, 誰就獲得執行權.
        但如果是自己的流程引擎的應用, 其實可以設計認領過程, 也可以省略認領步驟.

      Assignment 的設定時機

      • 流程設計時設定. 在流程設計時即使用固定值指定任務執行人, 比如設定 demo123.
      • 流程啟動時設定. Assignee/CandidateUsers/CandidateGroups, 都支持表達式設定, 我們可以在流程設計時, 指定user task的執行人為 ${user} , 在流程啟動時間, 設定這些流程變量, 即完成人員指派.
      • 流程流轉過程中設定. 流程設計時通過變量設定執行人, 然后在流程流轉時, 在前置節點代碼指定后續節點的執行人, 或者在本user task的 executionListener的 start 事件或 taskListener 的 create 事件中動態設定執行人. 下圖executionListener 和 taskListener 常用event的執行順序圖:
        順序圖

      通過create TaskListener 指派人員的示例代碼

      
      public class MyUserTaskListener implements TaskListener {
      
      	@Override
      	public void notify(DelegateTask delegateTask) {
      		if (delegateTask.getEventName().equals("create")) {
      			//直接指派人
      			delegateTask.setAssignee("demo123");
      			//或者, 設定流程變量userId
      			delegateTask.setVariable("userId","demo123");
      		}
      	}
      }
      

      User task 任務處理

      SpringBoot 的引擎項目, DI 容器可以直接注入 TaskService 實例, 然后就可以按照process 和當前用戶UserId/group 遍歷到要 todo 清單, 進而完成業務處理.
      下面是一個簡單的代碼示例:

      @SpringBootApplication
      @EnableProcessApplication
      public class WebappExampleProcessApplication {
      	@Autowired
      	TaskService taskService;
      
      	public static void main(String... args) {
      		SpringApplication.run(WebappExampleProcessApplication.class, args);
      	}
      
      	public void doTask() {
      		List<Task> tasks = null;
      		tasks = taskService.createTaskQuery().taskAssignee("demo123").processInstanceBusinessKey("procKey").list();
      		tasks = taskService.createTaskQuery().taskCandidateUser("demo123").processInstanceBusinessKey("procKey").includeAssignedTasks().list();
      		tasks = taskService.createTaskQuery().taskCandidateGroup("Group1").processInstanceBusinessKey("procKey").includeAssignedTasks().list();
      		if (tasks != null && tasks.size() > 0) {
                  Task task= tasks.get(0) ;
      			String taskId = task.getId();
      
      			// 業務處理代碼省略
      
      			
      			// 如果原來分配到group或candidateUsers, 可設定具體執行人
      			taskService.setAssignee(taskId, "demo123");
      
      			// 提交task
      			taskService.complete(taskId);
      			taskService.handleBpmnError(taskId, "some error"); // 拋出 Bpmn 異常
      
      		}
      	}
      
      }
      

      參考

      posted @ 2022-10-11 21:59  harrychinese  閱讀(620)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 伦理片午夜视频在线观看| 自拍日韩亚洲一区在线| 亚洲大尺度无码专区尤物| 国产办公室秘书无码精品99| 精品久久久久久无码免费| 人人人澡人人肉久久精品| 高潮videossex潮喷| 久久精品国产99精品亚洲| 一区二区三区成人| 国产一区二区三区精品片| 日韩有码中文在线观看| 日本高清在线观看WWW色| 99热门精品一区二区三区无码| 18禁免费无码无遮挡不卡网站| 久久精品国产精品亚洲精品| 本道久久综合无码中文字幕| 99精品国产在热久久无| 榆社县| 岛国最新亚洲伦理成人| 国产在线啪| 日本中文字幕久久网站| 乱人伦人妻精品一区二区| 波多野结衣av一区二区三区中文| 日韩在线视频一区二区三| 亚洲精品日本久久一区二区三区| 国产成人a在线观看视频免费| 日韩无人区码卡1卡2卡| 激情六月丁香婷婷四房播 | 色综合久久精品中文字幕| 日韩乱码人妻无码中文字幕视频 | 精品人妻av区乱码| 十八禁午夜福利免费网站 | 亚洲成a人片77777kkkk| 毛片av在线尤物一区二区| 精品国产一区二区三区香蕉| 亚洲一区二区三区激情在线| 国产中文字幕精品在线| 日本成熟少妇激情视频免费看| 8050午夜二级无码中文字幕| 亚洲欧洲一区二区免费| 亚洲av第二区国产精品|