一种基于Flowable的工作流方法技术

技术编号:38890131 阅读:11 留言:0更新日期:2023-09-22 14:15
本申请提供了一种基于Flowable的工作流方法,包括:存储流程处理策略类的代码,所述流程处理策略类的代码符合流程处理策略接口的流程处理方法,所述流程处理方法的入参包括任务实例ID以及流程处理参数,所述流程处理参数为json字符串,返回值是Object类型;使用Spring的@Service注解将所述流程处理策略类注册为Spring业务服务并存储于容器中;将流程模型中的流程任务和流程处理策略类进行关联;在Web流程处理接口上调用所述容器中的spring流程处理策略业务服务。本申请实现了将业务进行抽象并封装为流程处理策略类,只需将流程处理策略类与具体用户任务配置关联就可以进行复用,提高了代码复用率。提高了代码复用率。提高了代码复用率。

【技术实现步骤摘要】
一种基于Flowable的工作流方法


[0001]本申请属于工作流
,尤其涉及一种基于Flowable的工作流方法。

技术介绍

[0002]工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。
[0003]目前比较常用的开源流程引擎有:osworkflow、jbpm、activiti、flowable、camunda。上述流程引擎存在以下问题,1、无法重复使用,应用流程引擎开发个性化业务逻辑通常是与某具体流程相关,因此会与相关流程存在过于紧密的绑定,业务代码不方便进行复用。2、代码冗余,由于业务代码不能复用,当遇到功能类似但流程不同的情况时,只能针对新流程再次实现类似业务,造成了大量的代码冗余。3、无法灵活配置,由于业务代码不能复用,造成大量类似代码零散的存在于代码文件中,当业务变更时,修改非常麻烦,极不灵活。

技术实现思路

[0004]本申请实施例提供了基于Flowable的工作流方法,可以解决现有的工作流引擎代码冗余、无法灵活配置的问题。
[0005]第一方面,本申请提供了一种基于Flowable的工作流方法,包括:存储流程处理策略类的代码,所述流程处理策略类的代码符合流程处理策略接口的流程处理方法,所述流程处理方法的入参包括任务实例ID以及流程处理参数,所述流程处理参数为json字符串,返回值是Object类型;使用Spring的@Service注解将所述流程处理策略类注册为Spring业务服务并存储于容器中;将流程模型中的流程任务和流程处理策略类进行关联;在Web流程处理接口上调用所述容器中的spring流程处理策略业务服务。
[0006]进一步的,在步骤“将流程模型中的流程任务和策略类进行关联”中,具体包括以下步骤,在流程模型列表中,通过任务配置模块接收用户输入的流程任务策略类关系参数,所述流程任务策略类关系参数包括任务ID、策略类全名称以及任务扩展信息;将所述流程任务策略类关系参数发送至所述流程任务处理策略配置接口;校验所述流程任务策略类关系参数中的任务ID所对应的任务是否存在;若存在则将任务ID、策略类全名称以及任务扩展信息存入流程任务策略类关系表中。
[0007]进一步的,在步骤“在Web流程处理接口上调用所述容器中的Spring业务服务”中,具体包括以下步骤,调用后端服务器的web流程处理接口;接口入参为任务实例ID、流程处理参数JSON字符串;
所述web流程处理接口接收到入参后,校验任务实例是否存在;以及校验任务实例对应的任务是否存在;校验任务对应的任务策略类关系是否存在;通过任务策略类关系中的类全名称,从Spring容器中获取对应的流程处理策略服务;执行所述流程处理策略服务的流程处理方法。
[0008]进一步的,在步骤“通过任务策略类关系中的类全名称,从Spring容器中获取对应的流程处理策略服务”之前,还包括以下步骤,根据登录的用户ID以及任务实例对应的任务,校验所述用户ID是否对所述任务具有处理权限。
[0009]本申请实施例与现有技术相比存在的有益效果是:本申请实现了将业务进行抽象并封装为流程处理策略类,只需将流程处理策略类与具体用户任务配置关联就可以进行复用,提高了代码复用率。另一方面,在流程处理策略类可以复用的前提下,不需要再重复进行开发,极大降低了代码冗余。
附图说明
[0010]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011]图1是本申请一实施例提供的方法流程图。
实施方式
[0012]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0013]应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0014]还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0015]如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0016]另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0017]在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书
中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0018]下面将通过具体实施例对本申请实施例提供的技术方案进行介绍。
实施例
[0019]参见图1,一种基于Flowable的工作流方法,包括一下步骤:S101、存储流程处理策略类的代码,所述流程处理策略类的代码符合流程处理策略接口的流程处理方法,所述流程处理方法的入参包括任务实例ID以及流程处理参数,所述流程处理参数为json字符串,返回值是Object类型;S102、使用Spring的@Service注解将所述流程处理策略类注册为Spring业务服务并存储于容器中;S103、将流程模型中的流程任务和流程处理策略类进行关联;S104、在Web流程处理接口上调用所述容器中的spring流程处理策略业务服务。
[0020]具体的,在上述步骤S101中,流程处理策略类的代码由开发人员按照流程处理策略接口的流程处理方法规则编写。
[0021]在上述步骤S103中,用户可通过Flowable工作流引擎中的流程模型选择界面选择要配置的流程模型,在选中一个流程模型后,对该流程模型中的所有流程任务进行配置。
[0022]通过上述方法,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Flowable的工作流方法,其特征在于,包括:存储流程处理策略类的代码,所述流程处理策略类的代码符合流程处理策略接口的流程处理方法,所述流程处理方法的入参包括任务实例ID以及流程处理参数,所述流程处理参数为json字符串,返回值是Object类型;使用Spring的@Service注解将所述流程处理策略类注册为Spring业务服务并存储于容器中;将流程模型中的流程任务和流程处理策略类进行关联;在Web流程处理接口上调用所述容器中的spring流程处理策略业务服务。2.如权利要求1所述的方法,其特征在于,在步骤“将流程模型中的流程任务和策略类进行关联”中,具体包括以下步骤,在流程模型列表中,通过任务配置模块接收用户输入的流程任务策略类关系参数,所述流程任务策略类关系参数包括任务ID、策略类全名称以及任务扩展信息;将所述流程任务策略类关系参数发送至所述流程任务处理策略配置接口;校验所述流程任务策略类关系参数中...

【专利技术属性】
技术研发人员:李皓正谢锟苏道波何雄伟
申请(专利权)人:北京九州恒盛电力科技有限公司
类型:发明
国别省市:

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

1