Miklix

الفرق بين data() وbuf2Buf() في Dynamics AX 2012

نُشرت: ١٥ فبراير ٢٠٢٥ م في ١٠:٥٣:٠٣ م UTC
آخر تحديث: ١٢ يناير ٢٠٢٦ م في ٨:٤٠:٥٦ ص 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 تنسخ جميع قيم الحقول، باستثناء حقول النظام، إلى المخزن المؤقت الجديد. لو استخدمت دالة data() بدلاً من ذلك، لكان السجل الجديد قد أُدرج في حسابات شركة "com" لأن تلك القيمة كانت ستُنسخ إلى المخزن المؤقت الجديد أيضاً.

(في الواقع، كان ذلك سيؤدي إلى خطأ في المفتاح المكرر، لكن هذا ليس ما تريده أيضًا).

قراءات إضافية

إذا أعجبك هذا المنشور، فقد تعجبك أيضًا هذه الاقتراحات:


شارك على بلوسكايشارك على الفيسبوكشارك على لينكدإنشارك على تمبلرشارك على إكسشارك على لينكدإنثبت على بينتريست

ميكيل كريستنسن

عن المؤلف

ميكيل كريستنسن
ميكيل هو مؤسس ومالك موقع miklix.com. يتمتع بخبرة تزيد عن 20 عامًا كمبرمج كمبيوتر/مطور برامج محترف ويعمل حاليًا بدوام كامل في إحدى شركات تكنولوجيا المعلومات الأوروبية الكبرى. عندما لا يقوم بالتدوين، يقضي وقت فراغه في مجموعة واسعة من الاهتمامات والهوايات والأنشطة، والتي قد تنعكس إلى حد ما في تنوع الموضوعات التي يغطيها هذا الموقع.