MRP(Material Requirement Planning,物料需求计划)是基于需求、供给、产品BOM结构等信息计算产生不同的获取建议(Procurement Proposal),在获取建议中包含应该在何时、采购(生产)何种物料、多少数量等各项信息,从而用来实现制造业库存管理目标,即在正确的时间按恰当的数量得到所需的物料。
本章将介绍下列内容:
本节以一个例子简要说明MRP的运行过程,并解释MRP、MPS的关系、流程以及相应的系统操作。
产成品X包含1个半成品Y、1个原材料A,半成品Y包括1个原材料B,该产成品运行MRP,其过程如下。
1 . 产成品净需求计算(Calculates Net Requirements)
产成品X的需求、供给、库存情况如下:
运行MRP后,产成品的净需求等于毛需求减去供给(Receipts)再减去库存(Stock),并加上安全库存等于80个,因此系统将创建获取建议。
2 . 产成品获取建议的产生(Procurement Proposals)
获取建议的产生是MRP运行的最终结果,对产成品X来说,获取建议的确定过程如下。
(1)确定获取建议的获取类型
根据物料的获取类型,确定物料为自制生产,还是外购亦或是外包、寄售形式,在本例中,产成品设置为自制,因此将产生获取类型为自制的计划订单。
(2)确定获取建议的数量
根据净需求数量,并结合物料的批量类型、配额信息、报废率、取整等参数,系统确定出获取建议的数量。在本例中,设置批量类型(Lot Size)为Lot-For-Lot、未设置报废率(Scrap)、未设置取整参数(Rounding Profile)。
因此MRP运行后,将生成产成品X数量为80的计划订单。
3 . 产成品BOM展开、相关需求产生
系统首先确定产成品X的有效BOM,然后再确定该BOM所包含的有效项目,最后根据产成品需求产生的计划订单,进一步触发对半成品、原材料的相关需求(Dependent Requirement),具体步骤如下。
(1)确定产成品的有效BOM
一个产品可能有多个BOM,运行MRP时,系统根据产成品的物料主数据中指定的BOM展开标识(Select Method for Alternative Bills of Material),系统确定不同的展开方式,常见的展开方式如下:
1)根据计划订单中的计划生产日期确定有效的BOM;2)根据计划订单中的计划生产数量确定有效的BOM;3)根据生产版本确定有效的BOM:维护物料的生产版本(Production Version),在生产版本中指定物料的BOM,MRP运行时,如果某物料有多个生产版本,一般系统会选择有效的生产版本中编号最小的。
(2)确定有效的组件
产成品会使用到多个半成品/原材料/零件,这些组件(Component)将会维护到BOM中,作为BOM的项目(Item)。
在展开BOM时,注意组件特殊的获取方式。
1)若BOM中某组件标记为供应商提供的,则系统不会产生该物料的相关需求;2)若BOM中某组件标记为虚拟件(Phantom),如某半成品标记为虚拟件,则一般来说系统将不会产生该半成品的相关需求和获取建议,而是直接产生半成品的下阶物料(原材料)的相关需求;3)若BOM中某组件标记为替代、取代物料,此时也将产生取代、替代物料的相关需求。
(3)相关需求确定
在本例中,针对产成品X仅维护一个BOM,也没有设置BOM项目的特殊属性,因此将产生半成品物料Y的相关需求,数量为80个,以及原材料A的相关需求,数量为80个。
4 . 半成品Y的净需求计算
步骤同产成品的获取建议,在本例中,半成品无任何库存、供给,因此净需求为80个。
5 . 半成品Y的获取建议
步骤同产成品的获取建议,在本例中,未设置特定的批量、取整等参数,因此将产生数量为80、类型为自制的半成品的计划订单。
6 . 原材料A的净需求计算
对原材料A的相关需求数量为80个,原材料A的当前库存数量为30个,因此净需求数量应为50个。
7 . 原材料A获取建议产生
对于外购原材料来说,获取建议大多是以采购申请的形式,具体过程如下。
(1)获取建议的获取类型的确定
根据物料的获取类型,确定原材料A为外购,因此将产生获取类型为外购的获取建议,若物料的获取类型维护为寄售,则产生获取类型为寄售的获取建议。
(2)获取建议的数量的确定
系统根据物料的批量类型、配额信息、报废率设置、取整参数,系统确定出获取建议的数量,在本例中,设置批量类型(Lot Size)为Lot-For-Lot,未设置报废率(Scrap),在物料主数据的MRP1视图中设置舍入值(Rounding Value)为100。
因此MRP运行后,获取建议的数量为100个。
8 . 配额以及供应商的确定
若未维护配额(Quota),则系统根据货源清单、采购信息记录确定供应商;
若维护配额,系统将会根据配额确定供应商,以及向每家供应商的采购数量。
9 . 获取建议的形式(单据类型)
根据MRP运行时的参数,获取建议可能是计划订单,也可能是采购申请,还可能是计划协议中的计划行。关于MRP的示例,请参见本章最后一节。
MRP与MPS的关系以及相应的事务代码如下。
1 . MPS与MRP关系以及流程
简单说,MRP运行的目的是产生自制产成品、自制半成品的生产计划以及外购原材料的采购计划,如果有外发加工的(Sub Contract),产生对委外供应商的采购计划。
运行MRP的第一步是确定成品的MPS,MPS( Master Production Scheduling,主生产计划)是指企业的产成品的生产计划,即确定在未来的一段期间内,何时生产何产成品。对于绝大部分公司来说,MPS都是非常关键的一步,根据历史销售数据、新品上市、最近的客户需求、市场促销情况等确定出需求数量,需求数量一般在系统中是以计划独立需求(PIR)的形式体现,通过事务代码MD61维护。
在确定计划独立需求后,在系统中运行MPS,则得到产成品的生产计划,即产成品应该生产的数量和时间,该生产数量和时间在系统中以计划订单的形式体现,此时需要对MPS的结果进行评估,如果评估后,发现产能不足或是其他情况,则需要调整计划订单。对MPS评估并调整得到确定的MPS后,则根据MPS,对原材料、半成品运行MRP,产生原材料的采购计划、半成品的生产计划。
2 . MRP、MPS类型系统配置
系统通过事务代码OMDQ定义MRP类型,在MRP类型中,通过字段MRP procedure(过程)来区分MRP类型是属于MPS、MRP或者不运行MRP。系统标准的最常见、应用最广泛的MRP类型为PD。系统标准的MPS类型都是M打头的,包括五个:M0、M1、M2、M3、M4。
3 . MRP、MPS与计划策略
MPS的确定取决于计划策略,第2章对此做了简要的介绍,由于MPS关键而又复杂,需要多个部门协调确定的,因此部分公司这一操作是在系统外完成,或是仅由系统做一定的辅助,具体而言在SAP中以如下两种常见的方式执行。
(1)先确定产成品的生产计划,然后再确定半成品的生产计划、原材料的采购计划
先对成品运行MPS,然后对MPS结果进行评估、调整,即根据产成品的需求计划得到产成品的生产计划,具体而言可分为以下几个步骤:
1)设置产成品运行MPS:事务代码MM01维护产成品的MRP类型,设置为M0、M1、M2、M3、M4等MPS类型,并维护计划策略;
2)设置原材料、半成品运行MRP:事务代码MM01将半成品、原材料维护成PD等MRP类型;
3)维护计划独立需求:事务代码MD61对产成品维护计划独立需求;
4)MPS运行:事务代码MD40、MD41、MD42、MDBS对产成品来运行MPS;
5)MPS结果评估:事务代码MD04、MD12等对计划订单进行评估,根据需要固定或修改计划订单;
6)运行原材料的MRP:事务代码MD02、MD01、MDBT等对半成品和原材料来运行MRP。
(2)直接对所有物料运行MRP,产生所有物料的获取建议
不少公司会对包括产成品在内的物料都设置MRP类型为PD或类似的,然后对所有物料一起运行MRP,产生产成品、半成品的生产计划和原材料的采购计划,这种操作方法作往往是MPS事先在系统外已评估过。
4 . MRP、MPS运行的事务代码说明
MRP和MPS的运行有多个事务代码,表3-1列举九个相关的事务代码以及对应的程序和屏幕。
如表3-1所示,MRP运行可以前台运行或者后台运行,前台运行的七个事务代码,无论是单个物料运行还是整个工厂运行MRP,无论是运行MRP还是MPS,都是调用相同的程序SAPMM61X,同时事务代码MD02、MD41对应的屏幕也是相同的,因此总体来说,这些事务代码背后的处理逻辑是基本是相同的。
这些事务代码的差异是通过表T450N来记录的,该表记录这些事务代码在MRP运行时的参数,然后在程序SAPMM61X中,根据这些参数确定不同的处理方式,譬如当使用事务代码MD02运行时,系统将检查输入物料的MRP 过程(Procedure)是否设置为MPS,如果设置为MPS,则不能使用事务代码MD02运行。
(1)单个物料多层运行MRP
事务代码MD02对单个物料运行MRP,单个运行时,不考虑计划文件条目(Planning File Entries),无论当前物料是否存在计划文件条目,都会对当前物料运行MRP。事务代码MD02对单个物料进行多层计划,如在上节的示例中,当使用事务代码MD02对物料X运行MRP时,不仅对产成品物料X运行MRP,还会对产成品X下的半成品(Y)、原材料(A、B)运行MRP。该事务代码不能处理MRP过程为MPS(如MRP类型M0)的物料。
(2)单个物料单层运行MRP(Single-item,Single-level)
事务代码MD03与事务代码MD02类似,但仅单层运行MRP,如在上节的示例中,如果对产成品X运行MRP,只会产生对产成品X的获取建议(计划订单),不会对半成品、原材料运行MRP。
(3)总体运行(Total Planning Run)MRP(多物料、多工厂运行)
事务代码MD01/MDBT对工厂下的所有MRP相关的物料以前台或者后台的方式同时运行MRP,总体计划运行时,系统通过处理代码(Processing Key)和计划文件条目(Planning File Entries)来确定哪些物料需要运行MRP,因此总体运行时,若某物料无法运行MRP,请检查计划文件条目。该事务代码不能处理MRP过程为MPS(如MRP类型M0)的物料。
(4)总体运行MPS
事务代码MD40/MDBS对工厂下的所有物料可以同时运行MPS,总体计划运行时,系统通过处理代码和计划文件条目来确定哪些物料需要运行MRP,因此总体运行时,若某物料无法运行MPS,请检查计划文件条目。该事务代码默认处理MRP过程为MPS的物料,当勾选上参数“Process MRP Materials/处理MRP物料”后,则可以同时处理MRP过程为MRP的物料。
(5)MRP、MPS运行的事务代码补充说明
限于篇幅,这里不详细介绍,参见SAP Note 550568 - FAQ: MRP run (MD01,MD02,MD03,MDBT...)。还可以在网络中搜索文章“MRP控制参数—计划文件与处理代码(Processing Key)”,该文介绍了MRP运行前(时)的参数。
相关资源:SAP质量管理及其在采购 生产 销售中的应用与开发