`
aiyan2001
  • 浏览: 73931 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

activiti

 
阅读更多

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();
分享到:
评论

相关推荐

    activiti modeler.zip_activiti_activiti-modeler_java_zip

    Activiti Modeler是一款基于Java开发的流程建模工具,它主要与Activiti BPMN(业务流程管理Notation)引擎紧密配合,为用户提供了一个直观、易用的界面来设计、模拟和部署业务流程。Activiti是Alfresco公司推出的一...

    Activiti-activiti-5.22.0 源码

    Activiti 是一个开源的工作流程引擎,它主要用于自动化业务流程。这个源码包是 Activiti 5.22.0 版本,包含了整个框架的源代码,为开发者提供了深入理解 Activiti 内部机制的机会。以下是一些关于 Activiti 的核心...

    activiti designer 5.18 eclipse eclipse插件 activiti插件 activiti设计

    Activiti Designer是基于Eclipse的一款流程建模工具,主要用于设计和管理Activiti工作流引擎的业务流程。在 Activiti Designer 5.18 版本中,它为开发者提供了直观的图形化界面,使得创建、修改和理解业务流程模型变...

    Spring-activiti-ruoyi-activiti

    《Spring-Activiti在Ruoyi框架中的应用与二次开发》 在当今的企业级应用开发中,工作流管理系统已经成为不可或缺的一部分。Spring-Activiti作为一款强大的工作流引擎,结合Spring Boot框架,为开发者提供了便捷、...

    activiti5.22jar包_activiti_

    Activiti 是一个开源的工作流和业务自动化引擎,它在Java平台上运行,并且与Spring框架高度集成。这个"activiti5.22jar包"是Activiti 5.22版本的打包文件,其中包含了所有运行Activiti所需的核心库和依赖。在本文中...

    activiti designer5.18离线安装插件(activiti-designer5.18.0.rar)

    Activiti Designer 5.18 是一款基于Eclipse的图形化工作流建模工具,它为企业提供了一种直观的方式来设计、部署和管理业务流程。这款离线安装插件的出现,使得用户无需在线连接即可在Eclipse环境中进行Activiti工作...

    activiti-5.22.0zip下载

    Activiti 是一个开源的工作流和业务流程管理(BPM)平台,它被广泛用于企业级应用中,以实现流程自动化和提升工作效率。标题中的 "activiti-5.22.0zip下载" 指的是Activiti的一个特定版本——5.22.0的压缩包文件,...

    Activiti工作流示例Activiti Demo(带完整源码)非常实用

    Activiti是一款开源的工作流引擎,它基于模型驱动的架构(MDA),专为现代企业应用程序设计,用于处理业务流程自动化。这个"Activiti工作流示例Activiti Demo"提供了完整的源代码,帮助开发者深入理解并实际操作...

    activiti适配达梦数据库教程

    Activiti 适配达梦数据库教程 activiti 是一个开源的 Workflow 和 BPM system,它提供了强大的工作流引擎和业务流程管理功能。然而,activiti 默认支持的数据库只有 MySQL、 PostgreSQL、Oracle 等少数几种,而达梦...

    activiti-6.0.0.zip

    activiti-6.0.0.zip 工作流官网包 (如果没有积分可以直接Q我:499384808,免费分享) 1. database里放着各种数据库的建表、删表、升级语句数据库包括db2、h2、hsql、mssql、mysql、oracle、postgres 2. libs 相关...

    activiti 5.22完整包下载 activiti-explorer.war

    Activiti 是一个开源的工作流程和业务自动化引擎,它在企业级应用中被广泛使用来管理业务流程。这个压缩包 "activiti-explorer.war" 是 Activiti 的一个版本,具体是 5.22 版本。WAR 文件是 Web 应用程序档案(Web ...

    Activiti6.0教程例子下载

    1. 初识Activiti 1.1. 工作流与工作流引擎 工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。它主要解决的是“使在...

    Activiti-rest所有接口描述

    ### Activiti REST 接口详解 #### 一、概述 Activiti是一款开源的工作流引擎,用于简化业务流程的实现与管理。Activiti5.18.0版本提供了两个主要的WAR包:`activiti-explorer.war`和`activiti-rest.war`。前者为...

    activiti-5.22.0官方版本 用于activiti-explorer.zip

    Activiti 是一个开源的工作流和业务自动化引擎,它在企业级应用中被广泛使用,用于构建灵活、可扩展的业务流程。在这个特定的版本——activiti-5.22.0,我们关注的是一个用于流程设计的官方工具,即 activiti-...

    activiti6.0jar包

    Activiti 是一个开源的工作流程引擎,它为业务流程自动化提供了强大的支持。在6.0版本中,Activiti 提供了更多的特性和改进,使得开发者能够更高效地构建和管理业务流程。这个“activiti6.0jar包”是该版本的核心...

    activiti 工作流详细文档教程+eclipse安装activiti插件

    Activiti 是一个开源的工作流引擎,它被广泛用于企业级应用程序中来管理业务流程。这个教程包涵盖了如何使用Activiti工作流以及如何在Eclipse环境中安装Activiti Designer插件。 一、Activiti工作流简介 Activiti是...

    springboot+activiti7 入门小demo

    在本文中,我们将深入探讨如何使用Spring Boot与Activiti 7构建一个入门级的工作流管理系统。Activiti是一款开源的企业级工作流引擎,它为业务流程自动化提供了强大的支持。结合Spring Boot,我们可以快速搭建一个...

    activiti-5.22.0 官方资源

    Activiti 是一个开源的工作流程引擎,它主要用于自动化业务流程,特别是在企业级应用中。这个"activiti-5.22.0 官方资源"压缩包提供了Activiti 5.22.0版本的完整资源,包括数据库脚本、文档、库文件、Web应用程序、...

    activiti7.X达梦支持.zip

    Activiti 是一个开源的工作流和业务自动化引擎,广泛应用于企业级流程管理。它基于Java,兼容Spring框架,便于集成到各种Java应用中。在“activiti7.X达梦支持.zip”这个压缩包中,我们看到重点是针对Activiti 7.x...

    springboot+activiti集成Demo

    SpringBoot与Activiti集成是一个常见的企业级应用开发实践,它将高效的SpringBoot框架与流程引擎Activiti相结合,用于实现业务流程自动化。这个集成Demo提供了一个快速启动的模板,帮助开发者理解如何在SpringBoot...

Global site tag (gtag.js) - Google Analytics