Fulcrum 集成指南:使用 SkyPlanner APS 进行生产排程
本指南面向顾问和 IT 团队,介绍如何将 Fulcrum(Fulcrum Pro)连接至 SkyPlanner APS。SkyPlanner 通过 Fulcrum Public API 与 Fulcrum 实现双向集成:
- 导入生产任务及其待生产的物品和工序,以及物料工艺路线、工作中心、设备、部门班次、停机时段、库存和采购订单。
- 将计划开始时间、计划完成时间和工作中心写入每项生产任务各工序的自定义字段。
- 将操作员工时和完工数量回传至 Fulcrum,分别记录为计时器数据和数量更新。
- 排程发生变化时,SkyPlanner webhook 会即时推送。
SkyPlanner 团队会在实施阶段根据您的 Fulcrum 配置完成集成,并在上线后继续提供支持。本指南面向希望参与集成,或希望参照 SkyPlanner 的 REST API 文档(API 参考文档)自行开发的顾问和开发人员。
Fulcrum Public API
Fulcrum 是一款多租户云产品,所有客户都使用相同的 API。开发者中心将其描述为一个公共 API,用于 “REST API calls directly into your Fulcrum site.”(直接向您的 Fulcrum 站点发起 REST API 调用)。
- 规范。OpenAPI “Fulcrum PublicAPI” v1,可从
https://api.fulcrumpro.com/swagger/v1/swagger.json下载。Fulcrum 建议根据该规范生成带类型定义的客户端。History 页面按日期列出每次变更。 - 主机。标准站点使用
https://api.fulcrumpro.com。ITAR 站点使用api.fulcrumpro.us;使用 ITAR 令牌访问 .com 主机会收到 401 响应。 - 调用方式。列表查询使用
POST .../list,在请求体中传入筛选条件,通过Skip和Take分页,并通过Sort.Field/Sort.Dir排序。许多对象支持 PUT,生产任务还支持 JSON Patch。
排程集成会使用以下端点:
| 业务范围 | 端点 |
|---|---|
| 物料与工艺路线 | /api/items, /api/items/{itemId}/routing, /routing/operations, /routing/input-items, /routing/input-materials |
| 车间配置 | /api/work-centers, /api/equipment, /api/operations, /api/department-shifts, /api/equipment-downtimes |
| 生产任务 | /api/jobs, /api/jobs/{jobId}/items-to-make/{itemToMakeId}/operations, /api/work-orders |
| 物料 | /api/inventory, /api/materials, /api/purchase-orders, /api/reporting/material-requirements/list |
| 车间 | /api/job-tracking-timers/start 和 /stop、/api/timers、.../operations/{operationId}/add-quantity-completed、.../complete |
Fulcrum 的集成页面直言:”Every system is a little bit different and requires some configuration.”(每个系统都有些不同,都需要进行一定的配置。)SkyPlanner 团队会在实施阶段承担这部分配置工作。
身份验证
Fulcrum 使用 Authorization 请求头中的 Bearer 令牌进行身份验证。”A public API token can be generated within your fulcrum site via Business Setup -> System Data -> Public Api.”(您可以在 Fulcrum 站点中,依次进入 Business Setup -> System Data -> Public Api,生成公共 API 令牌。)每个令牌都有名称、描述和到期日期。您可以按需创建任意数量的令牌,也可以通过删除令牌将其撤销。请为 SkyPlanner 集成分配专用令牌,并设置到期前提醒。
SkyPlanner 的 REST API 使用 Authorization-Token 请求头中的 API 令牌进行身份验证(SkyPlanner Settings > API),接口文档采用 Swagger/OpenAPI 格式。集成教程会引导您完成最初的几次调用。
事件与轮询
Fulcrum 支持由管理员配置 webhook。自 2026 年九月起,失败的 webhook 会暂停,并每天重新测试,不再无限重试。API History 列出了 PurchaseOrderUpdated、ItemUpdated 等事件。
集成按以下方式读取 Fulcrum 数据:
- 每隔几分钟轮询未完成的生产任务,筛选状态为
scheduled或inProgress,且满足hasIncompleteOperations: true的任务。这是 Fulcrum 官方提供的筛选条件,可使查询结果与其排程页面一致。 - 每次运行排程前读取采购订单和库存,或在已配置
PurchaseOrderUpdatedwebhook 的情况下,于收到该事件时读取。 - 物料、工艺路线、设备和班次在发生变更时读取,或每晚读取。
在反向传输中,SkyPlanner 自身的 webhook 会在排程变更时立即推送,因此回写采用事件驱动方式。
数据映射
| Fulcrum 对象(端点) | SkyPlanner 对象 | 传输方向 | 频率 |
|---|---|---|---|
Item、Materials(/api/items、/api/materials) | 产品与物料 | Fulcrum → SkyPlanner | 首次加载,此后每晚同步 |
工艺路线的投入项和物料(/routing/input-items、/input-materials) | 产品结构、子产品、各产品所需物料 | Fulcrum → SkyPlanner | 首次加载,之后在数据变更时同步 |
工艺路线中的工序(/routing/operations):setupTime、laborTime、machineTime(固定时长或单位用时)、selectedEquipmentIds | 工序、准备时间、持续时间、可用工作中心 | Fulcrum → SkyPlanner | 首次加载,之后在数据变更时同步 |
Work Center(/api/work-centers) | 工作中心组 | Fulcrum → SkyPlanner | 首次加载,之后很少同步 |
Equipment(/api/equipment):unlimitedCapacity、canRunUnattended、status | 工作中心、批次生产任务、无人值守运行 | Fulcrum → SkyPlanner | 首次加载,之后每天同步状态 |
Department Shifts(/api/department-shifts)、Equipment Downtimes | 班次和缺勤 | Fulcrum → SkyPlanner | 首次加载,之后每天同步 |
Job 及其工序(/api/jobs、.../items-to-make/{id}/operations):priority、productionDueDate、earliestStartDate、预估值 | 订单和生产任务 | Fulcrum → SkyPlanner | 每隔几分钟轮询一次 |
| Inventory、含 Expected Receive 日期的 Purchase Orders | 库存和在途物料 | Fulcrum → SkyPlanner | 每次运行排程前 |
Job 工序的 customFields(POST .../operations/{operationId}) | 计划开始时间、计划结束时间、工作中心 | SkyPlanner → Fulcrum | 排程变更时,通过 SkyPlanner webhook 同步 |
Job 的 customFields(PUT /api/jobs/{jobId}/custom-fields) | 生产任务的计划结束时间 | SkyPlanner → Fulcrum | 排程变更时 |
生产任务跟踪计时器、/api/timers、add-quantity-completed、complete | 工时记录、完工数量和报废数量 | SkyPlanner → Fulcrum | 操作人员记录作业时 |
| Fulcrum 中不包含 | 具体操作人员及其姓名、准备时间矩阵、数量有限的工装、备选工作中心 | 在 SkyPlanner 中维护 | 在上线实施期间配置 |
集成模式
1. 首次加载主数据。先拉取物品、物料、工艺路线、工作中心和设备,再拉取部门班次和停机时间。每个 Fulcrum 工作中心都映射为一个 SkyPlanner 工作中心组,其下的设备成为组内成员。工艺路线中每道工序选定的设备,则成为该工序的可用工作中心。烘箱、喷漆房等设为 Unlimited Capacity 的设备映射为批次生产任务。
2. 订单同步。读取未结生产任务及其待制物品和工序,同时读取未结采购订单和库存。SkyPlanner 将已订购的物料视为在采购订单交货日可用,并在采购订单标记为 Delivered 时更新库存。每次重新排程时,都会检查库存和在途采购物料。
3. 排程结果回写。Fulcrum 自行计算 scheduledStartUtc、scheduledEndUtc 和 scheduledEquipmentId,并以只读形式返回这些字段。工序更新接口接受 customFields。SkyPlanner 将计划开始时间、计划结束时间和工作中心写入每道生产任务工序的自定义字段,同时将计划结束时间写入生产任务的自定义字段。销售和采购人员可在 Fulcrum 的生产任务中查看 SkyPlanner 的计划日期。
4. 车间报工。操作人员通过 Mobile Confirmations、Production Timer 或 Quick Log Mode 在 SkyPlanner 中记录作业。SkyPlanner 通过 /api/job-tracking-timers/start 和 /stop 将工时提交到 Fulcrum,也可通过 /api/timers 提交完整的已完成工时记录。完工数量通过 add-quantity-completed 提交,包含报废数量的最终数量通过 complete 提交。Fulcrum 中的生产任务成本核算保持实时更新。
5. 数据归属与冲突处理规则。Fulcrum 的排程器“dictates the order of operations in Job Tracking.”(决定 Job Tracking 中的工序顺序。)因此,每道工序只能选择一个派工渠道:SkyPlanner 的操作人员任务队列或 Fulcrum Job Tracking。上线前应明确记录以下规则:
| 数据 | 管理系统 |
|---|---|
| 物料、工艺路线、估算、库存、采购、成本核算 | Fulcrum |
| 工序顺序、开始和结束时间、工作中心分配 | SkyPlanner |
| 操作人员、准备时间矩阵、工具、替代资源 | SkyPlanner |
| 班次和停机时间 | 由一个系统管理,在范围评估时确定 |
| 已记录的工时和完工数量 | SkyPlanner,并提交到 Fulcrum |
典型项目步骤
实施通常在上线准备工作启动后的数周内完成。在此之前,您可以在 30 天免费试用期间使用自己的数据进行测试。从 Fulcrum 表格中将物料、工艺路线和未完成的生产任务导出为 CSV,导入后验证排程。
项目本身包括以下内容:
- 令牌与范围。创建 Public API 令牌,并商定用于回写的自定义字段。
- 映射。确定映射表、数据归属规则和派工渠道。
- 初始数据导入。导入物料、材料、工艺路线、工作中心、设备、班次和停机时间。
- 订单与采购订单同步。通过增量轮询获取生产任务,并同步采购订单和库存。
- 在 SkyPlanner 中设置约束。配置操作人员及其班次、准备时间矩阵、工具和替代工作中心。
- 回写。写入生产任务工序和生产任务的自定义字段。
- 车间数据提交。将计时记录和数量提交到 Fulcrum。
- 并行测试与上线。让 SkyPlanner 与 Fulcrum 的排程并行运行,对比日期,修正主数据,然后切换派工渠道。
Fulcrum 集成需要提前考虑什么
- 人力体现在各班次的设备数量限制中。Fulcrum 中每个班次的 Max Equipment“is usually determined by how many people you have working in a certain area at that time.”(通常由当时在特定区域工作的人员数量决定。)具体操作人员及其班次在 SkyPlanner 中设置。人员姓名可从
/api/users的用户数据中获取。 - 排程落实到设备。Fulcrum 的工作中心由可相互替代的设备组成。请确保工艺路线中选定的设备准确无误,因为排程引擎会从这些备选设备中进行选择。
- 工单用于归集生产任务。一张工单会将多个生产任务的工序归为一组,例如套料加工。在组内某道工序上启动计时,实际启动的是工单计时器,计时范围覆盖该组中的所有生产任务工序。
- 计时记录限制。通过
/api/timers补录的工时记录“may not be in the future, older than 30 days, or longer than 7 days.”(不得记录未来的工时,也不得超出引文规定的补录期限或单条记录时长上限。)应在操作人员记录工时时及时提交。 - 时间格式各不相同。班次使用本地时间的 HHmm 值,停机时间和排程日期使用 UTC,工序预估时长则以秒为单位。
- 更新设备会替换整条记录。对设备发送 PUT 请求时,请求中未包含的字段都会被清空。SkyPlanner 只读取设备数据,从不写入。
- ITAR 站点。使用
.us主机和 ITAR 令牌。
Fulcrum 集成由谁配置和提供支持
这项工作包括映射您的部门、工作中心、设备和工艺路线,以及配置 Fulcrum 中没有记录的约束:具体操作人员、准备时间矩阵、工具和替代资源。
- SkyPlanner 团队在上线准备阶段完成配置,并在上线后提供支持。每家工厂使用 Fulcrum 的方式都不同,配置时需要把这些实际经验融入其中。
- 您的 Fulcrum 顾问或集成合作伙伴也可以开发集成。SkyPlanner 提供 REST API、Swagger/OpenAPI 文档和 webhooks。
- 您自己的开发人员也可以在此基础上开发。只需一个 API 令牌即可开始,SkyPlanner 团队会在需要时提供协助。采购订单、产品与材料 API 等产品文档均可在 SkyPlanner 文档中查阅。
SkyPlanner 每月 199 € 起,包含 5 个工作中心,按月计费。我们会根据您的流程和需求,将集成与所选方案一并提前报价,让您在开始前了解全部费用。您可以查看价格和功能,也可以在 Fulcrum 生产排程页面了解它与 Fulcrum 自带排程器的对比。总体介绍见 Fulcrum 页面,其他 ERP 则收录在 ERP 集成中心。
制造企业对 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%,如今排程只需一名主管负责,而不再需要两名。
常见问题
Fulcrum 有 API 吗?
有。Fulcrum Public API 是采用 OpenAPI v1 规范的 REST API。它使用在 Business Setup > System Data > Public Api 中生成的 Bearer 令牌进行身份验证。ITAR 站点使用单独的 .us 主机。
SkyPlanner 能将排程回写到 Fulcrum 吗?
可以。Fulcrum 自身的排程日期为只读,因此 SkyPlanner 会将计划开始时间、计划完成时间和工作中心写入每个生产任务下各道工序的自定义字段,并将计划完成时间写入生产任务。操作人员工时和完工数量则通过计时记录和数量更新回传。
Fulcrum 会实时推送变更吗?
Fulcrum 提供由管理员配置的 webhooks,支持 PurchaseOrderUpdated 等事件。系统每隔几分钟轮询一次未完成的生产任务,使用的筛选条件与 Fulcrum 排程页面相同。SkyPlanner 自身的 webhooks 会在排程变更发生时立即推送。
谁负责开发 Fulcrum 集成?
SkyPlanner 团队在上线准备阶段配置双向集成,并在上线后提供支持。您的 Fulcrum 顾问、集成合作伙伴或自己的开发人员,也可以根据 SkyPlanner 的 REST API 文档进行开发。