System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 无缝融合决策表的规则引擎设计方法及系统技术方案_技高网

无缝融合决策表的规则引擎设计方法及系统技术方案

技术编号:40829669 阅读:2 留言:0更新日期:2024-04-01 14:52
本发明专利技术公开了一种无缝融合决策表的规则引擎设计方法及系统,所述方法包括:编辑规则;对所述规则优化表达并生成决策表;维护所述决策表内容;运行包含所述决策表函数的规则。通过本公开的处理方案,企业能够以更加灵活和高效的方式满足个性化需求,同时降低对技术专业人员的依赖。

【技术实现步骤摘要】

本专利技术涉及计算机,特别是涉及一种无缝融合决策表的规则引擎设计方法及系统


技术介绍

1、企业软件,尤其是saas软件,为了满足不同客户的个性化需求,通常采用增加配置项或客制化开发等方式。然而,配置化的表述能力有限,而客制化开发又非常昂贵。因此,使用规则引擎可以弥补这两者之间的差距,它既具备配置化一样的热部署、不需要专业开发工程师的优点,又具备客制化开发表达力丰富的优点。

2、然而,不同规则引擎支持的规则语言仍存在易用性和表达力之间的平衡问题。例如,最流行的规则引擎drools支持使用规则语言(drl)。尽管drools对非专业开发人员做了很多优化,但其复杂度仍接近一般的编程语言。另一方面,如果使用dmn决策表来表达规则,则对非专业开发人员更友好,但在表达能力和编程语言方面仍存在较大差距,只适用于特定场景。

3、目前存在的规则引擎无法很好地融合规则语言和决策表,需要事先选择其中之一,二者独立且互斥,无法同时发挥各自的优势。例如,为了让决策表支持更复杂的场景,需要在决策表内引入像feel这样的表达式语言,这又要求用户具备一定的编程专业技能。

4、虽然规则语言对非专业开发人员进行了优化,但它仍然具有接近一般编程语言的复杂度,因此在表达业务规则方面存在困难。相比之下,决策表对非专业开发人员更加友好,但在表达能力和编程语言方面与规则语言存在较大差距,只适用于特定场景。目前存在的规则引擎无法很好地融合规则语言和决策表,需要事先选择其中一种形式,这导致规则语言和决策表相互独立且互斥,无法同时发挥各自的优势。

5、综上所述,当前规则引擎的不足在于规则语言的复杂度以及规则语言和决策表之间的无法融合使用问题。解决这些问题并实现规则语言和决策表的无缝融合将带来更大的价值,使非专业开发人员能够更轻松地表达复杂的业务规则,并发挥规则引擎的优势。


技术实现思路

1、有鉴于此,本公开实施例提供一种无缝融合决策表的规则引擎设计方法,至少部分解决现有技术中存在的问题。

2、第一方面,本公开实施例提供了一种无缝融合决策表的规则引擎设计方法,所述方法包括以下步骤:

3、编辑规则;

4、对所述规则优化表达并生成决策表;

5、维护所述决策表内容;

6、运行包含所述决策表函数的规则。

7、根据本公开实施例的一种具体实现方式,所述对所述规则优化表达并生成决策表,包括:

8、监听用户编辑的规则内容;当所述规则内容符合能优化表达为决策表时,给出提示,生成对应的决策表,并修改规则内容为对应形式。

9、根据本公开实施例的一种具体实现方式,规则内容优化表达为决策表,包括以下步骤:

10、找出规则里的所有if和else if里的条件表达;

11、将每一个所述条件表达整理为左侧是变量名,右侧是值的形式;

12、判断是否所述条件表达都同时成立;其中,当所述条件表达不能同时成立,返回不可优化;

13、当所述条件表达同时成立,判断所述条件表达中的变量名的相同程度是否达到预设阈值;其中,当达到预设阈值时,在内存中生成决策表格定义和表格内容;其中,变量名作为列,条件表达中的值为行数据;

