在上线准备阶段,SkyPlanner 团队会根据您的 Sage 200 配置设置集成,并在上线后提供支持。本指南面向希望参与集成,或自行基于 SkyPlanner 的 REST API 进行开发的合作伙伴和开发人员。该 API 提供完整的文档说明(API 参考文档)。
同一个 Sage 200 系统中的两个数据源
用于制造业务的 Sage 200 实例包含两个层面,集成会读取两者的数据。
1. 通过 Sage 200 REST API 获取业务和库存数据。Sage 表示,该 API “lets your application read and modify data in a Sage 200 site”(让您的应用程序能够读取和修改该实例中的数据)。这些数据涵盖客户、供应商、产品、销售与采购订单以及总账科目。Sage 200 Professional 参考文档(2025.02)将资源划分为 Cash Book、Commercials、Financials、General、Nominal、POP、Price Book、Purchases、Sales、SOP 和 Stock。与排程相关的资源如下:
| 资源 | 包含的数据 |
|---|---|
products | 编码、名称、库存单位、BOM 物料类型、标准成本 |
warehouse_holdings | quantity_in_stock、quantity_on_order、quantity_allocated_bom、free_stock_available、is_default_manufacturing_warehouse |
pop_orders、pop_order_lines | 未结采购订单、line_quantity、requested_delivery_dates |
sop_orders、sop_order_lines | 客户需求、requested_delivery_date、promised_delivery_date |
warehouses、units | 站点和计量单位 |
2. 从制造扩展模块获取生产工单。Sage 200 API 不提供生产工单、工序或资源端点。生产工单存储在 Sicon Works Order Processing、Cim200 或旧版 Sage 200 Manufacturing 模块中。集成通过扩展模块支持的方式读取生产工单、工序和资源,具体方式在范围评估阶段与您及您的 Sage 200 合作伙伴商定。
身份验证与访问
Sage 200 API “uses OAuth 2.0 with OpenID Connect”(使用上述 OAuth 版本并结合 OpenID Connect),采用授权码授权流程。登录通过 Sage ID 完成。
- 加入 Sage 200 API Developer Programme 并申请凭据。
- 将 Sage ID 映射到 Sage 200 用户,该用户须具备所用端点对应的公司及功能访问权限。
- 请求
offline_access权限范围,否则不会签发刷新令牌。 - 每次数据库请求都须发送
Authorization: Bearer <access_token>、X-Site和X-Company。两个 ID 均从/sites获取。
Sage 200 Professional 的基础 URL 为:https://api.columbus.sage.com/uk/sage200extra/accounts/v1。请求使用 GET、POST、PUT 和 DELETE 方法,以及 OData 查询选项 $filter、$select、$top、$skip、$orderby 和 $expand。
对于 Sage 200 Professional,API 由客户的支持服务商启用。根据 Sage 的检查清单,服务商需确认 “the API is enabled”(API 已启用),以及 “each required user has a Sage ID assigned.”(每位需要访问的用户均已分配 Sage ID)。Sage 200 Standard 默认启用 API。
集成设计需要考虑令牌的有效期。访问令牌的有效期为 8 小时,刷新令牌的有效期为 1 至 90 天,并且 “The refresh window is measured from the user’s initial sign-in, not from the most recent refresh.”(刷新窗口从用户首次登录时起算,而不是从最近一次刷新时起算)。Sage 明确指出,重新验证身份 “is unavoidable”(不可避免)。请安排在窗口结束前发出重新授权提醒。
SkyPlanner 端的 REST API 使用 API 令牌进行身份验证(SkyPlanner Settings > API),文档以 Swagger/OpenAPI 格式提供。集成教程将逐步介绍如何完成初次调用。
变更检测
Sage 200 API 参考文档中没有 webhook 或订阅资源,因此通过轮询获取变更。记录包含 date_time_created 和 date_time_updated 字段,每次轮询使用 $filter 按 date_time_updated 筛选,并通过 $top 和 $skip 分页。
每隔几分钟轮询一次生产工单,每小时轮询一次库存和采购订单行。排程发生变更时,SkyPlanner 会发送 webhook,因此回写由事件驱动。
数据映射
| Sage 200 对象(来源) | SkyPlanner 对象 | 方向 | 频率 |
|---|---|---|---|
products、units(API) | 产品和物料 | Sage 200 → SkyPlanner | 先加载,随后轮询 |
| BOM 组件(扩展模块或 BOM 模块) | 产品结构、子产品、各产品所需的物料 | Sage 200 → SkyPlanner | 发生变更时 |
| 人力和设备资源、资源组(扩展模块) | 工作中心、工作中心组、人员 | Sage 200 → SkyPlanner | 初始加载 |
| 资源可用性:停机、维护、休假(扩展模块) | 班次、缺勤 | Sage 200 → SkyPlanner | 每天 |
| 生产工单及其工序、各道工序的工时(扩展模块) | 订单和生产任务,含步骤、时长及交期 | Sage 200 → SkyPlanner | 每隔几分钟 |
sop_order_lines:requested_delivery_date、promised_delivery_date(API) | 客户交期 | Sage 200 → SkyPlanner | 轮询 |
warehouse_holdings:quantity_in_stock、free_stock_available(API) | 库存结存 | Sage 200 → SkyPlanner | 每小时 |
pop_order_lines:line_quantity、requested_delivery_dates(API) | 采购订单及预计交货日期 | Sage 200 → SkyPlanner | 每小时 |
| 生产工单中工序的计划开始时间、结束时间及资源 | 各道工序的计划开始时间、结束时间及工作中心 | SkyPlanner → Sage 200 | 发生变更时,通过 webhook |
| 工序工时登记(扩展模块) | 工时日志和操作员报工 | SkyPlanner → Sage 200 | 每次报工或每个班次 |
| SkyPlanner 约束数据 | 换型时间矩阵、作为有限资源的工具、备选设备和人员 | 在 SkyPlanner 中维护 | 上线准备阶段 |
集成模式
1. 初始加载主数据。先通过 API 获取产品和单位,再从扩展模块获取资源、资源组和 BOM 工序。由三台相同设备组成的资源组,可以建模为一个工作中心组,也可以建模为三个工作中心。
2. 订单同步。从扩展模块读取未结生产工单及其工序,并通过 API 读取未结的 pop_order_lines 和 warehouse_holdings。排程时会同时检查现有库存和待到货的采购物料。MRP 继续在 Sage 200 中提出生产工单建议,SkyPlanner 则对您创建的工单进行排程。
3. 排程回写。对于引擎安排或调整的每道工序,SkyPlanner 会将计划开始时间、结束时间和资源回写到生产工单。数量、分配和成本核算仍由扩展模块自行管理。
4. 车间报工。操作员使用 SkyPlanner Mobile Confirmations 或 Production Timer 记录作业,工时日志会使排程保持最新。记录的工时会回写并登记到生产工单的相应工序上,让 Sage 200 能够按实际工时核算成本。
如果您的工厂已经使用 Sicon Shop Floor Data Capture 或 Cim200 Shop Floor Data Capture 登记工时,请选定一个登记渠道。
5. 数据归属和冲突处理规则。请在上线前以书面形式明确:
| 数据 | 主管系统 |
|---|---|
| 产品、BOM、生产工单数量、物料分配、成本 | Sage 200 及其扩展模块 |
| 工序顺序、开始和结束时间、工作中心分配 | SkyPlanner |
| 换型准备时间矩阵、工具和操作人员要求、替代资源 | SkyPlanner |
| 工时登记 | Sage 200,工时记录由 SkyPlanner 提供 |
冲突主要来自产能图。如果计划员继续在 Sicon Rough Cut Capacity Planning 或 Cim200 Graphical Scheduler 中拖动生产工单或工序,就会出现两个系统同时管理日期的情况。应由 SkyPlanner 统一管理工序日期。启用 Autopilot 后,生产发生变化时,SkyPlanner 会自动重新排程。
典型项目步骤
实施通常在上线准备启动后的几周内完成。在此之前,可在 30 天免费试用期间,使用导出为 CSV 或 Excel 文件的未结生产工单验证排程。随后按以下步骤推进项目:
- 范围评估。确认扩展模块及版本、生产工单读取方式、回写方式、同步频率和工时登记渠道。
- API 访问。由支持服务商启用 Sage 200 API,将 Sage ID 映射到 Sage 200 用户,并设置公司和功能访问权限。
- 初始数据加载。加载产品、单位、资源、资源组、BOM 工序和可用性数据。
- 订单同步。通过轮询同步生产工单、采购订单行和库存,并设置重新授权提醒。
- 在 SkyPlanner 中设置约束。设置换型准备时间矩阵、工具、每项生产任务所需的操作人员数量,以及可替代的机器或人员。
- 排程回写。将工序计划日期回写至生产工单,并在此阶段加入工时登记。
- 并行测试与上线。将日期与当前计划进行对比,修正主数据,然后启用回写。
Sage 200 集成需要提前考虑哪些问题
- 新版不再支持旧模块。从 Sage 200 Professional 2025 R2 起,旧版 Sage 200 Manufacturing 模块已无法使用。在进行任何映射之前,应先确认上线时将使用哪套制造模块。
- 根据成本数据估算工序时间。Sicon MRP 根据 Sage 200 BOM 成本项估算人工和机器工时。应先与实际运行时间核对。
- 成本类别不匹配。Sage 提醒,BOM 工序与成本类别中的 Nominal、Overhead Nominal 和 Overhead Recovery % 必须一致,否则 “there will be cost discrepancies.”(将出现成本差异。)
- 刷新期限。最长 90 天的期限从首次登录开始计算。如果集成始终不重新授权,就会在每个季度的同一天停止运行。
- 多公司站点。一个站点可以包含多家公司,因此每次请求都必须发送正确的
X-Company。
Sage 200 集成由谁配置和支持
- SkyPlanner 团队在上线准备阶段完成配置,并在上线后提供支持。
- 您的 Sage 200 业务合作伙伴也可以参与。合作伙伴了解您使用的扩展模块,并负责在 Sage 200 Professional 中启用 API。
- 您自己的开发人员也可以在此基础上开发,使用同一套有文档说明的 REST API,并通过 API 令牌访问。只需 API 令牌即可开始,SkyPlanner 团队会在需要时提供协助。
连接完成后,Arcturus 引擎会根据 Sage 200 中的实时生产工单进行排程,并将计划日期写入生产工单的工序。SkyPlanner 每月 199 € 起,包含 5 个工作中心,按月计费。集成费用会根据您的流程和需求,与所选套餐一并提前报价,让您在开始前了解全部费用。请查看价格和功能,也可阅读 Sage 200 生产排程,了解它与 Sage 200 自带计划功能的对比。集成概览见 Sage 200 页面,其他 ERP 则收录在 ERP 集成中心。
制造企业对 SkyPlanner 的评价
2 小时每周节省的时间
“SkyPlanner 让我们的生产计划从依赖 Excel 表格,转向了实时生产优化。”
Kalle Kalliomäki,供应链专员
UTU · 配电盘和开关设备
每周用于生产计划的工作时间减少了 2 小时,新的任务队列只需几秒就能下达到产线。
数以 1,000 计自动完成排程的工单
“我们对生产的掌控今非昔比,对产能的认识也达到了全新的水平。”
Hannu Ryynänen,首席执行官
Mamec · 工业搅拌机、泵及高科技产品代工
数千张工单自动完成排程,全公司都能实时了解生产情况。
常见问题
Sage 200 API 是否包含生产工单?
不包含。Sage 200 Professional API 涵盖产品、库存、销售和采购订单、财务等数据,但不提供生产工单或工序资源。生产工单需从 Sicon Works Order Processing 或 Cim200 等制造扩展模块中,通过范围评估时约定的方式读取。
Sage 200 集成由谁实施?
SkyPlanner 团队会在初始接入期间,根据您的 Sage 200 配置完成双向集成,并在上线后提供支持。您的 Sage 200 业务合作伙伴负责启用 API,也可以参与项目。您自己的开发人员也可以参考 SkyPlanner 的 REST API 文档进行开发,只需 API 令牌即可开始。
Sage 200 能否实时推送变更?
Sage 200 API 不支持 Webhook。库存和采购订单通过 date_time_updated 字段进行轮询,生产工单则每隔几分钟从扩展模块中读取一次。在反向传输中,SkyPlanner 自身的 Webhook 会在排程发生变化时立即推送变更。