优先级在排产中的应用
优先级,这是一个很普通的名词,但同前面记录的“共享产能”(Ref: 共享能力在排产中的应用)、“订单关系”(Ref: 订单关系在排产中的应用)一样,其在计划排产过程中有着非常广泛的应用和非常重要的作用。
从字面上理解,就是说一些业务需要被“特别对待”或者“区别对待”,就像在日常生活中,很多事情总会有个“三六九等”一样。在排产过程中,相似的业务场景或业务需求数不胜数:
在有产能或其他条件约束的情况下,来自VVIP、VIP或特定客户或不同区域或不同关系的销售需求,需要优先满足,即优先排产、优先生产、优先发货;
对于不同时间维度下的需求,比如一些企业经常所做的日计划、周计划、月计划(如S&OP)等,一般会要求短期Short-term的需求优先级一定比中长期Middle-Long-term的需求高;
对于不同的产品,由于属性、价值例如ABC分类等的不同,在排产时,也需要区别对待;
站在排产的角度,比如工艺工程、现场管理的要求,更加高效的人力或设备运行的要求等等,需要将不同的排产订单按优先级的方式顺序执行。例如在化工间歇式生产(Ref: 化工间歇式生产的一点总结)中,对于成品包装而言,为了尽早地“解放”出反应釜(因为直包业务下在包装的同时也会占着反应釜),就需要优先包装“直包”的包装订单(罐包的包装订单可次要处理);但对于半成品生产而言,为了不让反应釜过早地被占据(因为直包业务下反应釜只有当第二天包装完成后才能释放产能),就需要优先生产“进储罐”的半成品生产订单、最后再生产“直包的半成品生产订单”;
….
分析这些实际的业务场景和应用,首先可以从下面两个方面进行概括归纳“排产过程中的优先级”。
(1) 需求端来源的优先级
“凡事预则立”,同样的道理,做计划,总归有一个“源头”,无论这个“源头”是真实的“销售需求”,还是预估的“预测”,抑或只是来自于仓库/车间备货或安全库存等的“驱动”。
从这里就可以看出,从整体上来说,“需求”来源多种多样;然后从单一需求渠道来说,“需求”更可以根据不同的“对象”进行区分,比如上面举例说到的客户、销售渠道、业务类型等。
对于“需求端”而言,从标准功能上ERP里即提供了一些需求的优先级,例如客户的优先级,例如销售订单时可以显式指定的“优先级”等等:
然后借助于SAP ERP与APO的联动机制,比如CIF,比如增强等,从而在APO端,这些需求订单也便具有优先级:
而至于技术上比如CIF、比如增强等,SAP标准提供了很多出口增强可以处理。
(2)供应端来源的优先级
除了“需求端的优先级确定”外,另一部分即来自于“供应端”,使计划过程产生的“供应”也具有优先级。
例如上面举例说到的根据产品Product的优先级:
除此之外,考虑到同一个物料不同需求的优先级(上面记录的“需求端的优先级”),PP/DS还提供了额外的Heuristics用以根据需求此再手动调整Order priority(例如Heuristics:SAP_PP_012);
例如根据业务需求的不同而确定的优先级:
可以通过自定义的Heuristics或者增强标准BADI等方式实现;
然后,在上述“需求端”及“供应端”确定了需求后,PP/DS就将对它们进行应用。
“需求端的优先级”,最常用的地方即是在执行计划Planning时,将需求元素按优先级进行排序,然后比如优先级高的排在前面、优先级低的排在后面:
然后PP/DS算法引擎即按顺序进行处理。所以,在PP/DS比如Heuristics的设置中即可以进行配置调整:
以及策略参数设置:
另外,关于订单排序Sort时,PP/DS也提供了标准的出口进行再扩展增强,无论是PP Heu.还是DS Function,无论是“需求元素“还是”供应元素“。
同时也可以看到,即使需求元素例如SO、F/C进入APO时并不具有“区别的优先级”,在此还可以进行干预。
“供应端的优先级”,最常用的地方即是在执行调度Scheduling时,在Heuristics/Function、或者Optimizer中将供应元素进行上面说到的排序Sort,然后分步进行调度。例如在Optimizer中:
最终,在合理且正确使用优先级的情况下,PP/DS系统将排出带约束的“供应计划“。
例如以下场景,初始状态:
在11.12这一天里,8019与8021同时具有订单;
但在此业务下,8019优先级高(即要求系统首先调度该订单,优先满足它的需求,即在当天内完成);而8021优先级要低(即在同一天产能无法满足的情况,由系统自动将其向前或向后调度开);
使用DS或Optimizer优化后:
可以看到,8021即被调整到前一天10.12去满足(这里使用了Backward-scheduling)。