Oracle EBS MRP模块之预测冲减
基本概念
预测冲减的定义
基于原始预测,使用已计划的销售订单减少相应的预测数量,以得到当前预测。
当前预测=原始预测-客户订单。
预测冲减的方法
第一类,在计划订单时自动冲减,是指在计划销售订单时自动冲减预测;需要计划管理器在前台运行(MRP>设置>计划管理器);需要设置配置文件MRP:Consume Forecast = Yes;
新的销售订单被计划,或者已计划的销售订单发生变更时,适用此类冲减。Oracle推荐使用这种自动冲减的方法,因为,在这种方法下,冲减仅针对新订单或有变更的订单进行,新旧需求划分得非常清楚,能有效避免历史订单错误地、过量地冲减预测。
实质:仅处理MRP_SALES_ORDER_UPDATES中process_status = 2的记录。
第二类,在复制/合并/装载时冲减
计划管理器有两种生效形式:
- 前台运行(MRP>设置>计划管理器);
- 若配置文件MRP:Perform Planning Manager Functions in Loads = Yes,则在每一次运行复制/合并/装载程序时,它都能替代执行所有计划管理器的功能。
在计划管理器生效的基础上(即上述2个条件至少满足1个时),在以下两个环节可以执行预测冲减:
- 在复制/合并预测时冲减;
- 在将预测装入MDS时冲减。
实质:基于预测原始数量,针对OE_ORDER_LINES_ALL中所有的订单需求,从头冲减。具体冲减逻辑与第一类同。
第三类,预测集冲减
预测集冲减与计划管理器无关。
依据配置文件MRP:Consume Fcst Set Summary设置的不同,预测集冲减的对象可能是OE_ORDER_LINES_ALL中所有打开的订单行(设置为Yes时),也可能不区分订单行状态、取MRP_SALES_ORDER_UPDATES中的所有记录(设置为No时)。上述两种情况抓取的记录,都受预测集冲减请求上的需求起始日期进一步限制。
实质:预测集冲减请求启动后,首先,会清除当前预测集的所有冲减记录,然后,基于预测原始数量,针对依据配置文件MRP:Consume Fcst Set Summary设置和请求参数而确定的需求记录范围,从头冲减。具体冲减逻辑与第一类同。
在企业正式使用MRP的过程中,应慎重使用预测集冲减。在没有专业人员指导的情况下,不允许更改配置文件MRP:Consume Fcst Set Summary的设置。
基础设置
预测集冲减选项
1. 冲减框
决定此预测集是否允许冲减。此选项对所有冲减方法都有效。
2. 异常更新百分比
使用单份销售订单可以冲减的原始预测量的最大百分比来控制异常需求的影响。
如下举例,若将预测集的异常更新百分比设置为50%,添加三行预测,每一行的原始数量为100,即意味着每个销售订单行(line_id)最多只能对每行预测冲减50的数量(100*50%):
3. 倒推天数、前推天数
是指预测条目自 销售订单计划日期起、可以身后或向前预测冲减多少个工作日。非工作日不计算在内。
在定义预测集时,您可以输入倒推和前推冲减天数;冲减天数即定义了预测条目所包含的时间期。
在没有找到与销售订单日期完全相符的预测日期时,或虽然找到完全相符的日期但其数量却不能满足销售订单数量时,冲减将首先在工作日范围内身后移动(倒推),以查找要冲减的预测量;如果该搜索失败,冲减会在工作日范围内向前移动(前推)。
如下举例,将预测的后推天数和前推天数都设置为5,原始预测分别落在6个工作日,数量均为20,若 此时有一张销售订单,发运日期被计划在8号,数量100,则计划管理器会按照8号、4号、1号、11号、12号的顺序依次冲减,最后只留下15号的预测:
答案:
配置文件
MRP:Compute Sales Order Changes
指明是否计算并使用销售订单需求,以执行预测冲减并跟踪销售订单信息。可用值如下:
- 是-计算并使用销售订单信息。
- 否-不计算和使用销售订单信息。
此配置文件设置为否时,新计划的销售订单将无法正常冲减。当您将配置文件选项设置恢复为是时,计划管理器会冲减文件设置为“否”是被计划的所有销售订单。
此配置文件用以控制计划管理器对MRP_SO-LINES-TEMP中process_status = 2 (待处理)的记录的处理:
销售订单一旦被计划,就会插入MRP_SO_LINES_TEMP,此时process_status = 2 (待处理);当配置文件设置为否时,计划管理器不会处理它们,记录保持待处理状态;当配置文件设置为是时,计划管理器会抓取MRP_SO-LINES-TEMP中所有待处理的条目,将其插入MRP_SALES_ORDER_UPDATES并更新TEMP中的process_status = 5 (已成功)。
MRP:Consume Scst Set Summary
- 是-仅计划发运日期满足参数的、且尚未发运确认的订单行可以拿来冲减预测集。
- 否-所有计划发运日期满足请求参数的订单行都可以拿来冲减预测集。
依据配置文件MRP:Consume Fcst Set Summary设置的不同,预测集冲减的对象可能是OE_ORDER_LINES_ALL中所有打开的订单行(设置为Yes时),也可能不区分订单行状态、取MRP_SALES_ORDERS_UPDATES中的所有记录(设置为No时)。
此配置文件仅对预测集冲减有效,对通过计划管理器进行的预测自动冲减无效。
MRP:Old Sales Orders Cutoff Days
Old Sales Orders Cutoff Days这个配置文件是为了对付计划管理器意外暂停期间被更新的订单需求,防止已关闭的过期订单还持续对预测进行冲减。
预测的冲减与MRP_SALES_ORDER_UPDATES这个表直接相关,这个表里面current_availabe_to_mrp的标签是Y还是N,决定了该订单行是否参与预测冲减。如果我有一个订单,它的发运发生在计划管理器暂停期间,那么重启计划管理器后,该订单在MRP_SALES_ORDER_UPDATES的表里,还是Y的状态(若计划管理器持续运行,正常的订单,登记时是Y,发运关闭后是N)。
Old Sales Orders Cutoff Days这个配置文件,就是对这个表里面的状态为Y的订单行生效,避免已关闭的过期订单还持续对预测进行冲减。
测试其作用的步骤如下:设置Old Sales Orders Cutoff Days为空(表示无限大的天数);关闭计划管理器;登记一个新订单并且改动确认;重新打开计划管理器并且测试冲减,会发现实际已经关闭的订单,仍能冲减预测。
冲减逻辑
数据库原理
主要步骤如下:
- 销售订单一旦被计划,就会插入MRP_SO_LINES_TEMP,此时process_status = 2(待处理)
- 计划管理器将验证配置文件MRP: Compute Sales Order Changes的设置,若设置为是,计划管理器会抓取MRP_SO_LINES_TEMP中的所有待处理的条目,将其插入MRP_SALES_ORDER_UPDATES并更新TEMP中的process_status = 5 (已成功)
- 插入MRP_SALES_ORDER_UPDATES的记录的初始状态process_status = 2(待处理)
- 计划管理器将验证配置文件MRP:Consume Forecast 的设置,若配置为是,计划管理器对MRP_SALES_ORDER_UPDATES中所有待处理的条目执行冲减,依据冲减记录更新MRP_FORECAST_UPDATES(预测冲减明细表),并更新MRP_SALES_ORDER_UPDATES中的process_status = 5(已成功)
冲减原则
- 预测冲减在预测集内进行,一个销售订单行的计划可以同时冲减多个包含此物料预测条目的预测集,一个销售订单行在一个预测集的冲减总数不得大于此订单行的计划发运数。
- 相同需求分类优先冲减。在计划销售订单之后,预测冲减流程将优先冲减具有相同需求分类的预测。如果预测冲减流程没有找到相同需求分类的预测,它将冲减没有需求分类的条目。如果销售订单没有关联的需求分类,则预测冲减流程会尝试首先冲减与组织默认需求分类关联的预测条目,再冲减尚未定义需求分类的条目。
- 预测的需求日期,必需落在大于(订单行计划改动日期-倒推天数)、小于(订单行计划发运日期+前推天数)的时间期内,才能被拿来匹配冲减该销售订单行。
冲减逻辑
假设预测集FCS包含预测FC01和预测FC02,且两个预测包含相同物料A。以下是执行预测冲减时,匹配销售订单行与预测条目的思路:
- 将需要冲减的销售订单行按计划发运日期从小到大排序;
- 将预测集中物料A的预测条目按需求日期从小到大排序;
- 找到物料A的预测条目中,预测需求日期距离此销售订单行的计划发运日期最近的一行或多行预测条目;
- 若只有一行,则使用此行冲减;
- 若有多行,则按预测名称的字母顺序从小到大排序,依次冲减。
版权声明:本文为博主原创文章,未经博主允许不得转载。