7 bẫy khi gọi API Business Central
Bảy lỗi khi đọc ghi dữ liệu Business Central bằng API: HTTP 400 vì sai tên tham số, tên Option bị mã hoá, ngày 0001-01-01, $filter ngày, chuỗi bị cắt, Work Date.
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ố.