Product Receipt validation in Extension using COC D365FO

Product Receipt validation in Extension using COC D365FO



Yesterday, I received the requirement to put some custom validation while performing product receipts.

As everyone knows that in D365FO over-layering is not allowed anymore. So I have to perform this task in extension.

In extension, I have two ways to perform this task.

Create the form extension and replace the product receipt menu item with my custom menu item and after performing my successful custom validation call original menu items.

Create extension class of  PurchPackingSlipJournalCreate and override the check method using COC pattern and perform our custom validation.

So I go with COC and the following are the code snippet I have to write 



    [ExtensionOf(classstr(PurchPackingSlipJournalCreate))]

    final class SLD_PurchPackingSlipJournalCreate_Extension
    {
        protected boolean check()
        {
            boolean flag=    next check();
            flag= flag && validatePackingSlip(flag);

            return flag;
        }



        public boolean validatePackingSlip(boolean flag)
        {

            if(flag && this.purchParmUpdate.DocumentStatus==DocumentStatus::PackingSlip)
            {
                // write your validation here... you can access buffer of these table purchParmUpdate,purchParmTable
                flag= checkFailed(strFmt("Custom validation causes the product receipt generation failed, %1, %2",this.purchParmTable.ParmId, this.purchParmTable.DocumentDate));

            }
            return flag;
        }


    }





1 comment:

  1. protected boolean check()
    {
    boolean flag= next check();
    flag= flag && this.validatePackingSlip(flag);

    return flag;
    }

    ReplyDelete

Virtual Fields Vs Computed Fields

  Virtual Field: A virtual field in D365FO is a field that doesn't have a direct representation in the database. It's a field that y...