首页 > 其他 > 详细

activiti6.0 提交流程至某节点 ,可用于实现驳回操作(未测试)

时间:2018-02-25 20:25:27      阅读:1826      评论:0      收藏:0      [点我收藏+]
/**
* @param task 任务Id
* @param variables ...
* @param targetActivityId 节点ID
* @throws Exception ...
* @creator 毛志涛
* @date 2018/2/25
* @描述 提交流程至某节点
*/
private void commitProcess(Task task, Map<String, Object> variables, String targetActivityId) {
// TODO: 2018/2/25 未测试
//获取当前节点Id
String currentActivityId = task.getTaskDefinitionKey();
//获取模型实体
String processDefinitionId = task.getProcessDefinitionId();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
//获取当前节点
FlowElement currentFlow = bpmnModel.getFlowElement(currentActivityId);
//获取目标节点
FlowElement targetFlow = bpmnModel.getFlowElement(targetActivityId);
//创建连线
String uuid = UUID.randomUUID().toString().replace("-", "");
SequenceFlow newSequenceFlow = new SequenceFlow();
newSequenceFlow.setId(uuid);
newSequenceFlow.setSourceFlowElement(currentFlow);
newSequenceFlow.setTargetFlowElement(targetFlow);
//设置条件
newSequenceFlow.setConditionExpression("${\"+uuid+\"==\"" + uuid + "\"}");
//添加连线至bpmn
bpmnModel.getMainProcess().addFlowElement(newSequenceFlow);
//添加变量(保证这根线独一无二)
variables.clear();//清空变量,防止干扰
variables.put(uuid, uuid);
//提交
taskService.addComment(task.getId(), task.getProcessInstanceId(), "撤回");
//完成任务
taskService.complete(task.getId(), variables);
//删除连线
bpmnModel.getMainProcess().removeFlowElement(uuid);
}

activiti6.0 提交流程至某节点 ,可用于实现驳回操作(未测试)

原文:https://www.cnblogs.com/maozhitao/p/8470364.html

(1)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!