การเขียนโปรแกรมด้วยภาษา 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













