复习步骤26-30 DMN(2)运行第一个DMN应用

           DMN(2)运行第一个DMN应用

配置规则引擎

 

 

建立规则文件

 

 

加载与运行DMN文件

 

 

 

步骤

新建项目:first-dmn

1.新建资源包目录 resource,在其下面COPY,粘贴activiti.dmn.cfg.xml 与 activiti.cfg.xml略有不同,如下

    activiti.dmn.cfg.xml

    activiti.cfg.xml

2.创建first.dmn 到resource目录下

3.测试方法 FirstDmn.java

package com.xiangshuai.act.c28;

 

import java.util.HashMap;

import java.util.Map;

 

import org.activiti.dmn.api.DmnDecisionTable;

import org.activiti.dmn.api.DmnDeployment;

import org.activiti.dmn.api.DmnRepositoryService;

import org.activiti.dmn.api.DmnRuleService;

import org.activiti.dmn.api.RuleEngineExecutionResult;

import org.activiti.dmn.engine.DmnEngine;

import org.activiti.dmn.engine.DmnEngineConfiguration;

 

/**

 * @author lqx

 * 文件在 E:\学习文档子目录压缩\框架\工作流引擎\Activiti6.0\window\复习步骤25-30 DMN(2)运行第一个DMN应用

  或 我的网盘\我的笔记\学习文档子目录压缩\框架\工作流引擎\Activiti6.0\window\复习步骤25-30 DMN(2)运行第一个DMN应用

 *

 *

 */

public class FirstDmn {

 

    public static void main(String[] args) {

        // 根据默认配置创建引擎的配置实例

        DmnEngineConfiguration config = DmnEngineConfiguration

                .createDmnEngineConfigurationFromResourceDefault();

        // 创建规则引擎

        DmnEngine engine = config.buildDmnEngine();

        // 获取规则的存储服务组件

        DmnRepositoryService rService = engine.getDmnRepositoryService();

       

        // 获取规则服务组件

        DmnRuleService ruleService = engine.getDmnRuleService();

        // 进行规则 部署

        DmnDeployment dep = rService.createDeployment()

                .addClasspathResource("first.dmn").deploy();

        // 进行数据查询

        DmnDecisionTable dt = rService.createDecisionTableQuery()

                .deploymentId(dep.getId()).singleResult();

        /*       

                  初始化参数

          <input id="input1">

                <inputExpression id="inputExpression1" typeRef="number">

                    <text>personAge</text>

                </inputExpression>

            </input>

       */

        Map<String, Object> params = new HashMap<String, Object>();

        params.put("personAge", 19);//personAge参数 是  <text>personAge</text> 定义好的

        // 传入参数执行决策,并返回结果

        /*

         * <rule>

                 <inputEntry id="inputEntry2">

                     <text><![CDATA[ >= 18 ]]></text>

                 </inputEntry>

                 <outputEntry id="outputEntry2">

                     <text>'成年人'</text>

                 </outputEntry>

             </rule>

             控制台输出结果 ---- <output id="outputId" label="Output 1" name="myResult" typeRef="string" />

                 根据first.dmn匹配后的结果 输出 注入到myResult

         */

        RuleEngineExecutionResult result = ruleService.executeDecisionByKey(

                dt.getKey(), params);

      

        System.out.println(result.getResultVariables().get("myResult"));

        // 重新设置参数

        params.put("personAge", 5);

        // 重新执行决策

        result = ruleService.executeDecisionByKey(dt.getKey(), params);

        // 控制台重新输出结果

        System.out.println(result.getResultVariables().get("myResult"));

 

    }

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值