SAP 修改物料价格那些事

每一个 FI 或则 MM 顾问,都被用户无数次问物料价格修改过吧?尤其是做运维的时候。物料价格究竟能不能修改,怎么修改,修改价格有什么影响?本文总结一下,以备将来业务再问之需:都在这里,自己去看吧。

物料价格控制码能修改吗?

SAP 的物料主数据有两种价格控制码 (price control),V 表示移动平均价,S 为标准单价。选用其中一种,物料就用这种价格控制码来对物料计价,另外一种价格控制码就是参考而已 (for information purpose only)。

如果是从 S 改成 V,随时都可以。SAP 根据更改时的移动平均价替换标准价格,然后以移动平均价格计价; 如果从 V 改成 S,则有些情况下不行:

  • 如果标准价格来自成本估算,并且移动价格与标准价格不相等。
  • 如果启用了分割评估,物料主数据被设置为 valuation header record。

如果可以修改,V 的价格替换掉 S,并且使用这个价格对物料进行计价。注意修改物料价格控制码不会影响到存货的会计评估

物料价格可以修改吗?

这个问题不能一概而论,要看实际情况以及打算如何修改。从物料主数据的价格来源来说,如果是 V 的物料,采购件的 V 价格在每次入库的时候价格会重新计算(如果有更新的话),而 S 的物料,物料的 S 价格应该是来自成本估算。所以物料的 V 价格,可以考虑直接用 MR21/MR22 来修改; 而物料的 S 价格,可以考虑删除成本估算 (CKR1) 再重新运行成本估算 
(CK40N) 的方式来修改。当然也可以使用 MR21/MR22 来修改。如果是前期价格修改,成本估算已经不可能,只能考虑 MR21/MR22。具体来说:

1). 没有启用物料分类账,价格控制码为 V 的采购件,使用 MR21/MR22 
修改物料价格

2). 没有启用物料分类账,价格控制码为 S 的物料,SAP 检测到物料有标准价格,不允许用 MR21/MR22 修改,需要先 CKR1 删除标准成本估算,再用 MR21/MR22; 或者使用 CKR1+CK11N+CK24 重新估算。如果想修改前期的物料价格,则只能用 MR21/MR22,此时用 CKR1 删除物料成本估算,就不能对前期重新评估。用 CKR1 删除删除当期标准成本后,物料主数据 Costing 2 视图的 “当期成本” 被删除,但 Accounting 1 视图中的 “标准价格 ”不受影响。

3). 启用了物料分类账,如果物料的 price determination control 为 2,和没有启用物料分类账一样。

4). 启用物料分类账,并且物料的 price determination control 为 3,则系统不再允许修改前期价格,MR21 修改提示C+819错误。

5). 启用了物料分类账,对当期物料,原则上 SAP 也不允许修改,但提供了一种应急的方法 note 1492789 :

  • Postponing the costing release to the next month;
  • Reversing transactions and reset the period status to 10 with the program provided by note 574930;
  • Using subsequent price change, which functionality is provided by note 555176;

OSS Note 574930 提供的操作方法:

  • Call transaction MR21. Enter LTPC in the OK code field.
  • Enter the materials to be edited and the new prices. If you want to release a marked planned price, choose ‘Default Planned Prices’.
  • Choose ‘Post’.

对前期物料价格,如果一定要修改,则需要先用 CKMM 将物料主数据的价格确定码改为 2,用 MR21 修改完后再改回为 3。当然,这种方法系统会删除实际成本计算的记录,从而造成不可分配差异。所以不推荐。另外,改变前期价格,本期价格仍然不变。

参考

Changing the Type of Price Control 
OSS note 1492789 
OSS note 574930 
OSS note 555176

### SAP修改物料标准价格的方法 在 SAP 系统中,物料的标准价格(Standard Price, S价)可以通过多种方式完成修改。以下是具体的操作方法及相关注意项: #### 方法一:通过务代码 `MR21` 修改 - 使用务代码 `MR21` 可以直接修改物料的标准价格[^2]。 - 如果物料处于初始状态(即尚未发生任何货物移动),可以直接输入新的标准价格并保存。 - 若物料已经发生了货物移动,则需要确保当月没有新增的货物移动记录。如有新增记录,应先通过冲销操作将其还原到月初状态后再执行价格修改。 #### 方法二:利用后台功能 LTPC 参数 - 当无法直接使用 `MR21` 进行修改时,可以借助 SAP 提供的技术后门——参数字段 `LTPC` 来实现强制修改。 - 此方法适用于物料已有数量和值的情况下仍需调整其标准价格的情形。 - **前提条件**:确认当月未发生任何新货物移动。若有新移动,同样需要先行冲回至月初状态。 #### 方法三:切换价格控制策略 - 将物料价格控制从移动平均价 (V) 切换为标准价 (S),然后再进行价格修改[^3]。 - 操作流程如下: 1. 使用务代码 `CKMM` 或者 `OMBJ` 将物料价格控制由 V 改为 S; 2. 执行上述提到的 `MR21` 或其他手段设定新的标准价格; 3. 完成后可选择恢复原有的价格控制设置或将之保留视实际需求而定。 #### 特殊情况下的处理建议 对于某些特殊情况,比如物料启用了分割评估或者存在历史数据差异等问题,在尝试以上常规途径之前应当特别注意可能存在的限制因素以及由此引发的影响: - 原则上不允许直接覆盖已有的移动平均价与标准价之间的差额除非两者完全相等; - 需要额外关注因价格变动所引起的会计核算方面影响,尤其是涉及到以前年度账务调整的部分通常都需要单独制定方案予以解决。 ```python # 示例脚本展示如何调用 MR21 接口来更新特定材料编号的标准售价 CALL_TRANSACTION 'MR21' EXPORTING MATERIAL = 'MATNR' " Material Number PLANT = 'WERKS'. " Plant Code ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值