How to: table extensions
How-to · Core Studio 3.0 · Verified 2026-09-01
Goal: extend a stock table with your own fields — new artifact, zero edits to Microsoft’s table.
Time: ~10 minutes · Requires: a D365 VM for the build step.
Prerequisites
- A custom model referencing the target table’s model.
- The new fields’ EDTs decided (existing, or scaffold new ones — the Table wizard co-generates EDTs, and the EDT wizard makes them standalone).
Steps
- Find the target table in the AOT explorer; right-click → New X++ Object → table extension.
- Name it per the convention:
<Table>.<Suffix>(dotted names are allowed specifically for table extensions). - Add your fields — each field gets an EDT (existing from the index, or a new one) and its label.
- Add indexes if your access pattern needs them — your index is part of the extension artifact, not the stock table.
- Save, then Build Model (Ctrl+B).
EDITOR · TABLE EXTENSION FIELDSReal UI capture pendingxpp-table-ext-fields
Output anatomy
AxTable/<Table>.<Suffix>.xml— the extension artifact (fields, indexes, field groups) under<root>/<Model>/<Module>/AxTable/. Microsoft’s table file is untouched — verify that yourself with the git panel.
Verify it worked
- First build: 0/0. The stock table now carries your fields (check with a quick form or the table browser in your environment).
- The git panel shows exactly one new file — nothing modified under any
Application*model.
If it goes wrong
- Duplicate field name error — your field collides with one Microsoft (or another ISV) already added; rename with your prefix (see extension-first philosophy for the naming conventions).
- DB sync questions — new physical fields need the deploy pipeline’s DB sync stage; see the deploy walkthrough.
Next: event handlers · CoC extension classes.