规则引擎实现的“业务规则设计示例”

规则引擎 2012-07-02 04:36:51
原问题描述


业务规则设计呢,想将业务规则执行代码与业务流程管理系统的其他代码分开。这样最终用户无需请求程序员的帮助就可以更改业务规则,程序将按照新的规则来运行。

也有叫业务规则引擎的吧, 我们这里有人做过类似的设计没,能不能给两个简单示例.

例如:我目前遇到问题就是-----业务系统需要制定一个贸易定单购买的规则,如果购买商品是 地区a 地区b 地区c呢,就执行特定业务规则term, 另外的地方呢,根据合作公司的他们制定的规则逻辑来区别业务系统要执行哪个特定的业务规则term。
最初的想法,这个规则的逻辑主要依据就是地区了,先划分地区,然后在看公司了。 但是这个规则的逻辑不是一成不变的,以后万一业务系统规则逻辑发生改变呢,我不想在修改程序了,直接修改数据库中的业务规则逻辑,就可以了。

目前我这么设计的大家看看行不行,合理不合理,规则之间是不是需要排它性的。
ruleId 自增列 主键
公司
公司规则序号 //由公司和公司规则序号作成unique的索引
商品
运输方式
执行条款 //商品 运输方式 执行条款 是次要依赖项,可为空.
结果规则term //规则term1
判定逻辑 //针对目前要求 location = 地区a or location = 地区b or location = 地区c
规则是否激活 //
规则开始执行时间//
规则结束执行时间// 比如说我从80-90年执行的是 一个业务规则,到90年以后业务规则变了,我重新生成了业务规则 就有了这三项,但是规则依赖没有,判断标准和结果可能变了。


记录示例
1, company_a, 1, 大蒜, 火车,消费者法 合同法,term1, where location = 地区a or location = 地区b or location = 地区c
2 company_a, 2, 生姜,火车,消费者法 合同法,term2, where location not in[ 地区a , 地区b ,地区c] and 商品是生姜

2 company_b, 2, 鸡毛菜,汽车,消费者法 合同法,term——99, where location not in[ 地区a , 地区b ,地区c] and 商品是鸡毛菜 and 运输方式是汽车。




规则引擎实现方案

如果规则变更 直接在图片中的界面上 直接修改规则即可,然后编译发布,支持热部署

...全文
688 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
truelove7283159 2012-09-04
  • 打赏
  • 举报
回复
呵呵, 我也实现了一个.
谢谢你啊 , 明天我开一个贴 你来接分哦.
  • 打赏
  • 举报
回复
你可以联系一下这个问题的楼主。
规则引擎 2012-07-02
  • 打赏
  • 举报
回复
我发了一个帖子来 回复你这个问题
http://topic.csdn.net/u/20120702/16/817fab1e-625d-47cc-99b1-4084df949980.html

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