连接任何 ERP

SkyPlanner 的开放 REST API 可连接 ERP、MES 和运营系统,包括内部 ERP。您可以自行构建集成,也可以让我们的团队协助。

也可独立运行 — ERP 集成是可选的,非必需的。

讨论集成项目

连接 ERP 和 MES 系统,如

集成 / ERP / Xero

Xero 集成指南:使用 SkyPlanner APS 进行生产排程

本指南向 Xero 顾问、咨询顾问及 IT 团队介绍如何将 Xero 接入 SkyPlanner APS。SkyPlanner 通过 Xero Accounting API 和 Projects API 与 Xero 实现双向集成:

  • 导入联系人、启用库存跟踪的物料及其现有库存量、已接受的报价单,以及采购订单和到货日期。
  • 将计划完工日期以备注形式回写到各报价单的历史记录中。
  • 订单完成后,回写销售发票草稿,保留报价单的明细行和参考信息,并将报价单状态改为 Invoiced。
  • 将已记录的项目工时回写为 Xero Projects 工时记录。
  • Xero 的网络钩子通知联系人和发票的变更,SkyPlanner 的网络钩子则在排程发生变化时即时推送。
SkyPlanner APS 甘特时间轴,显示各工作中心的生产任务排程,下方为订单列表。

Xero 是会计软件,不存储物料清单、工艺路线、机器或生产订单。工作中心、工序、班次和准备时间均在 SkyPlanner 中维护。SkyPlanner 团队会在实施导入阶段为您的 Xero 组织配置集成,并在上线后提供支持。本指南面向希望参与集成的顾问和开发人员,也适用于希望参照 SkyPlanner 的 REST API 文档(API 参考文档)自行开发的读者。

Xero Accounting API

Xero 是一款多租户云产品,所有组织使用同一套 API。Accounting API 是 REST API,地址为 https://api.xero.com/api.xro/2.0/,支持 JSON 或 XML。每次调用都通过 Xero-tenant-id 请求头指定组织。(来源)

排程所需的端点:

  • 主数据:/Contacts(客户和供应商)、/Items(Code、IsTrackedAsInventory、QuantityOnHand)。
  • 需求:/Quotes(Status 为 ACCEPTED,含 LineItems);对于先开票再生产的车间,还需使用 Type 为 ACCREC 的 /Invoices。
  • 供应:/PurchaseOrders(DeliveryDate、ExpectedArrivalDate,以及含 ItemCode 的 LineItems)。
  • 回写:/Quotes/{QuoteID}/History、/Invoices、/Quotes,以及 Projects API 的 https://api.xero.com/projects.xro/2.0/projects/{projectId}/time。

所有列表端点都支持 If-Modified-Since 请求头,因此每次同步只读取发生变更的数据。创建和更新操作均采用批量方式。Xero 不提供物料清单、工艺路线或生产订单端点。

身份验证、授权范围与调用限制

Xero 使用 OAuth 2.0。Xero 管理员只需登录一次,授权应用并选择组织。应用会请求 offline_access,以便通过刷新令牌保持连接。(来源)

Xero 正在用细粒度授权范围替代宽泛的授权范围,新应用均采用细粒度授权范围。排程集成需要以下权限:

  • accounting.invoices:用于报价单、发票、采购订单和物料
  • accounting.contacts:用于客户和供应商
  • accounting.settings.read:用于物料设置
  • projects:用于工时记录
  • offline_access

Xero 对每个组织的并发调用数、每分钟和每日调用次数,以及每个应用的调用量设有限制。应用超限时,会收到 HTTP 429 响应及 Retry-After 响应头。每日调用配额和可连接的组织数量取决于应用的合作伙伴等级,两者均列于 Xero 的 API 限制页面。通过网络钩子、带 If-Modified-Since 的读取及批量写入,排程集成的调用量可保持在限额以内,并留有充足余量。

在 SkyPlanner 端,REST API 通过 Authorization-Token 请求头中的 API 令牌进行身份验证(SkyPlanner Settings > API),文档采用 Swagger/OpenAPI 格式。集成教程介绍了如何完成最初的几次调用。

