Role Centers in Business Central
Business Central “Role Centers”
The Role Center is the user’s entry point and home page for Dynamics 365 Business Central. You can develop several different Role Centers, where each Role Center is customized to the profile of the intended users. Role Centers are based on a “user-centric” design model.
You should design a Role Center to give users:
– Quick access to the information that is most important to them in their daily work
– Displaying information that is pertinent to their role in the company and enabling them to easily navigate to relevant pages for viewing data and doing tasks.
For example, you could have Role Centers that target the different levels within an organization, such Business owners, Department leads and information workers.
A simple Customized Role Center
ROLE CENTER STRUCTURE – Details
Now let’s see the different elements that make up a role center.
Application Bar
- At the top of the page
We can see the application name, and we can find the search button, which is called “tell me”, and you can type what you want to search for.
We find the Setup, where I can design a page, I can inspect on a page, and I can change my Settings, and I will find the Help button.
Navigation Menu
- The first line of information
Navigation Bar
- The second line of information
Headline
- It shows aggregated business data which has been selected as the most relevant.
On the right hand side are a list of Actions.
You can set up a Role Center to display a series of headline texts that appear one by one for a predefined period of time.
Typical categories of headlines might include:
- My performance
- My workday
- Organizational health
- Productivity tips
- Cross-tenant insights (performance relative to peers)
- Getting started information
NOTE
Headlines will only appear in the Web client; they will not be shown on other client types.
Headlines can display numbers and letters only. For example, headlines cannot display images.
Activities Cue, Cue Group & Actions Tiles
CUE
A Cue provides a visual representation of aggregated business data, like the number of open sales invoices. Cues are interactive, meaning that you can select the Cue to drill down to data or open another page, run code, and more. Cues display data that is contained in a table field.
This data can be raw data or calculated data.
Normal and wide layout
There are two layout options that influence how Cues appear in the client: normal and wide.
- The normal layout displays Cues as tiles. With this layout, Cue groups are automatically arranged to fill in the width of the workspace, which means there can be more than one group horizontally across the workspace.
- The wide layout is designed to display large values, such as monetary values. The wide layout gives you a way emphasize a group of Cues.
We then have a lot of Activity Queues and Action Tiles
The Activity Queues can be divided into Data Queues and show aggregated business data, but they can also be Action Queues that link to a task or an operation.
Actions
- The Actions make it possible from the Role Center to do a task quickly.
NOTE:
All Queues, Navigation Menu and Navigation Bar will be dependent on which Role Center we have chosen.
ROLE CENTER ALL ELEMENTS – LEGENDA
Development tips for overall page design
- Do not apply grouping to parts in the content area because it prevents parts from flowing to fill the available space. This gives the best experience to users with different screen resolutions or those on mobile devices.
- To achieve the best readability and discoverability, place Headlines first, followed by cues, and then the remaining parts.
- You can’t add custom logic directly to a Role Center page code. Code is limited to defining navigation, actions, and parts. All other code is ignored.
- Role Centers can be highly specialized, in the fact that the navigation, actions, and content are optional. For example, you could have a single part that fills the entire workspace.
How-to Customize Navigation and Actions Area
Adding Menus to the Navigation and Actions Area
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 a set of links to pages, and other objects like reports, XMLPorts, and codeunits. These links are defined by action() controls. You can also group action() controls in sub-menus.
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.
A simple Customized Rolecenter
This example uses the RoleCenterHeadline page code example to display the headline and the SalesInvoiceCuePage page and the following code example for the Cue and Action tile.
Customize an existing Role Center – example
Example
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;
}
// How-to 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";
}
}
}
}
}
}
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 to have 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.
addlast(Creation)
{
action("Sales Journal")
{
ApplicationArea = All;
RunObject = page "Sales Journal";
}
}
...
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";
}
}
}
addlast(Reporting)
{
action("Customer Statistics")
{
ApplicationArea = All;
RunObject = report "Customer Sales Statistics";
}
}
Create a table for Cue data
table 50100 SalesInvoiceCueTable
{
DataClassification = ToBeClassified;
fields
{
field(1;PrimaryKey; Code[250])
{
DataClassification = ToBeClassified;
}
field(2; SalesInvoicesOpen ; Integer)
{
FieldClass = FlowField;
CalcFormula = count("Sales Header" where("Document Type"=Filter(Invoice), Status=FILTER(Open)));
}
}
keys
{
key(PK; PrimaryKey)
{
Clustered = true;
}
}
}
page 50105 SalesInvoiceCuePage
{
PageType = CardPart;
SourceTable = SalesInvoiceCueTable;
layout
{
area(content)
{
cuegroup(SalesCueContainer)
{
Caption='Sales Invoices';
// CuegroupLayout=Wide;
field(SalesCue; SalesInvoicesOpen)
{
Caption='Open';
DrillDownPageId="Sales Invoice List";
}
}
}
}
trigger OnOpenPage();
begin
RESET;
if not get then begin
INIT;
INSERT;
end;
end;
}
Create an Action tile
cuegroup(SalesActionontainer)
{
Caption='New Sales Invoice';
actions
{
action(ActionName)
{
RunObject=page "Sales Invoice";
Image=TileNew;
trigger OnAction()
begin
end;
}
}
}
Create “My Role Center”
page 50125 MyRoleCenter
{
PageType = RoleCenter;
Caption = 'My Role Center';
layout
{
area(RoleCenter)
{
group(Group1)
{
part(Part1; RoleCenterHeadline)
{
ApplicationArea = All;
}
part(Part2; SalesInvoiceCuePage)
{
Caption = 'Invoices';
}
}
}
}
actions
{
area(Sections)
{
group(PostedInvoices)
{
Caption = 'Posted Invoices';
Image = RegisteredDocs;
action(PostedServiceInvoices)
{
Caption = 'Posted Service Invoices';
RunObject = Page "Posted Service Invoices";
ApplicationArea = All;
}
action(PostedSalesInvoices)
{
Caption = 'Posted Sales Invoices';
RunObject = Page "Posted Sales Invoices";
ApplicationArea = All;
}
group(SalesDocuments)
{
Caption = '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";
}
}
}
}
area(Embedding)
{
action(Sales)
{
Caption = 'Sales lists';
RunObject = Page "Sales list";
ApplicationArea = All;
}
action(Services)
{
Caption = 'Service lists';
RunObject = Page "Service list";
ApplicationArea = All;
}
}
area(Processing)
{
action(SeeSalesInvoices)
{
Caption = 'See Sales Invoices';
RunObject = Page "Posted Sales Invoices";
}
}
area(Creation)
{
action(AddSalesInvoice)
{
Caption = 'Add Sales Invoice';
Image = NewInvoice;
RunObject = Page "Sales Invoice";
RunPageMode = Create;
}
}
area(Reporting)
{
action(SalesInvoicesReport)
{
Caption = 'Sales Invoices Report';
Image = "Report";
RunObject = Report "Sales - Invoice";
}
}
}
}
// Creates a profile that uses the Role Center
profile MyProfile
{
ProfileDescription = 'Sample Profile';
RoleCenter = MyRoleCenter;
Caption = 'My profile';
}
This was originally posted here.
*This post is locked for comments