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

ชื่อ API
item.get
ชื่อเมธอด
upItemCROSS
ตารางเป้าหมาย
ITEM / material_catalog
โหนด JSON
item_data
Primary Key
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รหัสสินค้า (Primary Key)
material_name← item_nameชื่อสินค้า
norm← item_specข้อมูลจำเพาะ
unit_no← unit_noหน่วย
ENABLED← tran_statusสถานะเปิดใช้งาน (AU→Y, D→N)