一种实现flowable引擎自定义条件判断的方法及工具技术

技术编号:38006961 阅读:9 留言:0更新日期:2023-06-30 10:24
本发明专利技术公开一种实现flowable引擎自定义条件判断的方法,涉及flowable引擎技术领域,包括:在flowable引擎上定义一个条件判断模型类,定义的条件判断模型类中包含字段名称、组件类型、字段的值、以及运算符类型;定义的条件判断模型类提供一个eval方法,所述eval方法首先将输入的条件转换为json字符串,随后根据组件类型和运算符类型的具体字段,对实际值和参考值进行对比判断。本发明专利技术还公开一种实现flowable引擎自定义条件判断的工具,其与前述方法相结合,可以解决现有flowable引擎自带EL条件表达式不能对业务化条件进行判断的缺陷。条件表达式不能对业务化条件进行判断的缺陷。条件表达式不能对业务化条件进行判断的缺陷。

【技术实现步骤摘要】
一种实现flowable引擎自定义条件判断的方法及工具


[0001]本专利技术涉及flowable引擎
,具体的说是一种实现flowable引擎自定义条件判断的方法及工具。

技术介绍

[0002]低代码平台开发过程中,有许多偏向于业务类型的组件,比如组织机构,人员选择框,地址选择框等等,这些组件如果用flowable自带的条件表达式将难以实现,比如山东济南历下区是否属于江苏省,技术平台研发部门是否属于浪潮集团等等,类似于这些高度业务化的条件判断,需要结合实际的业务场景才能判断其结果,这就迫使我们对flowable的条件判断进行优化改造。
[0003]对于flowable自带的EL条件表达式,在判断某个变量大于100时,写法如下:
[0004]<conditionExpressionxsi:type="tFormalExpression"><![CDATA[${condition>100}]]></conditionExpression>
[0005]当需要判断“山东济南历下区是否属于江苏省”这类问题的时候,则没法用EL表达式进行条件组装。

技术实现思路

