Visma Net 集成指南:使用 SkyPlanner APS 进行生产排程
本指南面向合作伙伴和 IT 团队,介绍如何将 Visma Net(Visma.net ERP)接入 SkyPlanner APS。SkyPlanner 通过 Visma Net API 与 Visma Net 实现双向集成:
- 导入库存物料、Kit specifications、销售订单、库存量和采购订单。
- 已排程的生产任务转为 Kit assemblies,并在任务完成后过账。
- 操作员工时以 Employee time cards 的形式回传。
- 排程发生变化时,SkyPlanner webhook 会即时推送。
在上线准备阶段,SkyPlanner 团队会根据您的 Visma Net 配置设置集成,并在上线后继续提供支持。本指南面向希望参与集成的合作伙伴和开发人员,也适用于希望依据 SkyPlanner REST API 文档(API 参考)自行开发的团队。
Visma Net 的集成接口
- Visma Net ERP API。采用 REST,OpenAPI 规范仍以“Visma.net ERP API v1”为标题,包含 v1 和 v2 路径。基础 URL 为
https://api.finance.visma.net。旧域名integration.visma.net自 2026 年 2 月 1 日起限流,并将关闭(通知)。 - SalesOrder service v3 的地址为
https://salesorder.visma.net。v1 和 v2 销售订单端点已终止支持。 - 通过 Visma Developer Portal 提供的 webhooks。
- Background API。使用
erp-api-background请求头可将耗时较长的调用加入队列,返回状态码 202 和任务 ID,并在结果就绪时发出通知。 - Visma Net 中的导入和导出方案,通过 CSV、Excel 或 SQL 数据提供程序一次性导入主数据。
该 API 不提供生产订单、工艺路线或工作中心端点,因为 Visma Net 中没有这些对象。排程数据来自物料、套件、订单和库存:
GET /v1/inventory:库存物料和非库存物料,包括套件标志和物料类别GET /v1/KitSpecifications/{kitInventoryID}/{revisionID}:各修订版本的组件明细行GET /v1/kitassembly:现有装配单,可按类型和状态筛选- SalesOrder service v3:需求及其要求日期和明细行
GET /v1/inventorysummary/{inventoryNumber}:各仓库的现有库存量和可用库存量GET /v1/purchaseorder和GET /v2/PurchaseReceipt:在途物料和收货记录
所有列表端点均支持配合使用 lastModifiedDateTime 和 lastModifiedDateTimeCondition,以及 pageNumber 和 pageSize,因此每次同步都可以采用增量方式。
身份认证与调用限制
Visma Net 使用 Visma Connect(OpenID Connect 和 OAuth 2.0):
- 在 Visma Developer Portal 中注册一个 Service Integration。
- 由客户的 Visma Net 租户管理员批准该集成。
- 通过客户端凭据流程向
https://connect.visma.com/connect/token请求令牌,传入tenant_id以及visma_api:read等 API 权限范围。令牌有效期为 3,600 秒。
调用限额按公司和客户端分别计算,采用固定的一小时窗口。响应包含 X-RateLimit-Limit、X-RateLimit-Remaining 和 X-RateLimit-Reset;超出限额时返回状态码 429,并附带 Retry-After(调用限额)。ETag 和 If-Match 请求头用于保护更新操作。
合作伙伴可通过 Visma 免费的 Integrator Programme,使用演示公司进行测试。SkyPlanner 端的 REST API 使用 API 令牌进行身份认证(SkyPlanner Settings > API),并提供 Swagger/OpenAPI 文档。集成教程将指导您完成最初的 API 调用。
事件、webhooks 与轮询
Visma Developer Portal 的 webhooks 涵盖了与排程相关的事件:
- Inventory Item Created、Updated 和 Changed
- Purchase Order Changed 和 Status Changed
- Sales Order Changed 和 Status Changed,正迁移至 SalesOrderService 发布方
Kit assembly 和 Kit specifications 不提供事件。SkyPlanner 使用 lastModifiedDateTime 筛选条件轮询这些数据,并在运行排程时轮询库存量。反向同步时,状态或排程发生变化,SkyPlanner 就会发送 webhook 通知。
数据映射
| Visma Net 对象(端点) | SkyPlanner 对象 | 方向 | 频率 |
|---|---|---|---|
库存物料、非库存物料(/v1/inventory) | 产品和物料 | Visma Net → SkyPlanner | 首次导入,之后通过 webhook 同步 |
Kit specifications(/v1/KitSpecifications) | 产品结构、各产品所需物料 | Visma Net → SkyPlanner | 首次导入,之后轮询 |
| 销售订单(SalesOrder service v3) | 订单及其交期和客户优先级 | Visma Net → SkyPlanner | Webhook |
状态为 On hold 的 Kit assembly(/v1/kitassembly),适用于在 Visma Net 中创建装配单的情况 | 生产任务 | Visma Net → SkyPlanner | 轮询 |
库存汇总(/v1/inventorysummary) | 各仓库的库存量 | Visma Net → SkyPlanner | 运行排程时轮询 |
采购订单、采购收货单(/v1/purchaseorder、/v2/PurchaseReceipt) | 在途物料及其交货日期;采购订单交货后更新库存 | Visma Net → SkyPlanner | 收到 webhook 通知后读取 |
| Visma Net 中无此数据 | 工序、工作中心、班次、准备时间矩阵、工具、替代资源 | 在 SkyPlanner 中维护 | 在上线准备阶段设置 |
创建和更新 Kit assembly(POST/PUT /v1/kitassembly) | 已排程的生产任务:套件物料、数量、计划完工日期 | SkyPlanner → Visma Net | 排程变更时,通过 SkyPlanner webhook 触发 |
Kit assembly 过账(/v1/kitassembly/{type}/{refNo}/action/release) | 已完成的生产任务:产出和组件消耗 | SkyPlanner → Visma Net | 完工时 |
库存入库单、库存出库单(/v1/inventoryReceipt、/v1/inventoryissue,过账) | 不使用套件时的产出和物料消耗 | SkyPlanner → Visma Net | 完工时 |
Employee time card(/v1/timeCard) | 各操作员记录的工时 | SkyPlanner → Visma Net | 每周 |
集成模式
1. 首次导入主数据。读取库存物料、物料类别,以及每个套件最新修订版本的 Kit specification。将每条组件明细映射为 SkyPlanner 中的物料。然后补齐 Visma Net 中没有的数据:工作中心、班次、含准备时间和运行时间的工序、准备时间矩阵以及工具需求。通过 CSV 或 Excel 导入这些数据。这是项目中工作量最大的部分。
2. 订单同步。选择一种需求模型:
- 销售订单驱动。套件物料尚未完成的销售订单行转为 SkyPlanner 订单,并以要求日期作为交期。
- 装配单驱动。在 Visma Net 中创建、状态为 On hold 的 Kit assemblies 转为 SkyPlanner 生产任务。
未结采购订单及其日期一并导入。SkyPlanner 将已订购物料视为在采购订单交货日期可用,并在采购订单标记为 Delivered 时更新库存。排程结合库存汇总数据,同时检查现有库存和待到货采购物料。
3. 排程回写。采用销售订单驱动模式时,SkyPlanner 会为每项已排程的生产任务创建一张类型为 Production 的 Kit assembly,设置套件物料、修订版本、仓库、数量和组件,并将装配单关联到销售订单行。装配日期设为计划完工日期。当 Autopilot 调整任务时间时,通过 PUT 在过账前更新日期。
Kit assembly 只有一个 Date 字段,因此各工序的具体时间保留在 SkyPlanner 中,Visma Net 则接收与销售和库存相关的日期。
4. 车间报工。操作员通过 Mobile Confirmations 或 Production Timer 记录作业,工时记录使排程保持最新。最后一道工序完成后,SkyPlanner 会调用 Kit assembly 的 release 操作进行过账。过账时记录产出和组件消耗,随后生成总账批次。工时按周汇总至 Employee time cards;对于项目驱动的作业,则汇总至项目交易。
5. 数据归属与冲突处理规则。上线前将这些规则明确记录下来:
| 数据 | 归属系统 |
|---|---|
| 物料、Kit specifications、销售订单、采购订单、库存、成本 | Visma Net |
| 工序、工作中心、班次、换型设置、工具 | SkyPlanner |
| 生产任务顺序、开始和结束时间、工作中心分配 | SkyPlanner |
| 过账前的 Kit assembly 日期 | SkyPlanner |
| 已过账的 Kit assemblies 和工时卡 | Visma Net,由 SkyPlanner 提交过账 |
修改 Kit specification 会生成新的修订版本。由于只有最新版本可用于组装,因此需要重新读取最新版本并更新映射。在装配单上手动修改的组件在 Visma Net 中仍然有效,因此 SkyPlanner 会在过账前回读装配单。
典型项目步骤
实施通常在上线准备工作启动后的几周内完成。在此之前,您可以通过 Visma Net 的导出方案导出自己的数据,以 CSV 或 Excel 格式导入,进行 30 天免费试用。
- 范围评估。确定需求模型、映射表、数据归属规则和回写目标(Kit assembly 或库存入库单)。
- 配置 Visma Connect。注册 Service Integration,并获得租户管理员批准。先在演示公司中测试。
- 生产模型。在 SkyPlanner 中配置工作中心、班次、工序、换型设置和工具。
- 初始数据加载。加载库存物料、物料类别、Kit specifications、仓库和库存。
- 同步订单与采购订单。销售订单、采购订单和物料通过 webhook 同步;套件和库存通过轮询同步。令牌续期和 429 响应处理也在此阶段完成。
- 回写。创建、更新 Kit assembly 并执行过账,同时回写工时卡。
- 并行测试。让 SkyPlanner 与现有计划并行运行,比较排程日期。
- 上线。数据核对一致后,启用回写。
Visma Net 集成需要提前考虑什么
- 没有可导入的工艺路线。所有工序、准备时间和运行时间都需要在 SkyPlanner 中建立。请提前预估工作量并确定负责人。
- Advanced logistics。使用 Kit assembly 需要启用 Advanced logistics 功能组。如果使用 Standard logistics,则通过 Inventory receipt 和 Inventory issue 对产出过账。
- 修订版本锁定。已使用的 Kit specification 修订版本无法编辑,且只有最新版本可用于组装。
- 计量单位。Kit assembly 有自己的计量单位。导入时,需确保 SkyPlanner 中的数量采用与之匹配的计量单位。
- 无事件通知时采用轮询。套件不支持 webhook。请根据
lastModifiedDateTime增量获取数据,不要全量重载,以免超出每小时请求限额。 - 使用当前端点。仅基于
api.finance.visma.net和 SalesOrder service v3 开发集成。 - 租户审批。租户管理员批准应用之前,客户端凭据无法用于认证。请尽早安排这一步。
- 每周工时卡。工时卡需要 Advanced financials,按周记录。请按周汇总操作人员的工时,或将工时过账至项目交易。
谁负责 Visma Net 集成的配置与支持
- SkyPlanner 团队在上线准备阶段完成配置,并在上线后提供支持。工作范围包括 SkyPlanner 端的配置、Visma Net 缺少的生产模型,以及双方约定的 Visma Net API 调用。每家工厂使用 Visma Net 的方式都不同,配置时会将这些实际经验融入其中。
- 您的 Visma Net 合作伙伴也可以参与。Visma 与经过 Visma 认证的合作伙伴共同交付 Visma Net。这些伙伴了解您的配置,可以审核数据映射和 Visma Connect 应用。SkyPlanner 提供 REST API、Swagger/OpenAPI 文档和 webhook。
- 您自己的开发人员也可以构建集成,使用同一套有文档说明的 REST API,通过 API 令牌认证。只需一个 API 令牌即可开始,SkyPlanner 团队会在需要时提供协助。公开文档请参阅 SkyPlanner 文档。
连接后,Arcturus 引擎会根据 Visma Net 的实时订单排程,完工数据则以已过账的 Kit assemblies 回写至 Visma Net。价格为每月 199 € 起,包含 5 个工作中心,按月计费。集成费用会根据您的流程和需求提前报价,并与订阅方案一并提供,让您在开始前了解全部成本。
您可以查看价格,阅读 Visma Net 生产排程,了解 Visma Net 为什么需要能按实际产能排程的工具;也可以在 Visma Net 页面查看概览,或在 ERP 集成中心了解其他 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%,排程工作也从原先需要两名主管变为只需一名。
6 个月销售可提前查看的空闲产能
“SkyPlanner 为所有生产计划工作奠定了基础,并提供了可靠保障。”
Anu Järvinen,生产经理
Fredman Operations · 食品级包装纸
销售人员可以提前六个月查看空闲产能;过去需要一小时或更久才能答复的排程变更请求,如今几秒即可回应。
常见问题
Visma Net API 中有生产订单吗?
没有。Visma Net 没有生产订单、工艺路线或工作中心对象,因此 API 也不提供这些对象。生产单据是 /v1/kitassembly 对应的 Kit assembly,工艺路线和工作中心则由 SkyPlanner 管理。
集成采用哪种认证方式?
通过 Visma Connect 使用 OAuth 2.0 客户端凭据流程,并在 Visma Developer Portal 中注册为 Service Integration。集成需由租户管理员批准,令牌有效期为一小时。
Visma Net 能实时推送变更吗?
物料、销售订单和采购订单可以通过 Visma Developer Portal 的 webhook 实时推送变更。Kit assemblies 和 Kit specifications 没有事件通知,需要通过增量轮询获取。SkyPlanner 自身的 webhook 则会在排程变更时即时推送。
生产完工数据如何回写至 Visma Net?
SkyPlanner 为每个已排程的生产任务创建一个 Kit assembly,持续更新其日期,并在任务完成时调用 release 操作。该操作会将产出和组件消耗过账。不使用套件时,Inventory receipt 和 Inventory issue 也能实现相同效果。