设为首页 | 收藏本站
18515218668

什么是FEEL语言?它有哪些主要数据类型?

发表时间:2026-03-27 09:46作者:Together规则引擎
文章附图

FEEL 全称为 FriendlyEnough Expression Language(简单友好表现力表达式语言),是 DMN(决策模型与符号)标准中的默认表达式语言。

以下是关于 FEEL 语言的详细介绍及其主要数据类型:

1. 什么是 FEEL 语言?

FEEL 旨在提供一种所有业务用户都能理解的通用符号,其设计灵感源自 Java、JavaScript、XPath、SQL、PMML 和 Lisp 等语言。它的核心特点和用途包括:

决策逻辑载体: FEEL 用于在 DMN 的“框式表达式”(Boxed Expressions)中定义决策逻辑,包括决策表、计算公式、if/then/else 逻辑以及简单的数据结构。

无副作用(Side-effect free): FEEL 表达式在执行时不会改变外部状态,确保了决策的一致性和可预测性。

三值逻辑: 支持 true(真)、false(假)和 null(空)三种逻辑值。

标准化的执行语义: 它将业务术语和逻辑转化为具有正式定义语义的可执行表达式,消除了业务与技术实现之间的鸿沟。

2. FEEL 的主要数据类型

FEEL 的数据类型可以分为简单数据类型、构造数据类型和特殊类型:

简单数据类型 (Simple Datatypes)

数字 (Number): 基于IEEE 754-2008 Decimal128 格式,支持 34 位十进制精度,能够精确处理商业计算中的小数。

字符串 (String): 由双引号包围的 Unicode 字符序列,例如 `"DECLINED"`。

布尔值 (Boolean): 包含 `true` 和 `false`。

日期 (Date): 包含年、月、日,例如 `date("2024-06-01")`。

时间 (Time): 包含时、分、秒,以及可选的相对于 UTC 的偏移量。

日期和时间 (Date and Time): 同时包含日期和时间组件。

持续时间 (Duration): 分为“天和时间持续时间”(days and time duration)以及“年和月持续时间”(years andmonths duration)。

构造数据类型 (Constructed Datatypes)

列表 (List): 域元素的有序集合,支持嵌套。

上下文 (Context): 键值对(Context Entries)的集合,类似于编程中的映射或对象,用于分解决策步骤,例如`{ "name": "Peter", "age": 30 }`。

范围 (Range): 表示一段数值或日期的区间,支持开区间和闭区间,例如 `[1..10]` 或 `< 5`。

函数 (Function): 封装了特定逻辑的调用单元,可以是内置函数、用户定义函数或外部定义的 Java/PMML 函数。

特殊类型

     空值 (Null): 用于表示缺失的数据或执行错误。

     任意类型 (Any): 包含 FEEL 语义域中的所有可能值。

总结:

FEEL语言通过这些丰富的数据类型,使得业务人员能够以接近自然语言的方式描述复杂的业务规则,同时保证这些规则在技术层面上是可判定的和可直接执行的。

精选文章
公众号
关于我们
联系方式
让您的业务更自动化、智能化!
联系邮箱:   zhangyi@rongtek.com      wangyilong@rongtek.com
咨询热线:185 1521 8668        183 3562 2627
电话:010-8200081