activiti之流程变量值Business_key
来源:互联网 发布:appserv是什么软件 编辑:程序博客网 时间:2024/05/21 05:42
以请假为例,我们在做工作流的时候一定是需要将我们的业务和工作流来关联起来的,而Activiti给我们提供了一个便利就是Business_key,而这个字段就是专门用来存储我们的业务关键字。 效果图如下:
例如我们有一个请假的业务,而我的请假信息都已经编写到数据库的表(tb_leaveBill)中了,但是我怎么样把我的请假信息关联到activiti的数据库表中,对了,就是用给定的Activiti的Business_key,而这里有一个小技巧,例如我的javaBean叫做LeaveBill,而我的请假信息的ID为1,那么我就可以让他写成leaveBill.1,技巧就是业务Bean.业务ID,这样我们就能Business_key的设置了
启动流程实例(Business_key)
- public void saveStartProcess(WorkflowBean workflowBean) {
- //获取请假单ID,使用请假单ID,的对象的LeaveBill
- Long id = workflowBean.getId();
- LeaveBill leaveBill = leaveBillDao.findLeaveBillById(id);
- //更新请假单的状态
- leaveBill.setState(1);
- String key = leaveBill.getClass().getSimpleName();
- //从session中获取流程变量
- Map<String,Object> variables = new HashMap<String,Object>();
- variables.put("inputUser", SessionContext.get().getName()); //表设计唯一
- //使用流程变量关联工作流和业务
- String objId = key + "." + id; //格式LeaveBill.id
- //启动流程实例,同时设置流程变量,//使用正在执行的对象表中的一个字段(Businesskey),让启动实例关联业务
- runtimeService.startProcessInstanceByKey(key,objId,variables);
- }
查询(Business_key)
查询的时候,我们需要根据任务ID,查询task对象,然后根据task对象,获取实例ID,之后使用流程实例查询Business_key来获取对应的业务的主键,这样就能查询到
- //使用任务ID,查询请假单信息
- @Override
- public LeaveBill findLeaveByTaskId(String taskId) {
- //1,使用任务ID,查询对象task
- Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
- //2.使用任务ID,获取实例ID
- String processInstanceId = task.getProcessInstanceId();
- //3.使用流程实例,查询
- ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
- //4.使用流程实例对象获取BusinessKey
- String business_key = pi.getBusinessKey();
- //5.获取Business_key对应的主键ID
- String id = "";
- if(StringUtils.isNotBlank(business_key)){
- //截取字符串
- id = business_key.split("\\.")[1].toString();
- }
- LeaveBill leaveBill = leaveBillDao.findLeaveBillById(Long.parseLong(id));
- return leaveBill;
- }
阅读全文
0 0
- activiti之流程变量值Business_key
- activiti之流程变量值Business_key
- activiti之流程变量值Business_key
- 面试之变量值交换
- Android全局变量值之ApplicationContext
- Android全局变量值之ApplicationContext
- Android全局变量值之ApplicationContext
- activiti之流程变量
- activiti之流程变量
- activiti自定义流程之Activiti Modeler汉化
- 1个人开发操作系统之显示变量值
- Block 5:Block解析之截获局部变量值
- 变量值互换
- Air传递变量值
- 变量值的变换
- mysql插入变量值
- 变量值交换
- 70.交换变量值
- 80x86-1 基本指令和寄存器
- ffmpeg取rtsp流时av_read_frame阻塞的解决办法
- linux发不出邮件 重新安装mail服务
- dubbo自定义配置文件
- CAS Server集成QQ登录、新浪微博登录源码及配置文件
- activiti之流程变量值Business_key
- 在jquery.ajax()的回调函数中使用发送请求时的data中的参数
- POJ 2299 Ultra-QuickSort【归并排序】
- 消除ScrollView 惯性
- parted分区工具使用
- 简单进度条的实现
- static和extern简单使用(要使用一个东西,先了解其作用)
- 文件aidl的使用方法
- something useful about cmd