每个工厂下都存在多个库存地点,默认MRP运行是基于整个工厂运行,即所有库存地点都参与MRP计算,因此需要考虑特别情况下,是否应在库存地点级别设置该库存地点参与MRP计算,譬如对于客户暂时寄存在公司的货物所属的库存地点设置不参与MRP运算。
通过事务代码OMIR设置库位的MRP标识(MRPIndicator),当设置为1((StoragelocationstockexcludedfromMRP),代表该库位不参与MRP。譬如设置工厂1000下,库存地点0001不参与MRP运算,则关于该库位的库存、需求、供给都不参与MRP运算,即发货库位为0001的销售订单或收货库位为0001的采购订单均不会被MRP考虑。
二、安全库存
安全库存是为了调节需求和供给的不确定(如紧急订单、插单、交货误期等等),结合企业期望达到的服务水平得到的目标库存数量。
三、多组织下的MRP运行
四、特殊库存
在MRP中,有着各种类型的特殊库存,在运行MRP时,某些特殊库存将被考虑,某些特殊库存又不被考虑,运行MRP时,要清晰地了解特殊库存与正常库存以及MRP的关系。
特殊库存之特殊有两种情况:特殊类型的库存和特殊状态的库存。
1.特殊类型的库存(SpecialStocks)
常见的特殊类型的库存有四种,其与MRP运行的关系分别介绍如下。
(1)供应商寄售库存(VendorConsignment)
供应商寄售库存由于使用权在我方,因此默认参与MRP计算,并且一般和正常库存互相替代。譬如:生产订单需要某原材料100个,需要的库存类型为正常库存,当前仅存在寄售库存为100个,运行MRP,将不会产生采购申请。
(2)供应商分包库存(StockofMaterialProvidedtoVendor)
我方发送给外包供应商的分包库存,将参与MRP运算,与正常库存无差异。
(3)销售订单库存(SalesOrderStock)
(4)客户寄售库存(ConsignmentStockatCustomer)
客户寄售库存实物不在我方仓库,使用权也不在我方,被认为并不可用,因此运行MRP时,不参与MRP计算。具体解释,请参见SAPNote301681-DocMRPtakesnocustomerconsignment。
2.特殊状态的库存
常见的特殊状态的库存有如下五种。
1)限制库存(RestrictedStock)。限制库存是指当启用批次管理功能,并激活批次状态功能,批次状态为限制状态(Restricted)的批次,默认MRP考虑。详细请参见16.5节“批次状态”。
2)退货库存(ReturnStock)。销售退货时可以使用不同的移动类型将库存退回到不同的状态,当使用移动类型653,退货到非限制库存,而使用移动类型651,则退货到未估价的退货库存(ReturnStock)。该库存无价值,不属于我方所有,并且一般来说质量不明,MRP始终不考虑。
3)冻结库存(BlockedStock)。当库存中存在可疑数量的库存,则通过事务代码MB1B移动类型343将这部分数量的库存从非限制库存转为冻结库存,冻结库存默认MRP考虑。
4)质检库存(QI/QualityInspectionStock)。当产品处于质检中,则称为质检库存,MRP始终考虑。
5)在途库存(StockInTransit)。默认MRP考虑在途库存,在途库存的定义。通过事务代码OPPI可以设置三种特殊状态的库存(在途库存、冻结库存、限制库存)是否参与MRP计算。
五、替代物料
六、采购
1.原材料的获取方式(采购模式)
寄售和委外加工业务模式详见7.6节“寄售业务处理”、7.3节“委托外加工业务(7.3)”。
详细请参见2.3节“按订单生产(MTO)”和7.7节“带账户分配的采购订单”。
3.采购申请的固定(Firmed)与MRP
运行MRP时,如通过事务代码MD02运行,当计划模式选择3(删除并重新创建计划数据),系统将先会删除非固定(Unfirmed)的采购申请,再根据当时的物料供给情况,决定是否产生以及如何产生新的采购申请。
值得注意的是,当采购申请审批后,系统默认并不会设置为固定的,如果希望已经审批的PR不被MRP删除,则可以设置已经审批的PR自动为固定的(Firmed)。参见本人博客“已经审批的采购申请设置为自动固定(Firmed)”。
4.采购获取建议的形式
MRP运行后,对于需要向供应商采购的物料,系统可以有三种获取建议(ProcurementProposal)类型:计划订单、采购申请、计划协议的交货行。当对单个物料运行MRP(如事务代码MD02)或者整个工厂级别(如事务代码MD01)运行MRP时,通过两个参数“CreationIndicatorforPurchaseRequisitions”和“DeliverySchedules”确定产生获取建议的具体类型。
系统中也同时支持根据物料设置获取建议的类型,譬如设置部分物料产生采购申请、部分物料产生计划订单,具体而言是通过在物料主数据的MRP1视图为不同的物料设置不同的MRP组(MRPGroup),并在后台通过事务代码OMDZ中设置该MRP组是产生何种获取建议类型。
整体来说,单个物料运行MRP时,以在计划运行时(如事务代码MD02)的初始屏幕中输入的参数为准,整体运行时,以MRP组中的参数为准,如果MRP组未维护,则以计划运行时输入的参数为准。
5.采购提前期与MRP
6.供应商确定与MRP
MRP运行产生的采购申请中可以有明确的供应商信息,也就是系统运行MRP时,可以自动确定供应商,具体而言有以下常见的方法。
(1)未使用配额(Quota)的供应商确定
参见7.5节“计划协议”。
(2)使用配额(Quota)的供应商确定
当一个原材料存在多个供应商,并且在多个供应商之间有着明确的配额,譬如某原材料供应商A有60%的采购量配额,供应商B有40%的采购配额,此时可以在该原材料的主数据的MRP2视图的字段“配额安排(Quotaarr.Usage)”中设置配额管理,然后通过事务代码MEQ1维护两个供应商各自的配额。
(3)使用库存管理的制造商物料号码
通过使用库存管理的制造商物料号,物料与供应商是绑定的,因此可以在BOM中通过指定的供应商物料,从而确定制造商、供应商信息。具体请参见第8章“制造商物料管理”。
(4)使用增强确定供应商
在MTO模式下,经常有客户指定原材料的供应商的情况,该需求可借助增强来进行实现。
在MTS模式下,如果希望MRP运行所产生的采购申请,能够考虑客户指定原材料的供应商这一需求,从技术层面来说该需求基本不可能实现,同时从业务的角度来看,由于MTS模式下,原材料并非根据销售订单采购,而是根据销售预测或是产品的生产计划展开的,对于长交期物料,还可能提前采购,采购行为发生在销售订单下达之前,因此无论从技术还是业务层面来说,逻辑都说不通。
7.采购订单执行与MRP
采购订单发送给供应商后,供应商应该确认交货日期和交货数量,常用的有两种形式的确认。
(1)类型AB(OrderAcknowledgment/订单确认)
代表采购订单发送给供应商后,供应商根据其库存、生产情况对订单进行初步的确认,从供应商收到此信息后,在采购订单中通过确认类型AB输入确认信息。
(2)类型LA(InboundDelivery/内向交货单)
代表供应商已经创建外向交货单,准备发货,此时的交货日期和数量基本上已经确认,从供应商收到此信息后,事务代码VL31N针对采购订单创建内向交货单。
8.采购订单状态与MRP
采购订单创建过程中,出现问题,采购订单可以暂存(Hold),采购订单生成后,当后续不再执行,则应该删除,由于某些原因需要临时冻结,则执行冻结(Block)操作,当采购订单执行到一半不再执行交货,则标记订单已经交货完成(DeliveryCompleted)。
需要注意,暂存和冻结的采购订单仍然参与MRP,删除和标记交货完成的采购订单才不参与MRP计算。
七、采购申请的数量
假设对某原材料的需求如表3-2所示,在四个需求日期均有数量为1000的需求。
事务代码OMI4设置批量类型,通过设置批量,产生的计划订单或者采购申请可能一一对应需求(Lot-For-Lot)或者可能按照期间进行合并,具体而言,有以下三类批量类型:静态批量过程、期间批量过程、最优批量过程。
1.静态批量过程(StaticLot-SizingProcedures)
静态批量常见的三种类型为:EX(Lot-For-Lot)、固定批量FX、补货至最大库存水平(HB),下面介绍最常见的前两种。
批量类型EX(Lot-For-Lot)是最常用的静态批量,是指获取建议与需求基本上是一一对应,在表3-2所示的需求情况下,相应将产生四个采购申请(计划订单),数量各1000,理论上来说批量类型EX是完全的按需采购,库存成本最低,但是订货次数频繁,造成物流成本偏高。
参见SAPNote550568-FAQ:MRPrun(MD01,MD02,MD03,MDBT...)。
固定批量FX可以设置固定批量大小为100个,若净需求为10个,则产生一个数量为100个的采购申请,若净需求为310个,则产生四个数量为100的采购申请。
2.期间批量过程(PeriodLot-SizingProcedures)
期间批量将对原材料的需求按照期间进行汇总,如设置为两周批量(批量类型W2),意味着两周内的需求汇总成一个采购申请,在表3-2所示的需求情况下,MRP运行后,系统将汇总两周的需求,最终将产生两个采购申请(计划订单),数量各为2000个、需求日期根据批量类型的后台定义确定。
期间批量PX(Periodlotsizeacc.toplanningcalendar)是一种特殊的期间批量,可与计划日历(PlanningCalendar)结合。
通过事务代码MD25建立不同的计划日历,为物料维护批量类型PX,并在物料主数据中分配给不同的物料不同的计划日历(MRP2视图),这样可以实现不同的物料在不同的日期送货,譬如可设置生产中使用到的物料按照供应可靠性,分别设置在周一、周二、周三、周四送达,这样减轻仓库的压力,避免所有原材料集中在某一天到达。
3.最优批量过程(OptimizingLot-SizingProcedures)
最优批量在理论层面早已成熟,计算逻辑也很清晰,但实际业务中,由于其需要事先确定两个前提条件,而这两个前提条件库存成本百分比(StorageCosts)和订购成本(OrderingCosts)很难确定,因此尽管SAP中也支持由系统根据物料主数据中指定的库存成本百分比(StorageCosts)和订购成本(OrderingCosts)确定最优批量大小,但最优批量在项目中很少使用到。
本例中,假设单次订购成本为100元(运输成本等各项杂费),物料成本为20元,年度库存成本百分比为10%,年度库存成本使用百分比表示,等于物料持有一年时的总成本除以物料成本。
以表3-2中的物料需求为例,对该物料最早的需求日期为2011/10/14,因此正常来说,运行MRP后将会产生交货日期在2011/10/14的采购申请,采购申请的数量将由批量类型确定。最优批量是指由系统考虑库存成本和订购成本之后的综合成本比较低,在本例表3-2的需求情况下,在2011/10/14(交货日期)采购不同的批量,具有不同的订购成本、库存成本、库存附加成本、单位成本,具体如表3-3所示。
表3-3批量不同引起的各项成本采购批量简要说明订购成本增加的库存成本(相比上一批量)总计库存成本单位成本附加库存成本批量引起的成本节省1000没有多采购,无库存成本100000.1002000多采购1000个,持有的1000个在一周后被消耗掉10038.3638.360.0691.792.743000多采购2000个,其中1000个,一周后用完其中1000个,二周后用完100相比批量2000,增加成本76.71115.070.0724000多采购3000个,1000个,一周后用完1000个,二周后用完1000个,三周后用完100115.07230.140.083
(1)库存持有成本说明
库存持有成本等于持有数量×持有天数×物料成本×持有成本百分比/365。例如,2011.10.14需要1000个数量的原材料,但是采购量为2000个,在2011.10.14入库,因此将多持有1000个的库存,持有1周,而持有1000个数量,持有1周的库存成本是数量(1000个)×成本(20元/个)×持有天数(7)×持有成本百分比(10%)/天数(365)=38.36。持有1000个数量,持有2周的库存成本是数量(1000个)×成本(20元/个)×持有天数(14)×持有成本(10%)/365=76.71。
因此在本例中,若在2011.10.14采购入库3000个,则增加库存成本115.07等于38.36+76.71,相比批量2000个,额外增加库存持有成本76.71。
(2)单位成本(UnitCost)
单位成本等于(订购成本+持有成本)/订购数量。
(3)附加库存成本(AdditionalStorageCost)
采购批量为2000时,附加库存成本为多采购1000个的成本,等于数量(1000个)×成本(20元/个)×持有成本(10%)/[天数(365)×2]=1.79。
(4)批量引起的成本节省(LotSizeFixedCostSaving)
多采购1000个,将导致多持有7天,但同时导致少采购一次,少采购一次的成本分摊到七天中等于采购成本100/[库存持有天数7×(库存持有天数7+1)]=2.74。
系统中支持四种最优批量类型,具体而言如表3-4所示,不同的批量类型有着不同的最优批量的计算方式。
表3-4不同的最优批量类型,不同的最优批量计算方式批量描述最优批量逻辑最优批量示例DYDynamicLotSizeCreation动态批量创建比较库存增加的成本和订购成本批量从3000增加到4000,库存成本增加(115.07)超过订购成本(100),因此最优批量为3000GRGroffReorderProcedureGroff重订货程序比较附加的库存成本和节省的成本批量为2000时,附加的库存成本大于节省的金额,因此最优批量为1000SPPartPeriodBalancing部分期间余额比较库存成本和采购成本批量为3000时,库存成本大于采购成本,批量为2000时,库存成本低于采购成本,因此最优批量为2000WILeastUnitCostProcedure最小单位成本法单位成本最低时的批量批量为2000时,单位成本最低(0.069),因此最优批量为2000
4.采购申请(计划订单)中的取整(Rounding)方式
MRP运行产生获取建议时,采购申请(计划订单)的数量根据以下设置进行取整。
(1)单位的取整
很多物料最小计数单位是个,因此采购量也需要进行取整为个,譬如生产1箱产品需要0.1个某包装,计划生产99箱产品,则相应的采购量应该为9.9个取整为10个。事务代码CUNI设置物料的单位的取整位数,还可参见本人博客“物料单位与MRP”。
(2)舍入值取整(Roundingvalue)
如果在物料主数据MRP1视图中输入舍入值(Roundingvalue),则MRP运行后,产生的采购申请的数量只能是舍入值的整数倍数,譬如采购某原料,该原料每桶为50kg,每次采购只能是整桶,因此可以将50kg作为舍入值,每次采购量都是50kg的整数倍数。
(3)取整参数文件(RoundingProfile)
通过取整参数文件可设置更加灵活的取整方式,譬如定义不同批量范围内不同的取整方式,譬如需求数量1~20、取整为20,需求数量20~50、取整为50。
通过事务代码OWD1定义取整参数文件,然后分配给物料(MRP1视图),取整参数文件还可以分配给采购信息记录,配额等对象,应用在销售订单、采购订单中。
八、需求
来自于客户的需求(CustomerRequirement):其形式一般是销售订单或是销售计划协议。
直接来自于销售预测(生产计划)的独立需求(independentrequirement):其形式是PIR(计划独立需求/PlannedIndependentRequirement),一般通过事务代码MD61进行维护。
1.销售订单中的需求类型与MRP
通过客户需求的需求类型中的需求分类的定义,确定销售订单是否参与MRP以及是否在事务代码MD04中显示。具体销售订单是否参与MRP,如果参与MRP,销售订单需求(客户需求)如何与独立需求冲销,请参见2.2节“按库存生产(MTS)”。
2.订单关闭与MRP
当销售订单不再执行,则在销售订单中设置拒绝(Reject)原因从而关闭订单,则需求不再进行传递,注意前提条件是事务代码OVAG中定义相应的拒绝原因中未勾选字段“OLI”。
3.可用性检查组(AvailabilityCheckGroup)与MRP
如果物料的可用性检查组设置为02(单个需求),系统将更新销售订单需求到表VBBE,该表中记录了销售订单号码,因此在MD04显示销售订单的号码以及需求,02为最常用的可用性检查组。
通过事务代码OVZ2定义可用性检查组的销售需求是单个需求还是汇总需求(按日、周)。
4.销售订单数量与MRP
当销售订单中启用可用性检查功能(ATP)后,销售订单中将存在两个数量,订单需求数量(客户需求数量)以及可用性检查的确认数量,在MRP中,以订单中的需求数量为准。
5.销售订单信用检查与MRP
系统默认只要销售订单参与MRP,无论销售订单是否信用冻结,系统都会将销售订单中的需求数量传递到MRP。
关于销售订单的需求传递的更多问题,请参见SAPNote547277-FAQ:RequirementsinSDandinthedelivery。
九、BOM展开
具体而言需要考虑三个方面的问题。
BOM的层次设置:一般来说BOM层次越多,MRP运行将会更加复杂;
替代BOM的问题:同一个产品由于各种原因可能会有多个BOM,系统如何选择BOM;
BOM行项目问题:BOM的行项目的设置对MRP的影响。
1.BOM层次(BOMLeve/BOM断阶)
BOM层次应尽可能简单,只有当确定需要时,再进行复杂设置。
一方面,只有实际形成在制品库存(半成品),才增加BOM层次,例如,在制品可能自制、也可能外购或者销售,应增加BOM层次;
另外一方面BOM断阶多,意味着BOM层次多,每一个层次都需要创建生产订单,例如,一个产成品的BOM有五个层次,意味着至少需要创建一个产成品的生产订单和四个半成品的生产订单,只有当半成品设置为虚拟物料时,才不需要创建半成品的生产订单。
2.同一产品有多个BOM问题(AlternativeBOM/可选BOM)
由于获取类型不相同(自制和委外)或是替代料都会导致同一产品经常会有多个BOM。
如果是由于原材料替代问题引起的,则应该尽量减少这种业务类型,参见第5章。
如果确实有多个BOM,需要制定出明确的规则,运行MRP时采用何BOM,系统中主要是通过在物料主数据中设置BOMExplosion规则来确定采用何BOM。
3.BOM中包含的项目设置
如果设置BOM中的原材料的“物料供应标识/MaterialProvisionIndicator”为供应商提供,则MRP运行时不会产生该物料的需求。
如果设置BOM中的半成品的“特殊获取”为虚拟件,则MRP运行时不会产生该物料的计划订单,也无需为该产品创建计划订单。
4.MTO模式下的BOM选择
事务代码OPPQ定义工厂参数,选择参数“物料单展开”(BOMExplosion),设置MTO模式下,运行MRP时,是采用物料BOM还是采用销售订单BOM。
十、单据关闭
1.流程设计
在流程设计时,需要考虑不同情况下,何时、何人关闭各种对MRP有影响的单据,譬如某张采购订单不再执行,则应该明确何时、何人根据关闭采购订单,或者规定定期关闭,或者规定根据某个事件触发关闭。
需要考虑各种业务情况下,如何设置容差,使得应该关闭的订单能够合理的自动被系统关闭,以生产订单为例:
某公司生产某产品,生产订单下达量为1000kg,实际产出会有偏差,在980kg和1020kg上下。一般在此范围内,则生产订单不再继续生产、交货,因此可以通过设置交货容差来实现交货量在特定范围内则生产订单视为完全交货。
十一、业务模式的选择
(按订单生产&按库存生产)
十二、增强
在特定情况下,可以通过增强BADI“MD_CHANGE_MRP_DATA”来控制特定业务记录不参与MRP计算。例如,在该增强的方法“CHANGE_MDPSX_VBBE”中可设置信用冻结的销售订单不参与MRP运算,将不需要参与MRP的记录的数量设置为零,并标记“CH_CHANGED=‘X’”,方法“CHANGE_MDPSX_MDFA”可设置特定的生产订单不参与MRP运算。