You need to enable JavaScript to run this app. 如何使用kie-feel-dmn的DecisionTableImpl类并从数据库加载规则
优惠活动
大模型
产品
解决方案
定价
更多

如何使用kie-feel-dmn的DecisionTableImpl类并从数据库加载规则

KIE DMN DecisionTableImpl 使用相关问题解答

能否不引入完整库集直接调用该类?

无法单独剥离org.kie.dmn.feel.runtime.decisiontables.DecisionTableImpl直接调用,该类是KIE FEEL引擎的内部实现类,强依赖FEEL类型系统、表达式解析器、规则校验组件等核心基础模块,单独引入会直接出现依赖缺失、初始化失败问题。

你可以选择最小化依赖引入,不需要导入完整的KIE全家桶,仅需引入kie-dmn-feel模块及必要的传递依赖即可,排除drools、jBPM等无关组件后,依赖体积仅为完整KIE库的20%左右。Maven项目最小依赖配置参考:

<dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-dmn-feel</artifactId>
    <version>匹配业务需求的稳定版本号</version>
    <exclusions>
        <exclusion>
            <groupId>org.drools</groupId>
            <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.jbpm</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

自有数据库加载规则的实现方案

按以下步骤实现即可,全程不需要依赖KIE自带的本地文件、远程资源加载能力,符合安全政策要求:

  • 提前在自有数据库中存储决策表核心元数据,至少覆盖输入项定义、输出项定义、规则行集合、命中策略4类核心信息,你可以选择序列化DMN标准XML结构存储,也可以按业务需求拆分为多张结构化表存储。
  • 自定义数据加载逻辑,从数据库查询到元数据后,先组装为org.kie.dmn.model.api.DecisionTable标准接口的实例,再调用FEEL引擎提供的模型转换接口,将标准DMN决策表模型转为可执行的DecisionTableImpl实例。
  • 规则执行时直接调用DecisionTableImpl的evaluate方法,传入业务上下文参数即可得到执行结果。

注意不要通过反射直接实例化DecisionTableImpl,该类内部有大量隐性校验逻辑,手动实例化容易出现规则执行结果不符合预期的问题,必须通过标准DMN模型转换生成可执行实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 07:24:03