开始试着集成Drools 3到开发框架中去,选了一个典型的ERP中订单转生产来配置规则来做测试 做着做着问题就来了
业务简要描述:
来了1笔订单明细,首先查询库房有没有存货,有转销售,没有转订单要求生产, 生产根据Bom分解内容,需要订货的订货,自己加工的分解加工,涉及到调用流程/数据保存的地方已经很好的集成进去了,规则无非就是判断做什么,可是下面的问题就头痛了,也许是刚入门的缘故,希望那位懂Drools的指点一下
-----------------------------------------
1. 基础问题,检查库存 LHS里面如何检查我的数量,我在global内集成一个hib方法,可以查询数量,可我看了半天也没明白怎么在LHS使用,或者说是用变量?我希望在Rule里面实现下面的效果,其中,ds,wf是global中引用的类
- rule "库存不足"
- when
- od:Orders(count > ds.queryCount(od))
- then
- wf.createFlow("订单生产",od);
- end
ps:上面的东西是没法通过jrule ide检查的
2. 难道我要为每一个产品分解建立一条规则?实现倒是没有问题,不过感觉似乎比使用Bom表方式效率低太多,应该不是最好的解决方式
- rule "产品_1配料清单"
- when
- pd:product( name =="产品1")
- then
- ......
- end
3.上面的东西都是逐一处理,当然也可以,批量的东西怎么引入规则或者设计?比如给一个 List<Ordersdetail>, 其中一个detail或者所有detail来决定怎么处理 order怎么处理?
也许问题很简单,也许我的用法就是错的,希望能有人指点一下。。