Activiti业务键(businessKey)
问题:如何让业务对象和对应的流程 关联?
发现ProcessInstance 有个方法getBusinessKey()可以得到一个businessKey。
ProcessInstance 对应数据库中的表act_ru_execution有个字段BUSINESS_KEY_对应类中的businessKey,这个字段在创建表时自动被设置为unique
解决:
1、保证流程的ID和业务对象的类名一致。例如:流程id为LeaveBill,我们的业务对象的类名也创建为LeaveBill。
2、在流程启动的时候获取业务对象执行方法的时候传入businessKey,workflowService.startProcess(key,businessKey,vars);(这里vars为一些变量根据实际情况可有可无)businessKey 产生规则: className+“.”+objId
public void startProcess(Long id) { //1. 获取业务对象 LeaveBill bill = this.get(id); if(bill!=null){ // 修改业务对象状态 bill.setState(1);// 请假单状态 0初始录入,1.开始审批,2为审批通过 this.update(bill); //2. 添加流程变量(Map) Map<String,Object> vars = new HashMap<>(); vars.put("inputUser", bill.getUser().getName()); // 添加变量来描述业务对象的信息 String classType =bill.getClass().getSimpleName(); vars.put("classType", classType); vars.put("objId", bill.getId()); //3. 启动流程// 获取流程定义key String key = classType; // 获取业务键 产生规则: className+“.”+objId String businessKey = classType +"." + bill.getId(); this.workflowService.startProcess(key,businessKey,vars); } }
3、根据以下方法就可以用taskId获取业务对象id
public String getBusinessObjId(String taskId) { //1 获取任务对象 Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); //2 通过任务对象获取流程实例 ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); //3 通过流程实例获取“业务键” String businessKey = pi.getBusinessKey(); //4 拆分业务键,拆分成“业务对象名称”和“业务对象ID”的数组 // a=b LeaveBill.1 String objId = null; if(StringUtils.isNotBlank(businessKey)){ objId = businessKey.split("\\.")[1]; } return objId; }
4、根据业务键获取流程实例和任务
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceBusinessKey("LeaveBill.1").singleResult();
Task task = taskService.createTaskQuery().processInstanceBusinessKey("LeaveBill.1").singleResult();
相关推荐
1. 初识Activiti 1.1. 工作流与工作流引擎 工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。它主要解决的是“使在...
忙活了一个星期左右,查找各种资料,终于将Activiti的流程设计器分离出来,与SpringMVC,spring整合了起来,先把工程分享出来,等有时间了在慢慢讲解具体的整合步骤。工程下载之后直接可以运行,只需要改一下数据库...
赠送jar包:activiti-engine-5.21.0.jar; 赠送原API文档:activiti-engine-5.21.0-javadoc.jar; 赠送源代码:activiti-engine-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-engine-5.21.0.pom; 包含...
Activiti源码看着太复杂了,于是从网上看了一些教程从零开始搭了一个简易demo版,个人主页有对其进行详细介绍,配合食用哦~ Activiti是一个工作流引擎, activiti可以将业务系统中复杂的业务流程抽取出来,使用专门...
Activiti6最大的变化点就是对代码进行了重构,该版本修复以往的Bug并不多,但内部实现相对来说变化比较大。其突出的变化如下所示: 新增两款新引擎,Form引擎和DMN引擎(动态引擎)。其中DMN引擎允许开发人员创建...
时间:2015年6月30日17:19:45 ...我深知刚刚学习activiti的心情,什么都不懂,都不知道如何创建一个activiti项目,所以我写了这个web项目供大家参考,这仅仅只是个demo,大家可以在这上面进行扩展。
众所周知,camunda是由activiti5演变而来的,所以由activiti5迁移到camunda是非常丝滑的,官网上也有迁移需要的sql脚本,但是activiti6的迁移官网原文是这么说的:If you are on a more recent Activiti version or ...
Activiti是一个独立运作和经营的开源项目品牌,并将独立于Alfresco开源ECM系统运行。 Activiti将是一种轻量级,可嵌入的BPM引擎,而且还设计适用于可扩展的云架构。 Activiti将提供宽松的Apache许可2.0,以便这个...
Activiti7发布正式版之后,它与SpringBoot2.x已经完全支持整合开发。我们可以将Activiti7与SpringBoot整合开发的坐标引入到工程中,从而达到SpringBoot支持Activti7整合。 1.使用IDEA创建SpringBoot项目 在工程的...
赠送jar包:activiti-json-converter-5.21.0.jar; 赠送原API文档:activiti-json-converter-5.21.0-javadoc.jar; 赠送源代码:activiti-json-converter-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-...
eclipse Activiti 插件 jar包 出错 org.eclipse.emf.transaction org.eclipse.emf.validation org.eclipse.emf.workspace org.activiti.designer.feature org.eclipse.graphiti.feature org.activiti.designer....
此项目为springmvc、Mybatis、EHcache、maven、Spring security3、activiti5工作流的整合 是一个基于数据库的权限管理demo项目、使用mysql数据库 项目运行前需要构建maven私服 而且有些jar包私服中肯定没有,需要...
Activiti-Modeler 5.18用了新的WEB框架,其是基于Spring-Mvc 4.0以上的框架,同时用了VAADIN的RIA的UI,特别是后者,这框架带有太多的jar包,虽然它也是结合了spring来使用,要整合这玩意,几乎就得把这东西加入我们...
赠送jar包:activiti-bpmn-model-5.21.0.jar; 赠送原API文档:activiti-bpmn-model-5.21.0-javadoc.jar; 赠送源代码:activiti-bpmn-model-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-bpmn-model-...
activiti 5.22 explorer的war包
activiti的jar包
这个是Activiti开发的请假流程实例,可以作为用Activiti开发工作流的参考;项目采用spring+hibernate+strus2+activity开发,可以运行;数据库采用oracle,其中 QingJia 和 QingJiaHis 是自己的业务表,分别表示 请假...
Activiti的Web流程图设计器,BPMN-JS也可在官网下载并配置,这里压缩包是配置好的 1、需要提前下载好Node.js(中文官网连接:http://nodejs.cn/),傻瓜式安装。 2、解压后在bpmnjs目录打开dos命令窗口,输入npm ...
在原有Activiti的教程资源上对零散的源码进行了集中整理,并增加了pdm、IDE集成Activiti插件等文件,附上部分菜单,整理不易,给分支持,后期继续分享其他资源 01 - 问候Activiti他大爷 1.Activiti简介 2....
作为没用过工作流的一员,之前看过vue引入activiti工作流的案例,但是组件中存在很多问题,这个是我修改过并且成功调用,大家可以供参考,富含Java代码(Jfinal),后续出spring版本的, 前台版本vue4.0版本, ...