总篇77篇 2020年 第1篇
一、背景
公司销售绩效核算管理前期,绩效数据主要通过不同业务系统,经历人工数据采集、人工核算、薪酬核算、线下确认等多个环节。为了更贴合业务应用,对此进行了具体分析,针对现有模式中存在沟通效率低、缺乏安全监管、核算精准度低、审批流程不完整、运营成本高等问题。随着公司业务的快速发展,解决销售人员,线上自动高效的全生命周期管理,成为了当下重点任务。 因此,为适应之家发展,快速支持业务更规范、高效的开展, 规划建立一套“标准”、“安全”、“便捷”的规则引擎管理体系,致力于为业务提供统一规则管控中心,聚合用户规则诉求,简化各业务规则频繁变更的痛点,实现基础信息自动化管理、业务制度变更快速响应的建设目标,提高绩效数据安全性、准确性及合规性,降低维护成本。二、规则引擎使用
2.1 什么是规则引擎规则引擎是由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策 从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。大多数规则引擎都支持规则的次序和规则冲突检验,支持简单脚本语言的规则实现,支 持通用开发语言的嵌入开发。目前业内有多个规则引擎可供使用,其中包括商业和开放源码选择。开源的代表是 Drools,商业的代表是 Visual Rules,I Log。
2.2 为什么要使用规则引擎 使用规则引擎前现状: 1、从10万条合同数据中清洗出符合规则的数据,传统开发都是把业务规则逻辑写在JAVA或者SQL代码中,导致业务逻辑和代码无法分离、维护业务规则成本较高。 2、新增或修改一个规则条件都需要修改代码、无法单独在线调试业务规则、确认分支环境、最后发布上线,开发维护高效率低。 3、业务规则管理无修改版本记录、升级如有问题线上环境无法快速回滚至低版本等风险。使用规则引擎带来的好处:
1、实现了从应用逻辑和数据中将业务逻辑分离,在线规则调试可见即可得、热更新等特点提高业务灵活性、提高系统的开发效率及可维护性; 2、实现了规则可视化管理、版本可追溯、通过历史版本反之可以统计业务变更过程,以及后续方便系统的整合。 2.3 规则定义 对于一个规则而言,首先声明 package 是必须的,除 package 之外,其它对象在规则中的顺序是任意的,也就是说在规则当中必须要有一个 package 声明,同时package 声明必须要放在规则的第一行。一个规则通常包括三个部分:package 包名
rule "规则名"
(属性)attributewhen
(条件) - 也叫作规则的 LHS(Left Hand Side)
then
(动作/结果) - 也叫作规则