← 返回 API 列表

品號基本資料

GET ERP → MES
item.get

從 ERP 同步品號(產品/物料)基本資料至 MES。根據 item_sort 欄位判斷寫入 ITEM 表(組合品)或 material_catalog 表(物料)。

基本資訊

API 名稱
item.get
方法名稱
upItemCROSS
目標資料表
ITEM / material_catalog
JSON 節點
item_data
主鍵
ID (item_no)
程式位置
RegularESB.java:2344

請求參數

欄位類型必填說明
enterprise_noString必填公司編號
site_noString必填據點編號
data_timeDate必填同步起始時間 (yyyy-MM-dd HH:mm:ss)
page_sizeNumeric必填每頁筆數,預設 500
key_conditionString選填分頁續傳鍵

回應欄位

ERP 欄位MES 欄位說明
item_noID品號
item_nameNAME品名
item_specDESCRIPTION規格
unit_noUNIT基本單位
second_unit_noCONVERTUNIT換算單位
process_itemSTDROUTEITEMID標準途程品號
process_codeSTDROUTEID標準途程代碼
item_sort-A=組合品(→ITEM), M=物料(→material_catalog)
tran_statusTRAN_STATUSD=停用, AU=啟用

回應範例

{
  "item_data": [
    {
      "item_no": "ITEM-001",
      "item_name": "測試品項",
      "item_spec": "規格說明",
      "unit_no": "PCS",
      "second_unit_no": "BOX",
      "process_item": "ITEM-001",
      "process_code": "RT001",
      "item_sort": "A",
      "modify_no": "USER001",
      "tran_status": "AU"
    }
  ]
}

處理邏輯

資料分流邏輯
  • item_sort = "A" → 寫入 ITEM 表(組合品/成品)
  • item_sort = "M" → 寫入 material_catalog 表(物料/原料)

資料庫更新 SQL

判斷新增或修改

SELECT COUNT(1) FROM ITEM WHERE ID = N'{item_no}'
-- count > 0 → UPDATE, count = 0 → INSERT

INSERT(新增品號)

INSERT INTO ITEM (
    ID, NAME, DESCRIPTION, UNIT, RELEASEUNIT,
    STDROUTEITEMID, STDROUTEID, ITEM001, ITEM002,
    ITEM004, ITEM005, CONVERTUNIT,
    LASTMAINTAINUSER, LASTMAINTAINDATETIME, FLAG
) VALUES (
    :ID, :NAME, :DESCRIPTION, :UNIT, :UNIT,
    :STDROUTEITEMID, :STDROUTEID, :ITEM001, :ITEM002,
    :ITEM004, :ITEM005, :CONVERTUNIT,
    :userid, N'{當前時間}', 0
)

UPDATE(修改品號)

UPDATE ITEM SET
    NAME = :NAME,
    DESCRIPTION = :DESCRIPTION,
    UNIT = :UNIT,
    RELEASEUNIT = :UNIT,
    STDROUTEITEMID = CASE WHEN STDROUTEITEMID IS NULL OR STDROUTEITEMID = ''
                     THEN :STDROUTEITEMID ELSE STDROUTEITEMID END,
    STDROUTEID = CASE WHEN STDROUTEID IS NULL OR STDROUTEID = ''
                 THEN :STDROUTEID ELSE STDROUTEID END,
    ITEM001 = :ITEM001,
    ITEM002 = :ITEM002,
    ITEM004 = :ITEM004,
    ITEM005 = :ITEM005,
    CONVERTUNIT = :CONVERTUNIT,
    LASTMAINTAINUSER = :userid,
    LASTMAINTAINDATETIME = N'{當前時間}',
    FLAG = (SELECT MAX(FLAG)+1 FROM ITEM WHERE ID = :ID)
WHERE ID = :ID
欄位預設值
新增時若欄位為空,自動帶入以下預設值:
• ITEM001 = '' (空字串)
• ITEM002 = 'N'
• ITEM004 = 1 (換算率分子)
• ITEM005 = 1 (換算率分母)

material_catalog 表(item_sort = "M")

判斷新增或修改

SELECT COUNT(1) FROM material_catalog WITH (NOLOCK)
WHERE material_id = N'{item_no}'
-- count > 0 → UPDATE, count = 0 → INSERT

INSERT(新增物料)

INSERT INTO material_catalog (
    material_id, material_name, norm, unit_no,
    oper_date, oper_id, ENABLED, MODI_DATE
) VALUES (
    :ID,                    -- 品號 (item_no)
    :NAME,                  -- 品名 (item_name)
    :DESCRIPTION,           -- 規格 (item_spec)
    :UNIT,                  -- 單位 (unit_no)
    N'{當前時間}',
    :userid,
    :ENABLED,               -- Y/N (tran_status: AU→Y, D→N)
    N'{當前時間}'
)

UPDATE(修改物料)

UPDATE material_catalog SET
    material_name = :NAME,
    norm = :DESCRIPTION,
    unit_no = :UNIT,
    ENABLED = :ENABLED,
    MODI_DATE = N'{當前時間}'
WHERE material_id = :ID
material_catalog 欄位對應
material_id← item_no品號(主鍵)
material_name← item_name品名
norm← item_spec規格
unit_no← unit_no單位
ENABLED← tran_status啟用狀態 (AU→Y, D→N)