溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

activiti之流程變量值Business_key

發布時間:2020-09-05 18:19:56 來源:網絡 閱讀:6979 作者:亦輕塵 欄目:軟件技術

以請假為例,我們在做工作流的時候一定是需要將我們的業務和工作流來關聯起來的,而Activiti給我們提供了一個便利就是Business_key,而這個字段就是專門用來存儲我們的業務關鍵字。

       例如我們有一個請假的業務,而我的請假信息都已經編寫到數據庫的表(tb_leaveBill)中了,但是我怎么樣把我的請假信息關聯到activiti的數據庫表中,對了,就是用給定的Activiti的Business_key,而這里有一個小技巧,例如我的javaBean叫做LeaveBill,而我的請假信息的ID為1,那么我就可以讓他寫成leaveBill.1,技巧就是業務Bean.業務ID,這樣我們就能Business_key的設置了

        啟動流程實例(Business_key)

[java] view plain copy

  1. public void saveStartProcess(WorkflowBean workflowBean) {  

  2.     //獲取請假單ID,使用請假單ID,的對象的LeaveBill  

  3.     Long id = workflowBean.getId();  

  4.     LeaveBill leaveBill = leaveBillDao.findLeaveBillById(id);  

  5.     //更新請假單的狀態  

  6.     leaveBill.setState(1);  

  7.     String key = leaveBill.getClass().getSimpleName();  

  8.     //從session中獲取流程變量  

  9.     Map<String,Object> variables = new HashMap<String,Object>();  

  10.     variables.put("inputUser", SessionContext.get().getName());  //表設計唯一  

  11.     //使用流程變量關聯工作流和業務  

  12.     String objId = key + "." + id;  //格式LeaveBill.id  

  13.     //啟動流程實例,同時設置流程變量,//使用正在執行的對象表中的一個字段(Businesskey),讓啟動實例關聯業務  

  14.     runtimeService.startProcessInstanceByKey(key,objId,variables);  

  15.       

  16. }  

        效果圖如下:

  activiti之流程變量值Business_key

       查詢(Business_key)

      查詢的時候,我們需要根據任務ID,查詢task對象,然后根據task對象,獲取實例ID,之后使用流程實例查詢Business_key來獲取對應的業務的主鍵,這樣就能查詢到

[java] view plain copy

  1. //使用任務ID,查詢請假單信息  

  2.     @Override  

  3.     public LeaveBill findLeaveByTaskId(String taskId) {  

  4.         //1,使用任務ID,查詢對象task  

  5.         Task task = taskService.createTaskQuery().taskId(taskId).singleResult();  

  6.         //2.使用任務ID,獲取實例ID  

  7.         String processInstanceId = task.getProcessInstanceId();  

  8.         //3.使用流程實例,查詢  

  9.         ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();  

  10.         //4.使用流程實例對象獲取BusinessKey  

  11.         String business_key = pi.getBusinessKey();  

  12.         //5.獲取Business_key對應的主鍵ID  

  13.         String id = "";  

  14.         if(StringUtils.isNotBlank(business_key)){  

  15.             //截取字符串  

  16.             id = business_key.split("\\.")[1].toString();  

  17.               

  18.         }  

  19.         LeaveBill leaveBill = leaveBillDao.findLeaveBillById(Long.parseLong(id));  

  20.         return leaveBill;  

  21.     } 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女