原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
前言
网上有一个介绍IDOC的文章, 讲的非常详细. 有兴趣的可以看一下.
https://www.cnblogs.com/jiangzhengjun/p/4292135.html#_Toc411677416
本文更多的从开发的角度及我的理解去讲解IDOC的一些基础知识, 作为一个补充吧.
二
IDOC是什么
IDoc:intermediate(媒介)document .
通过特定的方式把接口传递的内容整合到一起, 通过统一的程序查看,处理,监控. 通过消息类型或IDOC类型区分出不同的业务.
三
集中数据存储:(表)
**EDID4 4.0 以上版本的 IDoc 数据记录**
记录IDOC的内容,具体的内容记录在EDID4-SDATA 中, 通过EDID4-SEGNAM 段名称查找对应的段结构,
通过EDID4-SDATA内容整体赋值到段的结构,可以解析中具体的业务数据
**EDIDC 控制记录 (IDoc)**
记录IDOC的一些控制字段(消息类型,IDOC类型,入站,出站伙伴,最终状态 等)
**EDIDS 状态记录 (IDoc)**
每次IDOC的处理都会把内部调用BAPI或BDC的返回信息写入到EDIDS表中.
这样就确保每次IDOC的处理结果被详细记录下来.但同时也造成了无用信息太多,通过标准功能不太方便快速定位关键错误信息
四
IDOC与单据的关系
IDOC最终生成的单据和IDOC的对应关系也会被系统记录下来, 存储在两个表 idocrel srrelroles 中
• 可以通过显示链接,查看并跳转到最终生成的单据中. 显示IDOC内容的TCODE: WE02(图一)
• 也可以在单据中通过附件中的关系找到对应的IDOC(图二)
图一
图二
五
**WE02 显示 IDoc**
可以按照树状结构及清单结构显示特定消息,特定状态的统计及明细内容.
**
**
**BD87 ALE 消息的状态监视器**
按树状结构显示特定状态/消息的IDOC数量, 并针对节点发起重处理
六
BD20 发送到应用程序的 IDoc
可以并发处理64状态的IDOC.
BD87 ALE 消息的状态监视器
监控器也可以处理IDOC
七
常用的一些事务代码或程序
**区域菜单 WEDI整合了所有IDOC相关的事务代码,下面列举一些常用的事务代码或程序:**
**BD20 指定64状态的IDOC的后续处理**
**BD87 部分单据错误的IDOC的后续处理**
**BD73 IDocs (ALE) 的重过帐**
**BD83 出现 ALE 错误后发送 IDocs**
如果外向IDOC报错(比如合作伙伴没有维护). 解决问题后不能用BD87处理IDOC.
如果使用了BD87直接处理. IDOC状态变成01.无法再处理了
需要用BD83处理. 此时状态是30. 然后再用BD87处理 成功后是03状态
**WPER 零售相关的IDOC的监控及重处理**
**程序:RC1_IDOC_SET_STATUS 修改IDOC状态**
**WLF_IDOC 新的标准IDOC监控程序.** 有些版本执行会报错 取代 WE02
**BD52配置自定义的字段的变化指针**
**BD73 IDocs (ALE) 的重过帐**
**程序: RBDMANI2 并发处理失败51状态的IDOC**
** 程序: ** **RWPOS_PARA_ENQUEUE 并发按地点队列处理64或51状态的IDOC**
八
总结
• 数据存储
• 数据集中处理
• 报错数据的重处理
在接口开发中,尤其是ECC入站异步接口, 使用IDOC会给接口的开发及管理带来大量的便利.
** THE **
** END **
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.
越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )
**公众号 : syjf1976_abap**
**ABAP开发技巧**
**微信号 : 392077**
**公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群**