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ố.