物料、BOM、工艺路线、生产订单、库存和成本核算仍由 S/4HANA 管理。SkyPlanner 团队会在实施阶段根据您的 S/4HANA 配置完成集成,并在上线后提供支持。如需了解业务价值,请参阅 SAP S/4HANA 生产排程页面。如需了解 S/4HANA 自身是否能按机器和人员的实际产能进行排程,请阅读SAP S/4HANA 是否支持生产排程?
SAP S/4HANA 集成方式
S/4HANA 通过已发布的 OData 服务提供集成接口,服务清单见 SAP Business Accelerator Hub(api.sap.com)。排程集成使用 OData V2 服务。IDoc 和 BAPI 仍然可用,但本指南采用已发布的 OData API。
各版本的身份验证方式
- 本地部署版和 Private Edition。在 SAP Gateway 中通过事务
/IWFND/MAINT_SERVICE激活服务。集成用户需要具备相应的授权对象,例如报工需要C_AFRU_AWK,随报工一起过账的货物移动项目需要C_AFKO_AWK,计划订单需要M_PLAF_ORG。 - Public Edition。服务只能通过通信安排对外提供。按照 SAP 入站通信设置说明,在 Communication Arrangements 应用中,基于 SAP 通信场景(
SAP_COM_xxxx)创建通信用户、通信系统和通信安排。该场景决定开放哪些服务,以及可用的身份验证方式:
– 基于令牌:采用 OAuth、SAML 或 OpenID Connect 的持有者令牌流程,并将主体身份传递至业务用户 – 客户端证书 – 使用技术通信用户进行基本身份验证
SAP 建议使用令牌或证书进行身份验证。
SkyPlanner 端提供采用 JWT 身份验证的 REST API,其 Swagger/OpenAPI 文档见 API 参考。因此,中间件在 SAP 端处理 SAP 身份验证,在 SkyPlanner 端处理 JWT。
生产排程相关 API
| 服务 | 使用的实体和动作 | 用途 |
|---|---|---|
API_PRODUCTION_ORDER_2_SRV(Production Order, Version 2) | A_ProductionOrder_2、A_ProductionOrderItem_2、A_ProductionOrderOperation_2、A_ProductionOrderComponent_2、A_ProductionOrderStatus_2、A_ProductionRsceTools_2;动作:ReleaseOrder、ReleaseOperation、ScheduleProductionOrderOperation | 订单、工序、组件、生产资源/工具(PRTs)、状态、排程回写 |
API_WORK_CENTERS | A_WorkCenters, A_WorkCenterAllCapacity_2, A_WorkCenterCapacity, A_WorkCenterCapacityInterval_2, A_WorkCenterCapacityShift_2, A_WorkCenterCapPerBucket | 工作中心、能力类别、有效区间和班次 |
API_PRODUCTION_ROUTING | ProductionRoutingHeader, ProductionRoutingSequence, ProductionRoutingOperation, ProductionRoutingSubOperation, ProductionRoutingMatlAssgmt, ProductionRoutingOpCompAlloc | 标准工艺路线,用于在创建订单前进行计划 |
API_BILL_OF_MATERIAL_SRV;v=2 | MaterialBOM, MaterialBOMItem, MaterialBOMSubItem | 多层产品结构 |
API_PRODUCT_SRV(Product Master A2X) | A_Product | 物料(在 API 中称为 Product)。对于大多数产品实体,SAP 目前建议使用 Product (Version 2) API |
API_PLANNED_ORDERS | A_PlannedOrder, A_PlannedOrderComponent, A_PlannedOrderCapacity | 转换前的 MRP Live 输出结果 |
API_MATERIAL_STOCK_SRV | A_MaterialStock, A_MatlStkInAcctMod | 按工厂和库存地点划分的库存,用于确定物料可用性 |
API_PURCHASEORDER_PROCESS_SRV | A_PurchaseOrder, A_PurchaseOrderItem | 待到货物料的未结采购订单 |
API_PROD_ORDER_CONFIRMATION_2_SRV | ProdnOrdConf2、ProdnOrdConfMatlDocItm;动作:GetConfProposal、GetGdsMvtProposal、CancelProdnOrdConf | 车间报工和货物移动 |
在生产订单 API 中,工序以 OrderInternalBillOfOperations 和 OrderIntBillOfOperationsItem 的组合作为键,而不是计划员看到的工序编号。报工 API 的 GetConfProposal 则通过 OrderID 和 OrderOperation 定位同一道工序。从首次加载开始,就应将内部键和工序编号一并存入 SkyPlanner。
事件
S/4HANA 会触发 Production Order Created 和 Production Order Changed 业务事件,其载荷包含 ManufacturingOrder、ProductionOrder、ProductionOrderType 和 ProductionPlant。载荷仅携带键,因此集成程序需要重新读取订单及其工序。订单的每一次变更都会触发 Changed 事件,因此需要做防抖处理。反向传输时,排程或生产任务状态一旦发生变化,SkyPlanner webhook 就会实时推送。
从文件导入开始
试用时,可从 S/4HANA 列表报表中将生产订单和工作中心导出为 Excel 或 CSV 文件,再导入 SkyPlanner。这样,无需先配置 Gateway 或通信安排,就能验证排程效果。
数据映射:从 SAP S/4HANA 到 SkyPlanner
| S/4HANA 实体 / 端点 | SkyPlanner 对象 | 方向 | 频率 |
|---|---|---|---|
A_Product(物料) | 产品或物料 | S/4HANA → SkyPlanner | 首次加载,之后定时增量同步 |
MaterialBOM, MaterialBOMItem | 产品结构、子产品 | S/4HANA → SkyPlanner | 首次加载,之后定时同步 |
A_WorkCenters | 工作中心 | S/4HANA → SkyPlanner | 首次加载,发生变更时同步 |
A_WorkCenterCapacity, A_WorkCenterCapacityInterval_2, A_WorkCenterCapacityShift_2 | 产能和班次 | S/4HANA → SkyPlanner | 首次加载,之后定时同步 |
ProductionRoutingHeader, ProductionRoutingOperation | 工序和标准工时 | S/4HANA → SkyPlanner | 首次加载,之后定时同步 |
A_ProductionOrder_2(已下达或已创建) | 带交期的订单 | S/4HANA → SkyPlanner | 由 Created/Changed 事件触发近实时同步,或定时轮询 |
A_ProductionOrderOperation_2 | 生产任务(在工作中心执行的工序) | S/4HANA → SkyPlanner | 随订单同步 |
A_ProductionRsceTools_2(生产资源/工具) | 工具,作为数量有限的共享资源参与排程 | S/4HANA → SkyPlanner | 随订单同步 |
A_ProductionOrderComponent_2, A_MaterialStock | 物料需求和库存 | S/4HANA → SkyPlanner | 定时同步,间隔在范围评估阶段商定 |
A_PurchaseOrder、A_PurchaseOrderItem(API_PURCHASEORDER_PROCESS_SRV):未结数量和计划行交货日期 | 带预计交货日期的采购订单 / 待到货物料 | S/4HANA → SkyPlanner | 定时同步,间隔在范围评估阶段商定 |
A_PlannedOrder(可选) | 转换前预先安排的订单 | S/4HANA → SkyPlanner | 每次 MRP Live 运行后 |
ScheduleProductionOrderOperation(工序开始时间,正向模式) | 排程 | SkyPlanner → S/4HANA | 排程变更时通过 webhook 触发 |
ProdnOrdConf2(合格品数量、报废数量、作业量) | 工时记录和数量 | SkyPlanner → S/4HANA | 每次工时记录事件触发时同步,或批量同步 |
集成模式
1. 加载主数据。加载物料、BOM、工作中心及其产能区间和班次,以及工艺路线。在此阶段确定由哪个系统管理班次。一种可行的分工是:工厂日历保留在 S/4HANA 中,详细的班次安排、缺勤和加班则在 SkyPlanner 中管理,供计划员日常调整。
2. 订单同步。订阅 Production Order Created/Changed 事件;如果未配置业务事件,则按变更时间戳轮询 A_ProductionOrder_2。按工厂、订单类型和状态筛选。在订单创建时就将其发送到 SkyPlanner,以便提前规划;待 SkyPlanner 完成排程后,再在 S/4HANA 中下达(ReleaseOrder 或 ReleaseOperation)。
3. 排程回写。当 SkyPlanner webhook 通知排程变更时,集成程序会针对每道发生变更的工序,调用 API_PRODUCTION_ORDER_2_SRV 中的 ScheduleProductionOrderOperation。发送的内容包括:
- 作为键的
ManufacturingOrder、OrderInternalBillOfOperations和OrderIntBillOfOperationsItem OpSchedulingMode设为 F(正向),并在OpSchedldStartDate和OpSchedldStartTime中传入 SkyPlanner 的开始日期和时间OpSchedulingStatus设为 DISP(派工),必填的OpSchedulingStrategy设为 M- 在
if-match中传入 ETag
同一订单的所有工序按 SkyPlanner 中的顺序放入同一个变更集,使 S/4HANA 能在一次调用中派发该订单的完整计划。绝不使用模式 K:该模式会保留原有工序日期,忽略传入的日期。
SkyPlanner 使用与 S/4HANA 相同的工艺路线标准值和工作中心产能公式计算工序时长。因此,S/4HANA 根据派发的开始日期算出的结束日期会与 SkyPlanner 计划一致。每个变更集处理完毕后,集成程序都会重新读取工序,并标记存在差异的日期,让计划员在下一班次开始前看到。
4. 车间报工。Mobile Confirmations 或 Production Timer 中的每条工时记录都会转为 S/4HANA 报工。SkyPlanner webhook 会触发 ProdnOrdConf2 提交,包含合格品数量、报废数量和作业时间。集成程序会先调用 GetConfProposal,由 S/4HANA 提供数量、作业量、日期和人员数据的建议值。GetGdsMvtProposal 则提供货物移动建议。
在途物料。未结采购订单也纳入入站同步。SkyPlanner 将已订购物料视为在采购订单的预计交货日期可用。等待外购组件的作业会安排在物料到货当天,而不会因当前库存不足而无法排程。
S/4HANA 仍是收货数据的权威来源:收货过账后,库存增加,采购订单行项目的未结数量减少。下一次同步会更新 SkyPlanner 中的库存,并将已全部收货的采购订单标记为 Delivered;部分收货后,剩余未结数量仍按计划行日期计入待到货物料。SkyPlanner 如何处理采购订单,详见 SkyPlanner 文档。
5. 数据管理权规则。S/4HANA 负责数量、BOM、工艺路线、成本核算和状态。SkyPlanner 负责工序顺序、工作中心分配和工序日期。绝不能让两个系统写入同一个字段。如果计划员仍在 Capacity Scheduling Board 中移动工序,就必须确定以哪一方为准:要么在下一次订单同步时将这些调整带入 SkyPlanner,要么将该工作中心排除在 SkyPlanner 的管理范围之外。
项目包含哪些工作
实施通常在启动后数周内完成,大型企业也不例外。多数工厂先使用导出的 CSV 或 Excel 文件开始 30 天免费试用,在 API 开发前,用自己的数据验证排程效果。随后,S/4HANA 项目包括以下工作:
- 范围评估:确定工厂、订单类型、系统版本、身份验证模式,以及各字段由哪个系统负责管理。
- SAP 访问配置:激活 Gateway 服务或配置通信安排,并设置技术用户和授权对象。
- 主数据映射:映射工作中心的产能类别、区间和班次,将工艺路线标准值映射为 SkyPlanner 中的时长,并处理计量单位。
- 初始加载:加载物料、BOM、工艺路线,以及工作中心和相应产能。
- 生产订单和采购订单同步:通过 Created/Changed 事件或轮询同步生产订单及工序,定时同步库存和未结采购订单。
- 排程回写:调用
ScheduleProductionOrderOperation,并实现 ETag 处理和重试队列。 - 车间报工:将工时记录作为
ProdnOrdConf2报工提交。 - 与现有计划并行测试:将 SkyPlanner 排程与现有产能平衡方案并行运行,直至计划员认可其结果。
- 上线。
SAP S/4HANA 集成常见问题
- 回写需要调用动作并携带 ETag。文档规定的工序排程方式是调用
ScheduleProductionOrderOperation,而不是对A_ProductionOrderOperation_2执行 PATCH。F 模式从开始时间正向排程,B 模式从结束时间反向排程;K 和 S 则保留现有日期,忽略传入的日期。if-match中的 ETag 根据订单的LastChangeDateTime(YYYYMMDDHHMMSS)构建,因此订单发生任何变更都会使其失效。应实现写入前读取机制和重试队列。 - 工作中心抬头不包含产能数据。可用产能取决于能力类别(001 机器、002 人工)、工厂日历,以及覆盖日历设置的有效区间和班次。产能公式将工艺路线的标准值换算为准备、加工和拆卸的能力需求。读取
A_WorkCenterCapacityInterval_2和班次实体,并商定如何将公式换算为 SkyPlanner 中的时长。 - 标准值需要清理。为成本核算维护的工艺路线,往往使用平均准备时间,或将准备作业计入了错误的产能类别。
- 报工规则严格。SAP 建议使用批量调用进行大批量过账。一个变更集要么全部成功,要么全部失败,因此一条有误的工票就会阻止该变更集中的其余记录过账。批次中的取消操作必须按
ConfirmationCount的逆序执行。不能在同一订单中混用报工类型,不能在没有报工的情况下过账货物移动,也不能对触发点需要弹出对话框的工序进行报工。 - 检查是否已启用 PP/DS。嵌入式 PP/DS 需要执行 Customizing 配置活动 Activate Advanced Planning and Scheduling,并使用 SAP HANA integrated liveCache。SAP 将其作为独立产品 SAP S/4HANA Manufacturing for planning and scheduling 销售。如果已启用,就要逐项确定物料由哪个系统排程:标记为高级计划的物料归 PP/DS 管理。SAP 还在计划订单 API 文档中说明:”Automatic integration to PP/DS is not enabled from this API.”(此 API 未启用上述自动集成功能。)
- 计量单位。工序数量、工艺路线基准数量和确认数量所用的单位可能不同。必须明确进行换算,使用工序单位,而非物料基本单位。
- 版本差异。SAP Learning 显示,传统的 CM21/CM22 计划表正被 Manage Work Center Capacity、Capacity Scheduling Table 和 Capacity Scheduling Board 取代。Public Edition 仅通过通信场景开放 API,所提供的服务版本可能与本地部署版不同。工艺路线 API 无法删除工艺路线,也无法更新物料分配。SkyPlanner 团队会在范围评估阶段,依据 API Business Accelerator Hub 中对应发行版的条目,为每个客户系统锁定服务版本。
- 工艺路线无法涵盖的约束。与顺序相关的换型、工具冲突和多人协同工序,应在 SkyPlanner 中管理,而不是放入工艺路线标准值。准备时间矩阵记录每一对产品之间的换型时间。订单 PRT 中的工具属于有限资源,同一时间只能供一个工作中心使用,而一道工序可以同时需要多名人员。
由谁配置集成
上述问题说明,配置才是集成工作的重点。每家工厂使用 S/4HANA 的方式都不同:订单类型、产能类别、工艺路线标准值、用户出口和系统版本都会影响映射。
- 由 SkyPlanner 团队配置:在实施阶段,根据您的 S/4HANA 配置,使用已发布的 S/4HANA API 以及 SkyPlanner 的 REST API 和 webhook 完成集成,并在上线后提供支持。这是默认方式,让排程系统和 S/4HANA 对接由同一团队负责。
- 您的 SAP 合作伙伴也可以负责开发,结合对您订单类型和 Basis 配置的了解,依据 SkyPlanner 的 Swagger/OpenAPI 文档完成集成。
- 您自己的开发人员可以直接开发,也可以在 SAP Integration Suite 或 SAP BTP 上构建集成,使用文档中说明的 REST API、JWT 身份验证和 webhook(参阅集成教程)。只需一个 API 密钥即可开始;需要帮助时,SkyPlanner 团队会提供支持。
SkyPlanner 已有与 SAP 协同运行的实例:Laboratory & Allied 的内部 IT 团队在 SkyPlanner 的协助下,将 SAP Business One on HANA 与 SkyPlanner 对接。功能文档已公开,可在 SkyPlanner 文档中查阅。
无论选择哪种方式,都请先通过 30 天免费试用验证排程效果(最多支持 20 个工作中心,无需信用卡)。随后,再围绕计划员已经认可的计划构建集成。试用结束后,价格为每月 199 € 起,包含 5 个工作中心,按月计费。集成费用会根据您的流程和需求,与所选套餐一并提前报价,让您在开始前就了解全部费用。
制造企业对 SkyPlanner 的评价
2 小时每周节省的时间
“SkyPlanner 让我们的生产计划从 Excel 表格迈向了实时生产优化。”
Kalle Kalliomäki,供应链专员
UTU · 配电盘与开关设备
生产计划工作每周节省 2 小时,新作业队列只需数秒即可下达到产线。
+90%生产效率提升
“生产效率提高了 90%。”
Abdul Rucyinga,IT 负责人
Laboratory & Allied · 制药
生产效率提高了 90%,为所有工作中心制定覆盖三个月的优化计划,用时不到 30 分钟。
99.2%准时交付率
“SkyPlanner 让我们能够清楚地识别瓶颈,生产管理也更清晰了。”
Toni Tuori,生产经理
Piristeel · 屋面安全与雨水系统
今年的准时交付率达到 99.2%,每天在排程上节省的工作时间多达四小时。
98%准时交付率,原为约 50%
“SkyPlanner 对维持我们的准时交付率起着决定性作用。”
Hannu Lahtinen,董事总经理
KJH-Comp · 钣金加工与合同制造
准时交付率从约 50% 提高到最高 98%,排程工作如今只需一名主管负责,而不再需要两名。
常见问题
SkyPlanner APS 如何连接 SAP S/4HANA?
SkyPlanner APS 与 SAP S/4HANA 双向集成。生产订单、工序、工艺路线、工作中心、库存和采购订单通过 SAP 已发布的 OData API 传入。SkyPlanner webhook 触发回传:工序日期通过 ScheduleProductionOrderOperation 回写,已记录的工时则作为 ProdnOrdConf2 报工提交。
集成由谁开发和维护?
SkyPlanner 团队会在上线准备期间,根据您的 S/4HANA 环境配置集成,并在上线后提供支持。集成费用会根据您的流程和需求提前报价。如果由您的 SAP 合作伙伴或内部开发人员基于 REST API 开发集成,则由他们负责,SkyPlanner 团队会在需要时提供协助。
工序日期如何回写?S/4HANA 会保留排程顺序吗?
使用 ScheduleProductionOrderOperation 动作(位于 API_PRODUCTION_ORDER_2_SRV 中)回写,采用正向排程模式和派工状态,并传入 SkyPlanner 的开始日期和时间。每个订单的所有工序按 SkyPlanner 中的顺序放入同一个变更集。时长基于与 S/4HANA 相同的工艺路线标准值计算,集成程序会重新读取每道工序并标记任何差异。
报工确认如何传入 S/4HANA?
操作员在 SkyPlanner 中记录工作后,会触发 webhook。随后,集成程序通过 API_PROD_ORDER_CONFIRMATION_2_SRV 提交报工,包含合格品数量、报废数量和作业时间。
是否支持 S/4HANA Cloud Public Edition?
支持。访问通过相关通信场景的通信安排进行。SkyPlanner 团队会在范围评估阶段,根据您的 Public Edition 版本匹配生产订单 API 版本。本地部署和 Private Edition 则通过激活 Gateway 服务实现访问。
我们已经有 PP/DS,还需要 SkyPlanner 吗?
对于未获得 PP/DS 许可或未配备相关人员的工厂和生产基地,SkyPlanner 可以满足其排程需求。它不需要启用 Customizing 开关,也不需要 liveCache 或优化器服务器,只需 SAP 端提供已发布的 OData API。Arcturus 引擎可在几秒内生成符合机器和人员实际产能约束的生产排程,生产发生变化时,Autopilot 会自动重新排程。