AdvancedSage 100 and Sage 300 (on-prem)AI integration / Private architecture

How to Add AI to Sage 100 and Sage 300 On-Prem

Question
how to add AI to Sage 100 or Sage 300 on-premises

Also searched as

  • Sage 100 AI integration without cloud
  • Sage 300 private LLM on-prem
  • chat with Sage 100 data ODBC
  • Sage 300 Web API AI assistant

Short answer

Sage 100 and Sage 300 differ underneath, so the access path differs. Sage 300 runs on SQL Server and offers a REST Web API and a views API. Sage 100 exposes ODBC and COM Business Object Interface, with SQL Server only in Advanced and Premium. Either way, extract to a read-only copy, run a local model, and write back only through supported APIs.

Applies to: Sage 100 (Standard, Advanced, Premium) and Sage 300 on-premises. The Sage 300 Web API requires a release that includes it; check your product update level.

Add a private AI layer to Sage 100 or Sage 300 in seven steps

  1. 1Confirm the product and back end: Sage 100 Standard uses ProvideX files read through ODBC, while Sage 100 Advanced and Premium and Sage 300 use SQL Server.
  2. 2Create a read-only data path: for Sage 300, a SQL Server secondary or replica; for Sage 100 Standard, a scheduled ODBC extract into a reporting database, run off hours.
  3. 3Define a small set of views over the tables the assistant needs, with descriptions of each column in plain language.
  4. 4For single-record lookups, use the Sage 300 Web API or Sage 100 Business Object Interface under a user whose rights match the asker.
  5. 5Index documents and attachments, such as customer contracts, item data sheets and scanned supplier invoices, with their permissions.
  6. 6Run an open-weight model on a local GPU with vLLM or Ollama and a gateway that logs everything.
  7. 7Roll out read-only questions first, then drafts, then approved actions through the supported APIs.

Data access paths: Sage 100 versus Sage 300

Sage 300 stores data in SQL Server with short module-prefixed table names: ARCUS (customers), APVEN (vendors), ICITEM (items), ICILOC (item by location), OEORDH and OEORDD (order headers and details), POPORH (purchase order headers). Sage 300 also ships a Web API: REST endpoints of the form /Sage300WebApi/v1.0/-/COMPANY/OE/OEOrders, and a views-based programmatic API for custom code.

Sage 100 uses table names such as CI_Item, IM_ItemWarehouse, AR_Customer, SO_SalesOrderHeader, SO_SalesOrderDetail, PO_PurchaseOrderHeader and AP_Vendor. Sage 100 Standard keeps them in ProvideX files read through the SOTAMAS90 ODBC driver, which is slow for heavy queries and best used for scheduled extracts. Advanced and Premium use SQL Server. The Business Object Interface exposes COM objects such as SO_SalesOrder_bus for validated reads and writes.

Both products have user-defined fields; include them in your view definitions and descriptions or the assistant will not know they exist.

-- Sage 300 (SQL Server): open order lines, verify column names
SELECT TOP 50 h.ORDNUMBER, h.CUSTOMER, d.ITEM, d.QTYORDERED
FROM OEORDH h JOIN OEORDD d ON d.ORDUNIQ = h.ORDUNIQ
WHERE h.CUSTOMER = '1200';
-- Sage 100 via ODBC (SOTAMAS90): verify column names
SELECT ItemCode, WarehouseCode, QuantityOnHand
FROM IM_ItemWarehouse
WHERE WarehouseCode = '000';
GET /Sage300WebApi/v1.0/-/SAMINC/OE/OEOrders?$top=10
Authorization: Basic <user>

Reference architecture, including air-gapped

Keep the ERP server as the system of record and place a reporting database beside it. For Sage 300, a SQL Server readable secondary, log shipping or scheduled backup restore works. For Sage 100 Standard, a nightly or hourly ODBC extract into SQL Server or PostgreSQL is simpler than live ODBC queries from an assistant, because ProvideX file access does not scale to concurrent analytic load.

The tool server offers named read tools over the reporting copy and a few record-level calls to the Web API or BOI. The model server runs vLLM or Ollama on local GPUs; retrieval runs over documents; the gateway writes the audit log.

In an air-gapped site, deliver model weights and packages on media, keep the reporting database and index inside the enclave, and remove outbound routes. Both Sage products already run happily without internet.

Permissions and write-back

Sage 300 uses security groups with per-module rights; Sage 100 uses roles with task-level permissions and optional restrictions by warehouse or division. On a reporting copy those rights are lost, so rebuild the important ones as filters: map the asking user to their role, and apply allowed warehouses, divisions or companies to every tool call.

For writes, use the Sage 300 Web API or views, or the Sage 100 BOI, so validation, numbering and posting logic run. The assistant drafts a payload, shows it, and submits after a named approver confirms. Direct SQL or ODBC updates are not acceptable, since they bypass the application logic and can corrupt sub-ledgers.

Sizing and phased rollout

Sage 100 and 300 sites are often smaller: 20 to 250 named users. One data center or workstation-class GPU can serve a 7B to 14B class model for that load, with a second for resilience if the assistant becomes business critical. Document indexes of a few thousand to tens of thousands of documents are small.

Phase 1: read-only questions on customers, items, open orders and balances. Phase 2: drafts such as collection emails, reorder suggestions and quote text. Phase 3: approved actions through the Web API or BOI, limited to transactions with low risk and easy reversal.

