点击蓝字 关注我们
一
前言
网上有一个介绍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
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
网友评论