Migrating from OData pages
The rules for moving a SmartConnect map off a Business Central OData page and onto these endpoints. They are written for the person doing the remap and for an AI assistant helping them, so each map comes out simpler than it went in, not only renamed.
Business Central stops publishing pages as OData endpoints with the 2027 release wave 1 (version 30.0). Every map that reads or writes a published page needs a new target or source before then.
How to use this page with an AI assistant
Give the assistant the documentation index at llms.txt, this page, and your exported SmartConnect integration. Every topic on this site is also available as Markdown at the same address with .md in place of .html, which is the form an assistant reads best.
Ask it to follow the rules below and to answer in the output format at the end. Review the answer before you change a map, and test every change in a sandbox.
Rules for choosing the endpoint
- Match on the table, not the page name. An OData page and an eOne endpoint that read the same Business Central table are the same data. Every endpoint topic names its table.
- Prefer an eOne endpoint over the standard API. Use Microsoft's API v2.0 only when no eOne endpoint covers the table.
- Use the ledger document endpoints for journals. A map that builds cash receipt or payment journal lines by hand becomes
customerPaymentsorvendorPayments. See Payments & ledger documents overview. - Use a query for reporting joins. A map that reads several pages to stitch one report together usually becomes one query. See Reports / Queries.
- Say so when nothing matches. Never invent an endpoint or a column. Only use what an endpoint topic documents.
Rules for mapping fields
- Map by the Business Central field. Each endpoint's field list shows the Business Central field behind every column. Match the OData field to that, not to a similar-sounding column name.
- Leave read-only columns out of targets. Columns marked
roare calculated or set by Business Central, like totals and names looked up from a number. - Send every column marked
req. A create without them is refused. - Set
integrationIdon every create. It is what a later run uses to find the record again. See The Integration Id.
Rules for simplifying the map
The move is the right time to remove work the old map only did because OData pages could not do it themselves:
- Drop lookups for Business Central numbers. A step or a second map that finds a customer, vendor or location number from your own key is replaced by a resolver column such as
customerIntegrationIdorlocationIntegrationId. See Resolver fields. - Drop the line-type step. On document lines
itemNumbersets the line type and the item in one column. - Drop codeunit calls and follow-up maps. Posting, releasing, shipping and invoicing are bound actions on the endpoint itself. Each endpoint topic lists them under Bound actions. See Working with SmartConnect.
- Drop separate dimension maps. All eight shortcut dimensions are plain columns on every table that carries dimensions. See Dimensions.
- Drop full reloads. Filter a source on
lastModifiedDateTimewith a Global Variable so each run reads only what changed. For document lifecycles, read the named events in Document events instead of comparing records. - Drop the tracking lines you do not use. Posted invoices offer a lightweight line collection and a heavier one with serial and lot numbers. Use the heavy one only when the map needs those numbers. See Posted Documents.
Rules for custom fields
- Keep custom fields on a companion API. A field added to a page does not appear on an eOne endpoint, and no extension can add it. See Extending the endpoints.
- Never pack a custom field into another column. Writing JSON or a code into an existing column breaks that column for every other integration.
Things that behave differently from OData pages
- Ledger documents are staged first. A successful run on a payment, refund or expense endpoint means the document arrived, not that the ledger moved. Endpoint Setup decides when it posts. See Endpoint setup.
- Some features must be switched on. An endpoint that answers with a feature error needs its switch turned on in eOne Integration Setup. See Overview.
- Column names are a fixed contract. They do not change when a page layout does, so a remapped map keeps working across updates.
Output format for an AI assistant
Answer once per map, in this order:
- Replacement. The source or target endpoint, and the topic that documents it.
- Field mapping. A table of each OData field, the eOne column it maps to, and a note. Mark fields to drop, and say why.
- Simplifications. Each lookup, step or follow-up map that the rules above remove.
- Actions. The bound actions that replace any codeunit call or follow-up map.
- Open questions. Anything with no documented match, and any custom field that needs a companion API.
Keep the map's behaviour the same unless a simplification rule says otherwise, and flag every place it changes.
Next: Working with SmartConnect. How the new endpoint becomes a SmartConnect source, target or action.