Dynamics 365 Business Central: การใช้งาน Multiline Strings ในภาษา AL Programming

ในโลกของการพัฒนาแอปพลิเคชันด้วยภาษา AL (Application Language) สำหรับระบบ Microsoft Dynamics 365 Business Central ข้อความ (String) เป็นสิ่งที่หลีกเลี่ยงไม่ได้ ไม่ว่าจะใช้เพื่อการแสดงผล การสร้างข้อความแจ้งเตือน การจัดโครงสร้างข้อมูล JSON/XML หรือแม้กระทั่งการสร้างไฟล์ข้อความส่งออก

ก่อนหน้านี้ การใช้งานข้อความที่มีหลายบรรทัดใน AL ถือเป็นเรื่องยุ่งยาก เนื่องจากต้องเขียนในรูปแบบบรรทัดเดียว หรือใช้เครื่องหมาย + เพื่อเชื่อมต่อหลาย ๆ บรรทัด ซึ่งทั้งอ่านยากและดูไม่เป็นระเบียบ

ใน Release 2025 wave 1 Microsoft ได้เพิ่มความสามารถใหม่ที่ชื่อว่า Multiline Strings ซึ่งช่วยให้นักพัฒนาสามารถเขียนข้อความหลายบรรทัดได้อย่างชัดเจน อ่านง่าย และจัดรูปแบบได้เหมือนที่เราต้องการ

รูปแบบการใช้งาน (Syntax)

Multiline Strings ใน AL ใช้สัญลักษณ์ @ (at sign) เพื่อเริ่มต้นข้อความหลายบรรทัด โดยครอบข้อความไว้ด้วยเครื่องหมาย single quote '...'

MyText := @'
Line 1
Line 2
Line 3';

ผลลัพธ์ของ MyText จะเป็น string เดียว ที่มีการขึ้นบรรทัดใหม่ภายในข้อความตามที่เขียนไว้

ข้อควรระวัง (Important Note)

เว้นวรรค (Whitespace) = ข้อมูลจริง

ช่องว่าง (spaces) ที่เราใส่เพื่อ indent จะถูกนับเป็นส่วนหนึ่งของข้อความจริง

ตัวอย่าง

IndentedText := @'
    Hello
        World!';

ผลลัพธ์

    Hello
        World!

แนะนำให้เขียนชิดซ้ายที่สุดถ้าต้องการข้อความที่ไม่มีช่องว่างเกิน

ตัวอย่างการใช้งานจริง (Example)

ตัวอย่าง 1: สร้าง JSON สำหรับส่ง API

procedure GetJsonTemplate(): Text
var
    JsonText: Text;
begin
    JsonText := @'
{
  "customerId": "CUST-001",
  "name": "Contoso Ltd.",
  "status": "Active",
  "contacts": [
    {
      "name": "John Doe",
      "email": "john@contoso.com"
    }
  ]
}';
    exit(JsonText);
end;

ตัวอย่าง 2: ใช้ร่วมกับ Message()

procedure ShowWelcomeMessage()
begin
    Message(@'
Welcome to BC-ALife!
This solution is powered by Dynamics 365 Business Central.
Happy Coding!');
end;

สรุป (Summary)

Multiline Strings ที่เปิดตัวใน Business Central 2025 Release Wave 1 ช่วยให้นักพัฒนาสามารถเขียนข้อความหลายบรรทัดในภาษา AL ได้ง่ายขึ้น โดยใช้เพียงสัญลักษณ์ @ นำหน้าข้อความแบบ '...'

Leave a comment