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.
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:
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:
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:
{
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:
- Dynamics AX 2012-də AIF Xidməti üçün Sənəd Sinfi və Sorğunun Müəyyənləşdirilməsi
- Dynamics AX 2012-də SysOperation Data Müqavilə Sinifində Sorğunun İstifadəsi
- Dynamics AX 2012-də "Məlumat müqaviləsi obyekti üçün metadata sinfi müəyyən edilməmişdir" xətası
