camunda 驳回一


前言

camunda 7.18 驳回操作


一、代码

//查找历史结束user task节点
					List<HistoricActivityInstance> historicActivityInstances = historyService
							.createHistoricActivityInstanceQuery().activityType("userTask")
							.processInstanceId(task.getProcessInstanceId())
							.finished()
							.orderByHistoricActivityInstanceEndTime().asc().list();

					if (historicActivityInstances != null && historicActivityInstances.size()>0){
						//获取上一节点信息
						HistoricActivityInstance activity=new HistoricActivityInstanceEntity();
						boolean flag = true;
						for (int i=0;i<historicActivityInstances.size();i++){
							if(historicActivityInstances.get(i).getActivityId().equals(task.getTaskDefinitionKey())){
								if (i-1<0){
									//第一用户节点,不可驳回
									throw new DataInvalidException("REJECT_FAIL","Rejection failure");
								}else {
									activity=historicActivityInstances.get(i-1);
								}
								flag=false;
								break;
							}
						}
						if (flag){
							activity=historicActivityInstances.get(historicActivityInstances.size()-1);
						}
						identityService.setAuthenticatedUserId(assignee);
						taskService.createComment(taskId,task.getProcessInstanceId(),comment);
						
						runtimeService.createProcessInstanceModification(task.getProcessInstanceId())
								.cancelAllForActivity(task.getTaskDefinitionKey())
								.startBeforeActivity(activity.getActivityId())
								.setAnnotation(taskId)
								.execute();

					}else {
						System.out.println("第一用户节点,驳回失败");
					}

缺陷

只能用于简单串行流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值