← 返回 API 列表

單據別資料

GET ERP → MES
document.type.get

從 ERP 同步單據別定義資料至 MES 的 ERP_ORDERTYPEDEF 資料表,用於定義各類單據的屬性與編碼規則。

基本資訊

API 名稱
document.type.get
方法名稱
upDocumentTypeCROSS
目標資料表
ERP_ORDERTYPEDEF
JSON 節點
document_data
主鍵
doc_type + doc_type_no(複合)
程式位置
RegularESB.java:2949

請求參數

欄位類型必填說明
doc_typeString必填單別類別(如:MO、WO、SO 等)

回應欄位

ERP 欄位MES 欄位說明
doc_type_nodoc_type_no單據別編號(複合主鍵)
doc_type_namedoc_type_name單據別名稱
statusstatus狀態碼
auto_numberingauto_numbering自動編碼否
op_controlop_control使用工藝/製程管理 (Y/N)

回應範例

{
  "document_data": [
    {
      "doc_type_no": "5101",
      "doc_type_name": "一般工單",
      "status": "Y",
      "auto_numbering": "Y",
      "op_control": "Y"
    },
    {
      "doc_type_no": "5102",
      "doc_type_name": "委外工單",
      "status": "Y",
      "auto_numbering": "Y",
      "op_control": "N"
    }
  ]
}

處理邏輯

複合主鍵設計
使用 doc_type(單別類別,由請求參數傳入)+ doc_type_no(單據別編號)作為複合主鍵。

例如:doc_type='MO' + doc_type_no='5101' = 製令單別「一般工單」
無資料防呆
當 ERP 無符合資料時,回傳結構不含 document_data 節點, 程式會檢查並回傳成功(no data from ERP),避免錯誤。

資料庫更新 SQL

判斷新增或修改

SELECT COUNT(1) FROM ERP_ORDERTYPEDEF WITH (NOLOCK)
WHERE doc_type = N'{doc_type}' AND doc_type_no = N'{doc_type_no}'
-- count > 0 → UPDATE, count = 0 → INSERT

INSERT(新增單據別)

INSERT INTO ERP_ORDERTYPEDEF (
    doc_type, doc_type_no, status,
    doc_type_name, auto_numbering, op_control
) VALUES (
    :doc_type,          -- 單別類別(請求參數)
    :doc_type_no,       -- 單據別編號
    :status,            -- 狀態碼
    :doc_type_name,     -- 單據別名稱
    :auto_numbering,    -- 自動編碼否
    :op_control         -- 使用工藝/製程管理 (預設 'N')
)

UPDATE(修改單據別)

UPDATE ERP_ORDERTYPEDEF SET
    status = :status,
    doc_type_name = :doc_type_name,
    auto_numbering = :auto_numbering,
    op_control = :op_control
WHERE doc_type = :doc_type AND doc_type_no = :doc_type_no
欄位預設值
若 ERP 未回傳以下欄位,自動帶入預設值:
• status = '' (空字串)
• doc_type_name = '' (空字串)
• auto_numbering = '' (空字串)
• op_control = 'N'