activiti数据库表

Activiti的表都以ACT_开头。第二部分是表示表的用途的两个字母标识。用途也和服务的API对应。

  • ACT_RE_*: 'RE'表示repository这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。
  • ACT_RU_*: 'RU'表示runtime这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。这样运行时表可以一直很小速度很快。
  • ACT_ID_*: 'ID'表示identity这些表包含身份信息,比如用户,组等等。
  • ACT_HI_*: 'HI'表示history这些表包含历史数据,比如历史流程实例,变量,任务等等。

ACT_GE_*: 通用数据,用于不同场景下。

 

用户和组相关的表:

select * from ACT_ID_GROUP g where g.type_ ='APPLICATION_MANAGEMENT_ROOM_CONFIRM';

select * from ACT_ID_MEMBERSHIP m where m.group_id_='263';

select * from ACT_ID_USER U WHERE U.ID_ IN (select m.user_id_ from ACT_ID_MEMBERSHIP m where m.group_id_='263') for update;

 

必须手工插入工作流使用的用户和组信息到以上表中,调用相关的API,工作流才能被指定到特定的组:

//指定候选组
		List<Group> groups = new ArrayList<Group>();
		List<String> groupids = new ArrayList<String>();
		groups.addAll(identityService
				.createGroupQuery()
				.groupType(
						TicketWorkflowGroupTypeEnum.APPLICATION_MANAGEMENT_ROOM_CONFIRM.toString())
				.list());
		for (Group group : groups) {
			groupids.add(group.getId());
		}
		delegateTask.addCandidateGroups(groupids);

根据用户查询该用户可以认领的Task:

/**
	 * 分配到我所在的组的工作
	 * @param userId
	 * @param pageParams
	 * @return
	 */
	@Transactional(readOnly = true)
    public List<WeekOnlineProject> findMyGroupTasks(String userId) {
		List<Task> tasks = new ArrayList<Task>();
		
		List<Group> list = identityService.createNativeGroupQuery().sql(sql + userId + "'").list();
		
		for (int i = 0; i < list.size(); i++) {
			String groupId = list.get(i).getId();
			TaskQuery groupQuery = taskService.createTaskQuery().processDefinitionKey(Const.PROJECT_RELEASE_PLAN_PROCESSINSTANCE_ID).taskCandidateGroup(groupId).active().orderByTaskId().
					desc().orderByTaskCreateTime().desc();
			List<Task> groupList = groupQuery.list();
			tasks.addAll(groupList);
		}
		List<WeekOnlineProject> sts = taskToWeekOnlineProject(tasks) ;
		removeEquals(sts);
		return sts;
	}

  

 

这样指定组的用户就可以“认领”和“处理”该Task。

查询节点处理的表单key

String taskFormKey= formService.getTaskFormData(taskId).getFormKey();

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值