关于在执行 SAP ERP MM 模块 Post Goods Issue 时修改 Material Cost 的讨论

发布时间 2023-04-08 23:33:35作者: JerryWang_汪子熙

我的知识星球里有朋友向我提问:

Material PGI(601 movement) will calculate the material cost from material master data. My question is: is there any ways to change the material cost when PGI?(Except enhancement)

在SAP ERP MM模块中,Material Post Goods Issue (PGI)是指从库存中移动物料的过程。这通常是指从公司的仓库或物流中心向客户或生产线发送产品或原材料。在这个过程中,物料的数量会被从库存中扣除,因此也称为“物料扣减”。

通常,在客户下订单后,销售订单的交货日期就会被确认,并且物料准备好被运输。在执行PGI之前,必须确保物料准确无误,并且符合订单中指定的数量和质量标准。

在SAP ERP系统中,执行PGI是通过在销售订单中输入物料发货量和相关的运输信息来完成的。一旦PGI完成,系统会自动更新库存和销售订单状态,并生成发货通知和运输文件。这些文档将被用于跟踪和监控物料的运输和交付过程。

在SAP ERP中,Movement Type是一个标识物料移动的三位数字代码。物料的移动可以是内部的,例如从一个库存位置到另一个库存位置,也可以是外部的,例如向客户发货。

601 Movement Type是指从库存中发货的标准移动类型。这意味着在执行Material PGI时,SAP系统会自动将库存中的物料数量从发货库存位置扣减,并将该数量转移至成本中心/销售成本中心。此外,SAP系统还会自动将相关文档(如发货通知和运输文件)与该移动类型相关联,以便在跟踪和监控物料的移动和交付过程中使用。

因此,可以说Material PGI和601 Movement Type是相关联的概念,它们共同指代了库存物料的发货过程。在SAP ERP中,有许多不同的Movement Type可用于标识不同类型的物料移动。这些Movement Type是可配置的,并可以根据特定业务需求进行自定义设置。

在执行PGI的过程中,通常不建议修改物料成本(Material Cost),因为这可能会导致财务数据的不一致。然而,在某些特定情况下,可能需要修改物料成本。下面是一些可能用于修改物料成本的方法:

手动更改物料成本

可以通过以下步骤手动更改物料成本:

  • 进入MM02(更改物料主数据的屏幕)
  • 选择“Accounting 1”选项卡
  • 更改成本字段(如标准成本)的值
  • 保存更改

这种方法非常简单,但需要手动输入数据,并且不适用于自动化场景。

通过MR21来更改物料成本

MR21是用于更改物料成本的标准SAP事务。它可以根据不同的条件(如物料和成本类型)更改物料成本。

使用BADI来修改物料成本

BADI(Business Add-Ins)是一种用于在SAP ERP系统中自定义业务逻辑的技术。可以使用BADI来自动化修改物料成本。以下是一个示例BADI类,可用于在执行PGI时自动更改物料成本:

CLASS ZCL_PGI_MATERIAL_COST_CHANGE IMPLEMENTATION.

  METHOD IF_EX_MATERIAL_MASTER~POST_GOODS_ISSUE.
    DATA: LV_MATERIAL TYPE MARA-MATNR.
    LV_MATERIAL = I_BSEG-MATNR.
    
    "根据你的业务逻辑,计算出新的成本
    DATA: LV_NEW_COST TYPE MBEW-STPRS.
    LV_NEW_COST = <计算出的新成本>.
    
    "更新物料成本
    UPDATE MBEW SET STPRS = LV_NEW_COST WHERE MATNR = LV_MATERIAL.
  ENDMETHOD.

ENDCLASS.

请注意,这只是一个示例代码,具体的实现可能需要根据特定的业务需求进行自定义。此外,在使用BADI时,还需要考虑到相关的安全和稳定性问题。