Miklix

სხვაობა მონაცემებს () და buf2Buf () შორის Dynamics AX 2012-ში

გამოქვეყნებულია: 15 თებერვალი, 2025, 22:56:07 UTC

ეს სტატია განმარტავს განსხვავებებს buf2Buf() და data() მეთოდებს შორის Dynamics AX 2012-ში, მათ შორის, როდესაც მიზანშეწონილია გამოიყენოთ თითოეული და X++ კოდის მაგალითი.


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

The Difference Between data() and buf2Buf() in Dynamics AX 2012

ამ პოსტის ინფორმაცია ეფუძნება Dynamics AX 2012 R3. ეს შეიძლება იყოს ან არ იყოს მოქმედი სხვა ვერსიებისთვის.

როდესაც თქვენ გჭირდებათ ყველა ველის მნიშვნელობის კოპირება ერთი ცხრილის ბუფერიდან მეორეში Dynamics AX-ში, თქვენ ტრადიციულად გააკეთებთ მსგავსს:

toTable.data(fromTable);

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

თუმცა, თქვენ ასევე გაქვთ შესაძლებლობა გამოიყენოთ buf2Buf ფუნქციის ნაცვლად:

buf2Buf(fromTable, toTable);

ეს ასევე კარგად მუშაობს. მაშ რა განსხვავებაა?

განსხვავება ისაა, რომ buf2Buf არ აკოპირებს სისტემის ველებს. სისტემის ველები მოიცავს ისეთ ველებს, როგორიცაა RecId, TableId და, ალბათ, ყველაზე მნიშვნელოვანი ამ კონტექსტში, DataAreaId. ამ უკანასკნელის ყველაზე მნიშვნელოვანი მიზეზი არის ის, რომ ყველაზე ტიპიური შემთხვევა, როდესაც იყენებდით buf2Buf()-ის ნაცვლად data() არის ჩანაწერების დუბლირებას კომპანიის ანგარიშებს შორის, როგორც წესი, changeCompany საკვანძო სიტყვის გამოყენებით.

მაგალითად, თუ თქვენ ხართ "dat" კომპანიაში და გაქვთ სხვა კომპანია სახელწოდებით "com", რომლისგანაც გსურთ CustTable-ში ყველა ჩანაწერის კოპირება:

while select crossCompany : ['com'] custTableFrom
{
    buf2Buf(custTableFrom, custTableTo);
    custTableTo.insert();
}

ამ შემთხვევაში, ის იმუშავებს, რადგან buf2Buf აკოპირებს ველის ყველა მნიშვნელობას, გარდა სისტემის ველებისა ახალ ბუფერში. თუ თქვენ იყენებდით მონაცემთა () ნაცვლად, ახალი ჩანაწერი ჩასმული იქნებოდა "com" კომპანიის ანგარიშებში, რადგან ეს მნიშვნელობა დაკოპირებული იქნებოდა ახალ ბუფერშიც.

(სინამდვილეში, ეს გამოიწვევს გასაღების დუბლიკატის შეცდომას, მაგრამ ეს არ არის ის, რაც თქვენ გინდათ).

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

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

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

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