D365 FO: Data Entity “onMappingEntityToDataSource” event

Requirement

In Microsoft Dynamics 365 finance and operations, client has an data entity for importing list of customer account into a table.During the time of importing of customer accounts using Data entity, client also want to capture & save values of few fields.

Sample Code

To achieve this requirement, we are going to use event “ONMAPPINGENTITYTODATASOURCE” of Data entity in Microsoft Dynamics 365 finance and operations

class DemoCustRelatedTableEntityEvents
{
    /// <summary>
    ///
    /// </summary>
    /// <param name="_sender"></param>
    /// <param name="_eventArgs"></param>
    [DataEventHandler(tableStr(DemoCustRelatedTableEntity), DataEventType::MappingEntityToDataSource)]
    public static void DemoCustRelatedTableEntity_onMappingEntityToDataSource(Common _sender, DataEventArgs _eventArgs)
    {
        DataEntityContextEventArgs dataEntityContextEventArgs = _eventArgs;
        DataEntityRuntimeContext runtimeContext = dataEntityContextEventArgs.parmEntityContext();
        DataEntityDataSourceRuntimeContext DataEntityDataSourceRuntimeContext = dataEntityContextEventArgs.parmEntityDataSourceContext();
        if (DataEntityDataSourceRuntimeContext.name() == dataEntityDataSourceStr(DemoCustRelatedTableEntity, DemoCustRelatedTable))
        {
            CustTable   custTable;
            DemoCustRelatedTable DemoCustRelatedTable;
            DemoCustRelatedTableEntity DemoCustRelatedTableEntity = _sender as DemoCustRelatedTableEntity;
            DemoCustRelatedTable = DataEntityDataSourceRuntimeContext.getBuffer();
            custTable = CustTable::find(DemoCustRelatedTableEntity.CustAccount);
            DemoCustRelatedTable.CustTableRecId = custTable.RecId;
            DemoCustRelatedTable.MAB = custTable.balanceCurrency();
            DataEntityDataSourceRuntimeContext.setBuffer(DemoCustRelatedTable);
        }
    }

}

One thought on “D365 FO: Data Entity “onMappingEntityToDataSource” event”

Leave a Reply