Honest limits

For small teams, built-in inquiry screens, Crystal or Sage reports and Excel with ODBC may answer most needs; add AI where questions cross tables or involve documents. Sage 100 Standard on ProvideX is the hardest case: concurrent heavy ODBC reads can slow the live system, so an extract is mandatory.

Web API and BOI coverage varies by module and version. Heavily modified installations with custom tables or scripts need extra mapping, and numeric totals should come from SQL, not from model arithmetic.

Try it here, free

Sage 100 and Sage 300 Private AI Layer Blueprint Generator

Open full tool

Generate an architecture plan for a private AI assistant on on-prem Sage 100 or Sage 300: reporting copy or ODBC extract, Web API or BOI, retrieval, local GPU model and audit.

Common pitfalls

  • !Pointing an assistant at live ProvideX files over ODBC during business hours.
  • !Forgetting user-defined fields, so the model cannot see custom data.
  • !Losing role, warehouse and division restrictions when moving to a reporting copy.
  • !Writing with direct SQL or ODBC updates instead of the Web API or BOI.
  • !Mixing up Sage 100 and Sage 300 table names in prompts or descriptions.
  • !Assuming the Web API exists on an older Sage 300 release without checking.

How an ERP-grounded AI assistant handles this

ERPray can sit over a reporting copy of Sage data, show the query behind every answer, and run on your own hardware. Where a bespoke setup is needed, such as a Sage 100 extract pipeline or approval workflow, Netray builds it with your Sage partner.

Frequently asked questions

Can I use AI with Sage 100 Standard?

Yes, but schedule an ODBC extract into a reporting database instead of querying live ProvideX files. Then run the model and retrieval against the copy, and use the Business Object Interface only for approved writes.

Does Sage 300 have an API for AI tools?

Sage 300 provides a REST Web API in recent releases and a views-based programmatic API. For bulk reads, a SQL Server replica is still usually better. Check your release before you design around the Web API.

Do I need a GPU for a small Sage site?

For a 7B to 14B class model and 20 to 100 users, one modest data center or high-memory workstation GPU can be enough. Test with your own prompts, since context length drives memory use.

How do I keep Sage permissions in the assistant?

Map each user to their Sage role or security group and apply the allowed warehouses, divisions or companies as filters on every query. For record-level reads, call the API under their identity.

Related

Error fix

Fix Sage 100 SOTAMAS90 ODBC Connection Errors

Most Sage 100 ODBC failures are one of four things: the DSN was created in the wrong 32-bit or 64-bit ODBC administrator for the tool you use, the DSN path or company code is wrong, the Windows account cannot read the MAS90 folder, or the Sage 100 user lacks external access. Recreate the DSN in the matching administrator and test with the driver's own Test button before blaming Excel or Power BI.

How-to

Sage 100 Business Object Interface (BOI): Working VBScript Example

The Sage 100 Business Object Interface exposes the same business objects the screens use through a COM object called ProvideX.Script. You initialise it with the MAS90\Home path, create an SY_Session object, log on, set the company, then create a business object such as AR_Customer_bus and read or write through it. Because it runs the real business logic, it is the supported way to write data in code, unlike direct file or ODBC writes.

Advanced

Deltek Costpoint On-Prem AI Architecture for Government Contractors

Costpoint on-prem runs on SQL Server or Oracle and exposes data through its database, Deltek web services and import interfaces. A private AI layer reads a replica, answers with a local open-weight model, and keeps project, cost and personnel data inside your own boundary, which matters when CUI and DFARS 252.204-7012 are in play. Accounting entries are never written by the model.

How-to

Sage X3 Production Planning, Scheduling and Tracking

Sage X3 plans production from master data (items, BOMs, routings, work centers) through MRP or manual work orders, schedules operations against work center capacity, then records progress with production tracking. Setup quality in the BOM, routing and work center calendar decides whether the plan is believable.

Error fix

Division by 0 Error in Sage X3: Find the Cause and Fix It

A division by 0 error in Sage X3 means a calculation divided by a field that was zero or empty at runtime. Typical sources are a zero unit-of-measure coefficient, a zero quantity or base quantity on a BOM or routing, a zero price or rate, or custom 4GL or report code that never guards the denominator. Find the script and line from the error, then fix the data or guard the calculation.

How-to

Sage X3 Developer Studio: What It Does and How to Track Versions and Release Notes

Sage X3 Developer Studio is the development environment for building and changing X3 solution code and web pages, working with the Adonix 4GL scripts and the Syracuse web layer. To track versions, read the release notes and compatibility guides that Sage publishes for each version and patch rather than relying on remembered dates.

AI for ERP

AI for Sage 100, Grounded in Your MAS90/200 Data

Put AI on Sage 100 and the Sage 100 Manufacturing (MRP) data set without sending data to a public model. Private LLMs and agents grounded in your MAS90/200 tables.

AI for ERP

A Private LLM Grounded on Your ERP Data

How a private LLM answers questions on your ERP data: RAG plus text-to-SQL, role-based permissions inherited from the ERP, and where each fits.

Stuck on Sage 100 and Sage 300 (on-prem)?

Talk to engineers who work inside Sage 100 and Sage 300 (on-prem) every week, and who build private AI that answers these questions from your own ERP data.

Keep exploring

Free tools

ERP fixes and how-tos

AI on your ERP

Integrations

Software