问题解决之采购订单自动舍入数量

作者:ABAP技巧与实战 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:MM, 物料管理

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

问题描述

SAP 创建采购订单时(分为前台界面创建或后台BAPI创建). 特定单位的商品(比如单位EA),输入小数后,系统会自动取整或舍入特定小数位.

(取决于单位的小数位长定义)

对于EA这种单位. 没有设定小数位(下图是EA单位和KG单价的比较).

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

在PO尝试输入小数时,第一次系统会自动舍入,同时报一个警告消息

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

再次输入小数, 系统接受输入的小数

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

使用BAPI创建时, 系统自动舍入(同时BAPI RETURN会返回一个警告).

调整消息属性并不能解决系统自动舍入的问题.(配置表T160M)

如果调整消息属性为报错,则系统不自动舍入, 但是会报错

如果仅输入小数, 可能会出现系统舍入为0的情况, 创建报数量或金额错误.

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

退货采购订单不会自动舍入

同时SO相关单据没有这种自动舍入

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

问题分析

通过消息号 ME 386 跟踪底层逻辑. 找到系统发出消息的位置. 同时发现,系统替换前会判断 retpo 为空才替换. 所以退货订单不会自动舍入.

同时系统会判断 kz_no_take_over = 'X' 才会替换.

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

进一步追查内表 GT_ROUND_MEM 的写入逻辑.系统在调用 MD_SINGLE_ROUNDING 后.

根据消息的类型 为报错. 设定了kz_no_take_over = 'X' (报错则不替换数量, 修改调整错误类型为警告,则会替换数量)

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

进入函数MD_SINGLE_ROUNDING

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

但是这个增强点似乎不太合适. 因为这里缺少了采购订单的相关信息.

问题解决

最终决定在LMEPOF65

FORM MEPO_ITEM_FILL_ROUND 开头增强, 根据自定义配置表ZTBC065判断是否跳过后续的舍入逻辑.

增强后, 系统后续会报错误消息ME 678 .这个消息可以通过配置消息类型,修改为警告(配置表T160M)解决.

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

总结

解决方案有两个: 最简单的是调整单位的小数位长.但如果业务只是在特定单据中希望EA单位输入的小数不会自动舍入. 这样就需要启用增强方案.

修改单位的小数位长影响较大. 增强解决则只是针对PO的舍入问题解决,针对性比较强. 可以根据项目的具体情况采用.

通过这个问题的解决可以发现, 很多业务逻辑及增强点都可以通过跟踪系统的报错消息获取.

实际项目中,业务顾问掌握一些DEBUG技能有助于理解系统逻辑,找出标准配置点及找到合适的增强点.

** THE **

** END **

**约定**

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

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

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

问题解决之采购订单自动舍入数量 - 封面图
问题解决之采购订单自动舍入数量 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

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

ABAP技巧与实战

关于作者:ABAP技巧与实战

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

来源说明:本文内容由「问题解决之采购订单自动舍入数量.md」整理生成,仅用于内部技术分享与学习交流。