网络钩子

“Webhooks allow you to subscribe to certain events that happen in Xero.”(网络钩子让您订阅 Xero 中发生的特定事件。)(来源)与排程相关的事件包括 Contact 和 Invoice,两者均支持 CREATE 和 UPDATE。

工作方式如下:

  • 每个应用只需一个网络钩子,即可覆盖所有已连接的组织。
  • 每次推送都包含一个 events 数组,其中带有资源 ID 和事件类型。接收端随后再读取对应资源。
  • 每次推送均通过 x-xero-signature 请求头携带签名,签名根据应用的网络钩子密钥生成。Xero 在开始推送前会发送 “Intent to receive”(接收意向)检查。
  • 推送失败时,Xero 会重试;如果持续失败,则会停用该网络钩子。因此,接收端应先快速响应,再处理实际工作。

报价单、物料和采购订单没有网络钩子事件。SkyPlanner 以较短间隔轮询,通过 If-Modified-Since 读取这些数据。在没有变更的情况下,每类实体只需一次调用。

数据映射

Xero 对象(端点)SkyPlanner 对象方向频率
Contact、IsCustomer(/Contacts)Customer(external_identifier、delivery_priority)Xero → SkyPlanner首次加载,之后由网络钩子触发
Item,包括启用和未启用库存跟踪的物料,含 QuantityOnHand(/Items)产品、物料及库存Xero → SkyPlanner首次加载,之后通过 If-Modified-Since 读取
Quote,Status 为 ACCEPTED,含 LineItems(/Quotes)Order(external_order_number、delivery_date),每个明细行对应生产任务Xero → SkyPlanner通过 If-Modified-Since 轮询
Invoice,Type 为 ACCREC(适用于先开票再生产的车间)(/Invoices)Order 和生产任务Xero → SkyPlanner通过网络钩子实时同步
PurchaseOrder,含 ExpectedArrivalDate 或 DeliveryDate(/PurchaseOrders)待到货物料(estimated_delivery_date)Xero → SkyPlanner通过 If-Modified-Since 轮询
报价单历史备注(PUT /Quotes/{QuoteID}/History)计划完工日期SkyPlanner → Xero排程变更时
Invoice,Type 为 ACCREC,Status 为 DRAFT,Reference = 报价单号(POST /Invoices)已完成的订单SkyPlanner → Xero订单完成时
Quote 的 Status 设为 INVOICED(POST /Quotes)已完成的订单SkyPlanner → Xero发票创建时
Projects 工时记录(POST /projects/{projectId}/time)Mobile Confirmations、工时日志SkyPlanner → Xero工作记录提交时
Xero 中无对应数据工作中心、工序、班次、缺勤、准备时间矩阵、工具、操作人员数量、替代工作中心在 SkyPlanner 中维护在实施导入阶段配置

集成方式

1. 首次加载主数据。先分页读取联系人和物料,再读取未结采购订单及已接受的报价单。在 SkyPlanner 中创建客户,以 Xero ContactID 作为 external_identifier;创建产品和物料时,以物料编码作为键。然后建立 Xero 中没有的数据:工作中心、各产品的工序、班次、休假及准备时间。导入工序最快的方式是使用 CSV 或 Excel。

2. 订单同步。通过 If-Modified-Since 轮询报价单。报价单状态变为 ACCEPTED 时,SkyPlanner 会创建订单,并将报价单号用作 external_order_number。delivery_date 取自车间用于记录承诺交期的字段,该映射在实施导入阶段配置。每个明细行会按产品工序生成生产任务。采购订单明细行则按预计到货日期形成待到货物料,生产任务因此会等待物料到货。每晚完整读取未结报价单和采购订单,以补齐遗漏的数据。

