Miklix

Dynamics 365-də X++ kodundan Maliyyə Ölçüsü Dəyərini yeniləyin

Nəşr olundu: 16 fevral 2025 at 12:04:55 UTC

Bu məqalə kod nümunəsi də daxil olmaqla Dynamics 365-də X++ kodundan maliyyə ölçüsü dəyərini necə yeniləməyi izah edir.


Bu səhifə mümkün qədər çox insan üçün əlçatan olması üçün ingilis dilindən maşın tərcümə edilib. Təəssüf ki, maşın tərcüməsi hələ mükəmməl texnologiya deyil, ona görə də səhvlər baş verə bilər. İstəyirsinizsə, orijinal ingilis versiyasına buradan baxa bilərsiniz:

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

Bu yazıdakı məlumat Dynamics 365-ə əsaslanır. O, həmçinin Dynamics AX 2012-də işləməlidir, lakin mən onu açıq şəkildə sınaqdan keçirməmişəm.

Bu yaxınlarda mənə hansısa forma məntiqinə əsaslanaraq vahid maliyyə ölçüsünün dəyərini yeniləmək tapşırıldı.

Yəqin ki, bildiyiniz kimi, Dynamics AX 2012 maliyyə ölçüləri ayrı-ayrı cədvəllərdə saxlanıldığı və RecId vasitəsilə istinad edildiyi üçün, adətən DefaultDimension sahəsində.

Ölçüləri idarə etmək üçün bütün çərçivə bir qədər mürəkkəbdir və mən tez-tez bununla bağlı sənədləri yenidən oxumaq məcburiyyətində qalıram, çünki bu, mənim tez-tez işlədiyim bir şey deyil.

Hər halda, mövcud ölçülər dəstindəki sahəni yeniləmək tez-tez gündəmə gələn bir şeydir, ona görə də sevimli reseptimi yazmağı düşündüm ;-)


Statik yardım metodu belə görünə bilər:

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;
}

Metod yeni (və ya eyni) DimensionDefault RecId qaytarır, buna görə də qeyd üçün ölçü dəyərini yeniləyirsinizsə - bu, yəqin ki, ən ümumi ssenaridir - siz həmin qeyddəki ölçü sahəsini yeni dəyərlə yeniləməyinizə əmin olmalısınız.

Bluesky-də paylaşınFacebookda paylaşLinkedIn-də paylaşınTumblr-da paylaşınX-də paylaşınLinkedIn-də paylaşınPinterest-də Pin

Mikkel Bang Christensen

Müəllif haqqında

Mikkel Bang Christensen
Mikkel miklix.com saytının yaradıcısı və sahibidir. O, peşəkar kompüter proqramçısı/proqram təminatı tərtibatçısı kimi 20 ildən artıq təcrübəyə malikdir və hazırda böyük Avropa İT korporasiyasında tam iş günü işləyir. Bloq yazmayanda o, boş vaxtını geniş çeşidli maraqlara, hobbilərə və fəaliyyətlərə sərf edir ki, bu da müəyyən dərəcədə bu veb-saytda əhatə olunan müxtəlif mövzularda əks oluna bilər.