Saturday, June 11, 2022

How to get a specific display value from defaultdimension using X++ code

   public static Str  GetProject(DimensionDefault _DimensionDefault)

    {

        DimensionAttributeValueSet           DimensionAttributeValueSet;

        DimensionAttributeValueSetItem    DimensionAttributeValueSetItem;

        DimensionAttributeValue                DimensionAttributeValue;

        DimensionAttribute                         DimensionAttribute;

        DimensionAttributeValueSetStorage           dimStorage;

        Str                     Project;

        Counter i;

     dimStorage = DimensionAttributeValueSetStorage::find(_DimensionDefault);

        for (i=1 ; i<= dimStorage.elements() ; i++)

        {

            // Change the string "CostCenter" to any financial dimension

            if(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name =="CostCenter")

            {

 Project=dimStorage.getDisplayValueByIndex(i);

  select firstonly DimensionAttributeValueSetItem where                           DimensionAttributeValueSetItem.DisplayValue==Project;

            }        

     }

        return DimensionAttributeValueSetItem.DisplayValue;

    }