SAP 小技巧调整 IDOC 的过账日期

作者:ABAP技巧与实战 约 7 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:Basis, 系统管理

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

**点击蓝字** 关注我们

前言

IDOC是ECC/S4系统中的一种接口数据整合形式.前文已经介绍了关于IDOC的部分知识.

> 详见连接 无峰,公众号:ABAP 技巧与实战 [ SAP操作手册之 IDOC基础篇

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485676&idx=1&sn=6413576e58d57a78446291de50808b64&chksm=cf5dd5daf82a5ccc7c5c0862045951d1b642cc8beffcf231c593e63c49abc8237b719aa7e898&token=1858200308&lang=zh_CN#rd)

> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP操作手册之 IDOC开发篇

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485727&idx=1&sn=09b9b1215ab7035a1b8728430881173d&chksm=cf5dd429f82a5d3ff5d21710785e4ef88f759612fa5c50ebbcd8a4f6e5ca2983ae7ba838783c&token=1858200308&lang=zh_CN#rd)

当我们在入站接口的场景中使用IDOC的时候,可能会面临一个问题: 产生IDOC的时候已经把记账日期写入.

如果IDOC过账的时候,IDOC中的过账日期对应的账期关闭.IDOC过账会报错.(图一是一个创建商品凭证的IDOC因为账期关闭报错)

**本文主要介绍解决IDOC由于过账日期报错的几种方式,并着重介绍过账前检查账期并调整过账日期的增强**

_一般创建商品凭证的IDOC有这个需求._

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

图一

关于物料账期

物料账期是SAP的一个重要概念.

通过事务代码MMPV可以打开指定公司代码的新的账期.

物料账期只能打开两个月的.

可以通过事务代码MMRV修改前期记账标记控制是否能够记账在上期.

物料账期对应的表 MARV

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

解决账期报错的方式

解决IDOC账期报错有几种方式

• 通过WE02的编辑功能修改IDOC中的过账日期

• 通过ZIFIDOC接口监控批量修改IDOC中的过账日期

• 通过增强在IDOC过账的时候修改传入BAPI函数的过账日期

WE02修改IDOC

旧版本的ECC中事务代码WE02可能无法修改IDOC内容. 需要使用事务代码: WE05

新版本ECC或S4中WE02等同于WE05 .均可修改IDOC内容(包含控制内容与数据内容)

通过标准功能修改IDOC中的过账日期字段内容

详细操作步骤在前文有介绍,这里不再赘述.

> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP操作手册之 IDOC监控-标准功能

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485755&idx=1&sn=e430e661f7c6c89968852f45e932d7a9&chksm=cf5dd40df82a5d1bc0adb7fd382d97dafcf69d8f01f20d5499fdf973880fa53ec1c112c163eb&token=1858200308&lang=zh_CN#rd)

ZIFIDOC修改IDOC

通过WE02修改IDOC的内容操作步骤比较繁琐.每次只能操作一个IDOC的修改.

如果有很多报错的IDOC. WE02修改会把人折磨致死. 所以当初设计IDOC集中监控程序: ZIFIDOC时,

在里面添加了一个批量修改IDOC内容的功能.

> 更多ZIFIDOC功能介绍详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP工具箱之 IDOC监控-增强功能

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485773&idx=1&sn=ba24aabf6120851df0079370a851f959&chksm=cf5dd47bf82a5d6d061df2b269d3c68775c01c69bf802537093bdff645ea64ba1b2a44702d0e&token=1858200308&lang=zh_CN#rd)

_**01** _

**配置 ZTSEGNAM**

因为IDOC结构复杂,层级很多.如果要通过表格显示,只能关注一个抬头段.一个明细段. 配置表ZTSEGNAM用来指定每个消息类型用于表格呈现的抬头段与明细段

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

_**02** _

**进入监控程序**

进入IDOC监控程序,显示需要修改的IDOC. 勾选需要修改的IDOC(允许相同类型的多个IDOC同时勾选),

点击显示错误原因和消息内容进入IDOC内容呈现

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

_**03** _

**启用修改模式**

在IDOC内容呈现中点击编辑功能会激活IDOC的修改, 修改后点击保存按钮会把修改的内容保存到IDOC中.

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

通过增强调整过账日期

上面两个方案都需要针对特定的IDOC调整账期字段.如果希望这些账期关闭的IDOC能自动过账到当前日期. 则可以通过如下的增强实现.

自动调整账期由接口控制表字段ZTIF002-ZQKTZ控制特定接口编号是否启用. 并通过配置表ZTIDOC_BUDAT控制消息类型是否启用.

_**01** _

**配置表**

为了让过账日期自动调整的增强适用于更多的场景,设计了一个配置表.

ZTIDOC_BUDAT.用于配置需要调整账期的IDOC类型及IDOC中识别日期,地点,公司代码的段名和字段名

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

_**02** _

**重要字段说明**

检查原过账日期所在账期是否打开

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

账期调整方式

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

_**03** _

**配置实例**

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

_**04** _

**增强位置**

该增强写在标准函数 BAPI_IDOC_INPUT1 开头的隐式增强中.

这个函数会处理所有产生一个单据的BAPI调用类的IDOC. 具有一定的通用性.

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

_**05** _

**增强逻辑**

• 根据配置表内容读取过账日期,读取地点或公司代码.

• 检查过账日期所在的月是否已经关闭物料账期

• 如果关闭,根据配置设置新的过账日期

_**06** _

**封装函数**

封装函数Z_IDOC_GET_SET_DATA用于读取或者设置IDOC中指定段名和字段名的字段内容

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

总结

通过上述本文介绍的方式可以手动/批量的修改IDOC中的过账日期,过账到新开的账期,避免因为账期关闭而报错.

增强调整过账日期在IDOC调用BAPI产生商品凭证时,调整传入BAPI的过账日期.也可以避免账期关闭而报错.

这样会导致IDOC产生的凭证中的过账日期不等于IDOC中的过账日期. 但是无需用户费力调整IDOC内容.

** THE **

** END **

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

SAP 小技巧调整 IDOC 的过账日期 - 封面图
SAP 小技巧调整 IDOC 的过账日期 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

申请进入公众号讨论群提问或者参与话题讨论

ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP小技巧调整IDOC的过账日期.md」整理生成,仅用于内部技术分享与学习交流。