3. ข้อกำหนด Request
รูปแบบการส่ง: JSON
Content-Type: application/json
3.1 ยกเลิกใบรับเข้าคลังทั่วไป (cancelStockIn)
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย | แหล่งข้อมูล MES |
| companyID | string | Y | รหัสบริษัท | COMPANYID |
| userId | string | Y | ผู้ดำเนินการ | ผู้ล็อกอินปัจจุบัน |
| stock_in_no | string | Y | เลขที่ใบรับเข้าคลัง (ประเภท-เลขที่) | TL011 + "-" + TL012 |
3.2 ยกเลิกใบรับสินค้าจ้างผลิต (outsourcingProcess)
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย | แหล่งข้อมูล MES |
| companyID | string | Y | รหัสบริษัท | COMPANYID |
| userId | string | Y | ผู้ดำเนินการ | ผู้ล็อกอินปัจจุบัน |
| outsource_no | string | Y | เลขที่ใบจ้างผลิต (ประเภท-เลขที่) | TL011 + "-" + TL012 |
| source_type | string | Y | ประเภทการคืนค่า (0/1/2) | "0" (คืนค่าการส่งออก) |
คำอธิบายแหล่งที่มาของฟิลด์
stock_in_no / outsource_no = SFT_TRANSORDER_LINE.TL011 + "-" + SFT_TRANSORDER_LINE.TL012
TL011/TL012 ถูกเขียนจาก TB001/TB002 ที่ ERP ส่งกลับมาหลังจาก stockin.data.create สำเร็จ
7. ตัวอย่าง JSON
Request - ยกเลิกใบรับเข้าคลังทั่วไป
{
"companyID": "COMP01",
"userId": "EMP001",
"stock_in_no": "5101-20260319001"
}
Request - ยกเลิกใบรับสินค้าจ้างผลิต
{
"companyID": "COMP01",
"userId": "EMP001",
"outsource_no": "5902-20260319001",
"source_type": "0"
}
Response (สำเร็จ)
{
"code": 200,
"msg": "ยกเลิกใบรับเข้าคลังสำเร็จ"
}
Response (ล้มเหลว)
{
"code": 500,
"msg": "ใบรับเข้าคลังผ่านรายการแล้ว ไม่สามารถยกเลิกได้"
}
8. คำอธิบายความเสี่ยง Race Condition
ปัญหาที่ทราบ: TL011/TL012 ว่างเมื่อยกเลิกออกจากสถานี
เมื่อผู้ใช้ยกเลิกออกจากสถานีก่อนที่ ERP จะตอบกลับ เนื่องจาก TL011/TL012 ยังไม่ถูกเขียนกลับ API ยกเลิกจะไม่ถูกเรียก
สิ่งนี้จะทำให้ข้อมูล MES และ ERP ไม่สอดคล้องกัน
ตัวอย่างไทม์ไลน์
สาเหตุของปัญหา
if(!SftTransorderLine.getTl011().equals("") && !SftTransorderLine.getTl012().equals("")){
}
คำแนะนำในการจัดการ
| วิธีการ | คำอธิบาย | ผลกระทบ |
| จัดการทันที | ยกเลิกใบรับเข้าคลังนั้นที่ ERP ด้วยตนเอง | ต้องมีคนดำเนินการ |
| กลไกรอ | รอ ERP ตอบกลับเสร็จก่อนอนุญาตให้ยกเลิก | ต้องแก้ไขโปรแกรม |
| กลไก Lock | ห้ามยกเลิกขณะออกจากสถานีกำลังดำเนินการ | ต้องแก้ไขโปรแกรม |
| เปรียบเทียบเป็นระยะ | ตารางเวลาเปรียบเทียบสถานะเอกสาร MES และ ERP | ต้องเพิ่มฟีเจอร์ใหม่ |
กรณีศึกษาอ้างอิง
ดูรายละเอียดใน CLAUDE.md บันทึกวันที่ 2026-03-12 "การวิเคราะห์ปัญหา outsourcingProcess ไม่ถูกเรียกเมื่อยกเลิกออกจากสถานี 0000675600"