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表中。

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

时间: 2024-10-26 15:18:32

CKRule BRMS-决策表使用说明的相关文章

Ckrule业务规则管理系统简介

1.   简述 Ckrule业务规则管理系统(BRMS)是一个集成的应用程序存储.管理.执行和测试的平台,允许组织定义.部署.监控和维护运营系统使用的各种复杂决策逻辑.Ckrule BRMS 独立于核心应用程序代码提取并管理决策逻辑,以便可以跨整个组织轻松理解.维护和重用这些决策逻辑. Ckrule BRMS由下图4个部分组成: 各部分功能明细如下: 一级功能 二级功能 说明 规则存储 -- 存储库允许规则置于核心应用程序代码之外.它还允许将决策逻辑作为一项企业资产管理,从而支持更轻松地理解和更

使用CKRule实现PVC配方计算

1,PVC计算的基本原理 配方员设计好配方,再进行抽象提炼,会出现相对于软件而言可以理解的逻辑,如属性的概念,对厂企生成的PVC产品而言,一般都有产品大类名称,花纹,颜色,长度,宽度,厚度等概念,这对于软件而言,就是一个对象,该对象是描述订单的对象.而配方计算出来的结果,如原料名称,质量比分量,重量等信息就是物料清单对象. 配方计算的过程就是这样的一个过程. 结构化标准配方,就是教科书上面的知识,如 PVC 100 DINP 40 Caco3 10 HSt 1 Sb2O3 4 这此是基础数据,生

ckrule规则编辑器在wpf中的使用

当前,ckrule的IDE和业务管理系统都是由winform开发的,规则编辑器也只提供了winform的版本,所以很多的朋友都提出意见,要有wpf的版本.wpf的界面设置和管理都更加的方便. 事实上可以在wpf中使用ckrule规则编辑器的,使用的方法如下:     1,在wpf项目中引入windowsform集成的相关dll. 包含2个dll,分别是System.Windows.Forms.dll和WindowsFormsIntegration.dll     2,引入WindowsForms

浅尝CKRule规则引擎

最近在参与一家材料公司的ERP系统开发,主要负责仓储系统.由于该公司的业务流程相对复杂且多变,做得那是万般痛苦,成天沉浸在业务变更代码大改的死循环里,久而久之,有种遥遥无期的绝望. 怎样才能很好或者说比较轻松的去适应这样的复杂业务变化?最近真没少在园里看大神们的贴子,但是收获甚微,也许是我个人理解的深度不够.前两天无聊的时候,把心里的唠叨在圈子里发了下,后来有人给我推荐了个叫“CKRule”的规则引擎.规则引擎?小弟孤陋寡闻还是第一次听,一番百度后找到了CKRule的官网,果断下载了试用版.文件

Linux系统下安装rz/sz命令及使用说明

对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令.今天,我们就简单的讲解一下如何安装和使用rz.sz命令. 1.软件安装 (1)编译安装 root 账号登陆后,依次执行以下命令: 1 cd /tmp 2 wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 3 tar zxvf lrzsz-0.1

android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明

涉及到滑动,就涉及到VIEW,大家都知道,android的UI界面都是由一个一个的View以及View的派生类组成,View作为基类,而常用的布局里面的各种布局就是它派生出来的ViewGroup的子类,ViewGroup作为各个组件的容器搭建了整体的UI.以下是android UI的结构示示意图: 查看源码 /** * Implement this to do your drawing. * * @param canvas the canvas on which the background w

Git使用说明

Git是流行的分布式版本控制系统,可以方便的管理多人协作的项目并避免了集中式版本控制系统对服务器的依赖. 简介 版本库(repository)是一个由Git管理的目录,Git将跟踪工作目录下文件的修改并在需要时还原. 在工作目录下.git子目录则维护着版本库 . Git维护三个组件: 工作目录: 保存实际文件 暂存区 : 保存尚未提交的修改 版本库: 保存已提交的修改 HEAD: 指向最后一次提交后的结果(checkout 命令的主要功能就是操作HEAD). Git将每次提交的修改串成一条时间线

软件使用说明

软件使用说明:我们的软件是一款基于在校女大学生的记账软件,根据调查身边的女生,统计出了大部分的女生每个月开销的分类.在我们的软件中按这些分类记录每个人的每天的开销,根据调查结果显示有部分学生还有收入,所以我们的记账软件还增加了收入项.我们软件可以根据你每天输入的开销来计算你每个月的开销,并且你可以在其中设置每个月开销的额度,根据你的开销对你的花销进行提醒.在每天你也可以收到关于你这一天开销的提醒,比如:提醒你录入,提醒你今天的花费是否超标.

IDEA工具使用说明

IDEA使用说明 1.安装 2.开始界面 1)create New Project (新建项目) 2)Import Project  (导入项目) 3)Open (打开已有的项目) 4)Check out from Version Control (从版本控制库中导入项目) 3.新建项目 1)方式一: 说明:左边的列表显示的是IDEA可以的项支持目种类,右边是需要额外添加的构面,选择好相应的构面,点击next. 说明:上面的一部分是制定项目的名称,下面一部分是制定项目中模块的名称.当创建了一个项