点击蓝字 关注我们
01
前言
PO(/PI)是SAP公司的一个中间件产品,用来辅助连接SAP系统与外围系统. (当然外围系统之间也可以使用PO).
一般情况下,异步接口推荐使用PO来确保数据正确抵达目标系统.
PO可以完成一些数据内容转换,群发(一份数据发给多个异构系统),分发(数据区分特征发送给特定的系统)等功能.
本文主要讲解从ECC通过PO(PROXY方式)发送数据到外部系统的消息确认反馈
确认反馈是指通过PO内部机制把PO调用外围系统端口的信息反馈到原始消息中.
二
无反馈与反馈的比较-清单
消息反馈与无消息反馈的比较
在ECC端. 用SXI_MONITOR查看消息时,可以看出这个差异
清单界面的差异
-
第一行是一个有反馈的,并且反馈成功的消息,
-
第二行是一个无反馈的消息
-
第三行是一个有反馈,但是反馈报错的消息
-
第四行是设置了反馈,但是尚未反馈的消息(出现这种情况,可能是PO配置或性能出现问题)
三
无反馈与反馈的比较-明细
01
反馈成功的消息
02
无反馈的消息
03
反馈报错的消息
双击确认消息标记,可以看到具体的报错信息(报错消息可能>4行,取决于该消息是否在PO中发起重执行)
四
消息反馈的PO配置
配置一个目标(可能需要用administrator用户登陆配置)
在XI端口中配置一个指向上述目标的确认
五
代码调整
调用PROXY发放之前的参数设置
-
变量定义(图一)
-
先设置确认反馈信息.(图二)
-
再调用PROXY方法,发送数据.(图三)
这样在ECC中的异步调用就会告知PO把外部系统端口调用情况反馈给ECC. 在ECC的监控中就能看到消息的最终传递情况,及时发现错误. 无需通过PO的消息监控去发现此类错误.
图一
图二
图三
六
确认反馈的机制
消息发送PO之前,如果设置了需要反馈信息. 则PO调用端口成功或失败,都会产生一下消息,新产生的消息和原消息有对应关系,该消息反向发送到ECC,存在消息相关的表中.
通过标准TCODE:SXI_MONITOR就能看到这些消息及消息附加的报错信息. 因为消息在PO中调用端口报错时,默认重新尝试4次, 所以一般情况下会反馈4次报错的信息.
(此时PO的消息状态设置为报错状态,如果在PO中重新发送了该消息继续报错, 则反馈消息还会继续返回到ECC).
七
群发消息的反馈
群发消息的反馈是上述单点消息反馈机制的一个重复.
理论上每个发送的端口都会给原消息返回反馈消息. 所以识别消息是否全部群发成功, 需要通过成功反馈消息与群发节点个数比较来判断. 如果成功反馈消息>=群发节点个数, 表示成功, 反之,却不代表失败(因为反馈消息可能还处于在途状态).
八
总结
设置异步接口的确认反馈,可以在ECC中及时发现PO中的端口调用的报错信息.(尤其是JDBC接收端口, 可以及时发现写入数据库的报错信息)
通过二次开发,读取反馈成功消息设置数据的真实送达标记. 有助于明确数据的真实接口传递状态.
THE
END
约定
网友评论