Saturday, September 20, 2025

Generate URL link to a particular form and record

 

using Microsoft.Dynamics.AX.Framework.Utilities;

internal final class Dax_GenerateURLForRecord

{

   private static str buildAXURL(MenuItemName _menuItemName, MenuItemType _menuItemtype, DataSourceName _dataSource='', FieldName _field='', str _value='' )

   {

 

       UrlHelper.UrlGenerator generator = new UrlHelper.UrlGenerator();

 

       System.Uri currentHost = new System.Uri(UrlUtility::getUrl());

 

       generator.HostUrl = currentHost.GetLeftPart(System.UriPartial::Authority);

 

       generator.Company = "USMF";

       generator.MenuItemName = _menuItemName;

       generator.MenuItemType = _menuItemtype;

       generator.Partition = getCurrentPartition();

       generator.EncryptRequestQuery = true;

 

 

       if(_dataSource != '')

       {

           UrlHelper.RequestQueryParameterCollection requestQueryParameterCollection;

 

           requestQueryParameterCollection = generator.RequestQueryParameterCollection;

           requestQueryParameterCollection.UpdateOrAddEntry(_dataSource, _field, _value);

 

       }

       System.Uri fullURI = generator.GenerateFullUrl();

       return fullURI.AbsoluteUri;

   }

 

   public static void main(Args _args)

   {

       str link; 

       link = Dax_GenerateURLForRecord::buildAXURL(menuItemDisplayStr(PurchTableListPage), MenuItemType::Display, formDataSourceStr(PurchTable,PurchTable), fieldstr(PurchTable, PurchId), "000039" );

 

       info(link);

   } 

}

...........................