工作流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 表中可以查看。

相关文章
|
15天前
|
DataWorks 安全 API
DataWorks产品使用合集之用API创建的补数据工作流,怎样才能获知工作流的运行状态
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
130 0
|
30天前
|
安全 测试技术 网络安全
API渗透测试的基本流程及关键点
【5月更文挑战第26天】API渗透测试类似Web应用渗透测试,涉及资产分析和模拟攻击,以发现安全缺陷。
|
21天前
|
Java API Maven
第三方支付API支付宝支付申请流程 支付宝新老版本
第三方支付API支付宝支付申请流程 支付宝新老版本
29 0
|
1月前
|
XML API 数据格式
工作流JBPM操作API组任务
工作流JBPM操作API组任务
24 1
|
3天前
|
自然语言处理 安全 API
触发邮件接口有哪些?邮件API文档
**触发邮件接口**如AokSend、Mailgun、Amazon SES、Postmark和Sendinblue是自动化企业通信的关键。这些接口在特定事件时自动发送邮件,提高效率和客户体验。例如,AokSend提供详细的API文档,支持事件触发、模板管理和多语言集成;Mailgun以灵活性著称;Amazon SES适合大规模发送;Postmark专注于事务邮件;Sendinblue则提供邮件、短信和营销自动化功能。每种服务都有示例代码展示如何使用API发送邮件。选择合适的接口能提升企业通信效率和客户满意度。
|
6天前
|
XML 安全 API
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
|
4天前
|
安全 API 网络安全
API接口安全加固:应对黑客攻击的实战指南
**API安全摘要:** API成为黑客目标,攻击类型包括未授权访问、CSRF、DDoS、数据泄露和注入攻击。防御策略包括使用OAuth 2.0和JWT进行认证授权,防止CSRF攻击,限制请求速率,避免数据泄露,以及实施注入攻击防护。开发者应定期更新安全措施,确保API安全性。示例代码展示了Node.js中JWT认证的实现。
|
4天前
|
Java API
java调用个人微信API接口收发朋友圈,删除评论朋友圈
java调用个人微信API接口收发朋友圈,删除评论朋友圈
|
1天前
|
安全 API 数据安全/隐私保护
​验证码邮件API有哪些?分析最好的3个接口平台
验证码邮件API如AOKSend、SendGrid和Mailgun是用户身份验证的关键工具。这些API提供高效、可靠的邮件发送服务,确保验证码的安全传输。AOKSend以其快速发送和易用性著称,SendGrid则以全面功能和扩展性见长,而Mailgun则以灵活性和高送达率闻名。开发者可以根据需求选择合适的API,通过示例代码轻松集成到应用中,增强安全性和用户体验。
|
4天前
|
安全 API 开发工具
微信开发:API接口与ipad协议的深度比较及最佳选择
微信开发:API接口与ipad协议的深度比较及最佳选择