สร้างข้อมูลใบรับสินค้าจ้างผลิต

outsourcing.purchase.stockin.create
POST JSON ซิงโครนัส

1. ข้อมูลพื้นฐาน

รายการคำอธิบาย
ชื่อ API ภาษาไทยสร้างข้อมูลใบรับสินค้าจ้างผลิต (ใบรับสินค้าจากภายนอก)
รหัส CROSS APIoutsourcing.purchase.stockin.create
ชื่องาน MESoutsourcingPurchaseStockinCreate
เส้นทาง ESB/outsourcingPurchaseStockinCreate
อ้างอิง DSMSapi-2062 / vid-4462
ทิศทางการเรียกMES → ERP
เงื่อนไขทริกเกอร์TRANSTYPE = "59"
รูปแบบ RequestJSON (Content-Type: application/json)
วิธีการส่งHTTP POST ผ่าน ESB
ซิงโครนัส/อะซิงโครนัสเรียกแบบซิงโครนัส

2. กระบวนการทางธุรกิจ

CheckOut จ้างผลิต ตรวจสอบ TRANSTYPE = "59" ประกอบ JSON เรียก ERP ผ่าน ESB บันทึกกลับ TL011/TL012 ตำแหน่งโปรแกรม: TransOrderDataToJson.java:648
การเชื่อมโยงโค้ด
  • การตัดสินใจเส้นทาง: TransOrderDataToJson.java:648
  • การประกอบ JSON: SendFormSbyJson.transferFormToJson()
  • การแมปฟิลด์: SendFormElementbyJson.getTransferFormHead/Body()
  • การส่ง HTTP: XmlToERP_handler.sendToErpByESB()

3. ข้อกำหนด Request

รูปแบบการส่ง: JSON
Content-Type: application/json (HttpClient.java:25)

3.1 โครงสร้างชั้นนอก

ฟิลด์ประเภทจำเป็นคำอธิบายแหล่ง MES
companyIDstringYรหัสบริษัทCOMPANYID
userIdstringYพนักงานผู้ดำเนินการCONFIRMER
doActionstringY2=ใบโอนDOACTION
docasestringY1=เพิ่มDOCASE
headobjectYข้อมูลส่วนหัว-
linearrayYรายละเอียดรายการ-

3.2 ส่วนหัว (head)

ฟิลด์ประเภทจำเป็นคำอธิบายแหล่ง MES
transferTypestringYประเภทใบโอน (59=จ้างผลิต) → ERP: doc_type_noTRANSTYPE
datestringYวันที่เอกสาร YYYY-MM-DD → ERP: receipt_dateTRANSDATE
moveOutTypestringYประเภทการย้ายออกOUTTYPE
moveOutCodestringYรหัสย้ายออก → ERP: supplier_noOUTDEPID
moveInTypestringYประเภทการย้ายเข้าINTYPE
moveInCodestringYรหัสย้ายเข้า (คลังสินค้า)INDEPID
factoryCodestringYรหัสโรงงานFACTORYID
remarkstringNหมายเหตุ → ERP: remarkCOMMENT
createstringNพนักงานผู้ดำเนินการ → ERP: operator_noCONFIRMER
eMESTransferTypestringYประเภทใบ MESTRANSTYPE
eMESTransferCodestringYหมายเลขใบ MESTRANSNO
source_nostringYหมายเลขต้นทาง (ประเภท MES-หมายเลข)eMESTransferType + "-" + eMESTransferCode

3.3 รายละเอียด (line) - อาร์เรย์

ฟิลด์ประเภทจำเป็นคำอธิบายแหล่ง MES
moTypestringYประเภทใบสั่งผลิต (รวมเป็น ERP: wo_no)MOTYPE
moCodestringYหมายเลขใบสั่งผลิต (รวมเป็น ERP: wo_no)MONO
moveOutOpSeqstringYลำดับขั้นตอนย้ายออกOUTOPSEQ
moveOutOpIdstringYขั้นตอนย้ายออก → ERP: op_no (Head)OUTOP
qtydecimalYจำนวน → ERP: qtyTRANSQTY
unitstringYหน่วย → ERP: unit_noUNIT
batchCodestringYหมายเลขล็อต → ERP: lot_noLOTNO
prodCodestringYรหัสสินค้า → ERP: item_noITEMID
acceptanceQtydecimalNจำนวนที่รับ → ERP: receipt_qtyTL002
inspectionReturnQtydecimalNจำนวนคืนตรวจสอบ → ERP: return_qtyTL003
scrapQtydecimalNจำนวนเสีย → ERP: scrap_qtySCRAPQTY
valuationQtydecimalNจำนวนคำนวณราคา → ERP: valuation_qtyVALUATIONQTY
moveInLocationstringNตำแหน่งย้ายเข้า → ERP: storage_spaces_noINSTORAGESPACE
remarkstringNหมายเหตุ → ERP: body_remarkNOTE
outSourceTypestringNประเภทใบจ้างผลิตOUTORDERTYPE
outSourceCodestringNหมายเลขใบจ้างผลิตOUTORDERNO

