| รายการ | คำอธิบาย |
|---|---|
| ชื่อ API ภาษาไทย | สร้างข้อมูลใบรับเข้าคลังสินค้าสำเร็จ |
| ชื่อ API ภาษาอังกฤษ | Work Order Stock-In Data Create |
| รหัส CROSS API | stockin.data.create |
| บริการ ESB ที่เกี่ยวข้อง | /sendTransForm (ทั่วไป) หรือ /outsourcingPurchaseStockinCreate (TRANSTYPE=59) |
| ทิศทางการเรียก | MES → ERP |
| เวลาที่เรียก | 1. เมื่อ CheckOut สถานีสุดท้ายของใบสั่งผลิตเสร็จสิ้น 2. เมื่อดำเนินการรับเข้าคลังแบบชุด 3. เมื่อทริกเกอร์รับเข้าคลังด้วยตนเอง |
| สถานการณ์ธุรกิจหลัก | หลังการผลิตเสร็จสิ้น รับสินค้าสำเร็จเข้าคลังสินค้าที่กำหนดใน ERP อัปเดตจำนวนสต็อกและสถานะใบสั่งผลิตใน ERP |
| รูปแบบ Request | JSON (Content-Type: application/json) |
| ซิงโครนัส/อะซิงโครนัส | เรียกแบบซิงโครนัส |
| การควบคุมธุรกรรม | จำเป็น (MES และ ERP ต้องรักษาความสอดคล้องของข้อมูล) |
| หมายเหตุ | TB001/TB002 ที่ส่งกลับคือประเภท/หมายเลขเอกสารที่ ERP สร้าง ต้องบันทึกลงใน TL011/TL012 |
TransOrderDataToJson.java:648SendFormSbyJson.transferFormToJson()SendFormElementbyJson.getTransferFormHead/Body()XmlToERP_handler.sendToErpByESB()Content-Type: application/json (HttpClient.java:25)
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย | แหล่ง MES |
|---|---|---|---|---|
| companyID | string | Y | รหัสบริษัท | COMPANYID |
| userId | string | Y | พนักงานผู้ดำเนินการ | CONFIRMER |
| doAction | string | Y | 2=ใบโอน | DOACTION |
| docase | string | Y | 1=เพิ่ม, 2=แก้ไข, 3=ลบ | DOCASE |
| head | object | Y | ข้อมูลส่วนหัว | - |
| line | array | Y | รายละเอียดรายการ | - |
| ฟิลด์ | ประเภท | ความยาว | จำเป็น | คำอธิบาย | แหล่ง MES |
|---|---|---|---|---|---|
| transferType | string | 10 | Y | ประเภทใบโอน | TRANSTYPE |
| transferCode | string | 30 | N | หมายเลขใบโอน (ต้องระบุเมื่อแก้ไข) | TO008 |
| date | string | 10 | Y | วันที่เอกสาร YYYY-MM-DD | TRANSDATE |
| moveOutType | string | 2 | Y | ประเภทการย้ายออก (1=สถานีงาน, 2=คลังสินค้า, 3=แผนก) | OUTTYPE |
| moveOutCode | string | 20 | Y | รหัสย้ายออก | OUTDEPID |
| moveOutName | string | 50 | N | ชื่อย้ายออก | OUTDEPNAME |
| moveInType | string | 2 | Y | ประเภทการย้ายเข้า | INTYPE |
| moveInCode | string | 20 | Y | รหัสย้ายเข้า (คลังสินค้า) | INDEPID |
| moveInName | string | 50 | N | ชื่อย้ายเข้า | INDEPNAME |
| factoryCode | string | 10 | Y | รหัสโรงงาน | FACTORYID |
| confirmationCode | string | 20 | N | รหัสยืนยัน | CONFIRMCODE |
| remark | string | 255 | N | หมายเหตุ | COMMENT |
| orderDate | string | 10 | N | วันที่สั่งซื้อ | DOCUMENTDATE |
| eMESTransferType | string | 10 | Y | ประเภทใบ MES | TRANSTYPE |
| eMESTransferCode | string | 30 | Y | หมายเลขใบ MES | TRANSNO |
| source_no | string | 50 | Y | หมายเลขต้นทาง (ประเภท MES-หมายเลข) | eMESTransferType + "-" + eMESTransferCode |
| operator_no | string | 20 | N | พนักงานผู้ดำเนินการ | create (CONFIRMER) |
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย | แหล่ง MES |
|---|---|---|---|---|
| moType | string | Y | ประเภทใบสั่งผลิต | MOTYPE |
| moCode | string | Y | หมายเลขใบสั่งผลิต | MONO |
| moveOutOpSeq | string | Y | ลำดับขั้นตอนย้ายออก | OUTOPSEQ |
| moveOutOpId | string | Y | ขั้นตอนย้ายออก | OUTOP |
| moveInOpSeq | string | N | ลำดับขั้นตอนย้ายเข้า | INOPSEQ |
| moveInOpId | string | N | ขั้นตอนย้ายเข้า | INOP |
| qty | decimal | Y | จำนวน | TRANSQTY |
| unit | string | Y | หน่วย | UNIT |
| batchCode | string | Y | หมายเลขล็อต | LOTNO |
| state | string | Y | สถานะ (PATTERN) | PATTERN |
| prodCode | string | Y | รหัสสินค้า | ITEMID |
| prodName | string | N | ชื่อสินค้า | ITEMNAME |
| prodSpec | string | N | ข้อกำหนดสินค้า | ITEMDESCRIPTION |
| acceptanceQty | decimal | N | จำนวนที่รับ | TL002 |
| scrapQty | decimal | N | จำนวนเสีย | SCRAPQTY |
| inspectionReturnQty | decimal | N | จำนวนคืนตรวจสอบ | TL003 |
| moveInCode | string | N | แผนกย้ายเข้า | INDEP |
| moveInLocation | string | N | ตำแหน่งจัดเก็บ | INSTORAGESPACE |
| useTime | decimal | N | เวลาแรงงาน | LABORHOUR |
| useMachineTime | decimal | N | เวลาเครื่องจักร | MACHINEHOUR |
| remark | string | N | หมายเหตุ | NOTE |
| manufactureDualUnit | string | N | หน่วยคู่การผลิต | TWINUNIT |
| hasQty | string | N | สถานะการรับเข้า (stock_in_status) | HASQTY |
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| code | int | 200=สำเร็จ, อื่นๆ=ล้มเหลว |
| msg | string | ข้อความผลลัพธ์ |
| TB001 | string | ประเภทใบ ERP → บันทึกลง TL011 |
| TB002 | string | หมายเลขใบ ERP → บันทึกลง TL012 |
| ฟิลด์ | คำอธิบาย |
|---|---|
| ISOK | true=สำเร็จ, false=ล้มเหลว |
| Msg | ข้อความประมวลผล |
| TB001 | บันทึกลง TL011 |
| TB002 | บันทึกลง TL012 |
| # | รายการตรวจสอบ | กฎ | ตำแหน่งโปรแกรม |
|---|---|---|---|
| 1 | มีข้อมูลรายละเอียด | SFT_TRANSORDER_LINE_GRID ต้องไม่ว่าง | TransOrderDataToJson.java:609 |
| 2 | ตรวจสอบ TO013 | = 1 ถึงจะส่ง generateTransferForm | TransOrderDataToJson.java:612 |
| 3 | การเชื่อมต่อ ERP | SFTConfig.isHasERP() = true | TransOrderDataToJson.java:646 |
| 4 | ตรวจสอบ TRANSTYPE | 59=รับสินค้าจ้างผลิต, อื่นๆ=ใบโอนทั่วไป | TransOrderDataToJson.java:648 |
| 5 | ตรวจสอบการเสร็จสิ้นใบสั่งผลิต | canUpdateERP_TA_OP_Status100() = true | TransOrderDataToJson.java:637 |
| รหัส | ข้อความ | คำอธิบาย |
|---|---|---|
| E001 | ขาดฟิลด์ที่จำเป็น | Request ขาดฟิลด์ที่จำเป็น |
| E002 | ไม่พบใบสั่งผลิต | MOTYPE-MONO ไม่ถูกต้อง |
| E003 | สถานะใบสั่งผลิตไม่อนุญาต | ใบสั่งผลิตถูกปิดหรือยกเลิกแล้ว |
| E004 | จำนวนต้องมากกว่าศูนย์ | qty ≤ 0 |
| E005 | จำนวนเกินยอดคงเหลือ | เกินจำนวนที่สามารถรับเข้าได้ |
| E006 | ไม่พบคลังสินค้า | moveInCode ไม่ถูกต้อง |
| E999 | ข้อผิดพลาดระบบ | Timeout, ข้อผิดพลาดการเชื่อมต่อ |
| Return result parsing error! | แยกวิเคราะห์ผลลัพธ์ล้มเหลว | XmlToERP_handler.java:117 |
{
"companyID": "COMP01",
"userId": "EMP001",
"doAction": "2", // 2=ใบโอน
"docase": "1", // 1=เพิ่ม
"head": {
"transferType": "51",
"date": "2026-03-19",
"moveOutType": "1",
"moveOutCode": "WS001",
"moveOutName": "สถานีประกอบ",
"moveInType": "2",
"moveInCode": "FG01",
"moveInName": "คลังสินค้าสำเร็จรูป",
"factoryCode": "P001",
"remark": "รับเข้าคลังปกติ",
"create": "EMP001", // → ERP: operator_no
"eMESTransferType": "51",
"eMESTransferCode": "T20260319001"
},
"line": [{
"moType": "5101",
"moCode": "20260319001",
"moveOutOpSeq": "0030",
"moveOutOpId": "OP030",
"qty": 100,
"unit": "PCS",
"batchCode": "LOT20260319001",
"state": "1",
"prodCode": "FG-A001-001",
"prodName": "สินค้าสำเร็จรูป A",
"moveInCode": "FG01",
"moveInLocation": "A-01-01",
"hasQty": "1", // → ERP: stock_in_status
"remark": ""
}]
}
{
"code": 200,
"msg": "สร้างใบรับเข้าคลังสำเร็จ",
"TB001": "5101",
"TB002": "20260319001"
}
{
"code": 500,
"msg": "ไม่พบใบสั่งผลิต 5101-20260319999"
}