finansal etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
finansal etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

13 Ekim 2017 Cuma

AX 2012 - Bir Finansal Boyuta Göre Sıralama

AX 2012'de mali boyutlar bir RecId alanında saklı olduğu ve çeşitli tabloları refere ettiği için sıralama olayı biraz karışık. Bunun için işimizi kolaylaştırıcı bir sınıf var:

DimensionProvider           dimProvider = new DimensionProvider();
    dimProvider.addOrderByAttribute(BorAXJournalTrans_DS.query(),BorAXJournalTrans_DS.query().dataSourceNo(1).name(),
       FieldStr(BorAXJournalTrans,DefaultDimension),
        DimensionComponent::DimensionAttribute,SortOrder::Ascending,
"Departmanı");
BorAXJournalTrans_DS.executeQuery();
  
Bu sınıfı kullanmak istemiyorum derseniz bir de şöyle bir seçenek var:

RecId  depRecId = 5637152827; //departman boyutunun DimensionAttribute tablosundaki recId değeri
    BorAXJournalTrans   boraxJournalTrans;
    DimensionAttributeValueSet dimensionAttributeValueSet;
    DimensionAttributeValueSetItem dimensionAttributeValueSetItem;
    DimensionAttributeValue dimensionAttributeValue;
    DimensionAttribute dimensionAttribute;

while SELECT firstOnly10 borAXJournalTrans 
    ORDER BY DimensionAttributeValueSetItem.DisplayValue
 JOIN dimensionAttributeValueSet 
    where borAXJournalTrans.DefaultDimension == dimensionAttributeValueSet.RecId 
 JOIN dimensionAttributeValueSetItem 
    where dimensionAttributeValueSet.RecId == dimensionAttributeValueSetItem.DimensionAttributeValueSet 
 JOIN dimensionAttributeValue 
    where dimensionAttributeValueSetItem.DimensionAttributeValue == dimensionAttributeValue.RecId 
 JOIN dimensionAttribute 
    where dimensionAttributeValue.DimensionAttribute == dimensionAttribute.RecId && 
     dimensionAttribute.RecId == depRecId
    {
        info(dimensionAttributeValueSetItem.DisplayValue);
    }

15 Eylül 2014 Pazartesi

AX 2012 - Tabloya bağlı yeni bir finansal boyut tanımlama

Microsoft'un ilgili white paper  sayfasından faydalanan bir blogdan öğrendiğim bu işlem çok kolay:
1-AOT'dan DimAttribute adıyla başlayan viewlerden birini kopyala ve adı yine aynen DimAttribute ile başlasın.
2. Ana data sourcenin orijinal tablo adı ne olursa olsun adı data source adı BackingEntity olsun.
3.Viewdeki tanımlı alanların adı (orijinal isimleri farklı olabilir) şöyle olmak zorunda:
Key - Data source tablosunun Surrogate key field'ı. RecId gibi...
Value - Data source tablosunun primary key field'ı. AccountNum gibi...
Name - Açıklama alanı. Description gibi...


Bu boyutun geçerli olması için iki yol var:

AOS restart

veya

DimensionCache::clearAllScopes(); 

komutu.