1. 程式人生 > >activiti的組任務開發

activiti的組任務開發

     在工作中使用到了將任務派發給使用者組處理,第一次使用,查了點資料,寫了個demo。

首先,檢視資料庫中關於使用者、使用者組的表結構:

可以看出來,使用者、使用者組相關的表其實與其他的activiti表無關聯。我們可以使用自己的一套使用者、使用者組管理,而且官方也是建議使用自己的使用者使用者組許可權管理的。

怎麼使用自己的使用者、使用者組管理以後會在另寫一篇,這裡就不介紹了。

首先我們建立一個測試用的bpmn

如上圖中,我們對Group Task節點,添加了兩個使用者組:groupB和GroupC。注意,要用英文逗號。

在使用者表,使用者組表,關係表中插入使用者、使用者組,以及關聯資訊。

使用者表:act_id_user

使用者組表:act_id_group

關係表:act_id_membership

將流程定義跑到Group Task節點,查詢使用者組任務。

List<String> groupIds = new ArrayList<String>();
	    groupIds.add("groupB");
	    groupIds.add("groupC");
//		List<Task> list = processEngine.getTaskService()
//				.createTaskQuery().
//				taskCandidateGroup("groupB,groupC")//在設定多個使用者組時,使用了中文逗號,導致activiti解析時,認為是一個名字為“groupB,groupC”的組。 
//				.list();
		List<Task> list = processEngine.getTaskService().createTaskQuery().taskCandidateGroupIn(groupIds).list();
		if(list!=null && list.size()>0){
			for(Task task:list){
				System.out.println("任務ID:"+task.getId());
				System.out.println("任務名稱:"+task.getName());
				System.out.println("任務的建立時間:"+task.getCreateTime());
				System.out.println("任務的辦理人:"+task.getAssignee());
				System.out.println("流程例項ID:"+task.getProcessInstanceId());
				System.out.println("執行物件ID:"+task.getExecutionId());
				System.out.println("流程定義ID:"+task.getProcessDefinitionId());
				System.out.println("########################################################");
			}
		}


要效果好點,可以改成動態設定幾個不同的任務組執行任務,再使用上述程式碼查詢任務組任務。

也可以使用以下程式碼查詢使用者的組任務:

String candidateUser = "ee";
		List<Task> list = processEngine.getTaskService()//與正在執行的任務管理相關的Service
						.createTaskQuery()//建立任務查詢物件
						/**查詢條件(where部分)*/
						.taskCandidateUser(candidateUser)//組任務的辦理人查詢
						/**排序*/
						.orderByTaskCreateTime().asc()//使用建立時間的升序排列
						/**返回結果集*/
						.list();//返回列表
		if(list!=null && list.size()>0){
			for(Task task:list){
				System.out.println("任務ID:"+task.getId());
				System.out.println("任務名稱:"+task.getName());
				System.out.println("任務的建立時間:"+task.getCreateTime());
				System.out.println("任務的辦理人:"+task.getAssignee());
				System.out.println("流程例項ID:"+task.getProcessInstanceId());
				System.out.println("執行物件ID:"+task.getExecutionId());
				System.out.println("流程定義ID:"+task.getProcessDefinitionId());
				System.out.println("########################################################");
			}
		}



相關推薦

activiti任務開發

     在工作中使用到了將任務派發給使用者組處理,第一次使用,查了點資料,寫了個demo。 首先,檢視資料庫中關於使用者、使用者組的表結構: 可以看出來,使用者、使用者組相關的表其實與其他的activiti表無關聯。我們可以使用自己的一套使用者、使用者組管理,而且官方也

Activiti工作流--任務角色的設定--之十二(完結)

將任務分配給某個角色 在流程設計當中指定處理任務的某個角色 (注意:新增處理人員不是在assignee選項 而是 cadidate group) 在流程設計的時候用流程變數的方式指定某個角色作為處理人,然後在前面的流程處理完的時候用流程變數指定某些角色的人傳

activiti(7.0) 任務流程CandidateUsers

