Developer ToolsFree worksheetPDF, Excel, Word exportInfor M3All Infor M3 tools

Infor M3 MDBREADMI and Custom List API Design Worksheet

This worksheet designs custom read APIs for M3 13.x before anyone opens MRS001 or CMS015. One row per need records the API type, table and index, keys, output fields, transaction name, consumers and daily volume, and flags designs with more than 10 output fields.

Download:
NeedAPI typeTableIndex usedKey fieldsOutput fieldsOutput field countOver 10 fields (1 = yes)Transaction nameConsumersCalls per dayNotes
0
0
0
0
1
0
Total calls per day
25,525
APIs over 10 output fields
1
Average output fields
5.6667

MDBREADMI transactions are added in the MI repository: open MDBREADMI in MRS001 (MI Repository. Open), add the transaction in MRS002 (MI Transaction. Open) and set its input and output fields in MRS003 (MI Transaction. Layout). Each reads one table through an existing index, as Get (one record) or Lst (many records). Names follow type + table + sorting option + optional suffix, for example LstMITMAS00. CMS100MI custom lists are defined in CMS015 on an Information Browser category (CMS010) or ad-hoc report (AHS100) query and can combine tables. EXPORTMI and CMS100MI return at most 10,000 records per call. Keep output fields to about 10 or fewer. Confirm index key order in your M3 metadata.

Get your API designs reviewed

Send the completed worksheet and we will check index choice, output fields and volume against your M3 13.x environment before you build.

Optional. The tool and every export work without this. No spam.

Was this tool useful?

How to use it

Start with the need in business words, then check whether a standard MI transaction already covers it: a custom API is only worth maintaining when none does. Choose the API type, the table and the index whose keys match how the caller will search. List the output fields and count them; the over-10 column flags designs to trim. Name the transaction, list who calls it and estimate calls per day. Export the sheet and review it with whoever owns M3 performance before building.

  • Prefer standard MI transactions when they exist
  • Match the index to the caller's search keys
  • Treat high daily volume as a reason to trim outputs

Choosing between MDBREADMI, CMS100MI and EXPORTMI

MDBREADMI is the API Infor recommends when no standard API exists and data comes from a single table: you add Get or Lst transactions on an existing index to MDBREADMI through MRS001, MRS002 and MRS003 (MI Transaction. Layout for the input and output fields), and they are fast because they read by key. CMS100MI custom lists, defined in CMS015, can bring in related tables when you need a join. EXPORTMI runs SQL-like selects on one table and suits ad hoc or low-frequency extracts. EXPORTMI and CMS100MI return at most 10,000 records per call, so large lists need paging by key.

Worked example and naming

A web shop needs item status 20,000 times a day. That is a Get on MITMAS through index 00, keys company and item number, five output fields, named GetMITMAS00 following the type, table, sorting option pattern. Open order lines with the customer name need OOLINE and OCUSMA together, which MDBREADMI cannot do, so that row becomes a custom list. The one-off migration extract has 12 fields; acceptable once, but the worksheet flags it so nobody copies it into a frequent integration.

Gotchas

MDBREADMI reads only one table, through one index. After creating or changing a transaction, check it in the API browser and refresh any tool that caches API metadata before callers rely on it. If no index matches the caller's keys, a list transaction reads far more than needed; work with your M3 administrator on a suitable sorting option rather than accepting a slow API. Document each transaction's index, inputs and outputs so it can be recreated identically in test and production, and keep the worksheet as the inventory of what exists and who depends on it.

Frequently Asked Questions

How do I create a custom list API in Infor M3?

For a single table, add an MDBREADMI transaction on an existing index: open MDBREADMI in MRS001, add the transaction in MRS002 and set inputs and outputs in MRS003. For data from several tables, define a CMS100MI custom list in CMS015, simulate it, then activate it with Update MI Repository.

What is MDBREADMI in M3?

MDBREADMI is the MI program that holds user-defined read transactions on single M3 tables. Each transaction reads through one index and is of type Get (one record) or Lst (a list). Infor recommends it when no standard API exists and data from one table is needed.

How many output fields should an M3 custom API return?

Infor's guidance is preferably fewer than 10 output fields for MDBREADMI and EXPORTMI, because each extra field adds work on every call. High-volume APIs benefit most from trimming. Ask each consumer which fields they actually use.

What is the record limit for CMS100MI and EXPORTMI?

Both return at most 10,000 records per call; EXPORTMI can exceed it only when you specify an index with filter values that match it. For larger result sets, page by key: request records greater than the last key you received until a page comes back short.

If you would rather let users ask M3 data questions in plain English without a new API for each one, we can set up a private assistant on your own servers.

ArchRay builder
Design the on-prem AI stack for Infor M3: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

Runs with your ERP

Guides

AI on your ERP

Integrations

Comparisons

Software