Skip to content

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

  1. Find the target table in the AOT explorer; right-click → New X++ Object → table extension.
  2. Name it per the convention: <Table>.<Suffix> (dotted names are allowed specifically for table extensions).
  3. Add your fields — each field gets an EDT (existing from the index, or a new one) and its label.
  4. Add indexes if your access pattern needs them — your index is part of the extension artifact, not the stock table.
  5. Save, then Build Model (Ctrl+B).

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.