Activiti业务键(businessKey)】的更多相关文章

问题:如何让业务对象和对应的流程 关联? 发现ProcessInstance 有个方法getBusinessKey()可以得到一个businessKey. ProcessInstance 对应数据库中的表act_ru_execution有个字段BUSINESS_KEY_对应类中的businessKey,这个字段在创建表时自动被设置为unique 解决: 1.保证流程的ID和业务对象的类名一致.例如:流程id为LeaveBill,我们的业务对象的类名也创建为LeaveBill. 2.在流程启动的时…
启动流程实例时,指定的businesskey,就会在act_ru_execution #流程实例的执行表中存储businesskey. Businesskey:业务标识,通常为业务表的主键,业务标识和流程实例一一对应.业务标识来源于业 务系统.存储业务标识就是根据业务标识来关联查询业务系统的数据. 比如:请假流程启动一个流程实例,就可以将请假单的 id 作为业务标识存储到 activiti 中,将来查询 activiti 的流程实例信息就可以获取请假单的 id 从而关联查询业务系统数据库得到请假…
对于不管是Activtit还是jbpm来说,业务与流程的整合均类似.启动流程是绑定业务.流程与业务的整合放到动态代理中 [java] view plain copy print" style="text-decoration:none; background-color:inherit; border:none; padding:0px; margin:0px 10px 0px 0px; font-size:9px; color:rgb(12,137,207)">? /…
绑定业务主键businessKey /** * 绑定业务主键 */ @Test public void bindingBusinessKey() { // 获取RuntimeService RuntimeService runtimeService = defaultProcessEngine.getRuntimeService(); // 启动流程实例并绑定业务主键 ProcessInstance holiday = runtimeService.startProcessInstanceByK…
1.1.1.  activiti默认主键生成方式 ; 下面我们看一下主键的生成策略:主键的生成策略定义在IdGenerator接口中,接口定义如下所示: public interface IdGenerator {  String getNextId();} getNextId()方法定义了主键生成的策略,每次需要主键的时候直接从getNextId()方法中获取即可. 下面看一下IdGenerator接口的实现类,具体的实现结构如下: 1.DbIdGenerator默认的方式,没有依赖第三方ja…
注意:以下规则是我为了规范流程的处理过程,不是Activiti公司的官方规定. 1.流程启动需要设置启动者,在Demo程序中,“启动者变量”名统一设置为initUserId 启动时要做的: identityService.setAuthenticatedUserId(initUserId); processInstance = runtimeService.startProcessInstanceByKey(流程ID, 业务Key, 变量map); or startProcessInstance…
1.什么是Activiti 在解释activiti之前我们看一下什么是工作流.工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”.我的理解是,工作流将一套大的业务逻辑分解成业务逻辑段, 并统一控制这些业务逻辑段的执行条件,执行顺序以及相互通信. 实现业务逻辑的分解和解耦.Activiti是一个开源的工作流引擎,它实现了BPM…
注意:以下规则是我为了规范流程的处理过程,不是Activiti公司的官方规定. 1.流程启动需要设置启动者,在Demo程序中,“启动者变量”名统一设置为initUserId 启动时要做的: identityService.setAuthenticatedUserId(initUserId); processInstance = runtimeService.startProcessInstanceByKey(流程ID, 业务Key, 变量map); or startProcessInstance…
1.1什么是流程实例 参与者(可以是用户也可以是程序)按照流程定义内容发起一个流程,这就是一个流程实例.是动态的.流程定义和流程实例的图解: 1.2启动流程实例 流程定义部署在 activiti 后,就可以在系统中通过 activiti 去管理该流程的执行,执行流程表示流程的一次执行.比如部署系统请假流程后,如果某用户要申请请假这时就需要执行这个流程,如果另外一个用户也要申请请假则也需要执行该流程,每个执行互不影响,每个执行是单独的流程实例 执行流程首先需要启动流程实例. @Test publi…
有了前面几章,我们肯定有一定的困惑,activiti如何与实际业务整合,比如一条采购单,如何跟一个流程实例互相关联起来? 这里就需要使用到activiti启动流程实例时设置一个流程实例的businessKey(一般存储我们一条采购单的id) 1,启动流程实例设置其businessKey /** * 启动一个流程实例,设置其业务id */ @Test public void startProInsWithKey() { RuntimeService runtimeService = engine.…