Saturday, 10 June 2017

Extension of Class in D365 for Operations


We can create extension for class but can use/call only Public Members/Methods. Private and Protected can not be accessed from Extension Class.

Added new field TstField in MainAccount Table using extension.
Would like to show newly added field on Trail balance Form/Report.
Added new field TstField in LedgerTrialBalanceTmp Table using extension.

/// <summary>

/// Extension Class for LedgerTrialBalanceDP
/// </summary>
[ExtensionOf(classStr(LedgerTrialBalanceDP))]
final class HNWLedgerTrialBalanceDP_Extension
{
    protected void new()
    {

    }

    /// <summary>
    /// Updating new field in <c>LedgerTrialBalanceTmp</c> Table
    /// </summary>
    public void UpdateTstField()
    {
        MainAccount                         mainAccount;
        DimensionAttributeValueCombination  ledgerDimension;
        LedgerTrialBalanceTmp               ledgerTrialBalanceTmp;
       
        ledgerTrialBalanceTmp = this.getLedgerTrialBalanceTmp();     

        update_recordset ledgerTrialBalanceTmp
            setting
            TstField     =   mainAccount.TstField
            join mainAccount
        exists join ledgerDimension where
            ledgerDimension.MainAccount == mainAccount.RecId &&
            ledgerDimension.RecId == ledgerTrialBalanceTmp.LedgerDimension;

        this.setTrialBalanceTmpTable(ledgerTrialBalanceTmp);
    }

}

Create postEventHandler for processReport method in LedgerTrialBalanceDP Class
and call our newly created method in Extension Class of LedgerTrialBalanceDP


public class HNWLedgerTrailBalanceHandlersExt

{
    [PostHandlerFor(classStr(LedgerTrialBalanceDP), methodStr(LedgerTrialBalanceDP, processReport))]

    public static void LedgerTrialBalanceDP_Post_processReport(XppPrePostArgs args)        {
       LedgerTrialBalanceDP ledgerTrialBalanceDP = args.getThis();
        ledgerTrialBalanceDP.UpdateTstField();
     }
}


 

4 comments:

  1. Thanks for sharing your valuable information and time. Please keep updating
    Microsoft Dynamics AX Online Training

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Thanks for sharing this wonderful content.its very useful to us.I gained many unknown information, the way you have clearly explained is really fantastic.
    oracle training in chennai

    oracle training institute in chennai

    oracle training in bangalore

    oracle training in hyderabad

    oracle training

    hadoop training in chennai

    hadoop training in bangalore


    ReplyDelete
  4. best institute in Hyderabad is leo training institute

    ReplyDelete