You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过DMN规则引擎验证输入表A与表B的行匹配关系?

能否用DMN规则引擎实现跨输入表的行匹配验证?

当然可以,DMN(决策模型和符号)的FEEL(友好表达式语言)原生支持集合遍历与存在性判断,完全能满足你检查Input A每行是否在Input B存在对应行的需求。下面是两种常用的实现方案:

方案1:使用决策表(Decision Table)

这是DMN中最直观的实现方式,适合可视化管理规则:

  • 定义输入:
    • 声明InputA为集合类型,每个元素包含keyA1、keyA2两个属性
    • 声明InputB为集合类型,每个元素包含keyB1、keyB2两个属性
  • 配置决策表:
    • 设置Hit Policy为COLLECT(用于收集所有行的匹配结果)
    • 第一输入列:遍历InputA的每一行,表达式写为currentRow(配合遍历逻辑)
    • 第二输入列:判断当前行在InputB中是否存在匹配,表达式:
      exists(InputB, b -> b.keyB1 = currentRow.keyA1 and b.keyB2 = currentRow.keyA2)
      
    • 输出列:返回包含原行数据和匹配结果的对象,比如{row: currentRow, isMatched: <第二输入列结果>}

方案2:使用上下文+FEEL表达式

如果不需要可视化规则,直接用FEEL表达式就能快速生成结果:

for each row in InputA return {
    keyA1: row.keyA1,
    keyA2: row.keyA2,
    isMatched: exists(InputB, b -> b.keyB1 = row.keyA1 and b.keyB2 = row.keyA2)
}

这个表达式会遍历InputA的每一行,对每行执行存在性判断,最终返回包含所有行匹配状态的集合。

补充说明

如果你的匹配逻辑需要扩展(比如键值类型转换、模糊匹配),只需要修改exists函数内的条件即可,FEEL支持丰富的表达式语法来适配复杂场景。

内容的提问来源于stack exchange,提问作者Viksraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:36:28