Drools Guvnor数据枚举API

Drools Guvnor数据枚举API,drools,guvnor,Drools,Guvnor,在Guvnor文档中,我知道如何定义数据枚举并在Guvnor中使用它。是否可以从我自己的Java代码中获取数据枚举?来自Guvnor的文档: 以编程方式加载枚举:在某些情况下,人们可能希望完全从外部数据源(如关系数据库)加载枚举数据。为此,可以实现一个返回映射的类。映射的键是一个字符串(如上所示的Fact.field名称),值是一个java.util.List字符串 “=”告诉它通过执行代码来加载数据 致以最良好的祝愿,我希望现在回答这个问题不会太晚 要将枚举从应用程序加载到guvnor 从字符

在Guvnor文档中,我知道如何定义数据枚举并在Guvnor中使用它。是否可以从我自己的Java代码中获取数据枚举?

来自Guvnor的文档:

以编程方式加载枚举:在某些情况下,人们可能希望完全从外部数据源(如关系数据库)加载枚举数据。为此,可以实现一个返回映射的类。映射的键是一个字符串(如上所示的Fact.field名称),值是一个java.util.List字符串

“=”告诉它通过执行代码来加载数据


致以最良好的祝愿,

我希望现在回答这个问题不会太晚

要将枚举从应用程序加载到guvnor

  • 从字符串动态构建枚举类(在我的示例中,枚举值由用户通过GUI提供)
  • 将其添加到jar,将其转换为字节数组
  • 通过REST调用将其作为资产(模型jar)发布到guvnor
  • 调用保存存储库操作(更改guvnor的源代码)
  • 现在,枚举将在规则窗口中显示为事实

    编辑/删除模型jar和验证规则是您必须注意的事情

    public class SampleDataSource2 {
        public Map<String>, List<String> loadData() {
            Map data = new HashMap();
            List d = new ArrayList();
            d.add("value1");
            d.add("value2");
            data.put("Fact.field", d);
            return data;
        }
    }
    
    =(new SampleDataSource2()).loadData()