TỔNG QUAN
Tài liệu hướng dẫn tích hợp, truyền - nhận dữ liệu với hệ thống Quản trị doanh nghiệp BRAVO ERP.
Tài liệu mang tính chất tham khảo, có thể có sự thay đổi khác nhau theo từng đơn vị. Vui lòng liên hệ trực tiếp CBNV kỹ thuật để được hỗ trợ thêm.
NHẬT KÝ SỬA ĐỔI
Endpoints
1. oAuth
Lấy mã xác thực truy cập (token). Một phản hồi thành công chứa thông tin Token. Token là bắt buộc truyền kèm khi thực thi các hàm tiếp theo để tương tác với hệ thống BRAVO ERP.
Info
Method: POST
URL: /connect/token
Header
| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
Content-Type | string | x | application/x-www-form-urlencoded (mặc định) |
Body (urlencoded)
| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
client_id | string | x | (Thông tin được cung cấp bởi BRAVO) |
client_secret | string | x | (Thông tin được cung cấp bởi BRAVO) |
grant_type | string | x | client_credentials (mặc định) |
Success Response
| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
access_token | string | x | Mã xác thực truy cập (token) |
expires_in | string | x | Số giây còn lại kể từ thời điểm yêu cầu, trước khi token hết hạn |
token_type | string | x | Loại token, thường chỉ là chuỗi Bearer |
scope | string | Phạm vi áp dụng, thông số này là không bắt buộc |
Example
{
“access_token”: “eyJhbGciOiJSUzI1NiIsImtpZCI6IkIzMEIxNTFGNjg3MUVFREMzMTdCMTQ4QUQ3Q0YzNDA0OUJCNDQwRjNSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6InN3c1ZIMmh4N3R3eGV4U0sxODgwQkp1MFFQTSJ9.eyJuYmYiOjE3NTc0MTE4NjMsImV4cCI6MTc1NzQxMzY2MywiaXNzIjoiaHR0cHM6Ly93cy1kbi5icmF2by5jb20udm46NTExNSIsImNsaWVudF9pZCI6IjYyYWVkM2E1LTE1MjAtNGE4ZC1hYWM3LThiNTc3Y2YyOGFjOCIsImNsaWVudF9uYW1lIjoiRXh0ZXJuYWwiLCJqdGkiOiI5Qjg2QzU0NTc4MTVBMjk3MEI5RThERTIxOURDNEMzOCIsImlhdCI6MTc1NzQxMTg2Mywic2NvcGUiOlsiQXBpR2F0ZXdheSJdfQ.KC-a4Ef3d0kF2otdeL8gSa9ftDmJJjUx_TMveTfBYd_qTX95U1-_eKRgOzoCYgUCgbgKK0RDmpubDtm0JppBlnwIoFIC_9zXpVOfpEnnZc-lBHTyetdr1XItODfSov0jWdKPz_w48xYtk9SH5Aewvca9Jhy0qXilGQoMGVCuVOS1ZJgrmp7E7ZBnzW0n9goGeYnd-Rbml8SsxuqPzNS4yhfkGFAzUtgVpxokhfDL7wbSAbrhTLZURO9tTnmvLMc2t9GIIUgy2mAvhswkjrTLXVbLLqeZQq2I9hdqM-sBs2H1hDkXVfne_nd0fDupBexDi9tQQOprN70kHKkiEGGfSg”,
“expires_in”: 1800,
“token_type”: “Bearer”,
“scope”: “ApiGateway”
}
Error Response
| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
error | string | Mã lỗi hoặc một mô tả ngắn thông tin về lỗi |
Example
{ "error": "invalid_client" }
2. Execute
Sử dụng để thực thi tất cả các chức năng khi tương tác với hệ thống BRAVO ERP. Tuy nhiên, cấu trúc dữ liệu trong Data[] sẽ khác nhau ở mỗi nghiệp vụ. Dựa vào thông tin Partner và Type hệ thống BRAVO sẽ xác định và xử lý dữ liệu tương ứng.
Info
Method: POST
URL: /api/v1.0/External/WebExternal/Execute
Header
| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
Content-Type | string | x | application/json (mặc định) |
Authorization | string | x | Bearer {access_token} |
Body (JSON)
| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
Partner | string | x | Mã định danh đối tác (Thông tin được cung cấp bởi BRAVO) |
Type | string | x | Hành động cần thực thi |
Data | array[] | x | Dữ liệu truyền nhận với định dạng JSON |
Example
{
“Partner”: “BMES-DAINAM”,
“Type”: “OperationLog”,
“Data”: []
}
2.1 OperationLog
Thực hiện nhận & xử lý dữ liệu kết quả của lệnh trộn (nhật ký vận hành) từ hệ thống trạm trộn. Chương trình dựa vào key orderId để nhận biết thực hiện Thêm mới hay Cập nhật (nếu trường hợp chưa tồn tại orderId BRAVO ERP sẽ tực hiện Thêm mới).
Example
{
“Partner”: “BMES-DAINAM”,
“Type”: “OperationLog”,
“Data”: [
{
“date”: “2025-09-09T00:00:00”,
“stationId”: “7166e47a-3735-49e1-be5b-0b1c73ffd0bd”,
“orderId”: “8166e47a-3735-49e1-be5b-0b1c73ffd0bd”,
“orderNo”: “LSX000001”,
“customerId”: “c883ce0a-50d8-4228-9c2f-11f2c4277b62”,
“constructionId”: “840f5e23-f261-4ce8-91e9-89c9c1bca23e”,
“vehicleId”: “8b42b67b-a72a-4ba8-ac28-6d1eba7fff37”,
“licensePlate”: “60K-73774”,
“driverId”: “177c079c-f04a-47ef-875d-c83aaa8495f7”,
“driverName”: “Văn Khắc Thắng”,
“bomId”: “2f78dd92-b389-4102-848e-33e9a45287cf”,
“gradeId”: “d4020297-d1f9-4834-865b-fab1c35f3066”,
“gradeCode”: “C45”,
“concreteCuringTimeId”: “03b89730-0fd6-4398-8d9c-9c471f7fd56b”,
“concreteCuringTimeCode”: “R3”,
“slumpId”: “2adf9c5c-fb21-49ee-b079-dcb23cf567e2”,
“slumpCode”: “3+/-1”,
“batch”: “1”,
“quantity”: 100,
“startTime”: “2025-09-09T09:30:00”,
“endTime”: “2025-09-09T10:45:30”,
“note”: "",
“materials”: [
{
“materialId”: “9dfc3ed5-719a-48fb-940e-40b1ec86c196”,
“unit”: “Kg”,
“silo”: “1”,
“normQuantity”: 5,
“standardQuantity”: 500,
“actualQuantity”: 500.05
},
{
“materialId”: “9dfc3ed5-719a-48fb-940e-40b1ec86c196”,
“unit”: “Kg”,
“silo”: “2”,
“normQuantity”: 2,
“standardQuantity”: 200,
“actualQuantity”: 188.25
},
{
“materialId”: “9dfc3ed5-719a-48fb-940e-40b1ec86c196”,
“unit”: “Kg”,
“silo”: “1”,
“normQuantity”: 1,
“standardQuantity”: 100,
“actualQuantity”: 100
}
]
}
]
}
| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
date | string | x | Ngày lệnh trộn. |
stationId | string | x | ID trạm trộn (liên kết với danh mục trạm trộn) |
orderId | string | x | ID lệnh sản xuất, lệnh trộn |
orderNo | string | x | Số lệnh sản xuất, lệnh trộn |
customerId | string | x | ID khách hàng (liên kết với danh mục khách hàng) |
constructionId | string | x | ID công trình (liên kết với danh mục công trình) |
vehicleId | string | x | ID xe (liên kết danh mục xe) |
licensePlate | string | x | Biển số xe |
driverId | string | x | ID tài xế (liên kết với danh mục tài xế) |
driverName | string | x | Tên tài xế |
bomId | string | x | ID cấp phôi (liên kết với danh mục cấp phối) |
bomCode | string | x | Mã cấp phối |
gradeId | string | x | ID mác bê tông (liên kết với danh mục mác bê tông) |
gradeCode | string | x | Mã mác bê tông |
concreteCuringTimeId | string | x | ID tuổi bê tông (liên kết với danh mục tuổi bê tông) |
concreteCuringTimeCode | string | x | Mã tuổi bê tông |
slumpId | string | x | Độ sụt (liên kết với danh mục độ sụt) |
slumpCode | string | x | Mã độ sụt |
batch | integer | x | Số mẻ |
quantity | float | x | Khối lượng thành phẩm |
startTime | string | x | Thời gian bắt đầu trộn (Yêu cầu định dạng yyyy-MM-ddTHH:mm:ss) |
endTime | string | x | Thời gian hoàn thành trộn (Yêu cầu định dạng yyyy-MM-ddTHH:mm:ss) |
note | string | Ghi chú | |
materialId | string | x | ID nguyên vật liệu (liên kết với danh mục vật tư) |
unit | string | x | Đơn vị tính |
silo | string | x | Mã SILO chứa nguyên vật liệu |
normQuantity | float | x | Số lượng định mức tiêu hao |
standardQuantity | float | x | Số lượng tiêu hao chuẩn (Khối lượng thành phẩm * Số lượng định mức tiêu hao) |
actualQuantity | float | x | Số lượng thực tế tiêu hao |
Success Response
Example
{
“result”: “true”,
“data”: null,
“message”: “Success”,
“error”: 0
}
Error Response
| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
result | string | x | Kết quả của yêu cầu, thường chỉ là false |
data | string | x | Dữ liệu của yêu cầu, thường sẽ null |
message | string | x | Mô tả thông tin lỗi bằng một diễn giải ngắn, tổng quát |
error | string | x | Mã lỗi |
Example
{
“result”: “false”,
“data”: null,
“message”: “Sorry, something is missing. Please check and try again.”,
“error”: 101
}