AdvancedInfor M3 on-premAI integration / M3 API and MI programs

Private AI Layer for Infor M3 On-Prem: Reference Architecture

Question
how to add AI to Infor M3 on-prem

Also searched as

  • Infor M3 AI integration without cloud
  • M3 API MI programs AI assistant
  • private LLM for Infor M3 DB2 IBM i
  • Infor M3 MITMAS read-only AI

Short answer

For Infor M3 on-prem, use the M3 API (MI programs) for permission-aware record access, a read-only reporting copy of the M3 database for aggregates, a local retrieval index for documents, and an open-weight model on your own GPUs. Mirror M3 users, companies, divisions and warehouse authorities in the tool server and send writes only through MI programs with human approval.

Applies to: Infor M3 on-premises (Business Engine on IBM i/DB2, Oracle or SQL Server) with M3 API (MI programs) and Infor ION

How to build a private AI layer on Infor M3

  1. 1List the M3 companies, divisions, facilities and warehouses in scope and the target questions.
  2. 2Identify the MI programs that return the data (for example MMS200MI for items, OIS100MI for customer orders, PPS200MI for purchase orders) and confirm access with your M3 admin.
  3. 3Stand up a read-only reporting copy of selected M3 tables for aggregates and history.
  4. 4Index documents, drawings and attachments locally with company and ACL metadata.
  5. 5Expose named read actions through an MCP or tool server mapping to specific MI transactions or parameterised queries.
  6. 6Serve an open-weight model on local GPUs and log every prompt, tool call and answer.
  7. 7Phase the rollout: read-only questions, drafts, then approved actions through MI programs.

Data access paths in M3

M3 data sits in the Business Engine database: DB2 for i on IBM i installations, or SQL Server or Oracle elsewhere. Tables use five-letter names such as MITMAS for item master, MITBAL for item balances by warehouse, OOHEAD and OOLINE for customer orders, MPHEAD and MPLINE for purchase orders, MWOHED for manufacturing orders, with the company number (CONO) as the first key field.

The supported programmatic layer is the M3 API: MI programs (for example MMS200MI with transaction GetItmBasic) called over REST, usually through the ION API gateway, or directly on the M3 API endpoint. MI programs apply M3 business rules and authorities, so they suit record lookups and write-back. A reporting copy is better for aggregates and history.

Documents attach through M3 document management and often live on file shares and in other systems; index them separately.

GET /M3/m3api-rest/execute/MMS200MI/GetItmBasic?ITNO=BRK-1001
Authorization: Bearer <token>
-- Verify the endpoint path and required fields for your M3 and ION configuration.
SELECT MMITNO, MMITDS, MMSTAT
FROM MITMAS
WHERE MMCONO = 100 AND MMSTAT = '20';
-- Library or schema name depends on your installation.

Reference architecture

Inside your network run: a reporting copy of selected M3 tables, a document index, a tool server, a model server and an audit store. Credentials stay in the tool server; the model only sees tool results.

On IBM i, a journal-based replication or scheduled copy to a Linux or Windows reporting database keeps the Power system load low. If you use ION, keep the gateway inside the boundary; air-gapped sites need local identity and no external callbacks.

A 8B to 32B open-weight model is enough for lookups and summaries; keep vLLM or Ollama on a separate GPU host rather than on the M3 server.

Permissions and write-back

M3 authorisation is granular: users and roles get authority to programs, and data authority by company, division, facility and warehouse. Reproduce that: authenticate the user through your identity provider, call MI programs with that user's identity where possible, and filter reporting-copy queries by the same company, division and warehouse lists.

Write-back: use MI programs such as order or purchase change transactions only after a named user approves a drafted action. Keep the assistant out of direct database writes.

Sizing, limits and honest caveats

For a few hundred named users with 10 to 25 percent daily activity, one to two inference GPUs typically cover peak. Document indexes of 100,000 to 1,000,000 pages usually sit in the tens of GB.

Limits: MI programs return field codes that need reference-data lookups to read well; transaction names and fields vary by version, so test each; heavy aggregate questions need the reporting copy, not repeated API calls. If Infor's own M3 analytics already answer your questions, add an LLM only where natural language or documents are the gap.

Try it here, free

Infor M3 Private AI Layer Blueprint Generator

Open full tool

