规则编辑器

业务规则编辑器的由来

    所谓的业务规则编辑器就是把业务上面的规则用简单的语言写出来,写出来的规则要比较简单易懂,最好是像口语说明一样,而编写的过程也要比较简便,像word那样就最好,当然这些规则都应该是程序可以直接解释的,不要再经过程序员“翻译”为机器语言。
    为了达到这个目的,必要的操作提示是很必要的。
    下面以某工厂的基本工资公式为例说明:
就职状态
实发基本工资
转正
1310/月工作天数*转正前天数+基本工资/月工作天数*转正后天数 
其他
基本工资/月工作天数*实际出勤天数

    上述公式中,实发基本工资是根据企业的制度而编写的,这是经常变化的因素,大部分的工资系统都会由上面的逻辑变成可编辑的公式,这样就算工厂的工资计算工式不断发生变化, 程序是不需要修改的。这样的做法也是客户喜欢的做法,财务人员一般都对Excel非常熟悉,他们会认为“做成像Excel那样就行,很简单”,事实上,做成Excel的功能并不简单,业务程序常常不能直接调用Excel来实现这些功能,因为这相当于要求客户一定要安装Excel,导致很多的费用。

    由此,做一个规则编辑器就可以比较好地解决问题。
 
IBM的规则编辑器
     IBM的ILog规则引擎,是一个非常成功的规则引擎,其规则编辑器也很成功,很简单易用,直接给客户使用都没问题。

如上图所示,规则编辑器是一个带有大量提示的编辑框,这类似于我们常常使用的编程工具,如VS2010等,但规则编辑器的编写约束和提示都比IDE多,这是给普通用户使用的,不是给软件开发工程师使用,所以操作一定要简单,提示要多,输入控制也比较多。
    不过,编辑器是很好,但要集成到软件公司的产品中,那就相当的有难度,主要是价格过高,架构过于复杂。
    
CKRule的规则编辑器
    Ckrule的规则编辑器完全由C#编写,填补了.Net规则编辑器的空白,为小型项目提供了很简单高效的解决方案。

Ckrule规则编辑器有如下关键特性:
1,支持嵌套多层IF-ELSE-THEN
       常见的规则编辑器只有一导的IF-ELSE-THEN,但如果IF下面要再来一个IF,就比较困难了。Ckrule完全解决了这个问题。
2,对象及方法无限扩展
        Ckrule规则编辑器的支持使用的对象和方法,在 Ckrule中编辑和修改后,可以使用所有的.net API,编辑完成之后,规则编辑器即时读取。
3,支持智能提醒
        支持输入提醒和同类型属性提醒,输入完一个内容按空白键就会提示下一个输入内容。
4,支持样式显示
        多层嵌套时,各层之间的如果否则那么等,会有不同的缩进,界面样式非常清新。
综上:Ckrule规则编辑器提供了非常廉价和有效的方案,让你的业务系统快速集成业务规则编辑功能。大大提高系统的灵活度。
原文地址:https://www.cnblogs.com/fubeibei/p/3940491.html