How to Add AI to Sage 100 and Sage 300 On-Prem
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
- 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.
- 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.
- 3Define a small set of views over the tables the assistant needs, with descriptions of each column in plain language.
- 4For single-record lookups, use the Sage 300 Web API or Sage 100 Business Object Interface under a user whose rights match the asker.
- 5Index documents and attachments, such as customer contracts, item data sheets and scanned supplier invoices, with their permissions.
- 6Run an open-weight model on a local GPU with vLLM or Ollama and a gateway that logs everything.
- 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
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
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-toSage 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.
AdvancedDeltek 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-toSage 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 fixDivision 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-toSage 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 ERPAI 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 ERPA 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
- Sage 100 and Sage 300 Private AI Layer Blueprint GeneratorGenerate 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.
- Sage 100 and Sage 300 AI Assistant Sizing and Value CalculatorEstimate GPUs, index size and value for a private AI assistant on Sage 100 or Sage 300. Smaller sites often need very little hardware, and this calculator shows how little.
- Sage 300 Database Table ReferenceA quick lookup of well-known Sage 300 SQL table names, the module they belong to and what each stores, for reports and integrations.
ERP fixes and how-tos
- Sage X3 AI Integration On-Prem: A Private ArchitectureHow to add a private AI assistant to on-prem Sage X3: SQL read replica, Syracuse SData and web services, retrieval index, local GPU model and audit trail.
- Sage 100 Business Object Interface (BOI): Working VBScript ExampleWorking Sage 100 BOI pattern: ProvideX.Script, SY_Session logon, nSetCompany, reading a customer and writing records, plus the errors and security settings that break it.
- Fix Sage 100 SOTAMAS90 ODBC Connection ErrorsFix Sage 100 ODBC failures on the SOTAMAS90 DSN: 32-bit versus 64-bit driver mismatch, wrong company code, path rights, and external access security.
AI on your ERP
- AI for Sage 300, Built for Multi-Entity ManufacturersGround a private LLM on Sage 300 (Accpac) financial and operations data. On-prem AI for multi-currency, multi-entity manufacturers without a public API.
- AI for Sage 100 Small Manufacturers: Practical Answers From Work Orders, BOMs and InventoryPractical AI for small manufacturers on Sage 100: ask about work orders, BOMs, stock and shortages in plain English via ODBC or SQL, kept on a small server.
Integrations
- How to add Slack to Sage 100Connect Slack to Sage 100: slash commands for order and stock lookups, interactive approval messages, and alerts, built on ODBC reads and BOI writes.
- How to build an MCP server for Sage 100How to build a Model Context Protocol server for Sage 100: tool design, ODBC and SQL access, auth, transports, permission scoping and audit logging.