AX 2012 - Get Active Dimensions from Accounting structure

    DimensionAttribute              dimAttr;
    DimensionAttributeSetItem       dimAttrSetItem;
    DimensionAttributeSetItem       dimAttrSetItemEditable;
    DimensionEnumeration            dimensionSetId;
    recId   editableDimensionAttributeSetId;

    ;
   
    dimensionSetId = DimensionCache::getDimensionAttributeSetForLedger();
    // Get all the active dimensions from Accounting Structure.
     while select RecId from dimAttr
        order by Name
        join RecId from dimAttrSetItem
            where dimAttrSetItem.DimensionAttribute == dimAttr.RecId &&
                dimAttrSetItem.DimensionAttributeSet == dimensionSetId
        outer join RecId from dimAttrSetItemEditable
            where dimAttrSetItemEditable.DimensionAttributeSet == editableDimensionAttributeSetId &&
                dimAttrSetItemEditable.DimensionAttribute == dimAttr.RecId &&
                dimAttrSetItemEditable.EnumerationValue == NoYes::Yes
    {
       
        Info(dimAttr.name);
    }

}