Miklix

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

ที่ตีพิมพ์: 15 กุมภาพันธ์ 2025 เวลา 22 นาฬิกา 54 นาที 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 ปี และปัจจุบันทำงานเต็มเวลาให้กับบริษัทไอทีขนาดใหญ่แห่งหนึ่งในยุโรป เมื่อไม่ได้เขียนบล็อก เขาจะใช้เวลาว่างไปกับความสนใจ งานอดิเรก และกิจกรรมต่างๆ มากมาย ซึ่งในระดับหนึ่งอาจสะท้อนให้เห็นได้จากหัวข้อต่างๆ มากมายที่กล่าวถึงในเว็บไซต์นี้