Create Outsourcing Purchase Stock-In Data

outsourcing.purchase.stockin.create
POST JSON Sync

1. Basic Information

ItemDescription
API Name (Chinese)Create Outsourcing Receipt Data
CROSS API Codeoutsourcing.purchase.stockin.create
MES taskNameoutsourcingPurchaseStockinCreate
ESB Path/outsourcingPurchaseStockinCreate
DSMS Referenceapi-2062 / vid-4462
Call DirectionMES → ERP
Trigger ConditionTRANSTYPE = "59"
Request FormatJSON (Content-Type: application/json)
Transport MethodHTTP POST via ESB
Sync/AsyncSynchronous call

2. Business Flow

Outsourcing Checkout Check TRANSTYPE = "59" Assemble JSON Call ERP via ESB Write Back TL011/TL012 Code Location: TransOrderDataToJson.java:648
Code Reference
  • Route Decision: TransOrderDataToJson.java:648
  • JSON Assembly: SendFormSbyJson.transferFormToJson()
  • Field Mapping: SendFormElementbyJson.getTransferFormHead/Body()
  • HTTP Send: XmlToERP_handler.sendToErpByESB()

3. Request Specification

Transport Format: JSON
Content-Type: application/json (HttpClient.java:25)

3.1 Outer Structure

FieldTypeRequiredDescriptionMES Source
companyIDstringYCompany IDCOMPANYID
userIdstringYOperatorCONFIRMER
doActionstringY2=TransferDOACTION
docasestringY1=AddDOCASE
headobjectYHeader data-
linearrayYLine items-

3.2 Header (head)

FieldTypeRequiredDescriptionMES Source
transferTypestringYTransfer type (59=Outsourcing) → ERP: doc_type_noTRANSTYPE
datestringYDocument date YYYY-MM-DD → ERP: receipt_dateTRANSDATE
moveOutTypestringYMove out typeOUTTYPE
moveOutCodestringYMove out code → ERP: supplier_noOUTDEPID
moveInTypestringYMove in typeINTYPE
moveInCodestringYMove in code (warehouse)INDEPID
factoryCodestringYFactory codeFACTORYID
remarkstringNRemark → ERP: remarkCOMMENT
createstringNOperator → ERP: operator_noCONFIRMER
eMESTransferTypestringYMES doc typeTRANSTYPE
eMESTransferCodestringYMES doc numberTRANSNO
source_nostringYSource number (MES type-number)eMESTransferType + "-" + eMESTransferCode

3.3 Line Items (line) - Array

FieldTypeRequiredDescriptionMES Source
moTypestringYWork order type (combine to ERP: wo_no)MOTYPE
moCodestringYWork order number (combine to ERP: wo_no)MONO
moveOutOpSeqstringYMove out op sequenceOUTOPSEQ
moveOutOpIdstringYMove out operation → ERP: op_no (Head)OUTOP
qtydecimalYQuantity → ERP: qtyTRANSQTY
unitstringYUnit → ERP: unit_noUNIT
batchCodestringYBatch number → ERP: lot_noLOTNO
prodCodestringYItem code → ERP: item_noITEMID
acceptanceQtydecimalNAcceptance qty → ERP: receipt_qtyTL002
inspectionReturnQtydecimalNRejection qty → ERP: return_qtyTL003
scrapQtydecimalNScrap qty → ERP: scrap_qtySCRAPQTY
valuationQtydecimalNValuation qty → ERP: valuation_qtyVALUATIONQTY
moveInLocationstringNMove in location → ERP: storage_spaces_noINSTORAGESPACE
remarkstringNRemark → ERP: body_remarkNOTE
outSourceTypestringNOutsourcing order typeOUTORDERTYPE
outSourceCodestringNOutsourcing order numberOUTORDERNO

4. Response Specification

FieldTypeDescription
codeint200=Success, others=Failure
msgstringProcessing result message
TB001stringERP doc type → Write to TL011
TB002stringERP doc number → Write to TL012

5. Validation Rules

#Check ItemRuleCode Location
1TRANSTYPE check= "59" to use outsourcing APITransOrderDataToJson.java:648
2TO013 check= 1 to send to ERPTransOrderDataToJson.java:612
3Line data existsSFT_TRANSORDER_LINE_GRID cannot be emptyTransOrderDataToJson.java:609
4ERP connectionSFTConfig.isHasERP() = trueTransOrderDataToJson.java:646

6. Error Codes

CodeMessageDescription
E001Required field missingRequest missing required fields
E002Outsourcing work order not foundMOTYPE-MONO error
E003Outsourcing work order status not allowedWork order closed or cancelled
E004Quantity must be greater than zeroqty ≤ 0
E005Quantity exceeds remainingExceeds available outsourcing stock-in qty
E999System errorTimeout, connection exception

7. JSON Examples

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": "Outsourcing receipt",        // → 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 (acceptance qty)
    "inspectionReturnQty": 1,   // → ERP: return_qty (rejection qty)
    "scrapQty": 1,               // → ERP: scrap_qty (scrap qty)
    "valuationQty": 98,          // → ERP: valuation_qty (valuation qty)
    "moveInLocation": "A-01-01", // → ERP: storage_spaces_no
    "remark": "Good quality",         // → ERP: body_remark
    "outSourceType": "5902",
    "outSourceCode": "20260319001"
  }]
}

Response (Success)

{
  "code": 200,
  "msg": "Outsourcing receipt created successfully",
  "TB001": "5902",
  "TB002": "20260319001"
}

Response (Failure)

{
  "code": 500,
  "msg": "Outsourcing work order not found 5101-20260319999"
}