PO系列之 消息的确认反馈

点击蓝字 关注我们

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

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值