当前位置: 首页 > news >正文

逻辑服务编排的定义变量,将数据和逻辑解耦,配置化实现数据驱动流程!

在各行各业需求变化快的场景中,每次一个微小的需求变更或者跨系统数据协同的复杂场景都需要花费大量的精力去重复性开发,这种方式耗时费力。

现在可以换一种思路了。通过可视化的方式去编排和调整,这种方式可以使业务流程中的关键数据点被独立定义、灵活拼装和自由传递,复杂的业务规则不再需要反复写代码去实现,而是通过通过简单的配置去搞定,将数据与逻辑的解耦,实现真正的配置化数据驱动流程。

在JVS逻辑引擎中,“定义变量”的节点是实现高效业务流程编排的核心组件。

1、节点变量的概念

在逻辑配置中通过 引入“定义变量”节点创建一个变量,并可对这个变量进行赋值,变量可以存储各种类型的数据,如数字、字符串、对象等,变量存储的数据可以是直接写入的静态数据,也可以是通过公式计算后的计算结果数据,在本节点之后的逻辑配置中可以通过节点输出结果使用定义的变量数据。

2、变量使用场景:

  • 存储数据:逻辑执行过程中有临时数据存储的需求。一旦定义了变量,后续节点可以通过输出结果名多次引用同一数据,避免了重复获取数据的开销。
  • 复用数据:变量可以作为数据中转站,将不同格式的数据标准化处理后传递给下游节点,减少复杂数据转换的编码工作量。
  • 便于理解:使用有意义的变量名可以使代码更易读和维护(比如客户信用评分),新成员能够快速理解业务逻辑。
  • 动态操作:变量的值在程序运行过程中可以改变,可以处理动态业务场景。比如,根据用户实时行为调整推荐策略,或者根据库存变化动态调整订单流程。

3、具体配置操作

  • 变量的创建

进入逻辑引擎设计中,通过引入“定义变量”节点 进入配置画布,连接节点的执行线,形成可以执行的任务流程。

  • 节点的配置面板,如下图所示:

①:点击对应的节点,右侧弹出配置属性面板

②:可以修改节点的名称

③:可以输入该节点的备注说明

④:设置该节点变量的固定值(静态设置)

⑤:可以设置该节点的值通过公式计算生成(动态生成)

⑥:变量的条件赋值(历史版本兼容),根据不同的条件下 对变量进行赋值操作

⑦:变量的条件赋值

⑧:变量的操作结果,对配置的提交、测试、对该节点输出结果定义。

  • 变量的赋值

变量的赋值系统通过了两种方式,一种是直接设置变量结果(静态赋值)如下图所示:

另外一种方式是动态 赋值,赋值的方式通过公式进行赋值:

点击公式以后,在弹出的公式配置中,设置业务结果

  • 变量的使用

后续环节要引用前序环节输出的变量结果,那么在系统中只需要通过公式配置中 选择使用即可,那么我们看下下面的示例:

我们再前序的节点中定义了一个静态变量与一个动态变量(通过公式赋值的),需要在提示环节输出 两个变量的求和,那么配置如下:

通过配置,最后执行的效果如下:

5、变量的修改赋值

变量绑定,定义变量节点中变量绑定通常用于给其他节点赋值或者接收赋值。

6、场景案例

场景一:在某条件下给某节点赋值

下图:当【定义变量】节点值为a时【定义变量1】节点通过变量绑定赋值成aa。

①:变量绑定的条件设置

②:按公式设置变量绑定的条件

③:变量选择:选择需要赋值绑定的节点

④:节点取值可以是具体值、字段、公式或者空

⑤:添加多行变量绑定

⑥:添加多组变量

⑦:结构定义,数据结构不一致时结构定义点击引用测试。

配置绑定变量的条件,条件是公式。

执行结果如下,【定义变量】节点值变成aa

场景二:循环变量赋值,一次性打包下载多行文件

在这样的逻辑中我们通过勾选多条数据点击触发逻辑实现,用【定义变量】节点绑定变量值,使循环节点每执行条数据时就赋次值,然后对每次循环赋值取并集,最后【zip压缩】节点就取定义变量的值。

注意,如果是向数组中添加参数,在循环画布中定义变量赋值时用函数LISTADD

在循环容器中给循环外边(上图获取多个文件地址)【定义变量】节点赋值。

变量绑定按公式赋值,如下图是连线1的赋值

循环多条数据多个文件,分两条线赋值按顺序执行,如下图是连线2的赋值

最后赋值执行结果如下

在线demo:https://logic.bctools.cn

开源框架:https://gitee.com/software-minister/jvs

http://www.dtcms.com/a/593638.html

相关文章:

  • 代码随想录 Q89.跳跃游戏Ⅱ
  • 那个网站是专门做渔具的网站设计与建设难吗
  • Bootstrap4 导航栏
  • ESLint: Expected indentation of * spaces but found *. (style/indent)
  • 前端根据文件后缀名智能识别文件类型的实用函数
  • 文山 网站建设 滇icp成都优化官网推广
  • 线性代数 - 矩阵乘法能换括号,不能换顺序;满足结合律,不满足交换律
  • ScaleRL:掌握大语言模型强化学习的规模化艺术
  • AI MCP体系化开发指南:从诞生背景到技术实现
  • QSS选择器详解:让你的Qt应用界面焕然一新
  • 【底层机制】Android低内存管理机制深度解析
  • 商务网站建设目的电子商务网站开发的预期目标
  • 知识管理的复利效应:从“碎钞机”到“印钞机”的认知升级
  • 2025 年世界职业院校技能大赛汽车制造与维修赛道备赛方案
  • IO 多路复用技术演进与原理深度解析
  • 指纹浏览器字体模拟实践
  • 接口在领域层,实现在基础设施层
  • 【LeetCode刷题】移动零
  • 江苏省建设厅网站公示腾讯企业邮箱注册申请官网
  • 本地部署 Stable Diffusion3.5!cpolar让远程访问很简单!
  • UE_ControllRig交互
  • Swift-snapKit使用
  • Hello-Agents第二章深度解析:智能体的进化之路——从符号逻辑到AI原生
  • 51单片机汇编实现DHT11读取温湿度
  • LiveCharts.Wpf 控件的使用
  • 柔性软风管-测量统计一键出量
  • 告别手动录财报!财务报表OCR识别解决方案选型指南
  • (128页PPT)智慧化工厂区一体化管理平台建设方案(附下载方式)
  • jsp网站建设项目实战总结怎么做网站统计
  • 【Rust 探索之旅】Rust 全栈 Web 开发实战:从零构建高性能实时聊天系统