1.部署流程定義 public static void main(String[] args) { //1.建立ProcessEngine物件 ProcessEngine processEngine = ProcessEngines.getDefaultProce

activiti查詢個人任務任務結合

SELECT A.ID_ AS TASK_ID,        A.PROC_INST_ID_ PROC_INST_ID,        A.TASK_DEF_KEY_ AS ACT_ID,        A.NAME_ AS ACT_NAME,        A.ASSI

Activiti工作流筆記之——分配任務的三種方式

目錄 1.直接指定辦理人 測試程式碼: package cn.itcast.l_groupTask; import java.io.InputStream; import java.util.HashMap; import java.util.Li

Activiti 分配任務(三種方式)

方式一:定義流程時指定組任務候選人(該方式不夠靈活,使用較少) 方式二:使用流程變數指定組任務候選人 流程圖程式碼 <?xml version="1.0" encoding="UTF-8"?> <definitions

Activiti 學習筆記13:分配任務

一、流程圖 二、分配組任務方式一(直接指定辦理人) 1:流程圖中任務節點的配置 2:測試程式碼 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

activiti學習--13:任務分配方式1直接方式+查詢正在執行的任務辦理人表+查詢歷史任務的辦理人表+拾取任務+將個人任務回退到任務+向任務中新增/刪除成員

組任務及三種分配方式: 1:在taskProcess.bpmn中直接寫 candidate-users=“a,b,c,d” 2:在taskProcess.bpmn中寫 candidate-users =“#{userIDs}”,變數的值要是S

【vue】餓了麽項目-header開發

!= component cnblogs pad 操作 一個數 使用 xbox 剩余空間 1.數據傳遞的理解 在App.vue中用到了header組件,首先註冊組件 components: { ‘v-header‘: header } 然後才能引用

Activiti接受任務(receiveTask)

image eve 持久化數據 wait 手動 手工 修改時間 workflow otn Activiti接受任務(receiveTask) 作者:鄧家海 前言: Activiti接受任務(receiveTask)其實和Activiti的手動任務是差不多的,不過手動任務是直

微信會員卡,開卡開發遇到總匯

需要 卡號 數據 邏輯 實現 微信 pen 測試 開發 背景 業務要求,使用微信會員卡開卡組件讓用戶領取註冊會員卡,註冊後給用戶發優惠券(CRM系統的優惠券)。 實現基本邏輯 1.設置微信會員卡,激活後跳轉激活。這樣設置後,用戶填寫資料激活後會跳轉到設置的url上。

wn-cli 像React開發一樣來開發微信小程序

window end 構建 const .com 編輯器 serve app.js align 項目地址:wn-cli wn-cli wn-cli 像React組件開發一樣來開發微信小程序 名字由來:wn -> weapp native 取第一個字母 Install

50.商業化數開發

void star log clas 初始 i++ body array truct 運行結果: 1 #include <stdlib.h> 2 #include <stdio.h> 3 #include <memory.h&

header 開發

ajax 數據接口 header blog head 三方 通過 prop 需要 1.起步 header 組件需完成:需要通過異步請求後端數據接口,接收並渲染相關商家數據。 實現思路:在父組件(App.vue)發送 Ajax 請求獲得後端數據,然後通過 header 的 P

面向對象開發-拖拽

get sed tin eas cli tel back doc capture <div id="div1"></div> <div id="div2"></div> <div id="div3"></d

圖片上傳開發

url cfs 大小 wid don append scrip reader 背景 我就要自行車 - 需求整理 放眼WWW,一般的圖片上傳模塊,主要就是實現了三個功能,圖片的預覽,圖片的剪裁及預覽,圖片的上傳,那我也就整這麽一個吧,再細化一下需求。 圖片的預覽 用戶使

從零開始搭建系統3.4——緩存開發

搭建 html OS get gpo target 開發 href 系統 從零開始搭建系統3.4——緩存組件開發從零開始搭建系統3.4——緩存組件開發

從零開始搭建系統3.6——基礎配置開發

基礎配置 www. .cn blog logs href 組件開發 gpo com 從零開始搭建系統3.6——基礎配置組件開發從零開始搭建系統3.6——基礎配置組件開發

微信小程序image開發程序以及相關圖片問題參考資料匯總

get 圖片 使用 color image IT 開發 必備 更改 微信小程序image組件開發程序以及相關圖片問題參考資料匯總,希望對大家小程序開發能有一定的參考和借鑒價值。以下匯總主要涉及到微信小程序image組件有關資源路徑、縮放和剪裁模式等進行的探討,無論是對微信小

javaScript開發

pan nbsp -s alt script 重用 ima style 可維護 javaScript組件開發——代碼重用的一種方式 更豐富的代碼利用形式 首先先搭好一個框架 自定義事件:主要跟函數有關系,就是讓函數具備某些事件的特性 函數自身問題:就是名