[0006]本专利技术针对flowable自带的EL条件表达式存在的不足之处,提供一种实现flowable引擎自定义条件判断的方法及工具。
[0007]首先,本专利技术提供一种实现flowable引擎自定义条件判断的方法,解决上述技术问题采用的技术方案如下:
[0008]一种实现flowable引擎自定义条件判断的方法,该方法的实现需要在flowable引擎上定义一个条件判断模型类,定义的条件判断模型类中包含字段名称、组件类型、字段的值、以及运算符类型;
[0009]定义的条件判断模型类提供一个eval方法,所述eval方法首先将输入的条件转换为json字符串,随后根据组件类型和运算符类型的具体字段,对实际值和参考值进行对比判断。
[0010]可选的,所涉及组件类型包括单行文本、多行文本、checkbox、radio、Switch。
[0011]可选的,所涉及运算符类型包括基本操作运算符和自定义运算符,其中,基本操作运算符包括大于、等于、小于三种,自定义运算符包括属于、包含、包含任意一个。
[0012]可选的,在flowable引擎上定义一个条件判断模型类CustomFlowableConditionHandler.java。
[0013]进一步可选的,所涉及条件判断模型类提供的eval方法具体表示为:
[0014]public boolean eval(Object actualValue,String filterStr),
[0015]其中,
[0016]actualValue用于接收工作流条件的字段值,
[0017]filterStr用于将输入的条件转换为json字符串的格式。
[0018]其次,本专利技术提供一种实现flowable引擎自定义条件判断的工具,解决上述技术问题采用的技术方案如下:
[0019]一种实现flowable引擎自定义条件判断的工具,其结构包括:
[0020]定义模块,用于在flowable引擎上定义一个条件判断模型类,定义的条件判断模型类中包含字段名称、组件类型、字段的值、以及运算符类型;
[0021]方法模块,用于在定义的条件判断模型类中提供一个eval方法,所述eval方法首先将输入的条件转换为json字符串,随后根据组件类型和运算符类型的具体字段,对实际值和参考值进行对比判断。
[0022]可选的,所涉及组件类型包括单行文本、多行文本、checkbox、radio、Switch。
[0023]可选的,所涉及运算符类型包括基本操作运算符和自定义运算符,其中,基本操作运算符包括大于、等于、小于三种,自定义运算符包括属于、包含、包含任意一个。
[0024]可选的,在flowable引擎上定义一个条件判断模型类CustomFlowableConditionHandler.java。
[0025]进一步可选的,所涉及条件判断模型类提供的eval方法具体表示为:
[0026]public boolean eval(Object actualValue,String filterStr),
[0027]其中,
[0028]actualValue用于接收工作流条件的字段值,
[0029]filterStr用于将输入的条件转换为json字符串的格式。
[0030]本专利技术的一种实现flowable引擎自定义条件判断的方法及工具,与现有技术相比具有的有益效果是:
[0031](1)本专利技术通过在flowable引擎上定义一个条件判断模型类,在定义的条件判断模型类提供一个eval方法,来解决现有flowable引擎自带EL条件表达式不能对业务化条件进行判断的缺陷;
[0032](2)本专利技术比flowable引擎本身自带的EL表达式条件更加丰富灵活,可以极大地适应流程应用中的大多数场景。
附图说明
[0033]附图1是本专利技术实施例一的方法流程图;
[0034]附图2是本专利技术实施例二的模块连接框图;
[0035]附图3是现有flowable引擎的具体条件配置表单。
[0036]附图4是本专利技术flowable引擎的具体条件配置表单。
[0037]附图中各标号信息表示:
[0038]1、定义模块,2、方法模块,3、条件判断模型类。
具体实施方式
[0039]为使本专利技术的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本专利技术的技术方案进行清楚、完整的描述。
[0040]实施例一:
[0041]结合附图1,本实施例提出一种实现flowable引擎自定义条件判断的方法,该方法的实现需要在flowable引擎上定义一个条件判断模型类,定义的条件判断模型类中包含字段名称columnName、组件类型widgetType、字段的值value、以及运算符类型operateType;
[0042]定义的条件判断模型类提供一个eval方法,所述eval方法首先将输入的条件转换为json字符串,随后根据组件类型widgetType和运算符类型operateType的具体字段,对实际值和参考值进行对比判断。
[0043]本实施例中,组件类型包括单行文本、多行文本、checkbox、radio、Switch。
[0044]本实施例中,运算符类型包括基本操作运算符和自定义运算符,其中,基本操作运算符包括大于、等于、小于三种,自定义运算符包括属于、包含、包含任意一个。
[0045]本实施例中,在flowable引擎上定义的条件判断模型类的名称假定为:C本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现flowable引擎自定义条件判断的方法,其特征在于,该方法的实现需要在flowable引擎上定义一个条件判断模型类,定义的条件判断模型类中包含字段名称、组件类型、字段的值、以及运算符类型;定义的条件判断模型类提供一个eval方法,所述eval方法首先将输入的条件转换为json字符串,随后根据组件类型和运算符类型的具体字段,对实际值和参考值进行对比判断。2.根据权利要求1所述的一种实现flowable引擎自定义条件判断的方法,其特征在于,所述组件类型包括单行文本、多行文本、checkbox、radio、Switch。3.根据权利要求1所述的一种实现flowable引擎自定义条件判断的方法,其特征在于,所述运算符类型包括基本操作运算符和自定义运算符,其中,基本操作运算符包括大于、等于、小于三种,自定义运算符包括属于、包含、包含任意一个。4.根据权利要求1所述的一种实现flowable引擎自定义条件判断的方法,其特征在于,在flowable引擎上定义一个条件判断模型类CustomFlowableConditionHandler.java。5.根据权利要求4所述的一种实现flowable引擎自定义条件判断的方法,其特征在于,所述条件判断模型类提供的eval方法具体表示为:public boolean eval(Object actualValue,String filterStr),其中,actualValue用于接收工作流条件的字段值,filterStr用于将输入的条件转换为json字符串的格式。6.一种实现flowa...

【专利技术属性】
技术研发人员:王柏华姜波张连超周双许金源
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:

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

1