ProShop ERP 集成指南:使用 SkyPlanner APS 进行生产排程
本 ProShop 集成指南面向管理员、顾问和 IT 团队,介绍如何将 ProShop ERP 接入 SkyPlanner APS。SkyPlanner 通过 ProShop 自身的 API 与其双向集成:
- 导入 Work Orders 及其工序、Parts、Work Order BOM 记录、Work Cells、Users、Tools、Fixtures 和 Purchase Orders。
- 将计划开始和完成日期回写到工单。
- 您也可以选择将操作员工时回写到 ProShop Time Tracking。
- 排程发生变化时,SkyPlanner webhook 会即时推送。
SkyPlanner 团队会在实施导入阶段根据您的 ProShop 配置设置集成,并在上线后提供支持。本指南面向希望参与集成,或自行基于 SkyPlanner 的 REST API 进行开发的合作伙伴和开发人员;该 API 的说明见 API 参考文档。
ProShop 的集成接口
ProShop 为外部排程系统提供了两种接入方式,详见 ProShop API 开发文档:
- ProShop GraphQL API。 “ProShop provides a GraphQL API, available via HTTP(S).”(ProShop 提供可通过 HTTP(S) 访问的 GraphQL API。)它只有一个端点:每次调用都向
<proshop root>/api/graphql发送 HTTP POST 请求,JSON 请求体包含query、variables和operationName。每个模块都有用于获取单条记录的单数查询和用于获取列表的复数查询。列表通过pageSize(默认 20)和pageStart分页,返回records和totalRecords,并接受与各模块 Advanced Search 对应的filter和query参数。该 schema 支持内省。(ProShop API 简介) - Recently Updated Records API。 “A simple REST interface allows external integrations to request information between arbitrary points in time.”(外部集成可通过一个简单的 REST 接口请求任意时间段内的信息。)调用
<proshop root>/recentlyupdatedrecords时,传入start(ISO 8601),以及可选的end和filterby,例如workorders,workcells,purchaseorders,timetracking,deletions。需先由 ProShop 团队启用索引。(Recently Updated Records API)
写入操作通过 GraphQL mutations 完成。文档以 Time Tracking Login 为例说明,写入权限则通过权限范围按模块授予。
身份验证与权限范围
- 每次调用都携带访问令牌。通过
Authorization: Bearer <token>请求头或token查询参数发送。 - OAuth 2.0 Client Credentials(ProShop 5.2.3 及更高版本)。ProShop 系统管理员打开 System Config > Manage Authorizations,创建一条 Authorization,设置 Name 和 Maximum Scope,并勾选 Direct Login 和 Active。Unique ID 和 Shared Secret 分别用作
client_id和client_secret。应用向<proshop root>/home/member/oauth/accesstokenPOST 提交grant_type=client_credentials,获取 Bearer 令牌及expires_in。此流程不提供刷新令牌,因此令牌过期后需重新申请。(客户端凭据流程) - OAuth 2.0 Authorization Flow 用于需要用户上下文的调用,例如 Time Tracking Login。
- 权限范围。格式为
SCOPE_NAME:[{r|w|d|p}],分别表示读取、写入、删除和偏好设置。排程系统通常需要workorders:rw parts:r purchaseorders:r users:r tools:r;若回写工时,还需 Time Tracking 权限。自 ProShop 5.1.9 起,”a scope grant request is now required on all connections to the API.”(所有 API 连接都必须请求授予权限范围。)(授权范围) - 审计追踪。使用客户端凭据发起的调用显示应用名称,而非用户。
在 SkyPlanner 端,REST API 使用 Authorization-Token 请求头中的 API 令牌进行身份验证(SkyPlanner Settings > API),文档采用 Swagger/OpenAPI 格式。集成教程会引导您完成初次调用。
事件与轮询
ProShop 开发文档未说明对外发送的 webhook 或 GraphQL 订阅功能。ProShop 端采用轮询,Recently Updated Records API 可降低轮询开销:请求上次运行以来所有新建、修改或删除的记录,并按排程所需的记录类型筛选。然后通过 GraphQL 按工单编号获取发生变更的工单。ProShop 指出,这比按 lastModifiedTime 查询更快。
通常可选择每五分钟轮询工单和工时记录,每小时轮询零件和采购订单。SkyPlanner 会在状态或排程发生变化时发送 webhook,因此回写端由事件驱动。
数据映射
| ProShop 对象(API) | SkyPlanner 对象 | 方向 | 频率 |
|---|---|---|---|
Parts、COTS(GraphQL parts 权限范围) | 产品与物料 | ProShop → SkyPlanner | 首次加载,之后在变更时同步 |
| Work Order BOM 记录 | 产品结构、各订单所需物料 | ProShop → SkyPlanner | 随各工单同步 |
| 工单工序:生产单元、预计准备时间和周期时间(目标工时) | 工序及其持续时间、准备时间和收尾时间 | ProShop → SkyPlanner | 随各工单同步 |
| Work Cells(机器、工作台、设备) | 工作中心、工作中心组、效率 | ProShop → SkyPlanner | 首次导入,之后很少更新 |
| 分配给人员的 Work Cells、Users | 人员及操作员分配 | ProShop → SkyPlanner | 首次导入,之后有变更时同步 |
| 生产单元日历(可用工时、班次) | 班次和非工作日 | ProShop → SkyPlanner | 每日同步,或在 SkyPlanner 中维护班次 |
| Work Orders(数量、交期、状态) | 订单和生产任务及其交期与优先级 | ProShop → SkyPlanner | 每隔几分钟轮询 |
| Tools、Toolpots、Fixtures、RTAs | 工具(作为数量有限的共享资源) | ProShop → SkyPlanner | 首次导入,之后有变更时同步 |
| Purchase Orders 及其交期 | 采购订单、按交付日期安排的到货物料 | ProShop → SkyPlanner | 每小时或运行排程时轮询 |
工单计划开始和完成时间(GraphQL mutation,workorders:w) | 各生产任务的计划开始和结束时间 | SkyPlanner → ProShop | 排程变更时,通过 SkyPlanner webhook 同步 |
| Time Tracking:各工单工序的准备工时、运行工时和完工零件数量 | 工时日志和操作员报工 | SkyPlanner → ProShop | 若启用,则每次报工或每班同步 |
| ProShop 中没有对应项 | 准备时间矩阵、需多名操作员的生产任务、可替代机器和人员 | 在 SkyPlanner 中维护 | 实施导入阶段设置 |
集成模式
1. 首次导入主数据。通过 GraphQL 复数查询分页读取 Parts、Work Cells、Users、Tools 和 Fixtures。首次导入时将 pageSize 设为较大值,并根据 totalRecords 循环读取。确定生产单元的映射方式:机器类生产单元映射为工作中心,人员类生产单元映射为人员,以便同一道工序同时占用机器和操作员。
2. 工单同步。读取有效工单及其工序、目标工时和 BOM 记录,同时读取未结采购订单。SkyPlanner 将已订购物料视为在采购订单交付日期可用,并在采购订单标记为 Delivered 时更新库存。通过 Recently Updated Records 检测变更,使用 filterby=workorders,purchaseorders,deletions 筛选。
3. 排程回写。引擎安排或移动生产任务时,SkyPlanner webhook 会触发 GraphQL mutation,使用具有 workorders:w 权限的 Authorization 设置工单计划日期。随后,ProShop 的准时交付预测和采购需求日期将以 SkyPlanner 的日期为依据。
4. 车间报工。操作员使用 SkyPlanner Mobile Confirmations 或 Production Timer 记录工作,工时日志会让排程保持最新。您可以选择是否将实际工时按工单工序回写到 ProShop Time Tracking。若不回写,操作员继续像以往一样在 ProShop 中记录工时,SkyPlanner 则通过 timetracking 读取。
5. 数据归属与冲突处理规则。上线前应将这些规则明确记录下来:
| 数据 | 主管系统 |
|---|---|
| 零件、工序、目标工时、数量、工单状态 | ProShop |
| 工序顺序、开始和完成时间、机器与操作员分配 | SkyPlanner |
| 工序转换时间矩阵、工装和操作员要求、替代资源 | SkyPlanner |
| 班次和非工作日 | 由一个系统负责,在范围评估时确定 |
| Time Tracking、库存、采购、生产任务成本核算 | ProShop:直接录入,或从 SkyPlanner 工时日志回写 |
只指定一个系统写入工单日期。一旦由 SkyPlanner 为某个生产单元排程,计划员就不再在 ProShop 中调整该生产单元的任务列表顺序,避免两套计划相互冲突。
典型项目步骤
实施通常可在导入工作启动后的数周内完成。在此之前,可将 ProShop 中的生产单元、工序和未结工单导出为 CSV 或 Excel,在 30 天免费试用期间验证排程。
- 映射。确定映射表、数据归属规则、同步频率,以及是否回写工时。
- ProShop 访问权限。管理员按约定的 Maximum Scope 创建 Authorization,并请 ProShop 团队启用 Recently Updated Records。
- 首次导入。导入 Parts、Work Cells、Users、Tools、Fixtures 和生产单元日历。
- 工单和采购订单同步。轮询变更,并支持分页和重试。
- 在 SkyPlanner 中设置约束。配置准备时间矩阵、工具、每道工序所需的操作员人数,以及可替代的机器或人员。
- 排程回写。由 SkyPlanner webhook 触发 mutation;若选择回写工时,还包括 Time Tracking。
- 并行测试。让 SkyPlanner 与现有的 ProShop 排程并行运行,对比日期并修正目标工时。
- 正式上线。数据核对一致后,启用回写。
ProShop 集成需要提前考虑哪些问题
- 目标工时决定一切。ProShop 根据预计的准备时间和加工节拍计算时长。应读取当前的目标工时,而不是最初的估算值,并将准备时间与运行时间分开,以便用准备时间矩阵替代单一的准备时间值。
- 以人员为工作单元。工作单元也可以是一名人员。应将这类工作单元映射为 SkyPlanner 中的人员,而不是机器,否则每名操作员都会变成一台可并行生产的机器。
- Time Tracking 需要用户身份。自 2026 年四月起,Time Tracking Login mutation “requires user context”(需要用户上下文),不能通过 Client Credentials 授权。请通过 OAuth 2.0 Authorization Flow 提交操作员工时,或者继续在 ProShop 中记录工时,再由集成读取。
- 启用变更索引。Recently Updated Records 只有在 ProShop 团队启用后才能使用。请在第一周就提出申请。
- 受 ITAR 限制的记录。ProShop 按连接过滤受 ITAR 限制的记录,Developer System Config 中的一个选项决定这些记录是返回空值还是不予返回。应事先约定集成可以访问哪些工单,并在每次读取时处理空值。
- 外协加工。供应商执行的工序只占用时间,不占用您的产能。建模时应将其设为只考虑耗时、不占用产能的工序。
谁负责 ProShop 集成的配置与支持
- SkyPlanner 团队在实施阶段负责配置,并在上线后提供支持,范围涵盖双方约定的 GraphQL 查询、mutation 和变更轮询。每家工厂使用 ProShop 的方式都不同,配置与支持正是这些实践经验发挥作用的地方。
- 您的 ProShop 管理员或顾问也会参与。他们负责创建 Authorization、设置权限范围、申请变更索引,并了解您的工作单元配置。
- 您自己的开发人员也可以在此基础上开发,使用 API 令牌调用 SkyPlanner 的 REST API。只需一个 API 令牌即可开始,SkyPlanner 团队会在需要时提供协助。集成文档请参阅 SkyPlanner 集成文档。
SkyPlanner 每月 199 € 起,包含 5 个工作中心,按月计费。集成费用会根据您的流程和需求,与套餐一起提前报价。请参阅价格、ProShop 生产排程、ProShop ERP 页面、SkyPlanner 功能和 ERP 集成中心。
制造企业对 SkyPlanner 的评价
2 小时每周节省的时间
“SkyPlanner 让我们的生产计划摆脱了 Excel 表格,实现了实时生产优化。”
Kalle Kalliomäki,供应链专员
UTU · 配电盘与开关设备
生产计划工作每周节省 2 小时,新的任务队列只需几秒就能下达到产线。
+90%生产效率提升
“生产效率提高了 90%。”
Abdul Rucyinga,IT 负责人
Laboratory & Allied · 制药
生产效率提高了 90%,为所有工作中心制定覆盖三个月的优化计划只需不到 30 分钟。
98%准时交付率,原来约为 50%
“SkyPlanner 对保持我们的准时交付率起着决定性作用。”
Hannu Lahtinen,董事总经理
KJH-Comp · 钣金加工与合同制造
准时交付率从约 50% 提高到最高 98%,排程工作也从原来需要两名主管变为只需一名。
数以 1,000 计自动排程的工单
“我们对生产的掌控有了质的变化,对产能的了解也达到了全新的水平。”
Hannu Ryynänen,首席执行官
Mamec · 工业搅拌机、泵及高科技合同制造
数千张工单自动完成排程,整个企业都能实时了解生产情况。
常见问题
ProShop 有 API 吗?
有。ProShop 提供 GraphQL API,地址为 <proshop root>/api/graphql,支持 OAuth 2.0 或 Basic Authentication,并可设置模块权限范围。REST 端点 Recently Updated Records 会返回指定时间段内创建、修改或删除的记录。
ProShop 支持 webhook 吗?
ProShop 的开发文档未说明支持向外发送的 webhook。集成会按各工厂设定的周期轮询 Recently Updated Records API。SkyPlanner 自身的 webhook 则会在排程发生变化时立即推送。
如何将计划日期回写到 ProShop?
使用对 workorders 具有写入权限的 Authorization,通过 GraphQL mutation 更新工单。每次排程发生变化时,SkyPlanner 都会通过 webhook 触发该操作。
谁负责创建 ProShop API 凭据?
由 ProShop 系统管理员在 System Config > Manage Authorizations 中创建。Direct Login 用于启用 Client Credentials 流程,Maximum Scope 则限制集成可读写的内容。
ProShop 顾问应该推荐 ProShop 排程还是 SkyPlanner?
如果客户的生产顺序决定能否按期交付,就推荐 SkyPlanner。ProShop 排程会显示各工作单元的优先级和准时完工预测,由计划员调整优先级。SkyPlanner 通过 GraphQL API 连接,自动优化整个计划,统筹换型、操作员、工具和物料,用户数量不限,每月 199 € 起。