千家信息网

activiti之流程变量值Business_key

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,以请假为例,我们在做工作流的时候一定是需要将我们的业务和工作流来关联起来的,而Activiti给我们提供了一个便利就是Business_key,而这个字段就是专门用来存储我们的业务关键字。例如我们有一
千家信息网最后更新 2026年11月01日activiti之流程变量值Business_key

以请假为例,我们在做工作流的时候一定是需要将我们的业务和工作流来关联起来的,而Activiti给我们提供了一个便利就是Business_key,而这个字段就是专门用来存储我们的业务关键字。

例如我们有一个请假的业务,而我的请假信息都已经编写到数据库的表(tb_leaveBill)中了,但是我怎么样把我的请假信息关联到activiti的数据库表中,对了,就是用给定的Activiti的Business_key,而这里有一个小技巧,例如我的javaBean叫做LeaveBill,而我的请假信息的ID为1,那么我就可以让他写成leaveBill.1,技巧就是业务Bean.业务ID,这样我们就能Business_key的设置了

启动流程实例(Business_key)

[java] view plain copy

  1. public void saveStartProcess(WorkflowBean workflowBean) {

  2. //获取请假单ID,使用请假单ID,的对象的LeaveBill

  3. Long id = workflowBean.getId();

  4. LeaveBill leaveBill = leaveBillDao.findLeaveBillById(id);

  5. //更新请假单的状态

  6. leaveBill.setState(1);

  7. String key = leaveBill.getClass().getSimpleName();

  8. //从session中获取流程变量

  9. Map variables = new HashMap();

  10. variables.put("inputUser", SessionContext.get().getName()); //表设计唯一

  11. //使用流程变量关联工作流和业务

  12. String objId = key + "." + id; //格式LeaveBill.id

  13. //启动流程实例,同时设置流程变量,//使用正在执行的对象表中的一个字段(Businesskey),让启动实例关联业务

  14. runtimeService.startProcessInstanceByKey(key,objId,variables);

  15. }

效果图如下:

查询(Business_key)

查询的时候,我们需要根据任务ID,查询task对象,然后根据task对象,获取实例ID,之后使用流程实例查询Business_key来获取对应的业务的主键,这样就能查询到

[java] view plain copy

  1. //使用任务ID,查询请假单信息

  2. @Override

  3. public LeaveBill findLeaveByTaskId(String taskId) {

  4. //1,使用任务ID,查询对象task

  5. Task task = taskService.createTaskQuery().taskId(taskId).singleResult();

  6. //2.使用任务ID,获取实例ID

  7. String processInstanceId = task.getProcessInstanceId();

  8. //3.使用流程实例,查询

  9. ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();

  10. //4.使用流程实例对象获取BusinessKey

  11. String business_key = pi.getBusinessKey();

  12. //5.获取Business_key对应的主键ID

  13. String id = "";

  14. if(StringUtils.isNotBlank(business_key)){

  15. //截取字符串

  16. id = business_key.split("\\.")[1].toString();

  17. }

  18. LeaveBill leaveBill = leaveBillDao.findLeaveBillById(Long.parseLong(id));

  19. return leaveBill;

  20. }


业务 实例 流程 查询 对象 任务 信息 就是 关联 变量 工作 字段 工作流 技巧 数据 数据库 时候 对了 关键 关键字 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技海报 有格互联网科技 互联网加科技 中国互联网科技工作委员会毛军 与互联网科技公司 为想互联网科技 互联网科技缩写 互联网之后的科技是什么 阿里巴巴算科技企业还是互联网 昊天互联网科技有限公司 互联网科技商业 东莞新华互联网科技学校 上海钢联属于互联网科技股吗 互联网领先科技宣传片 南京一网一红互联网科技有限公司 九思连强互联网电子科技有限公司 广东鹅鹅鹅互联网科技有限公司 容联科技互联网电商 银川新华互联网科技学校原画 山东亿川互联网科技有限责任公司 互联网加科技 天津市摩尔互联网科技 互联网科技有限公司经营范围 丰台科技园 互联网公司 互联网教育科技公司vipkid 互联网科技创新服务 智腾互联网科技有限公司 崇明区互联网教育科技售后服务 银川新华互联网科技学校联系电话 重庆科技产业互联网有哪些
0