Tổ hợp JSON: transOrder.put("outsource_no", stock_in_no)
API liên quan
Hủy phiếu nhập hàng gia công (outsourcingProcess) và tạo phiếu nhập hàng gia công (outsourcingPurchaseStockinCreate) được sử dụng đi kèm nhau.
Khi hủy cần sử dụng TB001/TB002 mà ERP trả về sau khi tạo thành công (lưu trong TL011/TL012).
3. Quy cách Request
Định dạng truyền tải: JSON Content-Type: application/json (HttpClient.java:25)
TL011/TL012 được ghi vào từ TB001/TB002 mà ERP trả về sau khi outsourcingPurchaseStockinCreate thành công.
4. Quy cách Response
Trường
Loại
Mô tả
code
int
200=Thành công, khác=Thất bại
msg
string
Thông báo kết quả xử lý
Hành vi khi thành công
Phiếu nhập hàng gia công ERP bị vô hiệu/hoàn nguyên
Hoàn nguyên số lượng tồn kho
Hủy bản ghi xuất trạm MES
5. Quy tắc kiểm tra
#
Mục kiểm tra
Quy tắc
Vị trí chương trình
1
TL011 không rỗng
Phải có loại ERP
GeneralUpdater.java:1571
2
TL012 không rỗng
Phải có số ERP
GeneralUpdater.java:1571
3
TRANSORDERTYPE = "59"
Phán đoán loại đơn gia công
GeneralUpdater.java:1577
4
Chứng từ gốc tồn tại
Chứng từ phía ERP phải tồn tại
Kiểm tra phía ERP
5
Trạng thái chứng từ cho phép hủy
Chưa hạch toán mới có thể hoàn nguyên
Kiểm tra phía ERP
Quan trọng: Khi TL011/TL012 rỗng sẽ không gọi ERP
Trong logic chương trình, chỉ khi cả TL011 và TL012 đều không rỗng mới gọi outsourcingProcess.
Nếu rỗng, hành động hủy xuất trạm chỉ thực hiện ở phía MES, phía ERP không bị ảnh hưởng.
{
"code": 200,
"msg": "Hoàn nguyên phiếu nhập hàng gia công thành công"
}
Response (Thất bại)
{
"code": 500,
"msg": "Chứng từ đã hạch toán không thể hủy 5902-20260319001"
}
8. Giải thích rủi ro Race Condition
Vấn đề đã biết: TL011/TL012 rỗng khi hủy xuất trạm
Khi người dùng hủy xuất trạm trước khi ERP trả về, do TL011/TL012 chưa được ghi lại, outsourcingProcess sẽ không được gọi.
Điều này dẫn đến dữ liệu MES và ERP không nhất quán.
Ví dụ dòng thời gian
Nguyên nhân vấn đề
// GeneralUpdater.java:1571if(!SftTransorderLine.getTl011().equals("") && !SftTransorderLine.getTl012().equals("")){
// Chỉ khi TL011/TL012 không rỗng mới gọi outsourcingProcess// Nếu hủy trước khi ERP trả về, if này là false, bỏ qua gọi ERP
}
Đề xuất xử lý
Phương án
Mô tả
Ảnh hưởng
Xử lý ngay
Vô hiệu phiếu nhập hàng gia công đó trên ERP thủ công