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

如何在Red Hat Decision Manager中创建仅含规则元数据的决策表

将FICO元数据驱动的决策表迁移到Red Hat Decision Manager的实现方案

1. 定义业务对象模型(BOM)

  • 创建FieldMetadata实体类,映射原决策表的元数据列:包含id、fieldName、fieldLength、isMandatory属性,同时添加对应各验证场景的错误消息字段(比如mandatoryErrorMessage、lengthErrorMessage),用来存储决策表中第5列及以后的消息内容。
  • 创建FormData实体类,用于承载待验证的表单数据,提供根据字段名获取值的方法(比如getFieldValue(String fieldName))。

2. 导入元数据决策表

  • 在RHDM控制台中创建新的决策表,选择导入现有FICO的元数据文件(CSV/Excel格式)。
  • 将决策表的列与FieldMetadata的属性一一映射,确保元数据和对应的验证消息都正确导入到规则引擎的知识库中。

3. 编写规则逻辑替代原FICO的Function

在RHDM中创建DRL规则文件,遍历导入的FieldMetadata实例,针对每个验证场景编写规则:

示例DRL代码片段

// 全局函数:收集验证错误消息
global java.util.List<String> validationMessages;

rule "必填字段验证"
when
    $metadata: FieldMetadata(isMandatory == true)
    $formData: FormData(getFieldValue($metadata.getFieldName()) == null || getFieldValue($metadata.getFieldName()).trim().isEmpty())
then
    validationMessages.add($metadata.getMandatoryErrorMessage());
end

rule "字段长度验证"
when
    $metadata: FieldMetadata(fieldLength > 0)
    $formData: FormData(getFieldValue($metadata.getFieldName()) != null && getFieldValue($metadata.getFieldName()).length() > $metadata.getFieldLength())
then
    validationMessages.add($metadata.getLengthErrorMessage());
end
  • 可以根据原FICO Function中的逻辑,扩展更多规则(比如数据类型验证等),只需在FieldMetadata中添加对应元数据字段,再编写对应DRL规则即可。

4. 构建并部署决策服务

  • 将FieldMetadata、FormData模型类,导入的决策表,DRL规则文件打包为一个决策服务包。
  • 部署后,调用决策服务时:先加载所有FieldMetadata实例(从决策表中读取),再传入待验证的FormData对象,执行规则后从全局的validationMessages中获取所有验证错误。

5. 验证与对齐原逻辑

  • 使用RHDM的测试场景功能,构造不同的表单数据用例(比如必填字段为空、字段超长等),验证规则触发的错误消息是否和原FICO引擎的输出一致,确保逻辑对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:23:19