← Back to API List

Item Master Data

GET ERP → MES
item.get

Synchronizes item (product/material) master data from ERP to MES. Based on the item_sort field, data is written to ITEM table (assembly) or material_catalog table (material).

Basic Information

API Name
item.get
Method Name
upItemCROSS
Target Table
ITEM / material_catalog
JSON Node
item_data
Primary Key
ID (item_no)
Code Location
RegularESB.java:2344

Request Parameters

FieldTypeRequiredDescription
enterprise_noStringRequiredCompany number
site_noStringRequiredSite number
data_timeDateRequiredSync start time (yyyy-MM-dd HH:mm:ss)
page_sizeNumericRequiredRecords per page, default 500
key_conditionStringOptionalPagination continuation key

Response Fields

ERP FieldMES FieldDescription
item_noIDItem number
item_nameNAMEItem name
item_specDESCRIPTIONSpecification
unit_noUNITBase unit
second_unit_noCONVERTUNITConversion unit
process_itemSTDROUTEITEMIDStandard routing item
process_codeSTDROUTEIDStandard routing code
item_sort-A=Assembly(→ITEM), M=Material(→material_catalog)
tran_statusTRAN_STATUSD=Disabled, AU=Active

Response Example

{
  "item_data": [
    {
      "item_no": "ITEM-001",
      "item_name": "Test Item",
      "item_spec": "Specification Description",
      "unit_no": "PCS",
      "second_unit_no": "BOX",
      "process_item": "ITEM-001",
      "process_code": "RT001",
      "item_sort": "A",
      "modify_no": "USER001",
      "tran_status": "AU"
    }
  ]
}

Processing Logic

Data Routing Logic
  • item_sort = "A" → Write to ITEM table (Assembly/Finished goods)
  • item_sort = "M" → Write to material_catalog table (Material/Raw material)

Database Update SQL

Check Insert or Update

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

INSERT (Add Item)

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'{current_time}', 0
)

UPDATE (Modify Item)

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'{current_time}',
    FLAG = (SELECT MAX(FLAG)+1 FROM ITEM WHERE ID = :ID)
WHERE ID = :ID
Field Default Values
When inserting, if fields are empty, the following default values are applied:
• ITEM001 = '' (empty string)
• ITEM002 = 'N'
• ITEM004 = 1 (conversion rate numerator)
• ITEM005 = 1 (conversion rate denominator)

material_catalog Table (item_sort = "M")

Check Insert or Update

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

INSERT (Add Material)

INSERT INTO material_catalog (
    material_id, material_name, norm, unit_no,
    oper_date, oper_id, ENABLED, MODI_DATE
) VALUES (
    :ID,                    -- Item number (item_no)
    :NAME,                  -- Item name (item_name)
    :DESCRIPTION,           -- Specification (item_spec)
    :UNIT,                  -- Unit (unit_no)
    N'{current_time}',
    :userid,
    :ENABLED,               -- Y/N (tran_status: AU→Y, D→N)
    N'{current_time}'
)

UPDATE (Modify Material)

UPDATE material_catalog SET
    material_name = :NAME,
    norm = :DESCRIPTION,
    unit_no = :UNIT,
    ENABLED = :ENABLED,
    MODI_DATE = N'{current_time}'
WHERE material_id = :ID
material_catalog Field Mapping
material_id← item_noItem number (Primary Key)
material_name← item_nameItem name
norm← item_specSpecification
unit_no← unit_noUnit
ENABLED← tran_statusEnabled status (AU→Y, D→N)