Miklix

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

გამოქვეყნებულია: 16 თებერვალი, 2025, 12:03:35 UTC
ბოლო განახლება: 13 ნოემბერი, 2025, 13:39:05 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 კორპორაციაში. როდესაც ბლოგს არ წერს, თავისუფალ დროს ატარებს ინტერესების, ჰობიებისა და აქტივობების უზარმაზარ სპექტრზე, რაც შეიძლება გარკვეულწილად აისახოს ამ ვებსაიტზე გაშუქებულ თემებზე.