get LedgerDimension Values in d365 fo x++
private str getDimensionCombinationId(LedgerDimensionAccount _ledgerDimension)
{
DimensionAttributeValueCombination dimAttrValueComb;
DimensionStorage dimensionStorage;
DimensionStorageSegment segment;
int segmentCount, segmentIndex;
int hierarchyCount, hierarchyIndex;
str segmentName, segmentDescription;
SysDim segmentValue;
OMOperatingUnit omOperatingUnit;
MainAccount mainAccount;
str dimCombinationId;
;
dimensionStorage = DimensionStorage::findById(_ledgerDimension);
if (dimensionStorage == null)
{
return '';
}
hierarchyCount = dimensionStorage.hierarchyCount();
for(hierarchyIndex = 1; hierarchyIndex <= hierarchyCount; hierarchyIndex++)
{
setPrefix(strFmt("Hierarchy: %1", DimensionHierarchy::find(dimensionStorage.getHierarchyId(hierarchyIndex)).Name));
segmentCount = dimensionStorage.segmentCountForHierarchy(hierarchyIndex);
for (segmentIndex = 1; segmentIndex <= segmentCount; segmentIndex++)
{
segment = dimensionStorage.getSegmentForHierarchy(hierarchyIndex, segmentIndex);
if (segment.parmDimensionAttributeValueId() != 0)
{
segmentName = DimensionAttribute::find(DimensionAttributeValue::find(segment.parmDimensionAttributeValueId()).DimensionAttribute).Name;
segmentValue = segment.parmDisplayValue();
segmentDescription = segment.getName();
mainAccount = mainAccount::findByMainAccountId(segmentValue);
if(mainAccount)
{
dimCombinationId = mainAccount.MainAccountId;
}
else
{
dimCombinationId = dimCombinationId +" - "+ segmentValue ;
}
}
}
}
return dimCombinationId;
}
Comments
Post a Comment