Posts Tagged ‘ DimensionAttribute

How to display only one attribute value from LedgerDimension

In this post, I will explain how to display only one attribute value from LedgerDimension. I will use CostCenter attribute for my example. As you know LedgerDimension table are DimensionAttributeValueCombination , DimensionAttributeValueGroupCombination and DimensionAttributeLevelValue . This tables holds the related data. Instead of this tables I wil use only DimensionAttributeLevelValueAllView view. This view is very simple and useful.
I have a LedgerDimension’s RecId end i want to display only CostCenter value. I will join DimensionAttributeValue to DimensionAttributeLevelValueAllView and give the ranges.

Here is the method displays costCenter values.


// FD: Display CostCenter Value from LedgerDimension
display num dispFinancialDisplayValue()
{
    DimensionAttributeValue             dimAttrValue;
    DimensionAttributeLevelValueAllView dimAttrLevelValueAllView;
    ;

    select firstonly dimAttrLevelValueAllView
    where dimAttrLevelValueAllView.ValueCombinationRecId == this.LedgerDimension
    join dimAttrValue
        where dimAttrValue.RecId == dimAttrLevelValueAllView.AttributeValueRecId
        &&    dimAttrValue.DimensionAttribute   == 5637144851;
        // CostCenter RecId. Must be parametric.

    return dimAttrLevelValueAllView.DisplayValue;
}

I wrote this method to a table that have LedgerDimension field.

Until next time.

How to display only one attribute value from DefaultDimension

In this post, I will explain how to display only one attribute value from DefaultDimension. I will use CostCenter attribute for my example. As you know DefaultDimension tables are DimensionAttributeValueSet and DimensionAttributeValueSetItem . This tables holds the related data. I wil use only DimensionAttributeValueSetItem table.
I have a DafaultDimension’s RecId end i want to display only CostCenter value. I will join DimensionAttributeValue to DimensionAttributeValueSetItem and give the ranges.

Here is the method displays costCenter values.


// FD: Display CostCenter Value from DefaultDimension
display num dispDefaultDisplayValue()
{
    DimensionAttributeValue            dimAttrValue;
    DimensionAttributeValueSetItem dimAttrValueSetItem;
    ;

    select firstonly dimAttrValueSetItem
    where dimAttrValueSetItem.DimensionAttributeValueSet == this.DimensionDefault
    join dimAttrValue
        where dimAttrValue.RecId == dimAttrValueSetItem.DimensionAttributeValue
        &&    dimAttrValue.DimensionAttribute   == 5637144851;
        // CostCenter RecId. Must be parametric.

    return dimAttrValueSetItem.DisplayValue;

}

I wrote this method to a table that have DimensionDefault field.

Until next time.

Dynamics Ax 2012′de aktif finansal boyutları bulmak

Merhaba

Belli bir kurulum için aktif boyutları bulan bir kod örneği paylaşıyorum. Bazı işlemlerde ihtiyaç oluyor.

static void FD_GetActiveFinancialDim(Args _args)
{
    DimensionAttribute          dimAttr;
    DimensionAttributeSetItem   dimAttrSetItem;
    DimensionEnumeration        dimensionSetId;
    ;

    dimensionSetId = DimensionCache::getDimensionAttributeSetForLedger();

    while select dimAttr
        where dimAttr.Type != DimensionAttributeType::MainAccount
        join RecId from dimAttrSetItem
            where dimAttrSetItem.DimensionAttribute    == dimAttr.RecId
               && dimAttrSetItem.DimensionAttributeSet == dimensionSetId
    {
        info(strFmt("%1 , %2" ,dimAttr.RecId , dimAttr.Name));
    }
}

Çıktısı şöyle;

Selamlar.

Dynamics Ax 2012′de bir müşterinin boyutlarını listelemek

Merhaba

Bu örnekte bir müşteri üzerinde tanımlanmış boyutları ve değerlerini listeleyen bir select cümleciği yazdım. Burada değer girilmemiş boyutlar gelmeyecektir. Hangi boyutların aktif olduğunu gösteren bir select ifadesini gelecek yazımda paylaşacağım.

static void FD_AddCustDefaultDim(Args _args)
{
    CustTable                           custTable;
    DimensionAttribute                  dimAttr;
    DimensionAttributeValue             dimAttrValue;
    DimensionAttributeValueSetItem      dimAttrValueSetItem;
    ;

    while select custTable
    where  custTable.AccountNum  == "1101"
    join dimAttrValueSetItem
    where dimAttrValueSetItem.DimensionAttributeValueSet ==custTable.DefaultDimension
    join dimAttrValue
         where dimAttrValue.RecId  == dimAttrValueSetItem.DimensionAttributeValue
         join dimAttr
         where dimAttr.RecId   == dimAttrValue.DimensionAttribute
    {
        info(strFmt("%1 ; %2 ; %3 ; %4", CustTable.AccountNum , CustTable.name(),
                        dimAttr.Name , dimAttrValueSetItem.DisplayValue));
    }
}

Çıktısı benim boyut kurulumuma göre şöyle oluyor.

Selamlar.

Dynamics Ax 2012′de DefaultDimension sorgu örnekleri

Merhaba

Şu yazımda BusinessUnit boyutunun değeri “20″ olan müşterileri listeleyen bir query yazmıştım. Bu query örneğinin select ifadesiyle yazılmış şeklini iki örnekle anlatacağım.

Bu örnekte gerekli bütün tabloları join’leyip istediğimiz sonuca ulaşıyoruz.

static void FD_AddCustDimensionRangeSelectAll(Args _args)
{
CustTable                           custTable;
DimensionAttribute                  dimAttr;
DimensionAttributeValue             dimAttrValue;
DimensionAttributeValueSetItem      dimAttrValueSetItem;
;

while select custTable
join dimAttrValueSetItem
where dimAttrValueSetItem.DimensionAttributeValueSet == custTable.DefaultDimension
&&    dimAttrValueSetItem.DisplayValue               == "20"
join dimAttrValue
where dimAttrValue.RecId == dimAttrValueSetItem.DimensionAttributeValue
join dimAttr
where dimAttr.RecId             == dimAttrValue.DimensionAttribute
&&    dimAttr.BackingEntityType == tableNum(DimAttributeOMBusinessUnit)

{
info(strFmt("%1 ; %2 ; %3 ; %4", CustTable.AccountNum ,
dimAttr.Name , dimAttrValueSetItem.DisplayValue , CustTable.name()));
}
}

Bu örnekte ise DimensionAttributeValue ve DimensionAttributeValueSetItem yerine Bir view kullanıyoruz.

static void FD_AddCustDimensionRangeSelect(Args _args)
{
CustTable                           custTable;
DimensionAttribute                  dimAttr;
DimensionAttributeValueSetItemView  dimAttrValueSetItemView;
;

while select custTable
join dimAttrValueSetItemView
where dimAttrValueSetItemView.DimensionAttributeValueSet == custTable.DefaultDimension
&&    dimAttrValueSetItemView.DisplayValue               == "20"
join dimAttr
where dimAttr.RecId       == dimAttrValueSetItemView.DimensionAttribute
&&    dimAttr.BackingEntityType == tableNum(DimAttributeOMBusinessUnit)

{
info(strFmt("%1 ; %2 ; %3 ; %4", CustTable.AccountNum ,
dimAttr.Name , dimAttrValueSetItemView.DisplayValue , CustTable.name()));
}
}

İki kodu da çalıştırdığınızda aynı çıktıyı alacaksınız.

Selamlar.