工作流JBPM操作API办理任务&流程变量

简介: 工作流JBPM操作API办理任务&流程变量

8.7 办理任务


8.7.1 办理个人任务


办理前数据表中:

办理任务:

//  办理个人任务
@Test
public void comPeletePersonTask111(){
   String taskId = "1520002";
   String user = "张三";
   List<Task> list = processEngine.getTaskService().findPersonalTasks(user);
   System.out.println(list.size());
   if( list == null || list.size() < 1){
     //  throw ... 
     System.out.println("该用户当前没有可以办理的任务!");
     return;
   }
   for(Task task : list){
     if(user.equals(task.getAssignee()) && taskId.equals(taskId)){
       // 办理任务
       processEngine.getTaskService().completeTask(taskId);
       break;
     }
   }
}

办理后数据表:

8.7.2 办理个人组任务


个人组任务:组任务节点的办理人不是一个人,而是一组拥有相同权限的人(设置组任务办理人在8.10.1)。

组任务不能直接办理,需要先将该组任务 拾取 到个人任务中。这样该组任务就变成了个人任务,此时办理方法同8.7.1。

拾取任务:

@Test
public void ban(){
   String taskId = "1470004";
   String user = "小红";
   //  拾取前 判断下 该组任务的办理用户中是否有 该用户
   //  判断 略...
   processEngine.getTaskService().takeTask(taskId, user);
}
//  拾取任务后 该组任务就变为自己的任务了 办理 同 8.7.1
//  办理 略...


8.8 驳回任务


//  驳回申请
@Test  
public void jujue(){
   String taskId = "410001";
   Task task = processEngine.getTaskService().getTask(taskId);
   System.out.println(task.getExecutionId());
   //  在驳回任务前最好先做个判断,只能驳回属于自己的任务
   //  判断 略...
   processEngine.getExecutionService()
     .endProcessInstance(task.getExecutionId(),ProcessInstance.STATE_ENDED);
}


8.9 流程变量


流程变量设置的值的作用域是整个流程(流程启动到流程结束,流程变量在流程结束后会自动从数据库表删除)。

流程变量 会保存在 jbpm4_variable 表中。


8.9.2 设置流程变量

//  设置流程变量
@Test
public void testSetVariables(){
   String executionId = "";
   String taskId = "";
   String name = "";
   Object value = "";
   Map<String, Object> variableMap = new HashMap<String, Object>();
   String processDefinitionKey = "";

   //  以下 设置 流程变量的方式 任选其一就行

   //  根据 Execution 设置一个流程变量
   processEngine.getExecutionService().setVariable(executionId, name, value);
   //  根据 Execution 设置多个流程变量
   processEngine.getExecutionService().setVariables(executionId, variableMap);
   //  根据 Task 设置多个流程变量(放入map)
   processEngine.getTaskService().setVariables(taskId, variableMap);

   //  启动时候 加入流程变量
   processEngine.getExecutionService().startProcessInstanceByKey(processDefinitionKey, variableMap);

   //  办理指定任务 并 加入 参数
   processEngine.getTaskService().completeTask(taskId, variableMap);
}


8.9.3 获取流程变量

//  获取流程变量
@Test
public void testGetVariables(){
   String executionId = "";
   String taskId = "";
   String variableName = "";
   //  根据 Execution获取指定名称的一个流程变量
   processEngine.getExecutionService().getVariable(executionId, variableName);

   //  根据 Execution获取所有流程变量
   processEngine.getExecutionService().getVariableNames(executionId);

   //  根据 Execution获取指定名称的所有流程变量
   Set<String> variableNames1 = null;
   processEngine.getExecutionService().getVariables(executionId, variableNames1);

   //  同上
   processEngine.getTaskService().getVariable(taskId, variableName);

   processEngine.getTaskService().getVariableNames(taskId);
  Set<String> variableNames2 = null;
   processEngine.getTaskService().getVariables(taskId, variableNames2);
}

所有的流程变量 都在 jbpm4_variable 表中可以查看。

相关文章
|
3月前
|
API Python
4. salt-api请求salt-minion执行任务 tornado超时报错
4. salt-api请求salt-minion执行任务 tornado超时报错
|
5月前
|
文字识别 小程序 安全
印刷文字识别操作报错合集之微信小程序调用API时路径总是返回不对,该如何处理
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
5月前
|
文字识别 前端开发 API
印刷文字识别操作报错合集之通过HTTPS连接到OCR服务的API时报错,该如何处理
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
5月前
|
DataWorks 关系型数据库 MySQL
DataWorks操作报错合集之调用CreateQualityRule API时,BlockType参数为0,会报错:"blockType less than minimum",该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
前端开发 JavaScript API
惊天揭秘!AJAX与Fetch API如何让你的前后端交互秒变‘神级操作’!
【7月更文挑战第15天】在Web开发中,AJAX和Fetch API革新了前后端交互,告别了表单提交带来的页面刷新。AJAX利用XMLHttpRequest实现部分页面更新,开启无刷新时代;Fetch API作为现代替代,以其简洁和Promise支持简化异步操作。从AJAX的先驱地位到Fetch API的进化,两者提升了Web应用的性能和用户体验,成为现代开发的必备技能。
61 2
|
5月前
|
搜索推荐 API UED
资源部署及场景API调用体验过程的引导与操作流畅性
资源部署及场景API调用体验过程的引导与操作流畅性
|
5月前
|
XML JSON 文字识别
印刷文字识别操作报错合集之API调用过程中报错469,是什么导致的
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
6月前
|
运维 DataWorks 数据管理
DataWorks操作报错合集之调用RegisterLineageRelation api时报错,是什么原因?
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
42 2
|
5月前
|
运维 Devops API
阿里云云效操作报错合集之直接用API调用可以使用,但是本地用Go代码调用失败,是什么导致的?
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
运维 Kubernetes API
阿里云云效操作报错合集之API返回的错误信息,错误码为"Operate.NoPermission",该如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。