JVS-rules中的基础与复合变量:规则引擎的心脏

2023-10-19 11:21

本文主要是介绍JVS-rules中的基础与复合变量:规则引擎的心脏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JVS-rules中的“变量”概念与编程语言中的变量类似,但它们通常在规则系统中处理条件判断、业务结果复制场景,如下所示:

  1. 条件判断:在规则引擎中,规则通常由两个部分组成:条件和分支。变量用于描述条件部分中的数据和状态。例如,一个规则可能是:“如果温度超过30度,则执行打开空调的分支”。这里的“温度”就是一个变量,它描述了一个条件。
  2. 动作执行:当规则引擎确定某个规则的条件满足时,与该规则节点执行后续的操作或者跳转结束节点。变量也可以在动作中使用,以便根据条件的满足情况来执行相应的操作。
  3. 上下文信息:变量可以用来在规则执行过程中传递上下文信息。这意味着在规则引擎中,变量可以代表各种数据,例如传感器读数、用户输入等。
  4. 动态性:规则引擎通常允许在运行时动态地修改变量的值或属性,以便适应不同的场景或条件。
  5. 作用域:变量可能有不同的作用域,取决于规则引擎的设计。一些规则引擎可能会将变量限制在特定的规则中,而另一些可能允许变量在整个规则集中共享。
  6. 数据类型:变量可以具有不同的数据类型,例如数值、字符串、布尔判断值,具体取决于规则引擎的实现。
  7. 决策支持:规则引擎中的变量用于支持决策过程,使得规则可以根据不同的条件和数据进行灵活的决策。

那么我们如何理解复合变量与基础变量呢?

基础变量

"基础变量"通常指的是编程中的基本数据类型,也叫做原始数据类型或简单数据类型。这些基本数据类型是决策中直接支持的最基本的数据类型,它们通常包括数值、字符、布尔值等。

这种类型的变量我们通常可以通过函数加工去做数据转换例如 y=f(x) ,那么 y 和 x 都是变量 ,我们可以通过把 x 传入函数进行加工,然后获得新的数据,系统中提供了大量函数加工的 方法,如下图所示:

①:定义的一变量名 :Y

②:定义的变量的说明备注

③:选择这个变量加工的函数,系统提供了100+的标准函数,这里可以自定义扩展自己所需要的函数

④:入参列表选择窗,这里可以是选择整个决策的入参、可以选择外部API输出的结果,也可选择系统中已经存在的变量(嵌套使用)

⑤:具体加工Y 的函数配置表达式

按照上述的例子 ,整个过程就是在调用这个决策的时候,业务调用方传入:(1,2)两个参数,那么 X1=1 ,X2=2,在后续的执行过程中 Y=3,可以用于判断、赋值等多个场景使用。

复合变量

那么什么又是复合变量呢?这里我们可以简单理解为复合变量可以 想成 一张经过加工后的 数据表(多行数据),这里复合变量就是通过对一个数据库的表进行查询,做了相应的数据过滤,然后获得的数据结果,那么这个变量中就表示了多行数据

如上图所示,这个变量获取的方式 是来源于数据库的数据查询,然后在界面上通过流程化的数据加工(过滤、关联、转换等操作),然后把需要的多行数据放如到变量之中。

那么这种复合变量如何使用呢?

  • 我们可以把这种变量作为明细查询的数据,通过规则的结果值返给业务端,如下图所示

  • 也可以对变量进行嵌套加工,把一个复合变量传化为一个基础变量,再用于规则的判断,系统中提供了对集合操作(复合变量输出的结果)的函数,如下图所示,可以将复合变量转换为基础变量。

  • 复合变量的加工方式,如下图所示,包括数据数据过滤、多表关联、数据分组汇总等等各种操作

①:各种数据加工的算子

②:通过流程化、拖拽化的方式,把各种算子链接起来,实现各种多行数据的加工处理,包括 数据的增删改查、数据的跨库、跨API等各种加工操作

③:对不同算子的具体的配置操作

变量使用的总结

基础变量就是对单一的数据进行加工, 复合变量就是对多行数据进行加工(实现重复、循环的数据加工操作),复合变量可以通过函数加工 转换为基础变量。

下一期详细介绍变量中函数的操作说明

在线demo:http://rules.bctools.cn/

gitee地址:https://gitee.com/software-minister/jvs-rules

往期干货回顾

金融信贷风控系统,用jvs规则引擎就够了

规则引擎(JVS-rules):从应用到场景的全面解析

JVS规则引擎,打造智能自动化决策的利器

往期干货回顾

金融信贷风控系统,用jvs规则引擎就够了

规则引擎(JVS-rules):从应用到场景的全面解析

JVS规则引擎,打造智能自动化决策的利器

这篇关于JVS-rules中的基础与复合变量:规则引擎的心脏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/239442

相关文章

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

JavaScript装饰器从基础到实战教程

《JavaScript装饰器从基础到实战教程》装饰器是js中一种声明式语法特性,用于在不修改原始代码的情况下,动态扩展类、方法、属性或参数的行为,本文将从基础概念入手,逐步讲解装饰器的类型、用法、进阶... 目录一、装饰器基础概念1.1 什么是装饰器?1.2 装饰器的语法1.3 装饰器的执行时机二、装饰器的

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Python之变量命名规则详解

《Python之变量命名规则详解》Python变量命名需遵守语法规范(字母开头、不使用关键字),遵循三要(自解释、明确功能)和三不要(避免缩写、语法错误、滥用下划线)原则,确保代码易读易维护... 目录1. 硬性规则2. “三要” 原则2.1. 要体现变量的 “实际作用”,拒绝 “无意义命名”2.2. 要让

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

深入浅出Java中的Happens-Before核心规则

《深入浅出Java中的Happens-Before核心规则》本文解析Java内存模型中的Happens-Before原则,解释其定义、核心规则及实际应用,帮助理解多线程可见性与有序性问题,掌握并发编程... 目录前言一、Happens-Before是什么?为什么需要它?1.1 从一个问题说起1.2 Haht

MySQL之复合查询使用及说明

《MySQL之复合查询使用及说明》文章讲解了SQL复合查询中emp、dept、salgrade三张表的使用,涵盖多表连接、自连接、子查询(单行/多行/多列)及合并查询(UNION/UNIONALL)等... 目录复合查询基本查询回顾多表查询笛卡尔积自连接子查询单行子查询多行子查询多列子查询在from子句中使