SOA Suite 11g 开发指南之七:增加 Business Rules

声明:该博文转自热爱java,热爱生活 原文地址http://maping930883.blogspot.com

程序运行了一段时间后,开始有客户抱怨订单处理时间太长。经过分析发现,都是金额>$1000的订单,当信用卡验证通过后,还需客户代表人工审批,而人工审批环节是最耗时的环节。
那么我们该怎么办呢?最简单的方法当然是提高金额审批的门槛,比如提高到$5000。但是这样做需要修改。并且随着业务的发展,以后可能还需要修改。显然这个不是好方法。
如何有一种方法能够“智能而动态”地决定是否需要人工审批环节就好了。Business Rule可以帮我们“优雅”地解决这个问题。

现在,当用户信用卡验证通过后,我们增加了一个业务规则节点,由它来“决定”是否需要人工审批。
比如我们可以设定规则如下:金额>$5000的订单需要人工审批,否则自动同意。

SOA 应用设计如下:



我们根据订单金额的大小,来决定是否需要人工审批。

重点步骤说明:

1. 我们使用IF/THEN Rules,设置如下:



2. 在BPEL流程中,创建一个新的变量:approvalRequired,用来存储是否需要人工审批。


3. 把BPEL中的输入参数单价*数量的总金额值,赋给业务规则的输入参数:price。


4. 把业务规则的输出参数discountAndShipping,赋给前面新创建的变量:approvalRequired。


5. 修改BPEL的逻辑,只有当approvalRequired=true时,才进入人工审批环节。

6. 最后还有一个遗留问题,就是如何动态修改Business Rule?比如把需要人工审批的金额提高到$10000。
访问WLS Console,找到并启动一个叫composer的应用,访问http://localhost:7001/soa/composer,找到你要修改的Business Rule,修改后,测试一下看看新规则是否生效

猜你喜欢

转载自c-life.iteye.com/blog/1617866