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

Popular posts from this blog

Get Current Worker data in d365 fo x++

Table Level Event Handler in d365 fo x++