Dyn365 F&O – How to write OnValidatingWrite event handler at form datasource level

In this post, I want to show you how to create an event handler for the OnValidatingWrite event at the form datasource level in X++.
First, open the form you are interested in within the Visual Studio designer, navigate to the data source, right-click on the “OnValidatingWrite” event, and select “Copy Event Handler Method.”

Create a class and a method similar to the following code snippet:

/// summary>
/// CustParametersFrm_EventHandler class 
/// summary>
public class CustParametersFrm_EventHandler
{
    /// <summary>
    /// Handles the ValidatingWrite event for the SalesParameters data source.
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    [FormDataSourceEventHandler(formDataSourceStr(CustParameters, SalesParameters), FormDataSourceEventType::ValidatingWrite)]
    public static void SalesParameters_OnValidatingWrite(FormDataSource sender, FormDataSourceEventArgs e)
    {
        MyTable myTable addressType; 

        FormDataSource salesParameters_ds = sender as FormDataSource;
        var eventArgs = e as FormDataSourceCancelEventArgs;
        if (eventArgs != null && salesParameters_ds != null)
        {
            SalesParameters salesParametersLoc = salesParameters_ds.cursor() as SalesParameters;
            if (salesParametersLoc.MyCustomField)
            {
                select count(RecID) from myTable;

                if (myTable.RecId == 0)
                {
                    boolean ret = checkFailed("Error please check data");
                    eventArgs.cancel(true);
                }
            }
        }
    }
}

Lascia un commento