Dynamics 365 Business Central: การใช้งาน Base64 Convert Codeunit ใน AL Programming

Base64 Convert Codeunit เป็นหนึ่งในฟังก์ชันที่สำคัญใน AL programming ซึ่งใช้สำหรับการเข้ารหัส (encode) และถอดรหัส (decode) ข้อมูลในรูปแบบ Base64 โดย Base64 เป็นรูปแบบการเข้ารหัสข้อมูลที่นิยมใช้ในการส่งข้อมูลในโปรโตคอลต่างๆ เช่น HTTP หรือในการจัดเก็บข้อมูลที่ต้องการให้เป็นรูปแบบข้อความ

ฟังก์ชันหลักใน Base64 Convert Codeunit

  1. ToBase64
    • ใช้ในการเข้ารหัสข้อความหรือข้อมูลจาก InStream เป็น Base64
    • รองรับตัวเลือกในการแทรก Line Breaks ทุก ๆ 76 ตัวอักษรและระบุ TextEncoding เช่น UTF-8, MsDos, หรือ Windows
  2. FromBase64
    • ใช้ในการถอดรหัสข้อมูลจาก Base64 กลับเป็นข้อความปกติ
    • รองรับการระบุ TextEncoding และการถอดรหัสข้อมูลจาก Base64 ลงใน OutStream

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

1. การเข้ารหัสข้อความธรรมดาเป็น Base64

procedure EncodeTextToBase64(InputText: Text): Text
var
    Base64: Codeunit "Base64 Convert";
begin
    exit(Base64.ToBase64(InputText)); // คืนค่าข้อความที่ถูกเข้ารหัสเป็น Base64
end;

การใช้งาน

var
    EncodedText: Text;
begin
    EncodedText := EncodeTextToBase64('Hello World!');
    Message('Encoded Base64: %1', EncodedText);
end;

อธิบาย: ในตัวอย่างนี้ ข้อความ Hello World! จะถูกเข้ารหัสเป็น Base64 ซึ่งสามารถนำไปใช้งานในระบบต่าง ๆ ได้ เช่น การส่งข้อมูลผ่าน API

2. การเข้ารหัสพร้อมแทรก Line Breaks

procedure EncodeTextWithLineBreaks(InputText: Text): Text
var
    Base64: Codeunit "Base64 Convert";
begin
    exit(Base64.ToBase64(InputText, true)); // คืนค่าข้อความที่ถูกเข้ารหัสพร้อมแทรก line breaks ทุก ๆ 76 ตัวอักษร
end;

การใช้งาน

var
    EncodedTextWithBreaks: Text;
begin
    EncodedTextWithBreaks := EncodeTextWithLineBreaks('This is a very long string that we are using to demonstrate how Base64 encoding works when we have more than seventy-six characters in the input text.');
    Message('Encoded Text with Line Breaks: %1', EncodedTextWithBreaks);
end;

อธิบาย: การเข้ารหัสพร้อม InsertLineBreaks จะทำให้ข้อความ Base64 ถูกแบ่งบรรทัดทุก ๆ 76 ตัวอักษร ซึ่งมีประโยชน์ในบางกรณีที่ต้องการความอ่านง่ายหรือการจำกัดความยาวบรรทัด

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

1. การถอดรหัสข้อความ Base64 กลับเป็นข้อความปกติ

procedure DecodeBase64ToText(Base64String: Text): Text
var
    Base64: Codeunit "Base64 Convert";
begin
    exit(Base64.FromBase64(Base64String)); // คืนค่าข้อความที่ถอดรหัสจาก Base64
end;

การใช้งาน

var
    DecodedText: Text;
begin
    DecodedText := DecodeBase64ToText('SGVsbG8gV29ybGQh');
    Message('Decoded Text: %1', DecodedText);
end;

อธิบาย: ข้อความ SGVsbG8gV29ybGQh ซึ่งเป็นข้อความที่เข้ารหัสใน Base64 จะถูกถอดรหัสกลับมาเป็น Hello World!

2. การถอดรหัสข้อมูลจาก Stream

procedure DecodeStreamFromBase64(Base64String: Text; var OutStream: OutStream)
var
    Base64: Codeunit "Base64 Convert";
begin
    Base64.FromBase64(Base64String, OutStream); // ถอดรหัสข้อมูลจาก Base64 แล้วนำไปเก็บใน OutStream
end;

การใช้งาน

var
    OutStream: OutStream;
begin
    DecodeStreamFromBase64('SGVsbG8gV29ybGQh', OutStream);
    // ทำงานกับ OutStream ต่อไป
end;

อธิบาย: ในตัวอย่างนี้ ข้อมูลจะถูกถอดรหัสจาก Base64 แล้วถูกเก็บไว้ใน OutStream ซึ่งสามารถนำไปใช้งานในรูปแบบข้อมูล Stream อื่น ๆ ได้

สรุป

Base64 Convert Codeunit เป็นเครื่องมือที่มีประโยชน์ในการจัดการข้อมูล Base64 ไม่ว่าจะเป็นการเข้ารหัสหรือถอดรหัส โดยมีฟังก์ชันที่ยืดหยุ่นและรองรับการทำงานทั้งในรูปแบบข้อความปกติและ Stream ทำให้สามารถนำไปประยุกต์ใช้ในโปรเจ็กต์ต่างๆ ในระบบ Dynamics 365 Business Central ได้อย่างมีประสิทธิภาพ

Leave a comment