Adding Menus to the Navigation and Actions Area
The navigation area appears at the top of the Dynamics 365 Business Central window, and contains multiple sections that enable users to quickly navigate and perform actions in Dynamics 365 Business Central. In the client, the navigation area is separated into three separate areas: navigation menu, navigation area, and actions area. For an illustration that identifies the different areas in a Role Center, see Designing Role Centers. In AL, these areas are defined by the area()
control, as described in the sections that follow.
Adding to the navigation menu
The top-level navigation area is referred to as the navigation menu. The navigation menu contains one or more root menu items that expand to display links to other pages. The links can be grouped into submenus, enabling you to create a logical hierarchy. These links are defined by action()
controls. You can also group action()
controls in submenus. This enables you to create a logical hierarchy that matches the needs of the user role. The pages targeted by the links in the navigation menu will open in the content area of the Role Center.
Note
The submenu items can include page extensions and other objects like reports, XMLPorts, and codeunits. The Dynamics NAV Client connected to Business Central doesn't support submenus in the navigation menu.
You define the navigation menu by using an area(Sections)
control in the page code.
Example
The example below adds the root menu item called My Customers
to the navigation menu of the Sales Order Processor Role Center. The My Customers
menu item contains two actions, the Customer Bank Account List
and Customer Ledger Entries
actions, which open corresponding page objects. The My Customers
menu item also includes a group that contains two other actions, which open sales-related documents.
pageextension 50120 ExtendNavigationArea extends "Order Processor Role Center"
{
actions
{
addlast(Sections)
{
group("My Customers")
{
action("Customer Bank Account List")
{
RunObject = page "Customer Bank Account List";
ApplicationArea = All;
}
action("Customer Ledger Entries")
{
RunObject = page "Customer Ledger Entries";
ApplicationArea = All;
}
// Creates a sub-menu
group("Sales Documents")
{
action("Sales Document Entity")
{
ApplicationArea = All;
RunObject = page "Sales Document Entity";
}
action("Sales Document Line Entity")
{
ApplicationArea = All;
RunObject = page "Sales Document Line Entity";
}
}
}
}
}
}
You can also enable pages and reports to appear in the Dynamics 365 Business Central search for a quick navigational support. For more information, see Add pages and reports to Tell me.
Adding to the navigation bar
The second-level navigation is referred to as the navigation bar. The navigation bar offers a flat list of links to other pages. These should be the most relevant pages needed for a user's business process. We recommend having only the most important items on this level and to place the others in the top-level navigation instead.
You define the navigation bar by using an area(Embedding)
control in the page code.
Example
The following code adds a new link to the navigation bar by defining this area with an area(Embedding)
control in the page code. The object targeted in this case is the Sales Cycles
page and it will appear as the last one.
...
addlast(Embedding)
{
action("Sales Cycles")
{
RunObject = page "Sales Cycles";
ApplicationArea = All;
}
}
Adding to actions
The actions area displays the most important or most often used tasks and operations required by users. It contains links to pages, reports, and codeunits. The links are placed on the root-level, and they can be grouped in a submenu.
You can define the actions by using three different area()
controls.
The first action area that appears at the top of the Role Center page is area(Creation)
. The following example adds the item last, and it allows opening the Sales Journal
page.
Example
...
addlast(Creation)
{
action("Sales Journal")
{
ApplicationArea = All;
RunObject = page "Sales Journal";
}
}
The actions in the area(Processing)
control appears after the area(Creation)
items.
The example below shows how you can use the group control to organize similar actions under a common parent. The created group is placed at the end of this action area, and it targets pages needed for processing sales documents.
Example
...
addlast(Processing)
{
group(Documents)
{
action("Sales Document Entity")
{
ApplicationArea = All;
RunObject = page "Sales Document Entity";
}
action("Sales Document Line Entity")
{
ApplicationArea = All;
RunObject = page "Sales Document Line Entity";
}
}
}
The actions in the area(Reporting)
control will appear last in the action area and they display with a default report icon. This control's purpose is to target report objects and the following example opens the Customer Sales Statistics
report.
Example
...
addlast(Reporting)
{
action("Customer Statistics")
{
ApplicationArea = All;
RunObject = report "Customer Sales Statistics";
}
}
See Also
AL Development Environment
Page Extension Object
Actions Overview
Add pages and reports to Tell me