Alfasith AX

Alfasith AX
اللَّهُمَّ انْفَعْنِي بِمَا عَلَّمْتَنِي، وَعَلِّمْنِي مَا يَنْفَعُنِي، وَزِدْنِي عِلْمًا

Tuesday, June 21, 2022

Overlayer/Override a methods in D365

 Hi,


Overlayer of standard code to execute your methods is not possible literally, whereas there are several other ways to override.

Procedure.

1. Class to register the override you created.

2. Call the registered call on the eventHander.

Registering Override method.

/// <summary>
/// Custom class created by MAI on 6/21/2022
/// to register the <c>Purchtable</c> form.
/// </summary>
public class PurchTableEventHandler
{
    /// <summary>
    /// Post event handler for <c>Purchtable</c> Initialized event.
    /// </summary>
    /// <param name=“_sender”></param>
    /// <param name=“_e”></param>
    [FormDataSourceEventHandler(formDataSourceStr(PurchTable, PurchTable), FormDataSourceEventType::Initialized)]
    public static void PurchTable_OnInitialized(FormDataSource _sender, FormDataSourceEventArgs _e)
    {
        var overrides = PurchTableFormExtensionOverrides::construct();
 
        _sender.object(fieldNum(PurchTable, CashDisc)).registerOverrideMethod(methodStr(FormDataObject, validate),
            methodStr(PurchTableFormExtensionOverrides, CashDisc_OnValidate), overrides);
    }
}

Calling the Registered methods.

/// <summary>
/// Calling override classes <c>PurchTable</c> data source field methods.
/// </summary>
public class PurchTableFormExtensionOverrides
{
    protected void new()
    {
    }
 
    /// <summary>
    /// Constructs a new instance of <c>PurchTableFormExtensionOverrides</c> .
    /// </summary>
    /// <returns>
    /// new of  <c>PurchTableFormExtensionOverrides</c> class.
    /// </returns>
    public static PurchTableFormExtensionOverrides construct()
    {
        return new PurchTableFormExtensionOverrides();
    }
 
 
    /// <summary>
    /// Checks whether <c>CashDisc</c> is valid.
    /// </summary>
    /// <param name = "_targetField"> The <c>FormDataObject</c> where the Validate is triggered.</param>
    public boolean CashDisc_OnValidate(FormDataObject _targetField)
    {

        boolean ret = _targetField.validate();
 
        if (ret)
        {
            //Your code
        }
 
        return ret;
    }
}

Regards,



No comments:

Post a Comment

How find size of recordsortedlist in D365/AX 2012

Hi, This is the continuity of the previous article where we are now getting the size of recordsortedlist . if(recordsortedlist.len() >1) ...