问题解决之 期初库存强制0金额记账

点击蓝字 关注我们

问题描述

期初库存导入的商品凭证,如果输入的外部金额为0(EXBWR=0), 如果移动商品/地点的移动平均价不等于0,系统会自动使用移动平均价乘数量作为凭证的金额. 而不是使用外部金额EXBWR=0的值.这样期初导入的价值就不是我们期望的成本价值. 

问题分析

SAP ERP软件的标准逻辑 允许输入外部金额, 但是如果外部金额为0, 系统视同为未输入外部金额, 此时系统会自动获取有效的成本单价*数量作为凭证的金额. 

简单解决办法

 一个最简单的解决办法是, 外部金额输入一个很小的金额. 比如0.01 ,系统认为外部金额<>0, 就不会执行获取成本价*数量的逻辑.

但是总会有人挑战这个方案,认为系统不能有任何差异, 哪怕1分钱也不行. 

问题分析(代码追踪)

代码追踪过程比较枯燥.建议直接跳过到后面一章

系统在

 MM07MFM0_M_SEGMENTE_ERGAENZEN 139行左右执行了XMSEG-DMBTR的赋值 FORM  M-SEGMENTE_ERGAENZEN

 xmseg-dmbtr = yfbuz-dmbtr.

系统在 MM07MFF9_F_SEGMENTE_ERSTELLEN657行左右 添加内表YFBUZ.


MM07MFF9_F_SEGMENTE_ERZEUGEN208行左右   YFBUZ-DMBTR = XACCCR-WRBTR.

来自YACCCR[]

来自

XZCXCM[] MM07MFF9_F_SEGMENTE_BEWERTEN 51行左右. 

LMBGBFSU  51行左右   xzcxcm-dmbtr = <betrag>.  来自 YCURTP[]


LMBGBFWR1529行左右  LOOP AT ycurtp.

LMBGBFWR 1324行左右 PERFORM wertesperrtab_fuellen USING mseg-matbf

LMBGBFWR 1664 行左右 

/**/SPAN   PERFORM (mseg-bustw) IN PROGRAM saplmbgb. 字段 BESTD VERBR

LMBGBFAS 510 行左右 

问题解决

在 LMBGBFAS FORM wert_bestand 结尾的位置修正 w-bestd 金额 w-verbr 成本 两者如果不一致,计入差异

 在 FORM WERT_BESTAND 开头的位置,把w-exwob调整为X. 这样后续处理的时候, 系统允许外部0价值处理商品凭证.字段W-EXWOB的系统描述是,在货币转换后,有可能会把金额转换为0, 此时还是需要用0金额记账,而不是获取移动平均价. 符合561 期初0金额入账的需求.

一个好的办法是,设置一个配置表, 允许通过配置表打开或者关闭这个增强功能,如图的ZTBC009(可以通过移动类型配置这个开关)

THE

END

约定

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

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值