14、通知监听器创建一个决策表定义和内容,保存在库中;

15、修改规则的内容,改为决策表函数调用。

16、根据本公开实施例的一种具体实现方式,条件表达中没用到的变量其值为空。

17、第二方面,本公开实施例提供了一种无缝融合决策表的规则引擎设计系统,所述系统包括:

18、编辑模块,被配置用于编辑规则;

19、优化模块,被配置用于对所述规则优化表达并生成决策表;

20、维护模块,被配置用于维护所述决策表内容;

21、运行模块,被配置用于运行包含所述决策表函数的规则。

22、根据本公开实施例的一种具体实现方式,所述系统还包括:

23、决策表生成模块,被配置用于找出规则里的所有if和else if里的条件表达;

24、将每一个所述条件表达整理为左侧是变量名,右侧是值的形式;

25、判断是否所述条件表达都同时成立;其中,当所述条件表达不能同时成立,返回不可优化;

26、当所述条件表达同时成立,判断所述条件表达中的变量名的相同程度是否达到预设阈值;其中,当达到预设阈值时,在内存中生成决策表格定义和表格内容;其中,变量名作为列,条件表达中的值为行数据;

27、通知监听器创建一个决策表定义和内容,保存在库中;

28、修改规则的内容,改为决策表函数调用。

29、第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:

30、至少一个处理器;以及,

31、与所述至少一个处理器通信连接的存储器;其中,

32、所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使所述至少一个处理器前述第一方面或第一方面的任一实现方式中的任一项所述的无缝融合决策表的规则引擎设计方法。

33、第四方面,本公开实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令当由至少一个处理器执行时使所述至少一个处理器执行前述第一方面或第一方面的任一实现方式中的无缝融合决策表的规则引擎设计方法。

34、第五方面,本公开实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使该计算机执行前述第一方面或第一方面的任一实现方式中的无缝融合决策表的规则引擎设计方法。

35、本公开实施例中的无缝融合决策表的规则引擎设计方法,企业能够以更加灵活和高效的方式满足个性化需求,同时降低对技术专业人员的依赖。这种分工方式将使得规则的编写更加符合实际场景,提高开发效率和系统可维护性。这种整合规则语言和决策表的方法将为企业带来更大的价值,并为规则引擎的使用者提供更好的开发体验和规则管理的便利性。

本文档来自技高网...

【技术保护点】

1.一种无缝融合决策表的规则引擎设计方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的无缝融合决策表的规则引擎设计方法,其特征在于,所述对所述规则优化表达并生成决策表,包括:

3.根据权利要求2所述的无缝融合决策表的规则引擎设计方法,其特征在于,规则内容优化表达为决策表,包括以下步骤:

4.根据权利要求3所述的无缝融合决策表的规则引擎设计方法,其特征在于,条件表达中没用到的变量其值为空。

5.一种无缝融合决策表的规则引擎设计系统,其特征在于,所述系统包括:

6.根据权利要求5所述的无缝融合决策表的规则引擎设计系统,其特征在于,所述系统还包括:

7.一种电子设备,其特征在于,该电子设备包括:

8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令当由至少一个处理器执行时使所述至少一个处理器执行如权利要求1至4中的任一项所述的无缝融合决策表的规则引擎设计方法。

【技术特征摘要】

1.一种无缝融合决策表的规则引擎设计方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的无缝融合决策表的规则引擎设计方法,其特征在于,所述对所述规则优化表达并生成决策表,包括:

3.根据权利要求2所述的无缝融合决策表的规则引擎设计方法,其特征在于,规则内容优化表达为决策表,包括以下步骤:

4.根据权利要求3所述的无缝融合决策表的规则引擎设计方法,其特征在于,条件表达中没用到的变量其值为空。

5...

【专利技术属性】
技术研发人员:阎华
申请(专利权)人:用友网络科技股份有限公司
类型:发明
国别省市:

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

1