跳转至

GeneralEntity 变量类型

背景

传统方式下,规则引擎要求先定义 Java POJO 类或自定义变量结构,规则条件才能引用这些变量。GeneralEntity 类型简化了这个流程——基于 HashMap 包装类,只需定义字段名和数据类型即可。

三种变量分类类型

类型 说明 适用场景
GeneralEntity 基于 HashMap,只需字段名 + 类型 新项目推荐,最简单
Custom 自定义字段 旧项目兼容
Clazz Java POJO 类 需要强类型绑定

新建变量库时默认使用 GeneralEntity 类型。

使用方式

1. 创建变量库

在管理后台中创建变量库文件(.vl.xml),新建分类时:

  • 类型默认为 GeneralEntity
  • 填写 targetClass 名称(如 FlightInfo
  • 添加变量,只需填写字段名和数据类型,label 自动等于字段名

2. 变量库 XML 格式

<variable-library>
  <category name="FlightInfo" type="GeneralEntity" clazz="FlightInfo">
    <var act="InOut" name="aircraft_type" label="aircraft_type" type="String"/>
    <var act="InOut" name="arrival_time" label="arrival_time" type="Integer"/>
    <var act="InOut" name="is_international" label="is_international" type="Boolean"/>
    <var act="InOut" name="passenger_count" label="passenger_count" type="Integer"/>
  </category>
</variable-library>

3. 在规则中引用

GeneralEntity 类型的变量在规则编辑器中的使用方式与 Custom 类型完全一致——从变量选择菜单中选择分类,再选择字段。

4. 调用时传参

请求体按分类名(即 targetClass)分组:

{
  "FlightInfo": {
    "aircraft_type": "A380",
    "arrival_time": 8,
    "is_international": true,
    "passenger_count": 260
  }
}

支持的数据类型

类型 说明
String 字符串
Integer 整数
Double 双精度浮点
Long 长整数
Float 单精度浮点
BigDecimal 高精度数值
Boolean 布尔值
Date 日期

兼容性

  • 旧项目使用的 Custom 和 Clazz 类型完全不受影响
  • GeneralEntity 类型的变量库可以与 Custom/Clazz 类型的变量库在同一项目中共存