web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / XrmTricks / [Model-driven apps] Deep li...

[Model-driven apps] Deep link a MDA to open on a specific form tab

meelamri Profile Picture meelamri 13,198

Have you ever needed to open a form with a focus on a tab or a section dynamically from a url ? This blog explains in detail an approach to implement this functionality. You’ll need a few lines of JS code, don’t worry the API client will do all the work for us.

Scenario:

We will use the Account table and the standard Account form. The goal is to automatically navigate to an “X” tab by passing his name as a parameter to our URL. For example, the following URL will open an account with a focus on a tab named “DETAILS_TAB”:

https://yourorg.dynamics.com/main.aspx?appid=08d0868e-b4e4-eb11-bacb-000d3a9587a6&pagetype=entityrecord&etn=account&id=7046cbf5-fe9a-ec11-b401-0022486fa9c1&extraqs=tab_name=DETAILS_TAB

How does it work ?

First, we will need to create a Parameter for our form. It can be done within the classic designer:

  • Click on Form Properties
  • Then go to the Parameters tab
  • Add your parameter. In my case, I named it “tab_name”
  • Save & Publish the form

Some JS code will be used to set the focus to a tab Dynamically. The tab’s name will be captured from the URL:

  • Create a JavaScript web resource
  • Implement the logic using the OnLoad Function
  • Register the function in your form
Web Resource Details:
Implementation:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Show hidden characters
var MEA = window.MEA || {};
var accountForm = MEA.accountForm || {};
(function () {
this.OnLoad = function (onLoadContext) {
var formContext = onLoadContext.getFormContext();
var extraParameters = Xrm.Utility.getGlobalContext().getQueryStringParameters();
var tabName = extraParameters["tab_name"];
if(tabName != undefined){
var defaultTabObj = formContext.ui.tabs.get(tabName);
defaultTabObj.setFocus();
}
};
}).call(accountForm);
view raw AccountForm.js hosted with ❤ by GitHub
Event Handler:

All you need is to construct the URL. First, navigate to an account record and copy the URL:

https://yourorg.dynamics.com/main.aspx?appid=08d0868e-b4e4-eb11-bacb-000d3a9587a6&pagetype=entityrecord&etn=account&id=7046cbf5-fe9a-ec11-b401-0022486fa9c1

Then, simply add an extraqs (&extraqs=tab_name=DETAILS_TAB) as below:

https://yourorg.dynamics.com/main.aspx?appid=08d0868e-b4e4-eb11-bacb-000d3a9587a6&pagetype=entityrecord&etn=account&id=7046cbf5-fe9a-ec11-b401-0022486fa9c1&extraqs=tab_name=DETAILS_TAB

The name of the tab can be found easily in the designer. In my case, I used “DETAILS_TAB”:

Hope it helps …


This was originally posted here.

Comments

*This post is locked for comments