Miklix

ההבדל בין נתונים() ל-buf2Buf() ב-Dynamics AX 2012

פורסם: 15 בפברואר 2025 בשעה 22:54:21 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" מכיוון שהערך הזה היה מועתק גם למאגר החדש.

(למעשה, זה היה גורם לשגיאת מפתח כפול, אבל זה גם לא מה שאתה רוצה).

שתפו בבלוסקישתפו בפייסבוקשתפו בלינקדאיןשתפו ב-Tumblrשתפו ב-Xשתפו בלינקדאיןהצמד בפינטרסט

מיקל בנג כריסטנסן

על המחבר

מיקל בנג כריסטנסן
מיקל הוא היוצר והבעלים של miklix.com. יש לו למעלה מ-20 שנות ניסיון כמתכנת מחשבים/מפתח תוכנה מקצועי וכיום הוא מועסק במשרה מלאה בתאגיד IT אירופאי גדול. כשהוא לא כותב בלוג, הוא מבלה את זמנו הפנוי במגוון עצום של תחומי עניין, תחביבים ופעילויות, שעשויים לבוא לידי ביטוי במידה מסוימת במגוון הנושאים המכוסים באתר זה.