Tuesday, July 30, 2019

Financial dimensions - default dimension - ledger dimension - D365 - code samples



Get dimension value from defaultDimension:

DimensionAttributeValueSet dimAttrValueSet;
DimensionAttributeValueSetItem dimAttrValueSetItem;
DimensionAttributeValue dimAttrValue;
DimensionAttribute dimAttribute;


select dimAttrValueSetItem
where dimAttrValueSetItem.DimensionAttributeValueSet == this.defaultDimension
join dimAttrValue
where dimAttrValue.RecId == dimAttrValueSetItem.DimensionAttributeValue
join dimAttribute
where dimAttribute.RecId == dimAttrValue.DimensionAttribute
   && dimAttribute.BackingEntityType == tableNum(DimAttributeOMBusinessUnit);

Return dimAttrValueSetItem.DisplayValue;


Another way:

public static DimensionValue getDimensionValue(RecId defaultDimension, Name dimName)
{
    DimensionAttributeValueSetStorage dimStorage;
    ;
dimStorage = DimensionAttributeValueSetStorage::find(defaultDimension);
return dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName(dimName).RecId);
}


Get dimension value from a ledger dimension:
select dimensionAttributeLevelValueView
     where dimensionAttributeLevelValueView.ValueCombinationRecId == generalJournalAccountEntry.LedgerDimension
     join dimensionAttribute
where dimensionAttribute.RecId == dimensionAttributeLevelValueView.DimensionAttribute
&& dimensionAttribute.BackingEntityType == tableNum(DimAttributeOMBusinessUnit);

custBalanceTmp.BusinessUnit = dimensionAttributeLevelValueView.DisplayValue;

Get main account from ledger dimension:

mainAccount = MainAccount::findByLedgerDimension(generalJournalAccountEntry.LedgerDimension);


Create ledger dimension using main account and default dimension:

ledgerDimension = LedgerDimensionFacade::serviceCreateLedgerDimension(salesForFreeInvoiceAccount, salesPurchLine.defaultDimension);

1 comment:

  1. This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post.! FXGM ZA review

    ReplyDelete