Response Example
{
"Conversionunit": [
{
"item_no": "ITEM-001",
"conversion_unit": "BOX",
"molecular": "1",
"denominator": "500",
"remark": "500 pieces per box",
"tran_status": "AU"
}
]
}
Processing Logic
Composite Primary Key Design
Uses ITEM_NO (item number) +
CONVERSION_UNIT (conversion unit) as composite primary key.
The same item can have multiple conversion units, for example:
• ITEM-001 + BOX (box)
• ITEM-001 + CTN (carton)
• ITEM-001 + PAL (pallet)
Denominator Protection
Conversion rate denominator (DENOMINATOR) cannot be 0, program will automatically set to 1:
IF denominator = 0 THEN denominator = 1
EAI_PARAMETER Record
After first successful synchronization, system will create a record in EAI_PARAMETER table,
subsequent executions will automatically use LAST_SUCCESS_TIME as data_time parameter.
Database Update SQL
Check Insert or Update
SELECT COUNT(1) FROM ITEM_CONVERSION_UNIT
WHERE ITEM_NO = N'{item_no}' AND CONVERSION_UNIT = N'{conversion_unit}'
-- count > 0 → UPDATE, count = 0 → INSERT
INSERT (Add Conversion Unit)
INSERT INTO ITEM_CONVERSION_UNIT (
ITEM_NO, CONVERSION_UNIT,
CONVERSION_RATE_MOLECULAR, CONVERSION_RATE_DENOMINATOR,
REMARK, TRAN_STATUS, SYNC_TIME, CREATE_TIME, UPDATE_TIME
) VALUES (
:ITEM_NO,
:CONVERSION_UNIT,
:molecular,
:denominator,
:remark,
:tran_status,
N'{current_time}',
N'{current_time}',
N'{current_time}'
)
UPDATE (Modify Conversion Unit)
UPDATE ITEM_CONVERSION_UNIT SET
CONVERSION_RATE_MOLECULAR = :molecular,
CONVERSION_RATE_DENOMINATOR = :denominator,
REMARK = :remark,
TRAN_STATUS = :tran_status,
UPDATE_TIME = N'{current_time}'
WHERE ITEM_NO = :ITEM_NO AND CONVERSION_UNIT = :CONVERSION_UNIT
Field Default Values
If ERP does not return the following fields, default values are applied:
• CONVERSION_RATE_MOLECULAR = 1
• CONVERSION_RATE_DENOMINATOR = 1 (cannot be 0)
• REMARK = '' (empty string)
• TRAN_STATUS = '' (empty string)