Fill in your Infor M3 environment and get a ready-to-share architecture plan for a private, on-prem AI assistant.

Common pitfalls

  • !Calling MI programs in loops for aggregate questions instead of using a reporting copy.
  • !Ignoring company, division and warehouse authority and returning cross-division data.
  • !Showing raw codes without joining the reference data that explains them.
  • !Hard-coding MI transaction names without checking the version.
  • !Pointing the model server at the Business Engine host and starving it.

How an ERP-grounded AI assistant handles this

ERPray already targets Infor M3: it reads through the M3 API and a reporting copy, shows the call or query behind each answer, honours M3 roles, and runs on your own GPUs. Write actions stay drafts until a user approves them.

Frequently asked questions

Can M3 AI run on-prem only?

Yes. The M3 API, a reporting database copy, a document index and an open-weight model can all stay inside your network. ION can also be on-prem.

Do I use MI programs or SQL?

MI programs for record lookups, business rules and writes; SQL on a reporting copy for aggregates and history. Both sit behind a tool server.

How does M3 authority carry over?

Map users to M3 users and their company, division, facility and warehouse authority in the tool server and apply it to both API calls and retrieval.

Is IBM i a problem?

No, but keep the model on separate GPU hardware and replicate data off the Power system for reporting to protect production performance.

Related

Error fix

Fix a 401 Unauthorized error from Infor ION API

A 401 from ION API almost always means the credentials in the .ionapi file no longer match what ION API Gateway expects - not that the password is simply wrong. Check whether the Authorized App or service account behind the file was revoked, regenerated, expired, or issued for a different tenant, then re-test with a direct OAuth2 client_credentials call before touching any calling code.

Error fix

Diagnose and fix a failed BOD document flow in ION Desk

A Document Flow showing Failed in ION Desk means a BOD (Business Object Document) stopped either at schema validation, at the mapping step, or at the target application. Open the failed instance's detail to see the exact failing element, fix the source data or mapping, then use Resubmit rather than re-triggering the original transaction to avoid duplicates.

Error fix

M3 API Error: Record already exist

Record already exist means the MI Add transaction you called is trying to insert a key that is already present in the target M3 table, most often because a prior call succeeded and was retried, or because the key fields you built do not match what you think they match. Read the errorField and errorFieldGroup attributes on the response to see exactly which key field M3 flagged, then either switch to the matching Chg (change) transaction or fix the key construction in the caller.

Advanced

Paging M3 API MI List Transactions Past the Default Record Limit

M3 List transactions (the read/browse transaction most MI programs expose, such as CRS610MI.LstByNumber or OIS100MI.LstOrderHead) cap the rows returned per call using the MaxReturnedRecords input field, and by default many clients leave it low or unset, which looks like the API silently truncating results. Set MaxReturnedRecords explicitly, then loop the call using the last key values from the previous page as the starting position until fewer rows than the limit come back.

Error fix

M3 API Error: Not Authorized to Program

Not authorized to program (or the equivalent transaction-level authorization error) means the M3 user ID the integration authenticates as can log in fine but has not been granted access to that specific MI program, transaction, or company/division through its authority group. Fixing it means adding the program/transaction to the integration user's authority group in M3, not changing anything in the calling code.

How-to

How to Build a Grid Mapping in M3 Enterprise Collaborator (MEC)

M3 Enterprise Collaborator (MEC) moves data between an external format (EDI, flat file, XML) and M3's own API by chaining a collection step (getting the document in), a grid mapping step (field-level transformation from source structure to M3 API call structure), and a delivery step (executing the mapped MI transaction). Building a new mapping means defining the source document structure, building the grid that maps each source field to its M3 API field, and testing with representative sample documents before going live.

AI for ERP

Infor M3 AI: A Practical Path from MI Programs to a Private Assistant

Infor M3 AI explained: grounded natural-language answers over MI programs and MEC, agents for distribution and manufacturing, on-prem or EU private cloud.

AI for ERP

AI Agents Over Infor ION API, BODs, and the Infor Data Lake

Build AI agents on Infor ION API Gateway, BODs, and Data Lake, alongside or instead of Infor's own GenAI features, with your choice of model and hosting.

Stuck on Infor M3 on-prem?

Talk to engineers who work inside Infor M3 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

Runs with your ERP

Guides

AI on your ERP

Integrations

Comparisons

Software