APO也好,还是集成在S4里的PPDS也好,可以认为是一个开发框架,提供了一些基本功能、数据模板、业务规范和技术标准。客户实施APO,一定是普通的ERP无法满足需求,这便意味着高度的定制化,和复杂的业务逻辑,也就意味着海量的,高难度的开发。
由于基于SCM套件的APO产品即将停止支持,以后大家接触的PP/DS一般指集成在S/4中的PPDS。按照SAP官网的说法,S4中的PPDS是独立的,和APO中的PPDS并没有继承关系。本文以S4中的PPDS为主。
在使用PPDS之前,依旧要配置SM59自己连自己,还要激活CIF,自己给自己发数据。这应该是规避一些集成风险。可见“没有继承关系”只是个设想,目前还是靠继承的SCM套件支撑。
S4的物料主数据中增加了APO视图(提前计划视图),激活后就可以通过CIF向PPDS相关的表里同步物料数据了。在APO中,查看物料主数据的事务码是/SAPAPO/MAT1。界面和MM03类似,不过只有采购和生产相关的视图。
之前的文章提到过PDS,即生产数据结构。BOM,工作中心,Routing,生产版本是PDS的前提。在S4中,通过事务码CURTOADV_CREATE,将相关数据通过CIF推送到PPDS,生成PDS。
查看PDS的事务码是/SAPAPO/CURTO_SIMU。类似将 生产版本的详细数据在一屏上展示。
/SAPAPO/RRP2是APO的订单查看工具。订单在APO中是个宽泛的概念,生产订单,销售订单,采购订单,采购申请,库存...都可以叫订单。你可以把APO中订单简单理解为需求和供给的编号。在APO中查看一个销售订单的需求,如下图所示。
红色部分三层数据,第一层是原始的销售订单的需求,具体到SO的计划行级别,可以在ECC/S4中查到。第二层是虚拟的需求,复制第一层数据。第三层是虚拟的生产订单,代表要靠生产订单满足上层的需求。再往下就是展开的原材料需求。有库存就产生库存订单,没库存就产生采购相关的订单。
PPDS的核心功能是生产计划运行,事务码/SAPAPO/CDPSB0。 SAP官网 对启发式的描述如下:
“ 在交互式计划和生产计划运行中,使用启发式在PPDS中自动执行计划任务。 在 PPDS
中,启发式是一种计划函数,用于对所选对象(产品、资源、操作或线路网络,具体取决于计划重点)执行计划。启发式使用特定的启发式特定过程来实现此目的。SAP
提供标准启发式方法,可用于不同的计划任务。例如,有一些启发式方法,您可以使用这些方法根据所选产品的低层码执行多级计划,或者使用这些方法可以按特定顺序计划对所选资源的操作。
SAP 标准启发式方法在以下方面可用: 生产计划 用于产品的采购计划和其他计划任务。
详细调度。 用于对资源进行排序操作。规划的重点是资源和运营。这些启发式方法的示例包括最小化运行时和删除积压工作 。
重复制造。 为需求生成计划订单,并考虑所有期间的资源容量。规划的重点是资源、线路网络和产品。
模型组合规划。 优化了可配置产品的顺序,同时考虑了任何限制。规划的重点是资源和线路网络。 ”
启发式是一个参数固定的函数,你可以定制自己的启发式,并自己写代码实现你想要的功能,也就是自己写排产算法。
这篇文章举了一个PPDS运行过程的简单例子。 https://blogs.sap.com/2019/03/26/s4hana-with-embedded-
ppds-functionality/
这是一个产品的PDS。
MD61,用此产品创建几周的PIR。
RRP3中查看供给。用MD04一样。
生产计划执行。/SAPAPO/CDPSB0
回到RRP3,针对产品产生了计划订单。
针对原材料,产生了采购申请。
查看详细排产计划。 /SAPAPO/CDPS0
S4时代,必然要有Fiori版的。
前边讲SNP的时候提到,SNP的核心逻辑有启发式、CTM、优化器三种方式。PPDS也有两种,启发式和优化器。事务码/SAPAPO/OPT00运行PPDS的优化器,但我没找到这方面的资料。
PPDS的开发一般涉及CIF传输数据增强,PDS的生成、读取,Pegging关系,启发式函数开发,生产计划执行增强,排产结果处理......以及各种极端详细的报表。难度普遍很大。做过排产的都知道这类需求有多难。排产不只是排个计划,还涉及资源的锁定和释放。前期排得再完美,来一个紧急需求,所有一切都要打散了重新来一遍,更何况动态的,滚动的生产计划。