PO系列之 消息的确认反馈

2021-05-27  本文已影响0人  syjf1976_abap

点击蓝字 关注我们

01

前言

PO(/PI)是SAP公司的一个中间件产品,用来辅助连接SAP系统与外围系统. (当然外围系统之间也可以使用PO).

一般情况下,异步接口推荐使用PO来确保数据正确抵达目标系统.

PO可以完成一些数据内容转换,群发(一份数据发给多个异构系统),分发(数据区分特征发送给特定的系统)等功能.

本文主要讲解从ECC通过PO(PROXY方式)发送数据到外部系统的消息确认反馈

确认反馈是指通过PO内部机制把PO调用外围系统端口的信息反馈到原始消息中.

无反馈与反馈的比较-清单

消息反馈与无消息反馈的比较

在ECC端. 用SXI_MONITOR查看消息时,可以看出这个差异

清单界面的差异

无反馈与反馈的比较-明细

01

反馈成功的消息

02

无反馈的消息

03

反馈报错的消息

双击确认消息标记,可以看到具体的报错信息(报错消息可能>4行,取决于该消息是否在PO中发起重执行)

消息反馈的PO配置

配置一个目标(可能需要用administrator用户登陆配置)

在XI端口中配置一个指向上述目标的确认

代码调整

调用PROXY发放之前的参数设置

这样在ECC中的异步调用就会告知PO把外部系统端口调用情况反馈给ECC. 在ECC的监控中就能看到消息的最终传递情况,及时发现错误. 无需通过PO的消息监控去发现此类错误.

图一

图二

图三

确认反馈的机制

消息发送PO之前,如果设置了需要反馈信息. 则PO调用端口成功或失败,都会产生一下消息,新产生的消息和原消息有对应关系,该消息反向发送到ECC,存在消息相关的表中.

通过标准TCODE:SXI_MONITOR就能看到这些消息及消息附加的报错信息. 因为消息在PO中调用端口报错时,默认重新尝试4次, 所以一般情况下会反馈4次报错的信息.

(此时PO的消息状态设置为报错状态,如果在PO中重新发送了该消息继续报错, 则反馈消息还会继续返回到ECC).

群发消息的反馈

群发消息的反馈是上述单点消息反馈机制的一个重复.

理论上每个发送的端口都会给原消息返回反馈消息. 所以识别消息是否全部群发成功, 需要通过成功反馈消息与群发节点个数比较来判断. 如果成功反馈消息>=群发节点个数, 表示成功, 反之,却不代表失败(因为反馈消息可能还处于在途状态).

总结

设置异步接口的确认反馈,可以在ECC中及时发现PO中的端口调用的报错信息.(尤其是JDBC接收端口, 可以及时发现写入数据库的报错信息)

通过二次开发,读取反馈成功消息设置数据的真实送达标记. 有助于明确数据的真实接口传递状态.

THE

END

约定

上一篇下一篇

猜你喜欢

热点阅读