Miklix

Dynamics 365'te X++ Kodundan Finansal Boyut Değerini Güncelle

Yayınlandı: 16 Şubat 2025 12:01:38 UTC
Son güncelleme: 13 Kasım 2025 13:37:52 UTC

Bu makalede, bir kod örneği de dahil olmak üzere Dynamics 365'te X++ kodundan bir finansal boyut değerinin nasıl güncelleneceği açıklanmaktadır.


Bu sayfa, mümkün olduğunca çok kişi tarafından erişilebilir olması amacıyla İngilizce'den makine çevirisiyle çevrilmiştir. Ne yazık ki, makine çevirisi henüz mükemmelleştirilmiş bir teknoloji değildir, bu nedenle hatalar meydana gelebilir. Tercih ederseniz, orijinal İngilizce versiyonu buradan görüntüleyebilirsiniz:

Update Financial Dimension Value from X++ Code in Dynamics 365

Bu yazıda yer alan bilgiler Dynamics 365'e dayanmaktadır. Dynamics AX 2012'de de çalışması gerekir, ancak bunu açıkça test etmedim.

Yakın zamanda, bir tür mantık temelinde tek bir finansal boyutun değerini güncelleme görevi bana verildi.

Bildiğiniz üzere Dynamics AX 2012'den itibaren finansal boyutlar ayrı tablolarda saklanıyor ve genellikle DefaultDimension alanında bir RecId aracılığıyla referans alınıyor.

Boyutları ele almanın tüm çerçevesi oldukça karmaşıktır ve sık sık bununla ilgili belgeleri yeniden okumak zorunda kalıyorum; belki de bunun nedeni çok sık üzerinde çalışmadığım bir konu olmasıdır.

Neyse, mevcut bir boyut kümesindeki bir alanı güncellemek sıkça karşılaşılan bir durum, bu yüzden en sevdiğim tarifi yazmaya karar verdim ;-)


Statik bir yardımcı program yöntemi şu şekilde görünebilir:

public static DimensionDefault updateDimension( DimensionDefault    _defaultDimension,
                                                Name                _dimensionName,
                                                DimensionValue      _dimensionValue)
{
    DimensionAttribute                  dimAttribute;
    DimensionAttributeValue             dimAttributeValue;
    DimensionAttributeValueSetStorage   dimStorage;
    DimensionDefault                    ret;
    ;

    ret             = _defaultDimension;

    ttsbegin;

    dimStorage      = DimensionAttributeValueSetStorage::find(_defaultDimension);
    dimAttribute    = DimensionAttribute::findByName(_dimensionName);

    if (_dimensionValue)
    {
        dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(  dimAttribute,
                                                                                        _dimensionValue,
                                                                                        true,
                                                                                        true);
        dimStorage.addItem(dimAttributeValue);
    }
    else
    {
        dimStorage.removeDimensionAttribute(dimAttribute.RecId);
    }

    ret = dimStorage.save();

    ttscommit;

    return ret;
}

Bu yöntem yeni (veya aynı) bir DimensionDefault RecId döndürür, dolayısıyla bir kayıt için boyut değerini güncelliyorsanız (ki bu muhtemelen en yaygın senaryodur), o kayıttaki boyut alanını yeni değerle güncellediğinizden emin olmalısınız.

Daha Fazla Okuma

Bu yazıyı beğendiyseniz, şu öneriler de ilginizi çekebilir:


Bluesky'de paylaşFacebook'ta paylaşLinkedIn'de paylaşTumblr'da paylaşX'te paylaşLinkedIn'de paylaşPinterest'e Pinleyin

Mikkel Christensen

Yazar Hakkında

Mikkel Christensen
Mikkel miklix.com'un yaratıcısı ve sahibidir. Profesyonel bilgisayar programcısı/yazılım geliştiricisi olarak 20 yılı aşkın deneyime sahiptir ve şu anda büyük bir Avrupa BT şirketinde tam zamanlı olarak çalışmaktadır. Blog yazmadığı zamanlarda, boş zamanlarını çok çeşitli ilgi alanları, hobiler ve aktivitelerle geçirmektedir ve bu da bir dereceye kadar bu web sitesinde kapsanan konuların çeşitliliğine yansıyabilir.