SAP小技巧控制移动平均价巨幅波动

作者:DING的碎片记录 约 6 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, CO, Data Engineering, FI, MM, WM, 仓库管理, 开发, 数据工程, 物料管理, 财务
SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图

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

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

_**前言** _

移动平均价是SAP零售行业普遍采用的成本计算方式. 作为一个开发人员, 我就不去解释企业为什么要选择采用移动平均价及采用移动平均价的好处了.

这里只介绍一个移动平均价带来的问题及怎么解决这个问题

先说问题

你见过一个商品的移动平均单价是几亿的么?我见过,它带来的业务问题是企业当期库存价值暴增.

一个曲折的故事

故事的主角是一件商品,它的名字叫 幸运儿 .它的同伴们真名叫 没人买 ,艺名 畅销品.

某企业采购了1000个 没人买 , 幸运儿 混在其中,采购进价 100 元, 此时总库存价值100000, 幸运儿 和大家一样,都值100元.

畅销品 们 从总仓调拨到9个门店,每个门店100个. 总仓还剩下100个, 幸运儿 留在了总仓,它偷偷溜到了一个舒适的角落睡大觉去了.

畅销品 们不喜欢自己的艺名,改回了本来的名字 没人买 ,它们想回家了.

幸运的是,供应商允许它们回家.但是不能用原价格回家,只能打八折回家.

**首**

**首轮增值**

INTRODUCE

仓库人员退货时,没找到睡大觉的幸运儿.退回了99个 没人买 .退完以后,总仓库价值=100*100-99*80 = 2080,总仓数量 1. 幸运儿

完成了首轮增值. 它的身价变成了2080.

总仓一声令下,门店开始逐步退仓.(门店退仓按总仓成本计算,这个合理吧.)

**A**

**A轮增值**

INTRODUCE

A门店退回100个,总仓价值 2080*101. 总仓继续退供应商100个( 幸运儿 完成了A轮增值,身价 = 101*2080 - 100*80 =

202080).

**B**

**B轮增值**

INTRODUCE

B门店退回100个,总仓价值202080*101.总仓继续退供应商100个( 幸运儿 完成了B轮增值,身价= 202080*101 - 100*80 =

20402080 )

**C**

**C轮增值**

INTRODUCE

C门店退回100个,总仓价值20402080*101, 总仓继续退供应商100个( 幸运儿 完成了C轮增值,身价= 20402080*101 -

100*80 = 2060602080 )

**D**

**D轮增值**

INTRODUCE

D门店退货100个, 总仓价值 2060602080 * 101,总仓继续退供应商100个( 幸运儿 完成了D轮增值,身价=

2060602080 * 101 - 100*80 = 2.08121E+11 )

**...**

**故事还在继续...**

INTRODUCE

......

此时 幸运儿 还在睡大觉, 他完全不知道自己已经变成世界首富了.

_真实的事件中, 艺名叫畅销品是一本书,书名:马XXX和XXXXX_

故事讲完了.大家也发现了移动平均价的问题了吧.

当然,实际情况会比这个复杂,但是时不时的总会有幸运儿冒出来.

**问**

**那么怎么控制住这个问题呢?**

扼杀幸运儿.在它首轮增值的时候就发现并揪住他. 让他对多出了的身价交税(调整成本价) 或者找到睡大觉的幸运儿,一脚踢回老家去,别在这捣乱.

**答**

SAP提供了一个异常成本价检查机制

配置路径

SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图

注意类型需要选择VP

SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图

配置一下允许的差异上限

SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图

配置一下消息属性

SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图

可能有部分系统标准功能只是弹出 INFO message .不会报错.找到 INFO  MESSAGE 的代码位置, 添加一个 ERROR MESSAGELMBGBFST   FORM pruefen_vpreis_popup  的最后的位置添加隐式增强

data: wa_ZTMSGTY_306 type ZTMSGTY_306. DATA: L_MSGTY TYPE MSGTY.  if msgno = 306. select single * from ZTMSGTY_306 into wa_ZTMSGTY_306   where msgid = 'M7'     AND MSGNO = '306'.   IF SY-SUBRC <> 0.      L_MSGTY = 'E'.   ELSE.     L_MSGTY = wa_ZTMSGTY_306-MSGTY.   ENDIF.     message ID 'M7' TYPE L_MSGTY NUMBER MSGNO            WITH ausgabe monat gjahr mseg-matnr.  endif.

_**后记** _

移动平均价(成本价)是企业ERP中比较重要的一个环节. 很多项目初始化库存时,系统自动创建移动平均价.对于没有库存的,可能就会遗漏.

此时往往需要通过增强控制移动平均价(成本价)不能为空.否则一些业务操作没有记录成本,会导致利润偏高. 以后有机会就这个话题继续展开一下.

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

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

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

扫码进入公众号互动群

SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图
SAP小技巧控制移动平均价巨幅波动 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

DING的碎片记录

关于作者:DING的碎片记录

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

来源说明:本文内容由「SAP小技巧控制移动平均价巨幅波动.md」整理生成,仅用于内部技术分享与学习交流。