Dynamics 365 Business Central: การใช้งาน TestField ใน AL Programming

TestField เป็นฟังก์ชันที่ใช้ในการตรวจสอบค่าของฟิลด์ใน AL Programming ว่ามีค่าตามที่กำหนดไว้หรือไม่ ซึ่งหากฟิลด์นั้นไม่มีค่าตามที่คาดหวังจะทำให้เกิด Error ขึ้น ฟังก์ชันนี้มีประโยชน์มากในการรักษาความถูกต้องของข้อมูลและป้องกันไม่ให้เกิดข้อผิดพลาดในการประมวลผลในภายหลัง

การใช้งานพื้นฐาน

TestField ใช้เพื่อตรวจสอบค่าฟิลด์ที่เราคาดหวังว่าควรจะมีค่าอยู่เสมอ หากฟิลด์นั้นว่างเปล่าหรือไม่ตรงกับค่าเฉพาะที่เรากำหนดไว้ จะเกิด Error เพื่อบอกให้ผู้ใช้งานแก้ไขข้อมูล

procedure ValidateCustomerNo(CustomerRecord: Record Customer)
begin
    CustomerRecord.TestField("No."); // ตรวจสอบว่าฟิลด์ "No." ของลูกค้าไม่ว่างเปล่า
end;

ในตัวอย่างนี้ ฟังก์ชัน TestField ใช้ตรวจสอบว่า Customer No. ไม่ว่างเปล่า ซึ่งถ้าไม่มีค่า จะเกิดข้อผิดพลาดทันที

การใช้งานพร้อมเงื่อนไขค่าเฉพาะ

นอกจากการตรวจสอบว่าฟิลด์ไม่ว่างเปล่าแล้ว TestField ยังสามารถใช้ตรวจสอบว่าฟิลด์มีค่าตรงกับที่กำหนดหรือไม่

procedure CheckOrderStatus(SalesOrder: Record "Sales Header")
begin
    SalesOrder.TestField(Status, SalesOrder.Status::Open); // ตรวจสอบว่าสถานะของ Sales Order ต้องเป็น "Open"
end;

ตัวอย่างนี้จะตรวจสอบว่าสถานะของ Sales Order ต้องเป็น ‘Open’ เท่านั้น ถ้าไม่ใช่ จะเกิด Error ขึ้น

การใช้งานกับฟิลด์หลายประเภท (Complex Example)

การตรวจสอบฟิลด์หลายประเภท เช่น Integer, Boolean, และ Date

procedure ValidateSalesLine(SalesLine: Record "Sales Line")
begin
    // ตรวจสอบว่า Quantity ต้องไม่เป็นค่าว่างหรือเป็น 0
    SalesLine.TestField(Quantity, 1); 
    
    // ตรวจสอบว่า Boolean field ต้องเป็น TRUE
    SalesLine.TestField("Line Discount", false); 
    
    // ตรวจสอบว่า Date ต้องมีค่า
    SalesLine.TestField("Shipment Date");
end;

ในตัวอย่างนี้ เราตรวจสอบฟิลด์หลากหลายประเภท ทั้ง Integer, Boolean, และ Date เพื่อให้แน่ใจว่าค่าที่เก็บในแต่ละฟิลด์ถูกต้องและไม่ว่างเปล่า

ประโยชน์ของการใช้ TestField

  1. ความปลอดภัยของข้อมูล (Data Integrity): การใช้ TestField ช่วยให้มั่นใจว่าข้อมูลที่ใช้ในกระบวนการต่าง ๆ จะมีค่าที่ถูกต้องก่อนที่จะดำเนินการใด ๆ
  2. การป้องกันข้อผิดพลาด (Error Prevention): หากมีการใช้ TestField ในการตรวจสอบค่าต่าง ๆ ก่อนที่จะดำเนินการ ระบบจะสามารถหยุดการประมวลผลได้หากค่าที่ตรวจสอบไม่ถูกต้อง ซึ่งช่วยลดข้อผิดพลาดที่อาจเกิดขึ้นในระบบ
  3. ช่วยในการ Debugging: เมื่อเกิด Error จากการใช้ TestField ระบบจะแจ้งเตือนว่าฟิลด์ใดไม่ผ่านการตรวจสอบ ทำให้ง่ายต่อการค้นหาสาเหตุของปัญหา

สรุป

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

Leave a comment