Menu & Menu Item Extensions
D365 F&O supports extensions for both menus and menu items, allowing customisation of navigation without modifying base objects.
Menu Extensions
A Menu Extension (AxMenuExtension) modifies an existing menu by adding new menu items, submenus, or modifying properties on existing elements.
What Can Be Extended
| Capability | Description |
|---|---|
| Add Menu Elements | Add new menu items, submenus, or separators to the menu. |
| Modify Existing Elements | Change properties on existing menu elements via MenuElementModifications. |
| Add Customisations | Add custom menu elements. |
| Modify Properties | Change top-level menu properties via PropertyModifications. |
Extension Element Positioning
Each new element specifies its position within the menu:
| Property | Type | Description |
|---|---|---|
Parent | String | The existing submenu or menu to add the element into. |
PreviousSibling | String | The element after which to place the new item. |
PositionType | ExtensionItemPositionType | Values: Begin (0), End (1), AfterItem (2). |
Menu Item Extensions
Menu item extensions (AxMenuItemDisplayExtension, AxMenuItemActionExtension, AxMenuItemOutputExtension) allow property modifications on existing menu items — for example, changing the Label, HelpText, or ConfigurationKey.
All three menu item types (Display, Action, Output) share the same extension model inherited from AxMenuItemExtension.
What Can Be Extended
| Capability | Description |
|---|---|
| Modify Properties | Change property values via PropertyModifications (Label, HelpText, ConfigurationKey, etc.). |
Menu item extensions are limited to property modifications only. You cannot change the underlying form/class target of a menu item through an extension.
Properties
| Property | Display Name | Type | Description |
|---|---|---|---|
| Menu ExtensionAxMenuExtension | |||
| Name | Name | String | The name of the extension element (follows BaseMenu.Package naming). |
| IsObsolete | Is Obsolete | NoYes | Whether the extension is deprecated. Values: No (0), Yes (1). |
| Visibility | Visibility | CompilerVisibility | Access level visibility. Values: Private (0), Protected (1), Public (2), Internal (3), InternalProtected (4). |
| Tags | Tags | String | Tags for this element separated by semicolon. |
| Menu Item ExtensionAxMenuItemExtension | |||
| Name | Name | String | The name of the menu item extension (follows BaseMenuItem.Package naming). |
| IsObsolete | Is Obsolete | NoYes | Whether the extension is deprecated. Values: No (0), Yes (1). |
| Visibility | Visibility | CompilerVisibility | Access level visibility. Values: Private (0), Protected (1), Public (2), Internal (3), InternalProtected (4). |
| Tags | Tags | String | Tags for this element separated by semicolon. |