Integrations / ERP / Sage X3
Sage X3 Integration Guide for SkyPlanner APS Production Scheduling
This guide shows Sage partners and IT teams how to connect Sage X3 to SkyPlanner APS. It covers which X3 interfaces to use, which objects carry the data, and where projects go wrong. SkyPlanner integrates with Sage X3 in both directions, on cloud and on-premises X3:
- Work orders, operations, routings, work centers, calendars, stock and open purchase orders flow in.
- Planned operation dates and work centers are written back to the work orders (GESMFG).
- Operator timelogs post as production tracking (GESMTK).
- SkyPlanner webhooks push schedule changes as they happen.
The SkyPlanner team configures the integration to your X3 setup during onboarding and supports it after go-live.
If you are still deciding whether X3 needs a finite scheduler at all, read Does Sage X3 have finite capacity scheduling? first. For the product overview, see SkyPlanner APS for Sage X3, and for other ERPs the ERP integrations hub.
Where SkyPlanner sits in an X3 landscape
Sage X3 standard scheduling (FUNMAUTJ) sequences operations from routing data but schedules each work order independently. A Sage UK support guide puts it plainly: it “does not delay or stagger work orders based on overall resource load.” Finite scheduling is a separate layer, and Sage offers two:
- Production Scheduler (activity code POPS), on-premises only.
- The generic Finite scheduler interface (activity code GFS), which connects cloud or on-premises X3 to Sage X3 Web Scheduling or an ISV scheduler.
SkyPlanner takes that role as an external cloud scheduler on the standard X3 APIs, so it works the same on cloud and on-premises X3. MRP (FUNMRP) still creates work order and purchase order suggestions. SkyPlanner sequences firm and planned work orders against real capacity.
Sage X3 integration options
The deployment model decides the route. Sage X3 cloud exposes neither the application file system nor the database to third-party applications, so integration runs over APIs or hosted file transfer. On-premises adds direct file imports and staging tables in the X3 database.
| Option | What it is | Auth | Use it for |
|---|---|---|---|
| GraphQL API (Sage X3 Web API) | Sage’s “technology of choice” for X3 APIs; evolves without versions | JWT (HS256) signed with a Connected application’s Secret, Client ID as iss, URL as aud, dedicated Syracuse user | Products, sites, purchasing, stock; manufacturing nodes where exposed |
| REST api1 | Representation-based REST: .../api1/x3/$$prod/<FOLDER>.<ENTITY>?representation=<REP>.$query | Syracuse authentication | Entities without GraphQL coverage |
| SOAP object web services | Objects published in Web services (GESAWE); fields are the object’s screen fields; read, save, modify | OAuth2 on Syracuse connection pools | Write-back on Work order (GESMFG), Production tracking (GESMTK) |
| SOAP Template Services | Import/export templates over SOAP via AOWSIMPORT and AOWSEXPORT | OAuth2; X3 does not allow basic auth for SOAP | Templates run from middleware |
| Import/export templates | Template-driven batch files | File system (on-premises) or hosted file transfer (cloud) | Initial loads, nightly bulk sync |
| Sync API (Cloud BI) | Cloud-only, read-only incremental extract plus NDJSON stream; on request via your Sage ISV representative | Bearer token plus per-tenant X-API-KEY | High-volume change reads on cloud |
On-premises GraphQL needs "bearer" added to the session.auth array in nodelocal.js. On Sage X3 SaaS, connected app authentication is enabled by default. On Sage X3 Cloud, the connected app cannot use the admin user: create a Syracuse user with Standard authentication instead.
Which interface carries which flow
- Products, sites, purchasing and stock: GraphQL, as in Sage’s official examples.
- Work orders, operations, routings and work centers: REST api1 representations or export templates run through AOWSEXPORT. On releases whose GraphQL schema exposes the manufacturing domain (
xtremX3Manufacturing), the integration reads the same data there. - Operation dates and work centers back to X3: Work order (GESMFG) SOAP web service, modify. Fallback: import template via AOWSIMPORT.
- Production tracking: Production tracking (GESMTK) SOAP web service, save.
The same design runs on X3 cloud and on-premises, because none of it needs direct file-system or database access. Nothing is installed in X3: the integration uses a connected application, a Syracuse user and web services published in GESAWE.
Events: plan on polling
Sage’s public X3 developer documentation describes no outbound webhook or business event feature. The “Callback URL” setting added in 2024 R1 serves Mobile Automation and Web Scheduling when they call SOAP web services. It is not a general event system. Detect changes with scheduled reads: GraphQL queries, the Sync API’s timestamp cursor on cloud, or periodic template exports.
Data mapping: Sage X3 to SkyPlanner
| Sage X3 object (table, function) | SkyPlanner object | Direction | Frequency |
|---|---|---|---|
| Product, ITMMASTER | Product | X3 → SkyPlanner | Initial, then scheduled |
| Production BOM (GESBODP) | Multi-level product structure, materials | X3 → SkyPlanner | Initial, then on change |
| Routing (GESROU): OPENUM, work center WST, SETTIM, OPETIM, time unit TIMUOMCOD | Process steps with setup and run times | X3 → SkyPlanner | Initial, then on change |
| Work center (GESMWS, WORKSTATIO): WST, WSTTYP, WSTNBR, EFF, SHR, replacements with priority | Workstation, efficiency, alternatives | X3 → SkyPlanner | Initial, rarely after |
| Work center group (WCR) | Workstation groups | X3 → SkyPlanner | Initial |
| Weekly structure (TWD), time tables, capacity variation grid, DEFDIH | Shifts, overtime shifts, absences | X3 → SkyPlanner | Initial, then on change |
| Work orders: MFGHEAD, MFGOPE, with products and materials | Order, materials, process steps | X3 → SkyPlanner | Poll, 5 to 15 min |
| Stock by site | Stock balances | X3 → SkyPlanner | Poll |
| Purchase orders (POH): open lines, expected receipt date | Incoming material with expected delivery date | X3 → SkyPlanner | Poll, 5 to 15 min |
| GESMFG Operations tab: Start OPESTR, End OPEEND, work center | Scheduled start, end and chosen workstation | SkyPlanner → X3 | On schedule change (webhook) |
| Production tracking (GESMTK): operation times, quantities, material tracking, production reporting | Timelogs, quantities, material usage | SkyPlanner → X3 | Per confirmation (webhook) |
Pull firm work orders always. Pull planned ones if planners want them on the Gantt as tentative load. Suggestions stay in MRP until they are converted to work orders.
Integration patterns
1. Initial master data load. Load work centers and calendars first, then products, BOMs and routings, because routings reference work centers.
2. Order sync. Poll MFGHEAD and MFGOPE for new and changed work orders. Map each MFGOPE line to a SkyPlanner process step on the workstation given by its WST code. Sync open purchase orders on the same cycle. SkyPlanner treats ordered material as available on the PO delivery date and updates stock when the PO is marked Delivered. Material checks then cover stock and incoming supply.
3. Schedule write-back. SkyPlanner’s webhook fires when the schedule changes. The integration calls the modify operation of the Work order object (GESMFG), published as a SOAP web service in GESAWE. It updates Start (OPESTR), End (OPEEND) and the work center on each changed operation. For batch updates, the same fields go through a work order import template via AOWSIMPORT. Write dates and work centers only, never quantities, BOM lines or routings.
4. Machine choice round trip. With one-to-one work center mapping, the engine’s choice among alternative machines goes back as the operation’s work center, so X3 records the machine that actually runs the job. When an X3 work center stands for a group of machines, the operator’s queue shows the individual machine. X3 gets the group’s work center with the scheduled dates.
5. Shop floor confirmations. Operators log work with Mobile Confirmations or the Production Timer. The integration posts each confirmation with the save operation of the Production tracking object (GESMTK): operation time and quantity in operation tracking and, if you track it there, material consumption. X3 accepts tracking only on work orders at status Firm, and components must be available unless Release if shortage (MFGSHTCOD) is selected on the product-site.
6. Reliable sync. Key every tracking post by the SkyPlanner timelog ID and store the X3 tracking number it created, so a repeated webhook never posts twice. Remove work orders closed or cancelled in X3 from the schedule on the next poll. Log rejected calls with X3’s error message instead of retrying blindly. Queue changes while X3 is unreachable so they post in order once it is back.
7. Ownership rules. X3 owns what is made: product, quantity, BOM, routing, site. SkyPlanner owns when and where: sequence, workstation and start and end times. Agree that planners stop rescheduling in the Planning workbench and stop running FUNMAUTJ on SkyPlanner-managed orders, or their changes are overwritten on the next write-back.
Typical project steps
Implementation is normally completed within weeks after onboarding starts. A Sage X3 project contains:
- Trial on your own data. Export work centers, routings and a snapshot of open work orders with X3 export templates or Excel, and import them as CSV. Tune shifts, efficiencies and priorities until the Gantt matches reality.
- Master data mapping. Map GESMWS work centers to workstations, GESROU operations to process steps, time units and weekly structures to shifts. Fix routing operations without work centers, days without time tables and wrong time units on the way.
- Initial load. Products, production BOMs, routings and work centers, then calendars.
- Order and purchase order sync. Connected application, Syracuse user, GraphQL queries or template exports, and a polling job for work orders, stock and open purchase orders.
- Schedule write-back. Work order SOAP web service published in GESAWE, with error handling and logging.
- Shop-floor confirmations. Mobile Confirmations posted to X3 through the Production tracking (GESMTK) web service.
- Testing in parallel with the current plan. Planners compare both plans before switching.
- Go-live. Switch off manual rescheduling in X3 for SkyPlanner-managed orders.
Sage X3 pitfalls
- Suggestions are not work orders. MRP suggestions have no MFGOPE operation lines until they are converted to planned or firm work orders, so schedule converted orders, not suggestions.
- Calendar gaps. A working day with no time table falls back to the DEFDIH default schema. A blank day with no default produces wrong dates and loads. Give every working day in each weekly structure a time table before you export calendars.
- Stale load buckets. After a capacity or calendar change, existing X3 load buckets do not adjust until you reschedule and run Recalculate loads (FUNMIWL). Do not validate SkyPlanner against an outdated Loads inquiry (CONSMWK).
- No. of resources means crew size. WSTNBR is the number of resources an operation needs at the work center, for example three people on a labor work center. Map it to the number of operators on the SkyPlanner workstation, which schedules several people on one job at once. Sites that ran the GFS advanced interface have it set to 1, as Sage requires, so check where the real crew size lives.
- Routing operations without a work center cannot be placed on a workstation. The mapping step flags them.
- Time units and replacement work centers. Routing times carry their own time unit (TIMUOMCOD), and replacement work centers carry a priority. Map both explicitly, and re-run the mapping check after each X3 upgrade.
- Locked orders. If the site also used Production Scheduler, orders submitted there carry the status Being optimized and cannot be modified until removed from scheduling (PSOPTFREE). Clear them before cut-over.
The Sage X3 integration: who configures it
The work covers mapping your folders, routing conventions, work center structures and specific developments to SkyPlanner. It also covers the constraints X3 does not hold as schedulable data: setting time matrix, tools, operator counts and alternative resources.
- The SkyPlanner team configures it during onboarding and supports it after go-live. Every plant runs X3 differently, and this is where that know-how goes. The team connects your X3 endpoint, cloud or on-premises, validates your master data in the mapping step and logs X3 rejections for follow-up. The integration has a clear owner from day one, and you do not need an in-house integration developer.
- Your Sage partner can take part. The partner knows your folders, activity codes and specific developments and can review the connected application, Syracuse user and GESAWE publications alongside the team.
- Your own developers can build on it. SkyPlanner’s REST API reads and writes orders, products, materials, process steps and timelogs, with JWT authentication and Swagger/OpenAPI documentation (API reference). An API key is enough to start, and the integration tutorial walks through the first calls. The SkyPlanner team assists when needed. The SkyPlanner docs cover products and materials and purchase orders. At Laboratory & Allied, the in-house IT team connected SkyPlanner to SAP Business One largely on its own, with SkyPlanner’s help.
Why X3 teams pick SkyPlanner as the scheduling layer
Choose SkyPlanner when you want to be live in weeks, not after a months-long APS project.
Choose SkyPlanner when you want the scheduler running before the integration is finished.
Planners schedule from CSV in the trial while the X3 read and write-back is configured. Once the integration runs, it takes over from the file import.
Choose SkyPlanner when you want a light integration footprint.
Webhooks push schedule and status changes in real time, so middleware only polls the X3 side. The Arcturus AI engine builds the schedule in seconds, and Autopilot reschedules automatically when production changes.
Choose SkyPlanner when your X3 data has to drive a real constraint model.
Crew sizes become several operators on one workstation, and replacement work centers become alternative machines. The setting time matrix adds sequence-dependent changeovers between products. Tools are finite resources, so a fixture in use on one machine is never booked on another.
Choose SkyPlanner when production tracking should start on the shop floor.
Operators log work on phone or tablet with Mobile Confirmations, Production Timer and Quick Log Mode. The same timelogs post to X3 as production tracking.
Pricing starts from 199 € per month with 5 workstations included, billed monthly. The integration is quoted up front for your process and needs, together with your plan, so you see the full cost before you start. See pricing and features, or start the 30-day free trial with up to 20 workstations and no credit card.
SkyPlanner reviews from manufacturers
2 hsaved every week
“SkyPlanner has taken our production planning from Excel spreadsheets to real-time production optimization.”
Kalle Kalliomäki, Supply Chain Specialist
UTU · Electrical switchboards and switchgear
Production planning saves 2 hours of working time every week, and a new work queue reaches the line in seconds.
+90%production efficiency
“Efficiency has gone up 90% in production.”
Abdul Rucyinga, Head of IT
Laboratory & Allied · Pharmaceutical manufacturing
Production efficiency is up 90%, and a three-month optimized plan across all workstations takes under 30 minutes.
98%delivery reliability, up from about 50%
“SkyPlanner plays a decisive role in maintaining our delivery reliability.”
Hannu Lahtinen, Managing Director
KJH-Comp · Sheet-metal mechanics and contract manufacturing
Delivery reliability rose from around 50% to as high as 98%, and scheduling now needs one supervisor instead of two.
99.2%delivery reliability
“SkyPlanner has brought visibility to identifying bottlenecks and clarified production management.”
Toni Tuori, Production Manager
Piristeel · Roof safety and rainwater systems
Delivery reliability reached 99.2% this year, and scheduling saves up to four hours of working time per day.
FAQ
How is SkyPlanner APS integrated with Sage X3?
In both directions, over GraphQL, REST api1, SOAP web services and templates. Work orders, routings and work centers come in. Planned operation dates and logged hours go back, pushed by webhooks as the schedule changes. The SkyPlanner team configures it during onboarding, or your Sage X3 partner or developers build on the SkyPlanner REST API.
How are operation dates written back to Sage X3?
Through the Work order object (GESMFG), published as a SOAP web service in the Web services function (GESAWE). Its modify operation updates Start (OPESTR), End (OPEEND) and the work center on each operation. For batch updates, a work order import template runs through AOWSIMPORT. Hours and quantities post through the Production tracking object (GESMTK).
Should we use GraphQL or SOAP web services?
Both, each where it is strongest. GraphQL is Sage’s recommended API and reads products, sites, purchasing and stock on cloud and on-premises. SOAP object web services write the schedule and production tracking, and SOAP Template Services run import and export templates for bulk loads.
How do we avoid duplicate postings or lost changes?
Key each Production tracking post by the SkyPlanner timelog ID and keep the X3 tracking number it returns, so a repeated webhook is recognised and skipped. Queue changes while X3 is unreachable and post them in order when it returns. Log rejections, such as tracking on a work order that is not Firm, with X3’s error message.
Do we need the POPS or GFS activity codes for SkyPlanner?
No. Those activate Sage’s own Production Scheduler and the generic interface to Web Scheduling. SkyPlanner reads work orders through GraphQL, REST api1 or templates and writes back through the Work order and Production tracking SOAP web services.
How does SkyPlanner pick up new Sage X3 work orders?
The integration reads X3 on a short polling cycle, through GraphQL, REST api1 or template exports, or the Sync API on cloud. In the other direction, SkyPlanner’s webhooks push schedule changes as they happen.
Can we test with Sage X3 data before building anything?
Yes. Import CSV exports of work centers, routings and open work orders during the 30-day trial. To scope the X3 integration itself, contact sales.