4. ข้อกำหนด Response

ฟิลด์ประเภทคำอธิบาย
codeint200=สำเร็จ, อื่นๆ=ล้มเหลว
msgstringข้อความผลลัพธ์
TB001stringประเภทใบ ERP → บันทึกลง TL011
TB002stringหมายเลขใบ ERP → บันทึกลง TL012

5. กฎการตรวจสอบ

#รายการตรวจสอบกฎตำแหน่งโปรแกรม
1ตรวจสอบ TRANSTYPE= "59" ถึงจะใช้ API จ้างผลิตTransOrderDataToJson.java:648
2ตรวจสอบ TO013= 1 ถึงจะส่ง ERPTransOrderDataToJson.java:612
3มีข้อมูลรายละเอียดSFT_TRANSORDER_LINE_GRID ต้องไม่ว่างTransOrderDataToJson.java:609
4การเชื่อมต่อ ERPSFTConfig.isHasERP() = trueTransOrderDataToJson.java:646

6. รหัสข้อผิดพลาด

รหัสข้อความคำอธิบาย
E001ขาดฟิลด์ที่จำเป็นRequest ขาดฟิลด์ที่จำเป็น
E002ไม่พบใบสั่งผลิตจ้างผลิตMOTYPE-MONO ไม่ถูกต้อง
E003สถานะใบสั่งผลิตจ้างผลิตไม่อนุญาตใบสั่งผลิตถูกปิดหรือยกเลิกแล้ว
E004จำนวนต้องมากกว่าศูนย์qty ≤ 0
E005จำนวนเกินยอดคงเหลือเกินจำนวนที่สามารถรับเข้าได้
E999ข้อผิดพลาดระบบTimeout, ข้อผิดพลาดการเชื่อมต่อ

7. ตัวอย่าง JSON

Request (MES JSON)

{
  "companyID": "COMP01",
  "userId": "EMP001",
  "doAction": "2",
  "docase": "1",
  "head": {
    "transferType": "59",        // → ERP: doc_type_no
    "date": "2026-03-19",        // → ERP: receipt_date
    "moveOutType": "1",
    "moveOutCode": "OS001",      // → ERP: supplier_no
    "moveInType": "2",
    "moveInCode": "FG01",
    "factoryCode": "P001",
    "remark": "รับสินค้าจ้างผลิต",        // → ERP: remark
    "create": "EMP001",         // → ERP: operator_no
    "eMESTransferType": "59",
    "eMESTransferCode": "T20260319001"
  },
  "line": [{
    "moType": "5101",
    "moCode": "20260319001",
    "moveOutOpSeq": "0020",
    "moveOutOpId": "OS-OP",       // → ERP Head: op_no
    "qty": 100,                    // → ERP: qty
    "unit": "PCS",               // → ERP: unit_no
    "batchCode": "LOT20260319001", // → ERP: lot_no
    "prodCode": "FG-A001-001",   // → ERP: item_no
    "acceptanceQty": 98,         // → ERP: receipt_qty (จำนวนที่รับ)
    "inspectionReturnQty": 1,   // → ERP: return_qty (จำนวนคืนตรวจสอบ)
    "scrapQty": 1,               // → ERP: scrap_qty (จำนวนเสีย)
    "valuationQty": 98,          // → ERP: valuation_qty (จำนวนคำนวณราคา)
    "moveInLocation": "A-01-01", // → ERP: storage_spaces_no
    "remark": "คุณภาพดี",         // → ERP: body_remark
    "outSourceType": "5902",
    "outSourceCode": "20260319001"
  }]
}

Response (สำเร็จ)

{
  "code": 200,
  "msg": "สร้างใบรับสินค้าจ้างผลิตสำเร็จ",
  "TB001": "5902",
  "TB002": "20260319001"
}

Response (ล้มเหลว)

{
  "code": 500,
  "msg": "ไม่พบใบสั่งผลิตจ้างผลิต 5101-20260319999"
}