3. 回写排程和完工结果。通过三次调用将结果写入 Xero:

  • PUT /Quotes/{QuoteID}/History 添加一条含计划完工日期的备注。已接受的报价单只允许修改联系人和备注,因此日期存放在历史备注中。(来源)
  • 订单完成时,POST /Invoices 创建销售发票,将 Type 设为 ACCREC、Status 设为 DRAFT,沿用报价单的联系人和明细行,并将报价单号用作 Reference。记账人员随后在 Xero 中审核并发送发票。
  • 通过 POST /Quotes 提交 QuoteID 及 Status INVOICED,关闭报价单。Accounting API 允许将状态从 Accepted 更改为 Invoiced。

4. 车间报工与项目工时。操作人员使用 SkyPlanner Mobile Confirmations、Production Timer 或 Quick Log Mode 记录工作。进度会立即更新到排程中,Autopilot 随即重新安排剩余工作。对于项目工作,SkyPlanner 会将工时作为工时记录提交到对应项目任务,记录中包含 Xero 用户、日期和时长。(来源)

5. 数据归属与冲突处理规则。上线前应将规则明确记录下来:

数据归属系统
联系人、物料、价格、报价单、采购订单、发票、会计数据Xero
工作中心、工序、班次、缺勤、准备时间矩阵、工具、替代资源SkyPlanner
生产任务顺序、开始和结束时间、各生产任务使用的工作中心SkyPlanner
报价单上记录计划完工日期的备注归 SkyPlanner 管理,写入 Xero
已完工订单的发票草稿、项目工时由 SkyPlanner 创建,审批后由 Xero 管理

典型项目步骤

实施通常在上线准备开始后的几周内完成。在此之前,您可以从 Xero 导出包含联系人、产品和未结报价单的 CSV 文件,用自己的数据进行 30 天免费试用。

项目本身包括以下步骤:

  1. 连接。由 Xero 管理员授权 SkyPlanner,并选择组织。
  2. 需求对象。商定是以已接受的报价单还是销售发票触发生产。
  3. 映射。确定映射表、物料编码、发票会计科目、默认税务设置,以及数据归属规则。
  4. 初始导入。导入联系人、物料、未结采购订单和已接受的报价单。
  5. 生产模型。在 SkyPlanner 中设置工作中心、各产品的工序、班次、准备时间矩阵、工具和操作人员数量。
  6. 同步。联系人和发票通过 Webhooks 同步;报价单、物料和采购订单通过 If-Modified-Since 轮询同步,并在每晚进行数据核对。
  7. 回写。先回写报价单备注,再回写发票草稿和报价单状态,最后在有需要时回写项目工时。
  8. 并行测试与上线。将 SkyPlanner 中的日期与当前计划进行比较,请记账人员检查首批发票草稿,然后启用回写。

Xero 集成中需要提前规划的事项

  • Xero 中没有生产对象。各产品的工序应保存在 SkyPlanner 中,并以 Xero 物料编码关联。物料编码应保持稳定。
  • 报价单不支持 webhook。使用 If-Modified-Since 进行短周期轮询,同时遵守每分钟和每日的调用限额。
  • 报价单接受后会锁定。接受后只能更改联系人信息和备注,因此承诺日期仅在接受时读取一次,计划日期则以历史备注的形式写入。
  • 库存随销售发票和采购账单变动。对于跟踪库存的物料,Xero 通过销售发票、采购账单和贷项通知单调整现有库存数量。请与记账人员商定成品和已耗用物料的核算方式。
  • 项目工时需要关联 Xero 用户。每条工时记录都归属于一个 Xero 用户。请确定哪些操作人员需要向 Xero Projects 提交工时,其余人员的工时则保留在 SkyPlanner 中。
  • 细粒度权限范围。应从一开始就申请细粒度权限范围,因为宽泛的权限范围正在逐步停用。
  • 应用等级。合作伙伴等级决定了应用可连接的组织数量和每日调用次数。请根据工厂数量规划所需等级。

Xero 集成:由谁配置和提供支持

