Dynamics 365 Business Central: การใช้งานฟังก์ชัน GetEnvironmentName ใน AL Programming

การเขียนโปรแกรมด้วยภาษา AL สำหรับ Dynamics 365 Business Central มีหลายฟังก์ชันที่ช่วยให้เราสามารถเข้าถึงข้อมูลของระบบที่กำลังทำงานอยู่ หนึ่งในฟังก์ชันที่มีประโยชน์มากคือ GetEnvironmentName() ซึ่งเป็นฟังก์ชันที่ใช้สำหรับดึงชื่อของ Environment ที่เรากำลังทำงานอยู่ เช่น Production, Sandbox หรือ Development Environment

คำอธิบายของฟังก์ชัน GetEnvironmentName()

ฟังก์ชัน GetEnvironmentName() เป็นส่วนหนึ่งของ Codeunit 457 "Environment Information" ที่ Microsoft ให้มาในระบบ Dynamics 365 Business Central ฟังก์ชันนี้จะทำการคืนค่าชื่อของ Environment ที่ระบบกำลังทำงานอยู่

procedure GetEnvironmentName(): Text

ผลลัพธ์: ฟังก์ชันนี้จะคืนค่าเป็น Text ซึ่งแสดงชื่อ Environment เช่น “Production”, “Sandbox” หรือชื่อที่กำหนดเอง

ประเภทข้อมูลที่คืนค่า: Text

ตัวอย่างการใช้งานฟังก์ชัน GetEnvironmentName()

เพื่อให้เข้าใจมากขึ้น เรามาดูตัวอย่างการใช้งาน GetEnvironmentName() ในการเขียนโค้ด AL

ตัวอย่างที่ 1: การแสดงชื่อ Environment

procedure ShowEnvironmentName()
var
    EnvInfo: Codeunit "Environment Information";
    EnvName: Text;
begin
    // ดึงชื่อ Environment
    EnvName := EnvInfo.GetEnvironmentName();
    // แสดงผลชื่อ Environment ในรูปแบบ Message Box
    Message('Current Environment: %1', EnvName);
end;

คำอธิบาย
ในตัวอย่างนี้ เราสร้างฟังก์ชัน ShowEnvironmentName() เพื่อดึงชื่อของ Environment ปัจจุบัน แล้วแสดงผลผ่าน Message โดยใช้ Codeunit "Environment Information" ในการเรียกใช้ฟังก์ชัน GetEnvironmentName()

ผลลัพธ์

  • หากระบบทำงานบน Production Environment จะขึ้นข้อความ:
    "Current Environment: Production"
  • หากเป็น Sandbox Environment จะขึ้นข้อความ:
    "Current Environment: Sandbox"

ตัวอย่างที่ 2: การตรวจสอบ Environment ก่อนการดำเนินการ

สมมติว่าเรามีฟังก์ชันที่ต้องการให้ทำงานเฉพาะใน Sandbox เท่านั้น เราสามารถใช้ GetEnvironmentName() เพื่อตรวจสอบ Environment ได้ดังนี้

procedure ValidateSandboxEnvironment()
var
    EnvInfo: Codeunit "Environment Information";
    EnvName: Text;
begin
    // ตรวจสอบชื่อ Environment
    EnvName := EnvInfo.GetEnvironmentName();
    if EnvName <> 'Sandbox' then
        Error('This feature is only available in Sandbox environment.');
    
    // ดำเนินการเฉพาะใน Sandbox เท่านั้น
    Message('Feature enabled for Sandbox.');
end;

คำอธิบาย
ในฟังก์ชัน ValidateSandboxEnvironment() เราตรวจสอบชื่อ Environment หากไม่ใช่ Sandbox จะขึ้นข้อความ Error เพื่อแจ้งเตือนผู้ใช้ หากเป็น Sandbox จะดำเนินการต่อไป

สรุป

การใช้ฟังก์ชัน GetEnvironmentName() ใน AL Programming ช่วยให้เราสามารถเขียนโค้ดที่ยืดหยุ่นและสามารถปรับการทำงานได้ตาม Environment ที่ใช้งานอยู่ ซึ่งเป็นประโยชน์อย่างมากสำหรับการพัฒนา Extension ที่ต้องการรองรับทั้ง Production และ Sandbox

Leave a comment