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

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

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

      camunda_19_api

      本文內容轉載,

      下面內容轉載自

      流程打回到起始節點

              //獲取流程起始節點和發起人
              String toActId = historicActivityInstanceList.get(0).getActivityId();
              String assignee = historicActivityInstanceList.get(0).getAssignee();
      
              //將流程發起人放到變量
              Map<String, Object> taskVariable = new HashMap<>();
              taskVariable.put("assignee", assignee);
       
              //將流程拉回到起始節點  
              runtimeService.createProcessInstanceModification(processInstanceId)
                      //關閉相關任務
                      .cancelActivityInstance(getInstanceIdForActivity(activityInstance, taskList.get(0).getTaskDefinitionKey()))
                      .setAnnotation("進行了取回到節點操作")
                      //啟動目標活動節點
                      .startBeforeActivity(toActId)
                      //流程的可變參數賦值
                      .setVariables(taskVariable)
                      .execute();
      

      下面內容轉載自

      https://github.com/jyong-zhu/sigma/blob/main/docs/camunda-tutorial.md

      Camunda Service 簡介

      service description
      RepositoryService 操作靜態數據,管理 process definition 與 deployment
      RuntimeService 操作動態數據,如保存流程上下文的變量,查詢 process instance 與 execution
      TaskService 操作任務,把任務分配給用戶,完成任務,申請任務
      IdentityService 管理角色或者用戶,camunda 本身不關注用戶是否合規
      FormService 操作 camunda 中自帶的表單,非必需
      HistoryService 提供對 process instance、task 的歷史數據查詢功能
      ManagementService 管理數據庫表的元數據信息,同時提供對 jobs 的相關操作
      FilterService 用于過濾數據
      ExternalTaskService 用于外部任務的相關操作

      Camunda 查詢示例

      1. 鏈式查詢

        List<Task> tasks = taskService.createTaskQuery()
          .taskAssignee("kermit")
          .processVariableValueEquals("orderId", "0815")
          .orderByDueDate().asc()
          .list();
        
      2. 分頁查詢

        List<Task> tasks = taskService.createTaskQuery()
          .taskAssignee("kermit")
          .processVariableValueEquals("orderId", "0815")
          .orderByDueDate().asc()
          .listPage(20, 50);
        
      3. or:僅適用于對 process instance 和 task 操作

        // assignee = "John Munda" AND (name = "Approve Invoice" OR priority = 5)
        // or 和 endOr 之間的關聯關系是 or
        List<Task> tasks = taskService.createTaskQuery()
          .taskAssignee("John Munda")
          .or()
            .taskName("Approve Invoice")
            .taskPriority(5)
          .endOr()
          .list();
        

        or 中關于參數的過濾條件不會被覆蓋,但是對非參數的過濾條件會被覆蓋,如下:

        List<Task> tasks = taskService.createTaskQuery()
          .or()
          	// 以下3個過濾條件不會彼此覆蓋
            .processVariableValueEquals("orderId", "0815")
            .processVariableValueEquals("orderId", "4711")
            .processVariableValueEquals("orderId", "4712")
          .endOr()
          .list();
        
        List<Task> tasks = taskService.createTaskQuery()
          .or()
          	// 以下2個過濾條件會被覆蓋,這個語句中只會查出 controlling,不會查出 sales
            .taskCandidateGroup("sales")
            .taskCandidateGroup("controlling")
          .endOr()
          .list();
        
        // 針對以上這種覆蓋的條件,不用 or,可以用 in 來做,如下:
        taskCandidateGroupIn()
        tenantIdIn()
        processDefinitionKeyIn()
        
      4. Native Queries:自定義 sql 查詢

        List<Task> tasks = taskService.createNativeTaskQuery().sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T WHERE T.NAME_ = #{taskName}") .parameter("taskName", "aOpenTask").list();
        
        long count = taskService.createNativeTaskQuery().sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T1, " + managementService.getTableName(VariableInstanceEntity.class) + " V1 WHERE V1.TASK_ID_ = T1.ID_").count();
        

      Camunda 使用

      1. 部署流程定義

        Deployment deployment = repositoryService.createDeployment().addInputStream(processName + ".bpmn", xmlStream).deploy();
        
      2. 發起流程實例

        runtimeService.startProcessInstanceByKey(processDef.getProcDefKey(), paramMap);
        
      3. 中止流程實例

        // 首先,camunda 將 runtime 中的一些數據刪除
        // 再將 ACT_HI_PROCINST 中的流程實例狀態改為 INTERNALLY_TERMINATED
        runtimeService.deleteProcessInstance(procInstId, comment);
        
      4. 查詢任務列表

        // 任務的執行人信息均在 cadidateGroup 中,無論是 userId 或者 roleId
        // identityList 包含查詢人的 userId 和 roleId
        taskService.createTaskQuery().taskCandidateGroupIn(identityList).list();
        
      5. 提交任務

        taskService.complete(task.getId(), paramMap);
        
      6. 查詢流程實例列表

        // 進行中的流程實例
        historyService.createHistoricProcessInstanceQuery().active().list();
        // 已結束的流程實例
        historyService.createHistoricProcessInstanceQuery().finished().list();
        
      7. 查詢流程實例處于活躍狀態的活動

        runtimeService.getActiveActivityIds(processInstance.getId());
        
      8. 更新流程實例上下文的變量值

        runtimeService.setVariables(processInstance.getId(), paramMap);
        

      參考資料

      1. Camunda 官網:https://camunda.com/
      2. Camunda 官方文檔:https://docs.camunda.org/manual/latest/
      posted @ 2022-10-12 07:16  harrychinese  閱讀(735)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 在线 欧美 中文 亚洲 精品| 日韩不卡一区二区三区四区| 蜜桃视频一区二区在线观看| 国产成人片无码视频在线观看| 久热这里有精品视频播放| 久久热在线视频精品视频| 撕开奶罩揉吮奶头高潮av| 亚洲无人区码二码三码区| 国产福利社区一区二区| 亚洲人成网站在线在线观看| 色综合国产一区二区三区| 亚洲色婷婷综合开心网| 亚洲人成网站18禁止| 青青草国产精品一区二区| 中文人妻av高清一区二区| 国产成人精品日本亚洲网站| 激情综合网激情综合网五月| 精品国偷自产在线视频99| 99精产国品一二三产品香蕉| 国产精品日韩中文字幕熟女| 国产福利在线观看免费第一福利| 色婷婷av久久久久久久| 内射合集对白在线| 中文字幕乱码一区二区免费| 国偷自产一区二区三区在线视频 | √天堂资源网最新版在线| 国产免费午夜福利在线观看 | 欧美人与zoxxxx另类| av天堂午夜精品一区| 国产一区二区在线有码| 亚洲色欲色欲大片www无码| 国产精品综合在线免费看| 欧美孕妇乳喷奶水在线观看| 苍井空毛片精品久久久| 女同另类激情在线三区| 亚洲男人天堂av在线| 少妇又爽又刺激视频| 偷拍美女厕所尿尿嘘嘘小便| 亚洲欧美在线观看品| 久久精品夜色噜噜亚洲aa| 漂亮人妻中文字幕丝袜|