点击蓝字 关注我们
一
前言
网上有一个介绍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
八
总结
IDOC整合了几乎所有的主数据,单据的处理到一个统一的逻辑中. 集成了异步接口的重要功能:
数据存储
数据集中处理
报错数据的重处理
在接口开发中,尤其是ECC入站异步接口, 使用IDOC会给接口的开发及管理带来大量的便利.
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
公众号 : syjf1976_abap
ABAP开发技巧
微信号 : 392077
公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群