11 Eylül 2014 Perşembe

AX 2012 - Bir LedgerDimension değerinden tek bir boyutun değerini almak

Bu konuyu oluştururken bir blogda bulduğum dimension hakkında çizilmiş data modelini kullandım. Malesef blogdaki kodu anlayamadım ve bu kodu yazdım:


 DimensionDefault                        d =  5637183219;
    DimensionAttributeValueCombination      dimensionAttributeValueCombination;
    DimensionAttributeValueGroupCombination dimensionAttributeValueGroupCombination;
    DimensionAttributeValueGroup            dimensionAttributeValueGroup;
    DimensionAttributeLevelValue            dimensionAttributeLevelValue;
    DimensionAttributeValue                 dimensionAttributeValue;
    DimensionAttribute                      dimensionAttribute;
   
    select dimensionAttributeValueCombination
            where dimensionAttributeValueCombination.RecId == d
        join dimensionAttributeValueGroupCombination
            where dimensionAttributeValueGroupCombination.DimensionAttributeValueCombination ==
                  dimensionAttributeValueCombination.RecId
        join dimensionAttributeValueGroup
            where dimensionAttributeValueGroup.RecId == dimensionAttributeValueGroupCombination.DimensionAttributeValueGroup
        join dimensionAttributeLevelValue
            where dimensionAttributeLevelValue.DimensionAttributeValueGroup == dimensionAttributeValueGroup.RecId
        join dimensionAttributeValue
            where dimensionAttributeValue.RecId == dimensionAttributeLevelValue.DimensionAttributeValue
        join dimensionAttribute
            where dimensionAttribute.RecId == dimensionAttributeValue.DimensionAttribute &&
                  DimensionAttribute.Name == "Proje";
    info(DimensionAttributeLevelValue.DisplayValue);



Güncelleme:
Yukarıdaki bağlantı PurchTable defaultDimension alanı için çalışmadı.
Aşağıdaki kodu Andesoft'un web sitesinden aldım:

 DimensionDefault                        d =  5637169331;
    DimensionAttributeValueSet  dimAttrValueSet;
    DimensionAttributeValueSetItem  dimAttrValueSetItem;
    DimensionAttributeValue         dimAttrValue;
    DimensionAttribute          dimAttr;
    Common      dimensionValueEntity;
    DimensionValue  dimensionValue;
    DimensionAliasName  dimensionName;
   
    dimAttrValueSet = DimensionAttributeValueSet::find(D);
    while select dimAttrValueSetItem
        where dimAttrValueSetItem.DimensionAttributeValueSet == dimAttrValueSet.RecId
    {
        dimAttrValue = DimensionAttributeValue::find(dimAttrValueSetItem.DimensionAttributeValue);
       
        dimAttr = DimensionAttribute::find(DimAttrValue.DimensionAttribute);
        dimensionvalueentity = DimensionDefaultingControllerBase::findBackingEntityInstance(
        curext(),DimAttr,dimAttrvalue.EntityInstance);
        dimensionvalue = dimattrvalue.getValue();
        info(strFmt("%1 %2",Dimensionvalue, DimAttr.Name));
    }
       
        




Hiç yorum yok:

Yorum Gönder