简体中文
Groovy代码示例
约 325 字大约 1 分钟
2026-01-09
此方法主要是通过完成任务接口,实现驳回操作,并且可以实现驳回后重新发起到当前节点.以下查询任务的方式可以根据各自业务进行查询,本文档主要
//获取当前数据信息
String entityId = context.data.object_describe_api_name
String objectId = context.data._id
//获取20条(自行调整) 当前数据对应的实例信息, in_progress:进行中;pass:已完成;cancel:撤回,error:异常
APIResult instanceResult = Fx.approval.findInstances(entityId, ["in_progress"], objectId, 20, 0)
QueryResult instanceQueryResult = instanceResult[1]
instanceQueryResult.getDataList().each{
instance->instance
String instanceId = instance["instanceId"]
//通过实例获取所有的任务信息
APIResult taskResult = Fx.approval.findTasks(instanceId)
List tasks = taskResult[1]
tasks.each{
task->task
String currentTaskId = task["taskId"]
Object opinions = task["opinions"]
String state = task["state"]
//任务待处理人
List userIds =(List) task["userIds"]
//log.info("任务Id:"+currentTaskId+",当前任务状态为:"+state+",审批意见:"+opinions)
//当前任务属于进行中
if("in_progress"==state){
log.info("currentTaskId:"+currentTaskId)
//当前任务,执行驳回操作,驳回意见,处理人(只有处理人才能对任务进行驳回或同意),所属对象,所属数据id,所属数据(不需要更新数据传递null即可),是否重新发起到当前节点(true:是,false:否)
Fx.approval.approvalAction( currentTaskId, "reject", "驳回后重新发起到当前节点", userIds.get(0).toString(), entityId, objectId, null,true)
}
}
}