UFLO:5启动任务并自动完成第一个人工任务
Posted 秦晓宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UFLO:5启动任务并自动完成第一个人工任务相关的知识,希望对你有一定的参考价值。
1、原因
UFLO不允许驳回到开始节点,这导致了如果发起人在填写好表单,并且发起流程时,无法知道到达“巴长审核”节点,需要再次点击“填写申请”的流程,这样用户需要操作2次,显得比较繁琐。
2、解决办法
2.1、修改代码
CentralServletHandler.java是控制台的Servlet核心处理类。测试用如下方式可以跳过“填写申请”,直接进入到巴长审核阶段。
public void startProcess(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
long processId=Long.valueOf(req.getParameter("processId"));
/*** 开始 @author qin*@date:2020年3月25日 下午12:37:55**/
// String token = req.getHeader("token");
// String userId = JwtTokenUtil.getUserId(token);
// String userName = JwtTokenUtil.getRealName(token);
StartProcessInfo startProcessInfo = new StartProcessInfo("0510f511a7bca2797fb8a73c02955825","admin");
/*** 结束 @author qin*@date:2020年3月25日 下午12:39:55**/
startProcessInfo.setCompleteStartTask(true);
String variables=req.getParameter("variables");
Map<String,Object> variableMaps=buildVariables(variables);
if(variableMaps!=null)
startProcessInfo.setVariables(variableMaps);
ProcessInstance processInstance = processService.startProcessById(processId, startProcessInfo/*null*/);
/*----------------qin--------------------*/
System.out.println("获取下一节点task");
List<Task> l = taskService.loadTaskList(processInstance.getId());
for (Task task : l)
System.out.println("task id"+task.getId());
taskService.start(task.getId());
taskService.complete(task.getId());
break;
/*----------------qin--------------------*/
核心添加的代码为:
/*----------------qin--------------------*/
System.out.println("获取下一节点task");
List<Task> l = taskService.loadTaskList(processInstance.getId());
for (Task task : l)
System.out.println("task id"+task.getId());
taskService.start(task.getId());
taskService.complete(task.getId());
break;
/*----------------qin--------------------*/
2.2、配置节点
只能设置为如下
3、测试
如下图所示,已经成功的启动并自动完成了“填写申请”节点
以上是关于UFLO:5启动任务并自动完成第一个人工任务的主要内容,如果未能解决你的问题,请参考以下文章