Miklix

განაახლეთ ფინანსური განზომილების ღირებულება X++ კოდიდან Dynamics 365-ში

გამოქვეყნებულია: 16 თებერვალი, 2025, 12:03:35 UTC

ეს სტატია განმარტავს, თუ როგორ უნდა განაახლოთ ფინანსური განზომილების მნიშვნელობა X++ კოდიდან Dynamics 365-ში, კოდის მაგალითის ჩათვლით.


ეს გვერდი მანქანურად ითარგმნა ინგლისურიდან, რათა რაც შეიძლება მეტი ადამიანისთვის ხელმისაწვდომი ყოფილიყო. სამწუხაროდ, მანქანური თარგმანი ჯერ კიდევ არ არის სრულყოფილი ტექნოლოგია, ამიტომ შეიძლება მოხდეს შეცდომები. თუ გსურთ, შეგიძლიათ ნახოთ ორიგინალური ინგლისური ვერსია აქ:

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

ამ პოსტში მოცემული ინფორმაცია ეფუძნება Dynamics 365-ს. ის ასევე უნდა მუშაობდეს Dynamics AX 2012-ში, მაგრამ მე ის აშკარად არ გამომიცდია.

მე ცოტა ხნის წინ დამევალა ერთი ფინანსური განზომილების ღირებულების განახლება რაიმე ფორმის ლოგიკის საფუძველზე.

როგორც მოგეხსენებათ, რადგან Dynamics AX 2012 ფინანსური ზომები ინახება ცალკეულ ცხრილებში და მითითებულია RecId-ის მეშვეობით, ჩვეულებრივ DefaultDimension ველში.

განზომილებების დამუშავების მთელი ჩარჩო გარკვეულწილად რთულია და მე ხშირად მიწევს მასზე დოკუმენტაციის ხელახლა წაკითხვა, ალბათ იმიტომ, რომ ეს არ არის ის, რასაც ხშირად ვმუშაობ.

ყოველ შემთხვევაში, არსებული განზომილების ნაკრების ველის განახლება არის ის, რაც ხშირად ჩნდება, ამიტომ ვიფიქრე, დავწერო ჩემი საყვარელი რეცეპტი ;-)


სტატიკური სასარგებლო მეთოდი შეიძლება ასე გამოიყურებოდეს:

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

მეთოდი აბრუნებს ახალ (ან იგივე) DimensionDefault RecId-ს, ასე რომ, თუ ჩანაწერისთვის განზომილების მნიშვნელობის განახლება - რაც ალბათ ყველაზე გავრცელებული სცენარია - დარწმუნდით, რომ განაახლეთ ამ ჩანაწერის განზომილების ველი ახალი მნიშვნელობით.

გააზიარე Bluesky-ზეგააზიარეთ Facebook-ზეგააზიარეთ LinkedIn-ზეგააზიარეთ Tumblr-ზეგააზიარეთ X-ზეგააზიარეთ LinkedIn-ზეPinterest-ზე დამაგრება

მიკელ ბანგ კრისტენსენი

ავტორის შესახებ

მიკელ ბანგ კრისტენსენი
მაიკლ არის miklix.com-ის შემქმნელი და მფლობელი. მას აქვს 20 წელზე მეტი გამოცდილება, როგორც პროფესიონალი კომპიუტერული პროგრამისტი/პროგრამული უზრუნველყოფის შემქმნელი და ამჟამად მუშაობს სრულ განაკვეთზე დიდ ევროპულ IT კორპორაციაში. როდესაც ბლოგს არ წერს, თავისუფალ დროს ატარებს ინტერესების, ჰობიებისა და აქტივობების უზარმაზარ სპექტრზე, რაც შეიძლება გარკვეულწილად აისახოს ამ ვებსაიტზე გაშუქებულ თემებზე.