JVS规则引擎变量管理
变量在规则引擎中的作用
- 数据存储和共享:变量配置允许在规则引擎中存储和访问数据。通过定义变量,可以将数据存储在规则引擎中,使其可供规则和决策过程使用。这样可以消除重复数据存储的需求,提高数据的共享和重用性。
- 决策逻辑的简化:通过使用变量,可以将规则引擎中的决策逻辑抽象为更具可读性和可维护性的形式。变量可以用于存储和操作不同类型的数据,如数字、字符串、日期等。通过使用变量,可以使规则的编写和维护更加简单,减少重复的代码,并提高规则的可读性和可维护性。
- 动态性和灵活性:变量配置允许在规则引擎中动态设置和更新变量的值。这样,当系统中的数据或环境发生变化时,可以实时更新变量的值,从而影响决策过程的结果。通过改变变量的值,可以灵活地调整规则的行为,而不需要修改底层的规则逻辑。
- 与外部系统的集成:变量配置使规则引擎能够与外部系统进行集成。变量可以用于存储和传递与外部系统交互所需的数据,如数据库查询结果、API调用返回值等。通过与外部系统的集成,规则引擎可以获取外部数据并将其用于决策过程,从而提高决策的准确性和实时性。
- 可管理性和可维护性:通过变量配置,规则引擎中的数据和逻辑被分离开来,提高了系统的可管理性和可维护性。变量配置使得对数据和逻辑的修改更加简单和集中化。通过集中管理变量,可以减少代码的冗余性,降低错误的风险,并简化对规则引擎的修改和扩展。
函数式编程实现变量加工
函数式编程是一种编程方法,它以类似 Excel 表格的方式进行数据处理和计算。它的特点是使用公式和函数来描述数据之间的关系和计算逻辑。
在函数式编程中,数据被组织成表格的形式,每列代表一个数据字段或变量,每行代表一个数据记录。可以通过公式和函数将不同的数据字段进行计算和操作,生成新的计算结果。
以下是类 Excel 的函数式编程的特点和优势:
- 公式和函数:类 Excel 的函数式编程使用公式和函数来表示数据之间的关系和计算逻辑。可以在变量的配置过程中,引用其他入参或者变量的值,并进行各种计算、逻辑操作和数据转换。
- 数据引用和依赖:函数式编程中,公式和函数可以引用其他数据的值,形成数据的引用和依赖关系。当被引用的单元格的值发生变化时,依赖于它的公式和函数会自动更新计算结果。
- 数据处理和转换:通过公式和函数,可以进行各种数据处理和转换操作,例如数值计算、逻辑判断、文本处理、日期操作等。这使得数据的加工和转换变得简单和灵活。
- 可视化展示:函数式编程通常提供可视化的界面来展示数据和公式的计算结果。开发者可以直观地查看和分析数据,观察公式和函数的计算过程。
规则变量的作用范围
在规则引擎中,全局变量和局部变量是两种不同的变量类型,它们在作用范围和生命周期上有所区别。
- 全局变量:全局变量是在规则引擎中定义的具有全局作用域的变量。它们可以在规则引擎的任何规则、决策或操作中被访问和使用。全局变量通常用于存储在整个规则引擎中共享和重复使用的数据。例如,全局变量可以用于存储系统配置参数、全局计数器、共享的业务规则等。全局变量的生命周期通常与规则引擎的生命周期相同,它们在规则引擎启动时创建,直到规则引擎关闭时销毁。
- 局部变量:局部变量是在规则引擎中定义的具有局部作用域的变量。它们仅在定义它们的规则、决策或操作内部可见和使用。局部变量通常用于存储在特定规则或决策中临时需要使用的数据。例如,局部变量可以用于存储临时计算结果、中间状态的值或特定规则的输入参数。局部变量的生命周期通常在规则或决策执行期间有效,它们在规则或决策执行完毕后被销毁。
全局变量和局部变量的选择取决于变量的作用范围和需求。全局变量适用于在整个规则引擎中共享和重复使用的数据,具有更广泛的可见性和持久性。局部变量适用于在特定规则或决策中临时使用的数据,具有更短暂的生命周期和较小的作用范围。正确地使用全局变量和局部变量可以提高规则引擎的性能、可读性和维护性,同时满足不同场景下的数据存储和访问需求。
变量列表展示
如图所示,变量列表将系统中所有的变量界面化展示,可以通过编辑与设计对变量修改。
变量编辑
变量编辑包括变量名称,变量的说明
变量设计器上图所示,采用函数式编程,通过函数将左侧的数据进行加工映射,生成业务场景中所需要的数据。其中函数列表中包括7大类型的函数,基本上包括日常常用的一些函数方法;函数编辑区是通过伪代码的形式实现的具体变量场景需求,使用的方式是类似与excel的操作方式,点击左侧函数,系统会自动将函数引入到编辑区,在右选对应接口,对应输出的字段,成为编辑区内函数的入参。
函数引用
函数支持常用的各类函数,鼠标悬空时,将显示函数的具体说明,点击函数时,系统自动将对应函数引入到变量编辑区内容
变量的创建
点击数据源,选择对应的数据接口,或者不同的数据来源,不同场景下,左侧可以选择的数据来源有差异,根据场景的上下文系统自动进行判断。
变量的配置
a、选择数据来源,如图所示,数据来源往往是我们经常看到的数据公司,每个数据公司采用相同的加密认证方式,提供多个不同的数据接口。
b、选择对应的接口名称
c、选择对应的接口出参,这里的输出数据多数以json形式存在,界面上做了解析,使用的时候可以直接选择对应子节点的出参作为输入变量。
d、系统展示筛选出来待使用的原始数据,这些数据可以直接作为函数的入参
e、可以引用已经配置过的变量
变量的测试
点击测试,系统展示测试界面
测试界面如图:
输入测试数据后,直接可以展示测试结果。
在线demo:http://jvs-rules.bctools.cn/
基础框架开源地址:https://gitee.com/software-minister/jvs