Đến nội dung chính
ERP Thực Chiến
Thư viện
Menu

Phát triển extension BC không mở trình duyệt

Chuyển cả vòng tải symbol, build, publish và kiểm thử sang API để chạy bằng một lệnh, kể cả khi người chạy là AI agent.

Vấn đề#

Muốn publish một bản extension lên BC SaaS, cách quen thuộc là mở VS Code, bấm F5, hoặc vào trang Extension Management tải file .app lên. Làm tay thì được, nhưng không lặp lại được và không giao cho máy chạy được.

Tôi đã thử cho AI agent điều khiển trình duyệt để làm thay. Kết quả rất tệ: nội dung BC nằm trong iframe nên công cụ đọc trang chỉ thấy thanh trên cùng, tọa độ trên ảnh chụp lệch mỗi khi cửa sổ đổi kích thước, và sau một lúc thì click chuột không còn tác dụng lên client BC nữa.

Cách làm#

Gần như mọi việc khi phát triển extension đều có đường API, gọi bằng một Entra app với quyền ứng dụng (S2S):

  • Tải symbol để build: GET dev/packages?publisher=...&appName=...&versionText=...
  • Build bằng alc.exe lấy từ extension AL Language, không cần mở VS Code.
  • Publish: Automation API extensionUpload, rồi hỏi extensionDeploymentStatus cho tới khi xong.
  • Đọc, ghi dữ liệu và gọi bound action qua API page.
  • Việc chỉ AL làm được, như post chứng từ hay đổi setup, thì viết một codeunit, đăng ký làm web service rồi gọi unbound action.

Tôi gom các lệnh này vào BC CLI.

Kết quả#

  • Publish hàng chục bản extension trong một ngày mà không mở trình duyệt lần nào.
  • Bộ kiểm thử trọn vòng 24 bước cho một extension nội bộ chạy lại bằng một lệnh, 24/24 bước đạt.
  • Mỗi lệnh gọi thẳng BC bằng S2S mất khoảng 1,1 đến 1,9 giây.

Việc vẫn phải làm tay#

Ba việc chưa có đường API, phải làm trên giao diện một lần:

  1. Đăng ký Entra app trong BC ở trang Microsoft Entra Applications và gán permission set cho nó.
  2. Cấp quyền API.ReadWrite.All và Automation.ReadWrite.All cho app trên Entra, kèm admin consent.
  3. Đặt Work Date. Phiên web service không có Work Date, nên hàm AL nào đọc WorkDate() thì phải nhận ngày làm tham số.

Đọc tiếp

Khám phá các nội dung khác