System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于activiti工作流引擎的流程处理方法技术_技高网

一种基于activiti工作流引擎的流程处理方法技术

技术编号:41206196 阅读:3 留言:0更新日期:2024-05-07 22:32
本申请提供了一种基于activiti工作流引擎的流程处理方法,该方法包括:从activiti工作流引擎的数据库表中获取并解析当前任务节点的信息,确定当前任务节点和待跳转目标任务节点的信息,形成任务流程集;获取引擎的服务接口以初始化用于执行自定义命令的命令执行器对象,自定义命令用于跳转至目标任务节点;在集成了该引擎的springboot项目中创建容器对象并绑定自定义命令;重写继承逻辑并新增包含目标任务节点以及原始任务流程的目标任务。本申请通过分析数据库表来动态重写activiti的逻辑框架,使用自定义命令实现ERP系统任务节点的动态跳转,提升了工作流系统的操作便捷性和使用效率,降低人力成本。

【技术实现步骤摘要】

本申请涉及计算机应用,特别涉及一种基于activiti工作流引擎的流程处理方法


技术介绍

1、企业资源计划(enterprise resource planning,erp)系统是一种以企业为中心的综合性信息化系统,它集成了企业内部的各个业务模块,包括采购、销售、仓库管理、生产计划、财务管理等,erp系统对企业工作效率的提升有显著的促进作用。车辆物流管理的信息化基于物流管控erp系统的发展初步实现。但随着物流运输业务流程的变化和系统数据量的不断增加,传统物流管控erp系统的功能已经无法满足企业最新的业务需求。

2、目前的erp系统基于传统的工作流引擎实现工作流调度,由于传统工作流引擎无法记录任务的来源,只能按照定义好的连接来执行,没有连接则不能执行,因此,物流管控erp系统在开发过程中采用传统的工作流引擎,至少存在以下两个问题:

3、第一,流程错误难以及时纠正,流程操作错误率高。由于企业的业务管理经常涉及一名员工面临多项复杂业务的情况,员工的操作失误时常发生。而传统工作流引擎不支持系统流程回退功能,导致数据操作错误发生后难以及时纠正。

4、第二,业务处理流程固定化,难以适应流程灵活可变的特殊业务场景。在某些特殊业务场景下,业务处理的流程是可变的,比如废钢流程中等待初检任务。在物流运输中,绝大多数废钢车辆需要经过初检的过程。但是有部分车辆因为已经检测过了则需要跳过该任务的执行,直接跳转到等待废钢料场准入许可任务。而传统工作流引擎无法实现任务节点的跳转,因此,无法正常完成废钢流程。

/>

技术实现思路

1、为了解决上述技术问题,本申请提供了一种基于activiti工作流引擎的流程处理方法,通过分析数据库表来动态重写activiti的逻辑框架,使用自定义命令实现erp系统任务节点的动态跳转,提升了工作流系统的操作便捷性和使用效率,降低人力成本。

2、第一方面,本申请提供了一种基于activiti工作流引擎的流程处理方法,所述方法包括:

3、s1、从activiti工作流引擎的数据库表中,获取当前任务节点的信息并进行解析,确定所述当前任务节点的第一标识和待跳转的目标任务节点的第二标识,根据所述第一标识定位所述当前任务节点的流程定义和流程实例并进行标记,保存为任务流程集;

4、s2、获取activiti工作流引擎提供的服务接口,初始化命令执行器对象,将所述命令执行器对象的命令拦截器加载到调用链中,并且把所述任务流程集保存在所述命令执行器对应的对象实体中,所述命令执行器对象用于执行自定义命令,自定义命令用于从所述当前任务节点跳转至所述目标任务节点;

5、s3、在集成所述activiti工作流引擎的springboot项目中创建bean对象,使用构造函数的方式将所创建的bean对象注入所述springboot框架中,再将所述自定义命令绑定到所述bean对象对应的构造函数中;

6、s4、重写所述服务接口内的继承逻辑,基于重写后的继承逻辑新增目标任务,所述目标任务包含所述目标任务节点以及所述当前任务节点之前的全部任务流程。

7、通过上述流程,即可将用于跳转至目标任务节点的新流程逻辑,注入至集成springboot与activiti开发环境中的对象实体,使重新构造的逻辑生效,这样,基于新的逻辑工作流任务节点之间可以任意跳转,并且不会影响原有的流程定义和其他任务的信息。

8、在一种可能实施方式中,所述步骤s1包括:

9、s11、响应于所述当前任务节点到目标任务节点的跳转指令,触发数据查询请求;

10、s12、响应于数据查询请求,从所述数据库表的流程实例表和历史任务表中,获取所述当前任务节点正在运行的流程实例的第一标识processinstanceid和所述目标任务节点的第二标识,检测所述第一标识和所述第二标识的合法性;

