原创 标题:  Drools大发3d模板使用之Excel

大发3d模板简介

  • 大发3d模板是使用模板文件和表格数据源即时生成DRL大发3d的方法。
  • 表格数据源是指可以用表格中展示的数据,典型的介绍是数据库和Excel。
  • 如果根据存储在应用程序之外的数据来生成大发3d?解决方案之一就是:大发3d模板

大发3d模板的优势

  • 大发3d的数据和结构完全分离
  • 相同的模板可用于不同的数据集
  • 同一数据集可用于不同的模板
  • 与决策表相比,提供了极大的灵活性。

    规模模板的语法结构

template header 开头
变量(比如,id)
空行(表示header结束)
template
package
import
rule大发3d名称
大发3d属性
when、then、end,使用方法@{id}
end template

示例:

template header
id
username

package com.template;

import com.secbro2.drools.demo.Person;

template "template-rules"

rule "Categorize Persons_@{row.rowNumber}"
no-loop true
when
       $p: Person(id == @{id})
then

       modify ($p){ setUsername("@{username}")};

end
end template

大发3d模板实战

kmodule.xml配置

<kbase packages="com.template" name="test-template">
        <ruleTemplate dtable="com/template/template.xls" template="com/template/template.drt" row="2" col="1"/>
    </kbase>

xls文件内容:
|编号|名称 |
|—|—|
| 1 | Tom|
| 2 | Lucy|

执行程序:

public class Demo15 extends BaseDemo {

    public static void main(String[] args) {

        KieServices kieServices = KieServices.Factory.get();
        KieBase kieBase = kieServices.getKieClasspathContainer().getKieBase("test-template");

        KieSession kieSession = kieBase.newKieSession();

        Person p = new Person(2,"");
        kieSession.insert(p);

        kieSession.fireAllRules();

        System.out.println(p.getUsername());

    }
}

打印结果:Lucy。

Drools五分11选5视频

CSDN学院:《Drools7大发3d引擎进阶教程》

CSDN学院:《Drools7大发3d引擎入门教程》

CSDN学院:《Drools7系列优惠套餐》

END
朱智胜的个人博客-微信公众号