2014-06-01 Created By BaoXinjian
一、摘要
Workflow中有一块比较重要内容就是bussiness event,
Oracle 业务时间系统,就是一个消息产生和消费的过程,Oracle打算使用它作为系统集成,源系统产生数据,分装为业务事件,送给目标系统
比如,客户在系统架构时,EBS对supplier的任何修改,都需要抛转至另外一个外接的supplider管理系统,可要要求是即时的,即修改后就发送,而不是异步处理,如果是异步通过db link会更好
实现该需求有很多种技术
如database trigger,但是有可能会产生性能问题
如application alter,其实质也是在database中建立trigger
另外一种就是workflow的business event
因为business event是一种异步处理机制,如果以transaction需要处理很多业务,系统可以把消息定制和发送,独立出来,作为一个消息定制的做法,产生异步消息处理,就可以对一个transaction的业务处理的数量较少一部分
如果你有仔细的研究oracle 标准处理interface的API和并发程式,在代码中,都有调用消息接口代码模块,即所有通过interface或者API导入系统的资料都会相应的消息发送
- 比如所,在supplier-init / site-init /contact - init通过API和Interface导入时,系统都会调用business event(oracle.apps.ap.supplier.event),发送一个供应商被修改的消息给通道】
二、案例
需求:在供应商supplier的任何修改包括建立、删除、更新,都需通过标准的supplier change business event去监控,并将信息记录至客制化的log表中
1. 查询到该标准Even (oracle.apps.ap.supplier.event)
2. Update Subscription
3. Update Subscription Header, 设定Execuation Condition 和 Action Type
4. Update Subscription Detail, 设定该Event的action为PLSQL或为Workflow
5. 建立PLSQL Function,必须有两个参数 p_subscription_guid & p_event
6.1. 手工测试通过Event Test功能,直接Raise Event
6.2. 手工测试通过Event Test功能,
输入Event Key
6.3. 手工测试通过Event Test功能,
查看table中的变化
7.1. 手工测试建立Supplier触发Event
7.2. 手工测试建立Supplier触发Event,查看table结果
8.1. 测试Event Parameter,调用Event时建立手工参数
8.2. 测试Event Parameter,查看table确认结果
三、案例实现
1. 查询到该标准Even (oracle.apps.ap.supplier.event)