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

ในระบบ ERP อย่าง Dynamics 365 Business Central (D365BC) เราสามารถมีหลายบริษัทอยู่ในระบบเดียวกันได้ เช่น บริษัทแม่-บริษัทลูก หรือหลายสาขาในเครือเดียวกัน เมื่อต้องการเขียนโปรแกรมด้วยภาษา AL เพื่อดึงหรือจัดการข้อมูลจากอีกบริษัทหนึ่ง เราจะไม่สามารถเข้าถึงข้อมูลนั้นได้โดยตรงจากตัวแปร Record ปกติ เพราะแต่ละตัวแปรจะทำงานกับบริษัทปัจจุบันเท่านั้น

เพื่อให้สามารถเข้าถึงข้อมูลของบริษัทอื่นได้ จะต้องใช้คำสั่ง ChangeCompany() ซึ่งใช้สำหรับเปลี่ยน context ของตัวแปร Record หรือ RecordRef ไปยังบริษัทปลายทาง ทำให้เราสามารถอ่าน แก้ไข หรือเพิ่มข้อมูลข้ามบริษัทได้อย่างสะดวกและปลอดภัย

ChangeCompany คืออะไร?

ChangeCompany เป็นคำสั่งในภาษา AL ที่ใช้เพื่อ เปลี่ยนบริษัทที่ตัวแปร Record หรือ RecordRef ทำงานอยู่ ไปยังบริษัทอื่นภายในฐานข้อมูลเดียวกัน

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

[Ok := ] Record.ChangeCompany([CompanyName: Text])

คำอธิบาย

องค์ประกอบคำอธิบาย
Recordตัวแปร Record หรือ RecordRef ที่จะเปลี่ยนบริษัท
CompanyNameชื่อบริษัทปลายทาง (Text), Optional
Ok :=ค่าผลลัพธ์แบบ Boolean เพื่อเช็คความสำเร็จ

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

ตัวอย่าง 1: อ่านข้อมูลจากบริษัทอื่น

procedure ShowVendorFromAnotherCompany()
var
    Vendor: Record Vendor;
begin
    Vendor.ChangeCompany('บริษัท B'); // เปลี่ยนไปที่บริษัท B
    if Vendor.Get('10000') then
        Message('Vendor Name in บริษัท B: %1', Vendor.Name);
end;

ตัวอย่าง 2: คัดลอกข้อมูล Vendor ข้ามบริษัท

    procedure SyncVendorToOtherCompany(var SourceVendor: Record Vendor; TargetCompanyName: Text)
    var
        TargetVendor: Record Vendor;
    begin
        TargetVendor.ChangeCompany(TargetCompanyName);
        if not TargetVendor.Get(SourceVendor."No.") then begin
            TargetVendor.Init();
            TargetVendor.TransferFields(SourceVendor);
            TargetVendor.Insert(true);
        end;
    end;

สรุป (Summary)

ChangeCompany เป็นฟีเจอร์สำคัญของภาษา AL ที่ช่วยให้เราสามารถเขียนโปรแกรมเพื่อเข้าถึง จัดการ และซิงก์ข้อมูลข้ามบริษัท (Multi-Company) ในระบบ Business Central ได้อย่างมีประสิทธิภาพ โดยเฉพาะในระบบที่มีหลายบริษัทอยู่ในฐานข้อมูลเดียวกัน ไม่ว่าจะเป็นการอ่านข้อมูลจากบริษัทอื่น การ Insert ข้อมูลใหม่ หรือการเปรียบเทียบข้อมูลระหว่างบริษัท

ข้อมูลเพิ่มเติมได้ที่นี่

🔗 Record.ChangeCompany([Text]) Method – Business Central

Leave a comment