APO 中的 ABAP3

作者:郑德鼎 约 7 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, MM, PP, S/4HANA, SD, 开发, 数据工程, 物料管理, 生产, 销售分销
APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

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类似,不过只有采购和生产相关的视图。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

之前的文章提到过PDS,即生产数据结构。BOM,工作中心,Routing,生产版本是PDS的前提。在S4中,通过事务码CURTOADV_CREATE,将相关数据通过CIF推送到PPDS,生成PDS。

查看PDS的事务码是/SAPAPO/CURTO_SIMU。类似将 生产版本的详细数据在一屏上展示。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

/SAPAPO/RRP2是APO的订单查看工具。订单在APO中是个宽泛的概念,生产订单,销售订单,采购订单,采购申请,库存...都可以叫订单。你可以把APO中订单简单理解为需求和供给的编号。在APO中查看一个销售订单的需求,如下图所示。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

红色部分三层数据,第一层是原始的销售订单的需求,具体到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。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

MD61,用此产品创建几周的PIR。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

RRP3中查看供给。用MD04一样。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

生产计划执行。/SAPAPO/CDPSB0

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

回到RRP3,针对产品产生了计划订单。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

针对原材料,产生了采购申请。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

查看详细排产计划。 /SAPAPO/CDPS0

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

S4时代,必然要有Fiori版的。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

前边讲SNP的时候提到,SNP的核心逻辑有启发式、CTM、优化器三种方式。PPDS也有两种,启发式和优化器。事务码/SAPAPO/OPT00运行PPDS的优化器,但我没找到这方面的资料。

APO 中的 ABAP3 - 封面图
APO 中的 ABAP3 - 封面图

PPDS的开发一般涉及CIF传输数据增强,PDS的生成、读取,Pegging关系,启发式函数开发,生产计划执行增强,排产结果处理......以及各种极端详细的报表。难度普遍很大。做过排产的都知道这类需求有多难。排产不只是排个计划,还涉及资源的锁定和释放。前期排得再完美,来一个紧急需求,所有一切都要打散了重新来一遍,更何况动态的,滚动的生产计划。

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「APO中的ABAP3.md」整理生成,仅用于内部技术分享与学习交流。