集成 / ERP / SAP Business ByDesign
SAP Business ByDesign 集成指南:使用 SkyPlanner APS 进行生产排程
本 SAP Business ByDesign 集成指南面向合作伙伴和 IT 团队,介绍如何将 ByDesign 接入 SkyPlanner APS。SkyPlanner 通过 SAP 正式发布的 Web 服务与 ByDesign 实现双向集成:
- 导入已下达的生产订单及其工序、Production Models、Bills of Material 和 Bills of Operations,以及设备与人力资源、物料、库存和采购订单。
- 将每个生产订单的计划开始时间,以及每道工序的主要资源回写至 ByDesign。
- 可将确认数量、报废数量和已完成的任务回写至生产批次。
- 排程发生变化时,SkyPlanner webhook 会即时推送。
在上线准备期间,SkyPlanner 团队会通过 REST API 配置与您 ByDesign 租户的集成,并在上线后继续提供支持。本指南面向希望参与集成,或自行基于 SkyPlanner 已提供文档的 REST API(API 参考)进行开发的合作伙伴和开发人员。
SAP ByDesign 的集成接口
ByDesign 在Web 服务 API 列表中,按版本列出正式发布的 A2X SOAP Web 服务。排程集成会用到以下服务:
- Manage Production Orders (ManageProductionOrderIn)。READ_PROD_ORDER 返回要求的、最早和最晚的开始与结束时间,资源及其计划时长和已执行时长,以及优先级、执行状态和排程状态。MAINTAIN_BUNDLE_V2 用于更新 EarliestStartPeriod 或 LatestEndPeriod,以及工序的 MainResourceID(SAP 帮助)。
- Manage Production Lots (ManageProductionLotsIn)。MaintainBundle 用于创建或更新生产任务:记录每个报告点的确认数量、报废数量和确认完成标识;完成任务并记录执行员工及执行时间;记录资源利用情况(SAP 帮助)。
- 查询服务。包括 Query Production Orders、Query Production Lots、Query Production Model、Query Production Bill of Materials、Query Production Bill of Operations(也支持按资源查询)、Query Materials、Read Equipment Resources、Query Labour Resource、Query Purchase Orders、Query Identified Stocks 和 Determine Availability of Products。
- OData。支持针对业务对象的自定义 OData 服务,也支持面向数据源和分析报表的 OData。SAP 表示,”companies are fully empowered to decide which business objects”(企业完全有权决定哪些业务对象)对外开放(SAP 集成场景)。
读取数据使用 Query 服务或 OData;所有写入操作均使用上述两个 Manage 服务。
身份验证与许可
在 ByDesign 端,为 SkyPlanner 创建通信系统,并为所用服务创建通信安排。每个通信安排都有各自的技术用户。SAP 安全指南列出的应用集成身份验证方式为 “user ID plus password, and the X.509 client certificate”(用户 ID 加密码,以及该客户端证书)(安全指南)。OData 可配置 OAuth 2.0。各服务的 WSDL 可从通信安排或 Service Explorer 下载。
在 SkyPlanner 端,每次调用都需在 Authorization-Token 请求头中携带 API 令牌。您可以在 SkyPlanner 的“Settings > API”中创建令牌。有了 API 令牌,即可开始开发。
事件与轮询
每次排程变更时,SkyPlanner 都会发送 webhook,因此计划一经调整,就会回写至 ByDesign。
要获取 ByDesign 中的变更,请轮询 Query 服务。每隔几分钟读取已下达的生产订单和生产批次,物料、库存及采购订单则以较低频率读取。查询结果通过 QueryHitsMaximumNumberValue 和 LastReturnedObjectID 分页;默认每页条数请参阅 SAP 的 Web 服务页面。
数据映射
| ByDesign 对象(接口) | SkyPlanner 对象 | 方向 | 频率 |
|---|---|---|---|
| 物料(Query Materials) | 产品与物料 | ByDesign → SkyPlanner | 首次加载,之后轮询 |
| Production Bill of Material(Query Production Bill of Materials) | 产品结构、各产品所需物料 | ByDesign → SkyPlanner | 首次加载,之后在变更时同步 |
| Production Bill of Operations:工序及 Setup、Produce、Tear down 活动(Query Production Bill of Operations) | 工序及其加工、准备和收尾时长 | ByDesign → SkyPlanner | 首次加载,之后在变更时同步 |
| Production Model(Query Production Model) | 各工厂的产品工艺路线 | ByDesign → SkyPlanner | 首次加载,之后在变更时同步 |
| 设备资源及资源组(Read Equipment Resources) | 工作中心、工作中心组、工装 | ByDesign → SkyPlanner | 首次加载,之后很少更新 |
| 人力资源、工作时间(Query Labour Resource) | 人员与班次 | ByDesign → SkyPlanner | 每日同步,或在 SkyPlanner 中自行维护班次 |
| 已下达的生产订单及工序(Query Production Orders、READ_PROD_ORDER) | 订单与生产任务,含交期和物料需求 | ByDesign → SkyPlanner | 每隔几分钟轮询 |
| 生产批次及任务(Query Production Lots) | 生产任务进度 | ByDesign → SkyPlanner | 每隔几分钟轮询 |
| 标识库存、产品可用性(Query Identified Stocks、Determine Availability of Products) | 库存余额 | ByDesign → SkyPlanner | 每小时或运行排程时轮询 |
| 采购订单(Query Purchase Orders) | 采购订单、按交货日期列出的待到货物料 | ByDesign → SkyPlanner | 每小时或运行排程时轮询 |
| EarliestStartPeriod、工序的 MainResourceID(Manage Production Orders、MAINTAIN_BUNDLE_V2) | 计划开始时间、分配的工作中心 | SkyPlanner → ByDesign | 排程变更时,通过 SkyPlanner webhook 同步 |
| 确认数量、报废数量、任务完成(Manage Production Lots、MaintainBundle) | 工时记录与操作员报工 | SkyPlanner → ByDesign | 如启用,按每次报工或每个班次同步 |
| ByDesign 中无对应数据 | 准备时间矩阵、多人操作要求、备选设备和人员 | 在 SkyPlanner 中维护 | 在上线准备期间配置 |
集成模式
1. 首次加载主数据。读取物料、Production Models、Bills of Material 和 Bills of Operations,以及设备与人力资源。资源映射需要明确规划:包含四台设备的资源组,可映射为一个工作中心组,也可映射为四个工作中心。属于工装的设备资源,在 SkyPlanner 中映射为有数量限制的工装。
2. 同步生产订单。读取已下达的生产订单及其工序和物料,同时读取未结采购订单。SkyPlanner 将已订购物料视为在采购订单交货日期可用,并在采购订单标记为 Delivered 时更新库存。生产建议在转为生产订单之前,仍保留在 ByDesign Supply Planning 中。
3. 回写排程。当引擎安排订单或调整订单排程时,SkyPlanner webhook 会触发 Manage Production Orders 的 MAINTAIN_BUNDLE_V2,设置 EarliestStartPeriod,以及 SkyPlanner 所选工序的 MainResourceID。
4. 车间报工。操作员通过 SkyPlanner Mobile Confirmations 或 Production Timer 记录作业,工时记录会让排程保持更新。您可以选择是否回写实际执行数据。如选择回写,Manage Production Lots 的 MaintainBundle 会写入确认数量、报废数量、已完成的任务及其执行员工。如不回写,则仍按原方式在 ByDesign 中报工。
5. 数据维护权与冲突处理规则。上线前应将以下规则明确记录下来:
| 数据 | 负责维护的系统 |
|---|---|
| 物料、Production Models、数量、订单及批次状态 | ByDesign |
| 工序顺序、开始与结束时间、资源分配 | SkyPlanner |
| 准备时间矩阵、工具和操作员要求、备选资源 | SkyPlanner |
| 班次和非工作日 | 由一个系统统一维护,在范围评估时选定 |
| 报工、货物移动、成本核算 | 由 ByDesign 管理,可直接录入或从 SkyPlanner 工时记录回写 |
订单日期只应由一个系统写入。不要对 SkyPlanner 负责排程的资源运行 Load Leveling,并确认计划运行不会调整由 SkyPlanner 管理的已下达订单。
典型项目步骤
实施通常在上线准备启动后的数周内完成。在此之前,可将 ByDesign 中的资源、Bills of Operations 和未结生产订单导出为 CSV 或 Excel,在 30 天免费试用期间验证排程。
- 确定映射。确定映射表、数据归属规则、同步频率,以及是否回写报工数据。
- 配置 ByDesign 访问。创建通信系统和通信安排,并下载 WSDL。先在 ByDesign 测试租户中测试。
- 首次加载。加载物料、Production Models、Bills of Material 和 Bills of Operations,以及资源和工作时间。
- 同步生产订单与采购订单。通过轮询同步,支持分页、筛选和重试。
- 在 SkyPlanner 中设置约束。配置准备时间矩阵、工具、每项生产任务所需的操作人员数量,以及可替代的设备或人员。
- 回写排程。由 SkyPlanner webhook 触发 MAINTAIN_BUNDLE_V2 调用;如选择回写报工数据,还需回写批次报工数据。
- 并行测试。让 SkyPlanner 与现有计划并行运行,比较日期并修正主数据。
- 上线。数据核对一致后,启用回写。
SAP ByDesign 集成需要提前考虑哪些问题
- 每次调用只更新一个日期。 “The EarliestStartPeriod and the LatestEndPeriod cannot be updated together.”(EarliestStartPeriod 和 LatestEndPeriod 不能同时更新。)回写时以开始日期为基准。
- 不支持锁定。 A2X 服务无状态,因此 SAP 明确说明无法实施事务锁或逻辑锁。每次写入前都要重新读取订单,并处理冲突。
- 完成标记不可撤销。 “Confirmation Finished Indicator cannot be unchecked once it is set.”(Confirmation Finished Indicator 一旦勾选就无法取消。)只有在操作员关闭生产任务后,才提交完成状态。
- 主要资源与附加资源。 ByDesign 排程会考虑主要资源。将附加资源中的操作员和工具在 SkyPlanner 中建模为有限产能资源,让排程也检查这些资源的可用情况。
- 准备与拆卸。 Bills of Operations 将准备和拆卸记录为活动。将随生产顺序而变化的换型时间移入准备时间矩阵。
谁负责 SAP ByDesign 集成的配置与支持
- SkyPlanner 团队在实施阶段负责配置,并在上线后提供支持,范围涵盖双方约定的 Web 服务和 OData 查询。每家企业使用 ByDesign 的方式都不同,配置时会充分运用对这些差异的了解。
- 您的 SAP ByDesign 合作伙伴也可以参与。合作伙伴熟悉您的租户、范围评估和扩展,可以与 SkyPlanner 团队共同配置通信安排。
- 您的开发人员也可以在此基础上开发,调用 SkyPlanner 的 REST API,并在
Authorization-Token请求头中传入 API 令牌。SkyPlanner 团队会在需要时提供协助。集成说明请参阅 SkyPlanner 集成文档。
SkyPlanner 每月 199 € 起,包含 5 个工作中心,按月计费。集成费用会根据您的流程和需求,与订阅方案一并提前报价。请参阅价格、SAP ByDesign 生产排程、SAP Business ByDesign 页面和 ERP 集成中心。其他 SAP 系统有各自的指南:SAP Business One 和 SAP S/4HANA。
制造企业对 SkyPlanner 的评价
2 小时每周节省的时间
“SkyPlanner 让我们的生产计划从依赖 Excel 表格转向了实时生产优化。”
Kalle Kalliomäki,供应链专员
UTU · 配电盘与开关设备
生产计划工作每周节省 2 小时,新任务队列只需几秒即可下达到产线。
+90%生产效率提升
“生产效率提高了 90%。”
Abdul Rucyinga,IT 负责人
Laboratory & Allied · 制药
生产效率提高了 90%,为所有工作中心制定覆盖三个月的优化计划,用时不到 30 分钟。
100%自 2021 年以来的准时交付率
“SkyPlanner 让我们看清产能状况,也让计划变得可预测。”
Dan Berglund,COO/CFO
Opes Corporation · 化工与食品制造
自 2021 年开始使用 SkyPlanner 以来,准时交付率始终保持在 100%。
减少因缺料造成的停工
“SkyPlanner 给我们带来的价值在于,它是日常工作中真正好用的工具,尤其是在确定交期时。”
Tommi Männistö,生产计划经理
Eskomatic · 受托机械加工
自动负荷排程让交期更加准确,因缺料造成的生产停工也大幅减少。
常见问题
SkyPlanner 使用哪些 SAP ByDesign API?
使用 SAP 已发布的 A2X Web 服务。读取数据时使用 Query 服务,例如 Query Production Orders 和 Query Purchase Orders,也可使用自定义 OData。写入数据时使用 Manage Production Orders 和 Manage Production Lots。
SkyPlanner 会向 ByDesign 回写哪些数据?
回写每张生产订单的 EarliestStartPeriod 和工序的 MainResourceID。您也可以选择将已确认数量、报废数量和已完成的生产任务提交到生产批次。
ByDesign 会向 SkyPlanner 发送事件吗?
SkyPlanner 每隔几分钟轮询 ByDesign 的 Query 服务,获取订单和批次数据。SkyPlanner 自身则会在每次排程变更时发送 webhook,触发回写。
SkyPlanner 如何通过 ByDesign 的身份验证?
按照 SAP 安全指南的说明,通过通信系统和通信安排,使用技术用户进行身份验证。SkyPlanner 自身的 API 则使用 Authorization-Token 请求头中的 API 令牌。
生产建议会传入 SkyPlanner 吗?
SkyPlanner 对已下达的生产订单进行排程。生产建议在转为生产订单之前,会保留在 ByDesign Supply Planning 中。
谁负责构建集成?
SkyPlanner 团队在实施阶段负责配置,并在上线后提供支持。您的 SAP ByDesign 合作伙伴或内部开发人员也可以使用 API 令牌,基于 SkyPlanner 的 REST API 进行开发。