11、s13、在所述第一标识和所述第二标识合法的情况下,从所述数据库表的流程实例表和历史任务表中,获取所述流程实例的信息、所述流程实例对应的流程定义的processdefinitionid和所述流程定义的信息,形成当前任务的任务流程集;获取所述目标任务节点的信息,形成目标任务的任务流程集。

12、在一种可能实施方式中,所述当前任务的任务流程集用于和跳转后任务状态进行比对和分析;所述目标任务的任务流程集用于测试任务节点跳转后的状态。

13、在一种可能实施方式中,所述当前任务是根据历史已有的流程定义生成的流程实例;所述当前任务包含:流程定义的信息、流程实例的信息、上一任务节点的信息、下一任务节点的信息、执行人的信息,所述上一节点和所述下一节点的信息用于支持流程节点的回退。

14、在一种可能实施方式中,所述步骤s4包括:

15、s41、从所述activiti工作流引擎携带的数据库表中,获取所述当前任务节点正在运行流程实例的流程定义以及对应的流程资源;

16、s42、通过所述activiti工作流引擎的bpmnmodel获取当前的流程模型参数,使用所述服务接口taskservice提供的方法,重新定义当前任务的执行逻辑;

17、s43、跳过所述流程定义的逻辑约束,根据所述数据库表中的历史任务表,判断所述当前任务下一步出口,在所述目标任务和所述当前任务之间新增流程连线;

18、s44、将所述当前任务节点对应的流程定义映射成流程定义对象,用所述目标任务节点替换所述流程定义对象中当前任务的下一步出口,基于所述流程定义对象生成所述目标任务。

19、在一种可能实施方式中,所述方法还包括:

20、当所述当前任务节点包括多个下一步出口时,重新执行步骤s43至s44,重新匹配得到下一步出口。

21、在一种可能实施方式中,所述步骤s44包括:

22、通过修改activiti工作流引擎中processengine对象的属性,将所述当前任务节点对应的流程定义映射成流程定义对象,并将所述目标任务节点替换所述流程定义对象中当前任务的下一步出口;基于替换下一步出口后的流程定义对象,生成所述目标任务。

23、可选地,本步骤可通过activiti提供的内部服务类接口实现。直接使用内部服务进行操作,不需要对底层进行解析,极大地节省了开发时间。

24、本申请中,由于是基于数据库表中的数据来判断下一步出口,且支持通过内部的服务类来实现相应操作,因此,跳转逻辑可被放在业务层,从而保证工作流逻辑变更的灵活性和低耦合性。

25、在一种可能实施方式中,所述步骤s4包括:

26、重写所述服务接口内的继承逻辑,删除原有的当前任务,并基于重写后的继承逻辑新增目标任务;所述删除原有的当前任务包括:

27、在删除所述当前任务之前,将所述当前任务的信息保存在所述当前任务的对象实体中;

28、在删除所述当前任务的代码时,若从上一任务本文档来自技高网...

【技术保护点】

1.一种基于activiti工作流引擎的流程处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述步骤S1包括:

3.根据权利要求2所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述当前任务的任务流程集用于和跳转后任务状态进行比对和分析;所述目标任务的任务流程集用于测试任务节点跳转后的状态。

4.根据权利要求2所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述当前任务是根据历史已有的流程定义生成的流程实例;所述当前任务包含:流程定义的信息、流程实例的信息、上一任务节点的信息、下一任务节点的信息、执行人的信息,所述上一节点和所述下一节点的信息用于支持流程节点的回退。

5.如权利要求1所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述步骤S4包括:

6.根据权利要求5所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述方法还包括:

7.根据权利要求5所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述步骤S44包括:

8.根据权利要求1所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述步骤S4包括:

9.根据权利要求1或8所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述方法还包括:响应于用户操作,保存/删除任意原有任务的信息。

10.根据权利要求1所述的基于activiti工作流引擎的流程处理方法,其特征在于,工作流直接基于所述acitiviti工作流引擎的内部服务接口提供的命令模式进行开发,所述方法还包括:

...

【技术特征摘要】

1.一种基于activiti工作流引擎的流程处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述步骤s1包括:

3.根据权利要求2所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述当前任务的任务流程集用于和跳转后任务状态进行比对和分析;所述目标任务的任务流程集用于测试任务节点跳转后的状态。

4.根据权利要求2所述的基于activiti工作流引擎的流程处理方法,其特征在于,所述当前任务是根据历史已有的流程定义生成的流程实例;所述当前任务包含:流程定义的信息、流程实例的信息、上一任务节点的信息、下一任务节点的信息、执行人的信息,所述上一节点和所述下一节点的信息用于支持流程节点的回退。

5.如权利要求1所述的基于activi...

【专利技术属性】
技术研发人员:曾泽昀张超
申请(专利权)人:中冶南方工程技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1