知识卡片

DMN决策自动化:决策表与FEEL表达式语言

普通读书笔记卡

内容

决策指根据定义的逻辑从给定事实(输入)得出结果(输出),值得用专门工具(而非硬编码)自动化的场景,是决策逻辑本身变化快、需要贴近业务需求、且需要独立于流程控制流单独可视化和审计的情况——工作流引擎处理长期运行的控制流,而决策引擎处理不长期运行、可在原子步骤内完成的决策,两者是互补而非替代关系。决策模型和标记法(DMN)是决策领域与BPMN对应的全球标准,常与BPMN搭配使用,核心是两个概念:决策表,用表格形式表达决策逻辑和业务规则(实践证明表格是表达此类逻辑的最佳形态);FEEL(Friendly-Enough Expression Language)表达式语言,既能被机器执行又能被非开发者读懂,部分工作流引擎也在BPMN流程内用FEEL做路径判断。决策表的每一行是一条规则,输入列的表达式解析为true/false,多个输入列之间用逻辑AND组合,全部为true才算规则”触发”;表顶部的命中策略(Hit Policy)决定多条规则触发时如何取结果——例如”First”策略只采用从上到下第一条触发的规则,其他策略还包括汇总所有触发规则的结果(如对风险分数求和)。DMN决策表和BPMN流程一样以XML文件存储,决策引擎负责解析模型并通过API提供决策服务,还能对决策模型做版本控制、保存决策历史。

参考来源

- 位置:《流程自动化实战:系统架构和软件开发视角》第4章《万物皆可编排》"4.2 编排决策""4.2.1 DMN"(源文件:_epub-src/EPUB/xhtml/Section0001_0007.xhtml) - 结论依据:原文说明决策自动化的适用场景(决策逻辑变化快、需要可视化审计)、决策引擎与工作流引擎"决策不长期运行"的区别,并详述DMN决策表的行/列/命中策略机制及FEEL表达式语言的双重可读性设计,直接支撑本卡片结论。 - 原始内容:这些引擎通常还可以对决策模型进行版本控制并存储决策历史……不同的是决策不会长期运行,决策可以在一个原子步骤中进行……DMN定义了FEEL(Friendly-Enough Expression Language),可以执行,同时人类可读……命中策略为"First",意思是触发的第一个规则(从表顶部开始算)将决定结果。