利用XI同步调用(JDBC)oracle数据库的返回值。

本文介绍了一种使用CCBPM执行异步更新数据时遇到的问题,即异步更新步骤执行顺序错乱导致的状态不一致现象。通过采用同步接口方式,设置特定的返回结构来确保操作按预期顺序执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天用CCBPM做一串业务操作,具体的操作是:我先异步更新数据状态---之后同步读取数据---同步调用RFC---异步更新数据状态。关键步骤就这几步。本来跑的挺好的,可是可就是今天出现了一个问题,就是偶尔情况会出现第一步的异步更新执行时间会跑到第二个的异步更新数据后面,也就是本应该最先执行的步骤最后执行了。这就造成我的逻辑成功了,状态还是第一步的初始状态。主要还是偶尔的出现,最终原因也没找到,我怀疑是adapter的问题,ccbpm把消息发到adapter就算是成功了,流程继续走,而消息堵在了adapter里,当第二次异步过去就先执行了,第一次也跟着过去了。

后面咨询各方大神,想到了避免这个问题的方法,就是XI访问操作数据库里会同步返回一些记录,比如插入了多少条数据等。所以我们来看看如何实现的吧。

既然是同步的接口,当然要做请求Message Type 和返回的Message Type.就是和平时做同步接口的配置相似,唯一不同的就是返回结构需要注意,比如我的action = update_insert,那么返回结构就是这样的:


[img]http://dl.iteye.com/upload/attachment/0063/1193/084ede02-68f3-3639-b1ae-f2ca0392304f.png[/img]

[img]http://dl.iteye.com/upload/attachment/0063/1195/206b9b8a-e265-3436-b6d5-83e0f60af8c5.png[/img]

Note:其中Statement_response节点不可少,返回的Message Type的名字也是固定的,就是请求的Message Type + _response


[img]http://dl.iteye.com/upload/attachment/0063/1201/fce753ba-9ee2-33a8-87bf-77f3ec77bb21.png[/img]

这样就可以通过同步操作避免后面的先执行了,也可以根据不同的返回值进行操作。

其它操作的返回值可参考:
http://help.sap.com/saphelp_nw70/helpdata/en/2e/96fd3f2d14e869e10000000a155106/frameset.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值