原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
前言
网上有一个介绍IDOC的文章, 讲的非常详细. 有兴趣的可以看一下.
https://www.cnblogs.com/jiangzhengjun/p/4292135.html#_Toc411677416
本文主要介绍IDOC监控相关的标准功能及相关表.
主要集中在两个事务代码
• WE02 显示 IDoc
• WPER POS 接口监控器
二
事务代码WE02
IDOC基本监控程序
_**01** _
**选择界面**
_**02** _
**明细结果呈现**
左侧通过树状结构呈现消息类型及状态 统计IDOC个数. 双击任意节点,右侧ALV显示节点下的所有IDOC明细
_**03** _
**单个IDOC显示**
双击明细条目显示单个IDOC的具体内容.
如果选择界面限制的IDOC只有一个,会直接进入单个IDOC具体内容显示
其中涉及报错的段红色显示.可以快速定位错误.
具体的报错信息在状态记录中显示(状态记录中显示了所有BAPI返回的结果,警告消息也会记录,这样会导致很难在这里看到重要的错误信息,相关的表
EDIDS中可以比较方便的查询所有错误信息)
_**04** _
**修改IDOC内容**
双击节点图标 (部分版本的ERP可能需要通过TCODE WE05才能修改IDOC内容)
点击菜单, 修改IDOC指定段内容
修改后, IDOC状态调整为69状态
同时会产生一个70状态的IDOC,记录原始IDOC的内容
通过链接可以看到这两个IDOC的关系(只能在新生成的70的IDOC中查看关系)
修改后的IDOC,可以使用BD87重新执行.
_**05** _
**查看IDOC产生的单据**
处理成功的IDOC 也可以通过显示链接看到产生的单据信息,双击特定的单据,可以跳转到单据的显示界面.
_**06** _
**单据与IDOC关系**
IDOC产生的单据与IDOC的关系记录在下述表中
• **SRRELROLES** 对象关系服务:角色
• **IDOCREL** 在 IDoc 和应用程序对象之间的链接
关联表创建一个CDS视图,将会改进关系的访问
@AbapCatalog.sqlViewName: 'ZDDL_WPUUMS_REL'@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey: true@AccessControl.authorizationCheck: #CHECK@EndUserText.label: '小票单据关系'define view ZCDS_WPUUMS_REL as select from srrelroles as a inner join idocrel on a.roleid = idocrel.role_a inner join srrelroles as b on b.roleid = idocrel.role_b{ key a.objkey as obj_a, key a.objtype as obj_a_type, key a.roletype as obj_a_roletype, key b.objkey as obj_b, @EndUserText.label: '单号' SUBSTRING(b.objkey, 1, 10) as ordnr, substring(b.objkey,11,4) as mjahr, b.objtype as obj_b_type, b.roletype as obj_b_roletype}
三
事务代码WPER
零售类的IDOC 有别与其他IDOC的地方
• 通过事务代码WPER 监控结果.
• IDOC类型以 WP 开头.
• 处理时,会对每一个执行检查, 检查不通过的行会报错,系统通过单独的机制记录错误信息(表wplst).
• 检查通过的行会执行产生单据.
• 51状态的IDOC重新处理时, 只有报错的行重新处理.
• 所有行 处理成功后,状态才会改变成53.
• ......
**备注:** 只有针对每行的检查报错才会跳过报错行,处理正确行. 如果部分商品在单据处理中的报错. 还是会互相影响的. 可以通过 消息类别 WP 识别.
_**01** _
**WE02对零售IDOC的局限**
WP* 开头的IDOC类型无法通过WE02看到具体的报错信息
_**02** _
**选择界面**
执行WPER, 才能看到具体的报错信息
( **该报错信息记录在表WPLST中,报错的IDOC一旦处理成功, 系统会清空WPLST表中的相关内容** )
对WPLST 的统计可以快速查看零售IDOC的报错
_**03** _
**附加功能**
允许对IDOC执行相关的业务处理(这些功能可以批量执行. 针对节点下的多个IDOC同时执行,比如选中节点是地点,
执行功能则该地点下所有的IDOC都会执行指定的功能)
• **拒收** : 报错信息关闭.该IDOC不再处理
• **取消/冲销** : 成功的IDOC标记成未处理, BD87重新执行时, 系统使用反向的数量产生业务单据.
• **处理** : 报错的IDOC重新处理, 零售类的IDOC
• **重新提交** : 类似于处理功能.
**TIPS**
**SPRING**
WPER中的冲销功能只是产生反向数量重新执行过账处理,产生新的单据.新生成的单据可能无法完全冲销掉已经生成的单据.
新单据与旧单据不是冲销关系,类似于退货关系,所以产生的单据的成本或其它定价可能和原单不一致
_**04** _
**修改内容**
双击可以修改IDOC内容
_**05** _
**IDOC与单据的关系**
成功的部分,可以看到产生的单据信息,双击可以跳转到单据的显示. 零售IDOC的关系与其它IDOC关系的记录表是一样的, 详见WE02中的介绍.
四
总结
IDOC监控的标准功能基本上涉及到了IDOC处理的各个方面.
• 查看错误
• 修改内容
• 查看单据关系
• 强制修改状态
**(** 批量程序: RC1_IDOC_SET_STATUS **)**
• 报错IDOC重处理
(BD87, 批量程序RBDMANI2)
• **......**
只是部分功能无法批量操作.
项目中如果碰到大量IDOC报错,使用标准功能修复错误将是一个很痛苦的过程.
** THE **
** END **
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.
越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )
**公众号 : syjf1976_abap**
**ABAP开发技巧**
**微信号 : 392077**
**公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群**