02 March 2021

Dynamics 365 FO Extension for Form Datasource field and to get the current record

 [ExtensionOf(formdatafieldstr(EntAssetRequestTableCreate, RequestTable, Object))]

final class TRGEntAssetRequestTableCreateFDF_RT_Object_Extension

{  

    public void modified()

    {

        FormDataObject dataObject = any2Object(this) as FormDataObject;

        next modified();        

        FormDataSource fds = dataObject.dataSource().formRun().dataSource(formDataSourceStr(EntAssetRequestTableCreate, TRGEntAssetRequestObjectTableView));

        fds.executeQuery();

    }

Dynamics AX 365 FO – How to register jumpref method on form control / get the jumpref link in the form control

Create an event for OnPostRun for form events

[FormEventHandler(formStr(EntAssetWorkOrderTableCreate), FormEventType::PostRun)]

    public static void EntAssetWorkOrderTableCreate_OnPostRun(xFormRun sender, FormEventArgs e)

    {

        FormStringControl formCtrl = sender.design().controlName(formControlStr(EntAssetWorkOrderTableCreate, TRGEntAssetRequestObjectTableView_RequestId));

        formCtrl.registerOverrideMethod(methodStr(FormStringControl, jumpRef), methodStr(EntAssetRequestTableCreateForm_Extension, jumpRefRequestId), sender);

    }

Create extension class for the form methods and add jumprefMethod in it:

[ ExtensionOf(formstr(EntAssetWorkOrderTableCreate)) ]

final class TRGEntAssetWorkOrderTableCreateForm_Extension

{    

    public void TRGJumpRefRequestId(FormControl _formControl)

    {

        MenuFunction                        menuFunction;

        EntAssetRequestTable                entAssetRequestTable;

        TRGEntAssetRequestObjectTableView   entAssetRequestObjectTableView;

        Args                                args = new Args();

        FormDataSource                      fds = _formControl.formRun().dataSource(formDataSourceStr(EntAssetWorkOrderTableCreate, TRGEntAssetRequestObjectTableView));

        entAssetRequestObjectTableView      = fds.cursor();

        if (_formControl)

        {

            entAssetRequestTable = EntAssetRequestTable::find(entAssetRequestObjectTableView.RequestId);

        }

        args.record(entAssetRequestTable);

        args.lookupRecord(entAssetRequestTable);

        menuFunction = new MenuFunction(menuitemDisplayStr(EntAssetRequestTable), MenuItemType::Display);

        menuFunction.run(args);

    }

}

01 March 2021

How to fix BP warning in Dynamics 365 FO

 Need to add the SuppressBPWarning for methods if not using any Parameters:

Example:

[FormDataSourceEventHandler(formDataSourceStr(EntAssetRequestTableCreate, TRGEntAssetRequestObjectTableView), FormDataSourceEventType::QueryExecuting),

        SuppressBPWarning('BPParameterNotUsed', 'The parameter is not required in this context')]

    public static void TRGEntAssetRequestObjectTableView_OnQueryExecuted(FormDataSource sender, FormDataSourceEventArgs e)

    {


=====

[FormDataSourceEventHandler(formDataSourceStr(AccountingDistribution, AccountingDistribution), FormDataSourceEventType::Activated),

        SuppressBPWarning('BPParameterNotUsed', 'Parameter required by the event interface')]

Ledger Voucher creation Framework and x++ code to create ledger voucher

 Please click her for MS reference file Below is the out of the box example reference and code. SalesInvoiceJournalPostSubBill_Extension->...