zoukankan      html  css  js  c++  java
  • CKRule BRMS-决策表使用说明

    决策表的编辑有2个步骤,即规则包编辑、规则数据设置和发布。

    1.   规则包编辑

    双击CKBoot.exe打开CKRule规则引擎编辑界面。点新建,在左侧的工程窗口中,就会出现一个新的规则包。点击根结点,可以修改规则包的名称。

    1.1.  传入传出参数

    双击对象库-传入传出参数,打开编辑界面,把通用格式的字段填写到界面中。

     

    名称列所填写的内容必须符合.Net的字段命名规范,如-,空格,@等字符都不能使用,首字母不能为数字。


    传入传出参数和自定义类型的定义,会影响到后面的所有编码。

    与外部进行json通讯时,使用的属性名称是映射名称,如果映射名称为空时才使用名称。

    1.2.  决策表定义

    打开规则库-决策表定义界面。

    所谓决策表,就是用表格的形式保存规则数据,以便于一下子处理大量的规则。

    其执行的核心处理逻辑就是扫描每一行,检查相关单元格的值,当达到某种条件时,就执行相应的动作。


    如设置停车场决策表时,要填写这个表的各列信息,包含标题,数据库字段,数据类型,逻辑类型,精度,规则等内容。其中

    标题就是决策表最终显示在前端时的列标题。

    数据库字段就是绑定到管理平台或其他数据库的字段。当前是绑定到管理平台上面的RoolTbl表的,该表的数据如下:


    数据类型用于控制输入时使用的类型,以减少输入的差错。

    逻辑类型是指条件、结论或无。设置时,条件和结论都必须存在,可以存在多个。如果存在多个条件,意思就是多个条件都成立时,就执行一个或多个结论。当代码比较复杂,不太适合这种定义时,可以直接使用结论列,填写相关的代码,而条件列则填写1==1;即可,意思为就像编辑中的if(1==1){}。

    规则编写

    选择结论列的脚本,点设置后弹出如下界面。


    这个界面可以设置遍历时使用的脚本。

    如需要获取当前行的对象时,使用Row属性,Row.Cells[“Prop1”].Value意思就是获取当前行,并且数据库名称为Prop1的单元格的值,这个值的类型为string。通过这个Row属性就可以获取所有单元格的值。

    CDouble是系统内置的方法,点击界面左边的类别—扩展(15),就可以查看不同函数的用法。同时,该界面也可以直接使用.Net自身的所有API。

    上面的代码的意思是,找出各个单元格的值,并转换为正确的类型,遍历传入的所有点位数据,如果点位值在区间之中,且类型为“信息”,就将信息设置为其中一个单元格的内容。

    1.3.  主规则

    本功能用于调用客户端编写的规则。

    上面2个步骤,用于定义决策表,而主规则界面可以调用决策表逻辑。双击规则库-主规则,新增一个规则集。


    在规则集中添加如下代码:


    详细代码如下:


    代码的作用是,读取规则管理平台中的RuleTbl的数据,初始化决策表,然后执行决策表。

    2.   规则数据设置与发布

    编辑规则数据和发布规则等功能都在规则管理平台中进行的。

    2.1.  规则包管理

    登录规则管理平台,打开规则包管理界面,找到相应的分类,右键新增规则。


    点击浏览,找到刚才生成的ckp文件,系统自动加载规则包名称,填写到编码,名称上面。而字段就会拉出规则的输入输出信息。在编辑类型中,选择决策表。

    2.2.  规则发布

    打开规则发布界面


    找到未发布的规则包,双击行记录。

    在界面下部会显示该规则的相关的信息,如当前规则、服务开始时间、服务结束时间和服务类型。服务开始时间必须小于当前时间,服务结束时间必须大于当前时间,服务类型选择Json即可。然后点击发布。

    2.3.  规则数据设置

    打开规则数据设置界面,该界面显示所有已经发布的记录。


    找到对应的规则,点击用决策表设置。弹出决策表编辑界面。


    上图中,运行时机和描述都是由规则包编辑时设置的,而表格中的各列,都是决策表设置的各列。数据保存后,会按数据库字段对应的内容,保存到RoolTbl表中。

    至此,一个决策表编辑完毕。

  • 相关阅读:
    Vue框架的两种使用方式
    转淘宝前端的一篇文章作备份
    分享两个细致、全面讲解Vue和React源码的链接
    网络慢。。。
    mysql的查询使用explain的讲解
    pv,uv的意义
    vi
    php中经常使用的string函数
    dirname(__FILE__) === __DIR__
    phpstorm开发环境搭建流程
  • 原文地址:https://www.cnblogs.com/fubeibei/p/4356411.html
Copyright © 2011-2022 走看看