Miklix

ความแตกต่างระหว่าง data() และ buf2Buf() ใน Dynamics AX 2012

ที่ตีพิมพ์: 15 กุมภาพันธ์ 2025 เวลา 22 นาฬิกา 54 นาที 15 วินาที UTC
ปรับปรุงล่าสุด : 12 มกราคม 2026 เวลา 8 นาฬิกา 41 นาที 15 วินาที 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" เพราะค่าเหล่านั้นจะถูกคัดลอกไปยังบัฟเฟอร์ใหม่ด้วยเช่นกัน

(ที่จริงแล้ว มันจะทำให้เกิดข้อผิดพลาดเกี่ยวกับรหัสซ้ำ แต่นั่นก็ไม่ใช่สิ่งที่คุณต้องการเช่นกัน)

อ่านเพิ่มเติม

หากคุณชอบโพสต์นี้ คุณอาจชอบคำแนะนำเหล่านี้ด้วย:


แชร์บนบลูสกายแชร์บนเฟสบุ๊คแชร์บน LinkedInแชร์บน Tumblrแชร์บน Xแชร์บน LinkedInปักหมุดบน Pinterest

มิคเคล คริสเตนเซ่น

เกี่ยวกับผู้เขียน

มิคเคล คริสเตนเซ่น
ไมเคิล คือผู้สร้างและเจ้าของเว็บไซต์ miklix.com เขามีประสบการณ์เป็นโปรแกรมเมอร์/นักพัฒนาซอฟต์แวร์คอมพิวเตอร์มืออาชีพมากว่า 20 ปี และปัจจุบันทำงานเต็มเวลาให้กับบริษัทไอทีขนาดใหญ่แห่งหนึ่งในยุโรป เมื่อไม่ได้เขียนบล็อก เขาจะใช้เวลาว่างไปกับความสนใจ งานอดิเรก และกิจกรรมต่างๆ มากมาย ซึ่งในระดับหนึ่งอาจสะท้อนให้เห็นได้จากหัวข้อต่างๆ มากมายที่กล่าวถึงในเว็บไซต์นี้