• IDOC的状态


    这篇文章介绍IDOC Status的概念和它们的用途,明确IDOC status的类别,看一下完整的状态列表,包括INBOUND和OUTBOUND,还有入站和出站iDoc处理时iDoc状态的顺序。
    另外还有监控SAP IDOC status的工具,比如AIF,BD87, WE02,还有如何手工修改IDOC status,最后再深入研究几个最常用的的状态,比如51, 53, 64,1,30等等
    https://wiki.scn.sap.com/wiki/display/ABAP/IDoc+Statuses
    Note 817939 IDoc: IDocs remain in status 75
    IDOC Channel

    IDoc Status的概念

    IDoc的整个处理过程会经历一系列的事件Event和步骤,每个处理步骤的结果都用两位数字表示,也就是我们的说IDoc Status。例如,成功创建入站iDoc用状态50表示,即“Doc added”。如果传入的iDoc成功创建了应用程序凭证,iDoc进入状态53,“Application document posted”。这些状态就是IDOC处理的一个个的里程碑,它以IDoc Status Record的形式被记录下来,这样的话IDoc的处理过程就可以被监控,在问题处理时,我们可以根据状态快速定位哪些步骤被成功处理了,哪里出现的Error。

    最后一个状态码被认为是Final Status。
    在这里插入图片描述

    入站IDOC状态码示例:
    在这里插入图片描述

    出站IDOC状态码示例
    在这里插入图片描述
    请注意这些idoc的状态。在本例中,Inbound iDoc成功地完成了4个处理步骤。开始时,创建了iDoc(状态50),最后iDoc成功地发布了应用程序文档(状态53)。
    样例出站iDoc的记录中有5个状态:从iDoc创建(状态01)到iDoc被传递到应用程序接口框架(状态03)。

    IDoc status 类别

    根据iDoc状态消息的类型或严重程度,iDoc状态代码可以大致分为以下几类:

    • Success成功
    • Error错误
    • Ready to process待处理
    • Warning警告

    类别可以表示IDOC处理步骤的总体状态,用红黄绿灯来表示,Success 绿灯,Error 红灯,Ready to process 和Warning黄灯。红绿灯很好理解,黄灯一般表示中间状态或是存在警告,比如入站的64,表示ready to be processed by 应用层和post documents。出站的03表示IDOC ready to be transfer到外部系统。

    出站状态

    出站IDOC Outbound iDoc就是要发出的IDOC,状态码从01到49。下面是完整列表:

    在这里插入图片描述

    入站状态

    入站就是进入到系统的IDOC,入站的状态码从50开始
    在这里插入图片描述

    入站iDoc状态顺序

    在系统中创建入站iDoc时,其状态为50。然后,根据合作伙伴概要文件的设置,它将立即被处理或被收集。如果idoc被收集,它们将保持状态64(“准备处理”),直到它们被处理。

    接下来,iDoc传递到应用层进行处理。IDoc的应用程序处理通过process code进程代码进行,这是一个专门用于IDoc处理的函数,具体取决于IDoc类型。
    无错误处理的入站iDoc的最后一个阶段是状态53。但是,如果出现错误,iDoc将进入状态51。
    在这里插入图片描述

    出站iDoc状态顺序

    在系统中创建Outbound iDocs成功,进入状态01。如果没有语法错误,则iDoc进入状态30(“iDoc准备分派”)。但是,如果有语法错误,iDoc将以状态26结束。
    在这里插入图片描述

    如何监控iDoc状态?

    在SAP S4 HANA中,有几种方法可以监视iDoc的状态。但是,监视方法取决于SAP系统的配置和实现的iDoc监视功能。
    对于S4 HANA,建议使用SAP Application Integration Framework (AIF)进行iDoc监控。但您也可以使用其他标准工具,如bd87、we02等来查看iDoc状态。
    AIF,可以参考我之前整理的另一个笔记,简单说一句,这个组件不是免费的。

    以下是可以用于监视SAP S4 HANA中的idoc的事务:

    1. 标准iDoc监视工具:事务bd87we02we05等。
    2. AIF 应用集成框架: /n/aif/err/n/aif/ifmon

    标准iDoc监控工具

    WE02/WE05(这俩没有区别,都是程序RSEIDOC2)查看IDOC清单 。
    BD87通过状态统计查询IDOC。

    如何手工修改IDOC状态?

    为了纠正错误的数据,iDoc可以进入编辑状态,当编辑入站iDoc的内容时,它进入状态69(“iDoc已编辑”)。类似地,当编辑出站iDoc时,它会进入状态32或33。注意,系统无法在“iDoc was edited”状态下进一步处理iDoc。因此,需要先将iDoc设置为“ready to process准备处理”状态。也就是说,入站idoc的状态为64,出站idoc的状态为30。
    可以使用 SE38执行程序 RC1_IDOC_SET_STATUS 来修改IDOC的状态。
    在这里插入图片描述

    怎么处理有错误状态的IDOC?

    • BD87
    • /AIF/ERR
    • 使用标准程序修改,见下面列表:
    program功能
    RBDAPP01Inbound Processing of IDocs Ready for Passing (处理Inbound 黄灯数据)
    RSEOUT00Process All Selected IDocs (EDI) (处理Outbound 黄灯数据)
    RBDMANI2Manual Processing of IDocs: Post IDocs Not Yet Posted (重处理那些红灯Inbound)
    RBDAGAINReprocess Outbound iDocs in Error(重处理那些红灯Outbound)
    RSETESTDDelete IDocs删除IDOC(TCODE :WE11)
    RC1_IDOC_SET_STATUS手工修改IDOC状态(通常用于修改状态为 68 no further processing)
    RBDMIDOCCreate iDocs from Change Pointers
    RBDSYNERProcess IDoc Despite Syntax Errors
    RBDAGAIEReprocessing of Edited IDocs

    可以参考:https://wiki.scn.sap.com/wiki/display/ABAP/IDoc+Statuses
    其中有详细的status和后续处理方式

    重新触发队列:RSEINBQUEUE

    在这里插入图片描述

    删除队列:RBDQUEUEDELETE

    第一屏幕选择入站还是出站,第二屏幕输入队列号和发送方,此时可以选择删除后IDOC的状态,可以是64或是68。
    在这里插入图片描述

    在这里插入图片描述

    IDOC状态存在哪张表?

    EDIDC 和 EDIDS,前者存的是当前状态,后者是历史状态。

  • 相关阅读:
    利用LinuxPTP进行时间同步(软/硬件时间戳) - 研一
    c高级day5(9.12)宏和Makefile
    sqlServer 检测慢 sql
    计算机视觉--距离变换算法的实战应用
    springboot属性注入增强(一)背景/需求
    Spring之Ioc简介说明
    Windows系统开启webdav挂载功能,访问网络文件
    java基于springboot+vue驾校预约网站管理系统
    MKL库矩阵乘法(cblas_dgemm)
    Spring Boot技术知识点:如何使用@Validated注解来对邮箱字段进行数据校验
  • 原文地址:https://blog.csdn.net/xiayutian_c/article/details/128065173