集成工作涵盖物料、报价单、采购订单,以及完工后如何进入开票流程。同时还需补充 Xero 中没有的数据:工作中心、工序、班次、准备时间矩阵、工具、操作人员数量和替代资源。

  1. SkyPlanner 团队在上线准备期间完成配置,并在上线后提供支持。每家工厂在 Xero 中设置物料、报价单和库存的方式各不相同,配置时需要用到这些实际经验。
  2. 您的 Xero 顾问或集成合作伙伴也可以构建集成。SkyPlanner 提供 REST API、Swagger/OpenAPI 文档和 webhooks。
  3. 您自己的开发人员也可以基于这些接口开发,使用 API 令牌即可。只需一个 API 令牌便可开始,SkyPlanner 团队会在需要时提供协助。采购订单以及产品与物料 API 等产品文档,均可在 SkyPlanner 文档中查阅。

SkyPlanner 每月 199 € 起,包含 5 个工作中心,按月计费。我们会根据您的流程和需求,将集成费用与订阅方案一并提前报价,让您在开始前了解全部费用。请查看价格和功能,或阅读Xero 是否具备生产排程功能?,了解 Xero 本身的功能范围。集成概览见 Xero 页面,其他系统则列于全部集成页面。

制造企业对 SkyPlanner 的评价

UTU 供应链专员 Kalle Kalliomäki 在乌尔维拉的配电板生产车间

2 小时每周节省的时间

“SkyPlanner 让我们的生产计划从 Excel 电子表格迈向了实时生产优化。”

Kalle Kalliomäki,供应链专员
UTU · 配电板与开关设备

生产计划工作每周节省 2 小时,新的任务队列只需几秒即可下达到产线。

阅读 UTU 的评价

Laboratory & Allied 位于内罗毕的制药厂内,身穿洁净服的操作人员在装瓶线上工作

+90%生产效率提升

“生产效率提高了 90%。”

Abdul Rucyinga,IT 负责人
Laboratory & Allied · 制药

生产效率提高了 90%,为所有工作中心制定覆盖三个月的优化计划,用时不到 30 分钟。

阅读 Laboratory & Allied 的评价

减少因缺料造成的停工

“SkyPlanner 为我们带来的价值,在于它是一款日常工作中真正好用的工具,尤其适合确定交货日期。”

Tommi Männistö,生产计划经理
Eskomatic · 机械加工服务

自动负荷排程让交货日期更加准确,因缺料造成的生产停工也大幅减少。

阅读 Eskomatic 的评价

Mamec 首席执行官 Hannu Ryynänen 在公司位于洛赫亚的生产车间

1,000s张工单自动完成排程

“我们对生产的掌控方式变了,对产能的了解也达到了全新的水平。”

Hannu Ryynänen,首席执行官
Mamec · 工业搅拌机、泵及高科技代工制造

数千张工单自动完成排程,整个组织都能实时查看生产情况。

阅读 Mamec 的评价

常见问题

Xero 是否提供生产数据 API?

Xero 提供 Accounting API 和 Projects API,两者均为采用 OAuth 2.0 的 REST 接口,涵盖联系人、物料、报价单、发票、采购订单和工时记录。工作中心和工序等生产数据则保存在 SkyPlanner 中。

SkyPlanner 能否向 Xero 回写数据?

可以。SkyPlanner 会将计划完工日期添加到每张报价单的历史记录中,在订单完工时根据报价单明细创建销售发票草稿,将报价单状态改为 Invoiced,并提交项目工时记录。

Xero 会实时推送变更吗?

Xero 的 webhooks 支持联系人和发票。SkyPlanner 通过 If-Modified-Since 读取自上次同步以来发生变更的报价单、物料和采购订单,并在每晚进行数据核对,因此刚获客户接受的报价单能很快进入排程。

Xero 中没有物料清单、工艺路线和机器数据,这些数据从哪里来?

这些数据由 SkyPlanner 提供。您只需设置一次工作中心、各产品的工序、班次和准备时间,可手动设置,也可通过 CSV 或 Excel 导入。每个产品都关联 Xero 物料编码,因此刚获客户接受的报价单会自动排程。

能否在构建集成前试用 SkyPlanner?

可以。30 天免费试用最多支持 20 个工作中心,可从 Xero 导入 CSV,无需信用卡。您可以开始试用,或联系销售以确定集成范围。