Friday, April 23, 2021

Get display value from ledger dimension in D365FO

 Last time, I have shared the code about how to Get Main Account from Ledger Dimension in D365FO. In this article, I am sharing the one line code to get the display value using LedgerDimensionFacade class. See the following code:

//Get Display value from LedgerDimension
//The argument (LedgerDimensionValue) is LedgerDimension which you can get from table or any other source as per your requirement

info(strFmt("%1",LedgerDimensionFacade::getDisplayValueForLedgerDimension(LedgerDimensionValue)));

Get main account from ledger dimension in D365FO

 In this article, you will get the one line code to get the Main Account from Ledger Dimension using LedgerDimensionFacade class. See the following code:

//Get MainAccountId from LedgerDimension
//The argument (LedgerDimensionValue) is LedgerDimension which you can get from table or any other source as per your requirement
info(strFmt("%1",LedgerDimensionFacade::getMainAccountFromLedgerDimension(LedgerDimensionValue).MainAccountId));

//Get Name of MainAccountId from LedgerDimension
//The argument (LedgerDimensionValue) is LedgerDimension which you can get from table or any other source as per your requirement
info(strFmt("%1",LedgerDimensionFacade::getMainAccountFromLedgerDimension(LedgerDimensionValue).Name));
                            

Assign default values to form in D365FO

 

Scenario:

I am assigning a value to a field in HcmEmploymentLeave form using OnInitValue form data source event handler.

Lets start!

  • Run Visual Studio
  • Search your desired form in Application Explorer
  • Right click the form -> click Open designer
  • Expand the Data Sources node
  • Expand your desired data source node -> Events -> Select OnInitValue event -> Right click and copy event handler method
  • Create a new class
  • Paste the event handler method
  • Add code in it like below:
[FormDataSourceEventHandler(formDataSourceStr(HcmEmploymentLeave, HcmEmploymentLeave), FormDataSourceEventType::InitValue)]
public static void HcmEmploymentLeave_OnInitValue(FormDataSource sender, FormDataSourceEventArgs e)
{
     FormRun formRun = sender.formRun();
     Object hcmEmploymentLeave_ds = formRun.dataSource(formDataSourceStr(HcmEmploymentLeave, HcmEmploymentLeave)) as FormDataSource;
     HcmEmploymentLeave hcmEmploymentLeave = hcmEmploymentLeave_ds.cursor();
     
     //Assigning value to the field
     hcmEmploymentLeave.FIELDNAME= VALUE;
}

Above code is just an example to show you how it works. You can apply these steps to any form.