Miklix

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

Nəşr olundu: 15 fevral 2025 at 22:57:04 UTC
Son yeniləmə: 12 yanvar 2026 at 08:41:28 UTC

Bu məqalədə Dynamics AX 2012-də buf2Buf() və data() metodları arasındakı fərqlər, o cümlədən hər birinin və X++ kod nümunəsinin nə vaxt istifadəsinin uyğun olduğu izah olunur.


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:

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

Bu yazıdakı məlumat Dynamics AX 2012 R3-ə əsaslanır. Digər versiyalar üçün keçərli ola bilər və ya olmaya da bilər.

Dynamics AX-də bütün sahələrin dəyərini bir cədvəl buferindən digərinə kopyalamaq lazım olduqda, ənənəvi olaraq belə bir şey edərdiniz:

toTable.data(fromTable);

Bu, yaxşı işləyir və əksər hallarda ən yaxşı yoldur.

Bununla belə, bunun əvəzinə buf2Buf funksiyasından istifadə etmək seçiminiz də var:

buf2Buf(fromTable, toTable);

Bu da yaxşı işləyir. Bəs fərq nədir?

Fərq ondadır ki, buf2Buf sistem sahələrini kopyalamır. Sistem sahələrinə RecId, TableId və bəlkə də bu kontekstdə ən əsası DataAreaId kimi sahələr daxildir. Sonuncunun ən vacib olmasının səbəbi, data() əvəzinə buf2Buf() istifadə etməyinizin ən tipik halının şirkət hesabları arasında qeydlərin kopyalanması zamanı, adətən changeCompany açar sözündən istifadə etməklə baş verməsidir.

Məsələn, əgər siz "dat" şirkətində işləyirsinizsə və CustTable-dakı bütün qeydləri kopyalamaq istədiyiniz "com" adlı başqa bir şirkətiniz varsa:

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

Bu halda, buf2Buf sistem sahələri istisna olmaqla, bütün sahə dəyərlərini yeni buferə kopyaladığı üçün işləyəcək. Bunun əvəzinə data() istifadə etsəydiniz, yeni qeyd "com" şirkət hesablarına daxil ediləcəkdi, çünki həmin dəyər də yeni buferə kopyalanacaqdı.

(Əslində, bu, təkrarlanan açar xətası ilə nəticələnərdi, amma siz də bunu istəmirsiniz).

Əlavə Oxu

Bu yazı xoşunuza gəldisə, bu təklifləri də bəyənə bilərsiniz:


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

Mikkel Christensen

Müəllif haqqında

Mikkel 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.