Dimensions
Tue Jan 21 2025 11:22:59 GMT+0000 (Coordinated Universal Time)
Saved by @MinaTimo
[ExtensionOf(tableStr(GeneralJournalAccountEntry))] public final class NA_GeneralJournalAccountEntry_Extension { public DimensionDisplayValue getDimensionCombinationValues(LedgerDimensionAccount ledgerdimension) { DimensionAttributeLevelValueAllView dimensionAttributeLevelValueAllView; DimensionAttribute dimensionAttribute; Set dimensionAttributeProcessed; LedgerDimensionAccount _ledgerDimension; str segmentName ; DimensionDisplayValue segmentDescription; SysDim segmentValue; str getDynamicAccountAttributeName(TableNameShort _dimensionAttrViewName) { #Dimensions container cachedResult; SysModelElement modelElement; SysDictTable sysDictTable; DictView dictView; Label label; Debug::assert(_dimensionAttrViewName like #DimensionEnabledPrefixWithWildcard); // Get/cache results of the AOT metadata lookup on the view cachedResult = DimensionCache::getValue(DimensionCacheScope::DynamicAccountAttributeName, [_dimensionAttrViewName]); if (cachedResult == conNull()) { // Find the matching model element and instantiate the AOT metadata definition of the view select firstOnly AxId, Name from modelElement where modelElement.ElementType == UtilElementType::Table && modelElement.Name == _dimensionAttrViewName; sysDictTable = new sysDictTable(modelElement.AxId); Debug::assert(sysDictTable.isView()); // Create an instance of the view and get the singular representation of the entity name as a label ID (do not translate) dictView = new dictView(modelElement.AxId); cachedResult = [dictView.singularLabel()]; DimensionCache::insertValue(DimensionCacheScope::DynamicAccountAttributeName, [_dimensionAttrViewName], cachedResult); } label = new label(); return label.extractString(conPeek(cachedResult, 1)); } _ledgerDimension = ledgerdimension; if (_ledgerDimension) { dimensionAttributeProcessed = new Set(extendedTypeId2Type(extendedTypeNum(DimensionAttributeRecId))); while select DisplayValue, AttributeValueRecId from dimensionAttributeLevelValueAllView order by dimensionAttributeLevelValueAllView.GroupOrdinal, dimensionAttributeLevelValueAllView.ValueOrdinal where dimensionAttributeLevelValueAllView.ValueCombinationRecId == _ledgerDimension join Name, Type, ViewName, RecId from dimensionAttribute where dimensionAttribute.RecId == dimensionAttributeLevelValueAllView.DimensionAttribute { if (!dimensionAttributeProcessed.in(dimensionAttribute.RecId)) { if (DimensionAttributeType::DynamicAccount == dimensionAttribute.Type) { // Use the singular name of the view backing the multi-typed entity segmentName = getDynamicAccountAttributeName(dimensionAttribute.ViewName); } else { // Use the name of the attribute directly for all other types (main account, custom list, existing list) segmentName = dimensionAttribute.localizedName(); } segmentValue = dimensionAttributeLevelValueAllView.DisplayValue; if (strLen(segmentDescription) == 0) { segmentDescription = DimensionAttributeValue::find( dimensionAttributeLevelValueAllView.AttributeValueRecId).getName(); } else { segmentDescription += strFmt(" - %1", DimensionAttributeValue::find( dimensionAttributeLevelValueAllView.AttributeValueRecId).getName()); } dimensionAttributeProcessed.add(dimensionAttribute.RecId); } } } return segmentDescription; } public display str 200 DimensionValue() { return this.getDimensionCombinationValues(this.LedgerDimension); } public display str 200 MOFID() { DimensionAttributeValueSetStorage dimStorage; ; dimStorage = DimensionAttributeValueSetStorage::find(LedgerDimensionFacade::getDefaultDimensionFromLedgerDimension(this.LedgerDimension)); return dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName("FD11_MOF").RecId); } public display str 200 MOFName() { DimensionFinancialTag DimensionFinancialTag; select DimensionFinancialTag where DimensionFinancialTag.Value == this.MOFID(); return DimensionFinancialTag.Description; } public display str 200 DimensionID() { return LedgerDimensionFacade::getDisplayValueForLedgerDimension(this.LedgerDimension); } public display str 200 ItemId() { DimensionAttributeValueSetStorage dimStorage; ; dimStorage = DimensionAttributeValueSetStorage::find(LedgerDimensionFacade::getDefaultDimensionFromLedgerDimension(this.LedgerDimension)); return dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName("FD10_Item").RecId); } }
Comments