Miklix

تفاوت بین داده() و buf2Buf() در Dynamics AX 2012

منتشر شده: ۱۵ فوریهٔ ۲۰۲۵ ساعت ۲۲:۵۴:۱۸ (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» ​​درج می‌شد، زیرا آن مقدار در بافر جدید نیز کپی می‌شد.

(در واقع، منجر به یک خطای کلید تکراری می شد، اما این چیزی نیست که شما می خواهید).

در Bluesky به اشتراک بگذاریددر فیسبوک به اشتراک بگذاریددر لینکدین به اشتراک بگذاریددر Tumblr به اشتراک بگذاریددر X به اشتراک بگذاریددر لینکدین به اشتراک بگذاریدپین در پینترست

میکل بنگ کریستنسن

درباره نویسنده

میکل بنگ کریستنسن
مایکل خالق و صاحب miklix.com است. او بیش از 20 سال تجربه به عنوان یک برنامه نویس حرفه ای کامپیوتر / توسعه دهنده نرم افزار دارد و در حال حاضر به طور تمام وقت برای یک شرکت بزرگ فناوری اطلاعات اروپایی مشغول به کار است. هنگامی که وبلاگ نویسی نمی کند، اوقات فراغت خود را صرف مجموعه وسیعی از علایق، سرگرمی ها و فعالیت ها می کند، که ممکن است تا حدی در موضوعات مختلف پوشش داده شده در این وب سایت منعکس شود.