美文网首页
PO系列之 消息的确认反馈

PO系列之 消息的确认反馈

作者: syjf1976_abap | 来源:发表于2021-05-27 23:49 被阅读0次

    点击蓝字 关注我们

    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

    约定

    相关文章

      网友评论

          本文标题:PO系列之 消息的确认反馈

          本文链接:https://www.haomeiwen.com/subject/jezwjltx.html