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

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

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

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

SOA 应用设计如下:


[img]http://dl.iteye.com/upload/attachment/0071/7293/f6bbb604-8030-3f28-a08a-a0f222ee0192.png[/img]
我们根据订单金额的大小,来决定是否需要人工审批。

重点步骤说明:

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

[img]http://dl.iteye.com/upload/attachment/0071/7295/16c1d015-111e-3de5-bf40-b27adc100ed9.png[/img]

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


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

[img]http://dl.iteye.com/upload/attachment/0071/7297/42fb89f2-a6f9-3048-a77a-2f6ef8baef7b.png[/img]
4. 把业务规则的输出参数discountAndShipping,赋给前面新创建的变量:approvalRequired。

[img]http://dl.iteye.com/upload/attachment/0071/7297/42fb89f2-a6f9-3048-a77a-2f6ef8baef7b.png[/img]
5. 修改BPEL的逻辑,只有当approvalRequired=true时,才进入人工审批环节。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值