ERP Thực Chiến

18/09/2026 · API · AL

7 bẫy khi gọi API Business Central

Những lỗi đã làm tôi mất hàng giờ khi đọc ghi dữ liệu BC bằng API, kèm cách tránh.

Bài này gom lại những lỗi tôi đã gặp thật khi làm việc với Business Central qua API. Lỗi nào cũng có thông báo khó hiểu ở lần đầu gặp.

1. Tham số của unbound action lấy theo tên tham số AL

Hàm procedure Apply(configJson: Text) thì payload phải là:

{ "configJson": "<chuỗi json>" }

Gửi thẳng object vào thì BC trả HTTP 400 với câu "is not a valid parameter for the operation".

2. Tên Option bị mã hoá

Negative Adjmt. về tới client thành Negative_x0020_Adjmt_x002E_. Quy tắc _xHHHH_ là mã Unicode của một ký tự. Không giải mã thì mọi phép so sánh chuỗi đều trượt.

3. Ngày rỗng là 0001-01-01

Đó là 0D của BC. Để nguyên rồi trừ ngày thì ra số âm bảy trăm nghìn.

4. Ngày trong $filter không có dấu nháy

Viết postingDate ge 2026-06-14. Bọc dấu nháy thì BC trả HTTP 400 "Found operand types 'Edm.Date' and 'Edm.String'".

5. AL không short-circuit phép and

if Config.Get('k', Token) and Token.AsValue().AsBoolean() then

Dòng trên vẫn gọi AsValue khi thiếu khoá. Phải viết hai lệnh if lồng nhau.

6. Trường ngắn cắt chuỗi mà không báo

Document No. là Code[20], External Document No. là Text[35]. Nhét GUID 38 ký tự vào thì mất phần đuôi. Dùng số nguyên tự tăng làm tham chiếu.

7. Phiên web service không có Work Date

Hàm AL nào phụ thuộc WorkDate() thì nên nhận ngày làm tham số.