Statement of needs
Lenovo VMI system is responsible for connecting with domestic and foreign 3PLs. During the docking process, there are often some full-data interfaces. The data volume is large and packets are easily lost when the network is not good. Therefore, this solution is to send a large amount of data in pages and need to verify the integrity.
1.1 History
Version | Date | Content | Committer |
---|---|---|---|
v1.0 | 2021-8-23 | init | wangdong18 |
v1.1 | 2021-09-28 | supplement process and key fields | lingcq1 |
V1.2 | 2021-10-19 | 1. soi_gr, loi_gr remove asn field and add an , anLine 2. pull _info add new field destStorageLoc | lingcq1 |
V1.3 | 2021-11-18 | 1. pull_info, mo_pull_list add route 2. pull_info add groupId , totalQty 3. confirm pull add destStorageLocation 4. build new apis.Delivery Summary ,Delivery details ,Temporary store for delivery | lingcq1 |
v1.4 | 2021-12-09 | 1. add comments for body and response code 2. support hgc 3. all api add source_system , target_system , system_time | lingcq1 |
v1.4 | 2021-12-13 | Delivery Details add Delivery Note,truck license,total gross weight,total quantity | lingcq1 |
v1.5 | 2021-12-17 | modify purchase_order and item_supplier_all calculation logic,from full quantity to plant quantity | lingcq1 |
v1.6 | 2022-01-05 | Plan modification | lingcq1 |
v1.7 | 2022-01-13 | 1. add plan description 2. rename system name VMI/HIC/LESHINE 3. update confirm data request sample 4. add full request sample | lingcq1 |
v1.8 | 2022-01-17 | 1. modify confirm api, add fail status | lingcq1 |
v1.9 | 2022-01-21 | supplement api | lingcq1 |
v1.10 | 2022-01-22 | supplement VMI api, WSO2 key& token | lingcq1 |
v1.11 | 2022-02-15 | Outbound warehouse and No. 3 GR-HIC shipment summary, No. 3 temporary storage shipment summary adds pallet information, new interfaces are to be developed, and the structure will be added later. | lingcq1 |
v1.12 | 2022-02-16 | Add logic to the two interfaces of external warehouse and No. 3 GR-HIC shipment summary, and No. 3 temporary storage shipment summary (to be determined): 1. one push_id data has only one time signature | lingcq1 |
v1.13 | 2022-02-17 | No. 3 temporary storage interface to realtime | lingcq1 |
v1.14 | 2022-02-21 | No. 3 temporary storage interface add deliveryNo and deliveryLineNo | lingcq1 |
v1.15 | 2022--02-22 | No. 3 temporary storage interface url;/specialReceive/HIC/whse_tmp_trd_sum_delivery | lingcq1 |
v1.16 | 2022--02-23 | Confirm that the request fails, add failList, failReason, data return result.message; | gaomx5/lingcq1 |
v1.17 | 2022-02-28 | Confirm that the temporary storage interface No. 3 is a real-time interface: url;/specialReceive/HIC/whse_tmp_trd_sum_delivery | lingcq1 |
v1.18 | 2022-03-04 | Added No. 3 GR and external warehouse receipt summary interface | lingcq1 |
v1.19 | 2022-03-08 | Add supplier code, order number and other information to customs declaration details | lingcq1 |
v1.20 | 2022-03-23 | No. 3 temporary storage, No. 3 GR and external warehouse receipt summary interface return value adjustment | lingcq1 |
v1.21 | 2022-04-07 | purchase_order to purchase_order | gaomx5 |
v1.22 | 2022-04-13 | PULL_INFO add saNumber saLineId | gaomx5 |
v1.23 | 2022-04-20 | PULL_MO_INFO add indicator remark | gaomx5 |
v1.24 | 2022-04-22 | 1. PULL_MO_INFO add changeType。 2. No. 3 temporary storage api quantity = mo+item, palletQty indicates the total number of deliveryNo in this batch | lingcq1 |
v1.25 | 2022-05-11 | add WSO2 uat(pre-p)environment | gaomx5 |
v1.26 | 2022-05-16 | pull_info api add productionOrdId 。 if mo bom change, leave this field null. In addition, for mo bom change, the changeType value in pull_mo_info mentioned in v1.24, if mo creates a manual pull of mo bom change, the corresponding entire mo list must be re-sent to 3pl, and the field value It is UPDATE, not mo bom change value ADD. | lingcq1 |
v1.27 | 2022-05-16 | add WSO2 prd environment config | lingcq1 |
v1.28 | 2022-06-06 | Organize the document format and separate the scanning-related interfaces into another document | lingcq1 |
v1.29 | 2022-06-30 | 1. extend workshopCode: 1.4 add workshopCode description ;1.8 1.9section add workshop_code on same level with push id; 2. 1.8 add push_id requirements:Globally unique batch data ID generated by the client,LESHINE: LESHINE*; HIC BOX: timestamp; HIC SMT; HIC-SMT** 3.1.10 PULL_INFO, PULL_MO_INFO add content related to scheduling and stack number | lingcq1 |
v1.30 | 2022-07-22 | support LSSC SMT: 1.10 pull_mo_info add prodDesc and moQty 2. 1.10 customs add dropshipFlag ,Separate loading and separate customs declaration mark, Y/N | lingcq1 |
v1.31 | 2022-07-25 | 1.9 simplify response | lingcq1 |
v1.32 | 2022-09-29 | add runFlag to pull line | lingcq1 |
v1.33 | 2023-01-04 | add runFlag to mo list | lingcq1 |
v1.34 | 2023-04-11 | add sh2 wso2 environment | lingcq1 |
v1.35 | 2023-06-14 | add urgent pull api, 3PL can manual pull through this api, LX VMI will use src-900-dest to move stock | lingcq1 |
v1.36 | 2023-07-28 | modify urgent pull to async confirmation | lingcq1 |
v1.37 | 2023-12-13 | Supplement and modify the WSO2 environment and the corresponding S4 environment | gaomx5 |
1.2 Access process
sequenceDiagram
Partner->>WSO2: request Token
WSO2-->>Partner: return Token
Partner->>WSO2: request API
WSO2->>VMI: request API
VMI-->>WSO2: return response
WSO2-->>Partner: return reponse
1.3 Plan description


According to the above solution, all three parties (Lenovo VMI, Haichen, and LESHINE) need to provide an interface for sending data and an interface for confirming data. The sending data interface is used to receive data sent by the other party. The interface for confirming data is the other party's confirmation of the sent data. Subsequent processing can be carried out only after the confirmation is successful. Lenovo vmi resends data and will enable a new push_id to push data. At the same time, Haichen and Liansheng are required to resend data and use a new unique push_id. This solution does not include temporary storage and delivery of No. 3, GR receipt of No. 3, external warehouse receipt interface, and pda scanning interface. Temporary storage and delivery on No. 3, GR receipt on No. 3, external warehouse receipt interface, pda scanning interface, etc. all require real-time performance, so they are made into real-time interfaces and placed in separate documents.
1.4 Public parameter description
Parameter position | Parameter name | Description | Example |
---|---|---|---|
path | biz_key | biz_key issued to the client | item_supplier_all |
header | sign | The result of signing the body through the secret_key issued to the user | disabled |
body | source_system | Y | string |
body | target_system | Y | string |
body | system_time | Y | string,request time 2021-12-09 11:00:00 |
body | workshop_code | Business identification, Nanfang Factory BOX: LSSC; Nanfang Factory SMT: LSSC-SMT, if not filled in, the default is LSSC | LSSC-SMT |
1.5 Request limits
- The total number of JSON contents of RequestBody shall not exceed 1,000, that is, the amount of data in a single page shall not exceed 1,000. 1000 bars are not fixed and can be adjusted according to the pressure test before going online. If the total number of items for a push_id is greater than 1,000, paging is required.
1.6 Public return instructions
Parameter position | Parameter Name | Required | Type | Format | Description | Exmple |
---|---|---|---|---|---|---|
response | code | Y | string | --- | status code | "0" success, others failed |
response | msg | N | string | --- | message | detail message on error |
1.7 Return code
Postistion | Value | Description |
---|---|---|
httpcode | 200 | success request |
httpcode | 401 | Token error |
body.code | "0" | success |
body.code | "-1" | system error |
1.8 Push data
Description: For data with a large amount of concurrency at the same time, it needs to be compressed into the same push_id for sending, otherwise it will affect the subsequent workflow. If the Sender has finished sending a push_id data, it can wait for the Receiver to confirm.
Method:POST
ContentType: application/json
Request description
Parameter position | Parameter name | Required | Type | Format | Description | Example |
---|---|---|---|---|---|---|
body | push_id | Y | string | --- | Globally unique batch data ID generated by the client, LESHINE: LESHINE*; HIC BOX: timestamp; HIC SMT; HIC-SMT* | --- |
body | workshop_code | N | string | business identity, South plant BOX: LSSC; South plant SMT: LSSC-SMT, default: LSSC | ||
body | total_size | Y | number | --- | total size | --- |
body | current_page | Y | number | current page | ||
body | current_page_size | Y | number | current page size | ||
body | data | Y | array | --- | --- |
Request sample
first request
{
"push_id": "11111",
"workshop_code":"LSSC-SMT",
"source_system": "VMI",
"target_system": "HIC/LESHINE",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"pull1": "EMC021122001"
}
]
}
second request
{
"push_id": "11111",
"workshop_code":"LSSC-SMT",
"source_system": "VMI",
"target_system": "HIC/LESHINE",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 2,
"current_page_size": 1,
"data": [
{
"pull2": "EMC021122001"
}
]
}
Response sample
{
"code":"0",
"msg":"success"
}
{
"code":"-1",
"msg":"exception for what"
}
1.9 Confirm data
Description: When the Receiver collects the total amount of data for a push_id, it needs to send a confirm signal to the Sender. Only when the confirm signal itself reaches both systems will the push be considered completed.
Request description
Parameter position | Parameter name | Required | Type | Format | Description | Example |
---|---|---|---|---|---|---|
body | push_id | Y | string | --- | Globally unique batch data ID generated by the client | --- |
body | workshop_code | N | string | business identity, South plant BOX: LSSC; South plant SMT: LSSC-SMT, default: LSSC | ||
body | result.status | Y | string | success/fail | ||
body | result.message | N | string | fail message | ||
body | result.failList | N | array | fail data collection | ||
body | result.failList.failReason | N | string | fail data item | ||
body | result.failList.data | N | object | fail data |
{
"push_id": "11111",
"workshop_code":"LSSC-SMT",
"source_system": "VMI",
"target_system": "HIC/LESHINE",
"system_time":"2020-11-20 14:00:00",
"result":{
"status": "success",
"message":"success"
}
}
{
"push_id": "wwww",
"workshop_code":"LSSC-SMT",
"source_system": "VMI",
"target_system": "HIC/LESHINE",
"system_time":"2020-11-20 14:00:00",
"result":{
"status": "fail",
"message":"fail reason",
"failList":[{"failReason":"fail reason", "data":{//The entire data can be returned, or only the primary key + factory can be returned}}]
}
}
Response data description
Parameter position | Parameter name | Not null | Type | Format | Description | Example |
---|---|---|---|---|---|---|
body | result.status | Y | string | The final state of the data after confirmation. success/timeout/in_process/fail | success | |
body | result.message | N | string | Message |
接口返回示例
{
"code":0,
"msg": "success",
"result":{
"status":"success",
"message":"ok"
}
}
Failed to confirm 1, code! = "0", the system is abnormal and you need to continue confirming. It is recommended to confirm again regularly (repeat confirmation every minute, if it exceeds 20 minutes, you don’t need to confirm)
{
"code":-1,
"msg": "exception/in_process"
}
Failed confirmation 2 code = '0' && status = 'fail'. In this case, the data is invalid and there is no need to continue confirming. The reason for status= fail may be the failure of the other party's confirmation, or it may be a timeout.
{
"code":0,
"msg": "success",
"result":{
"status":"fail",
"message":"fail/timeout"
}
}
Data duplication prevention mechanism and frequency
Data | Transfer mode | Frequency |
---|---|---|
SOI_GR | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | |
LOI_GR | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | |
MO_PREKITTING_FINISH | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | |
CONFIRM_PULL | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | |
DISPATCH_PULL | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | |
BALANCE_PULL | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | |
INVENTORY_SNAPSHOT | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | HIC/LESHINE: daily, Take a snapshot at 2am, by plant |
PO_SNAPSHOT | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | HIC/LESHINE: daily,Take a snapshot at 2am,full amount |
CUSTOMS_DELIVERY_DETAIL | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | |
PURCHASE_ORDER | In full, after fetching a batch of data, identify the factory, delete the corresponding factory data in the table, and then insert it. | 2h |
ITEM_SUPPLIER_ALL | In full, after fetching a batch of data, identify the factory, delete the corresponding factory data in the table, and then insert it. | |
ITEM_SUPPLIER | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | |
PULL_INFO | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. | |
PULL_MO_LIST | Incremental, multiple identical Primary Key data are considered duplicates, and only one is taken. |
1.10 Request data Description
SOI_GR data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
tplReceiptId | string | VARCHAR2(20) | 3PL receipt id, | Y | |
supplierId | string | VARCHAR2(10) | Supplier id | ||
shipToId | string | VARCHAR2(4) | Logical plant | ||
receiptDate | string | Date | Receipt date, yyyy-MM-dd HH:mm:ss | ||
tplReceiptLineId | string | VARCHAR2(20) | 3PL receipt line id | Y | |
itemId | string | VARCHAR2(18) | Item id | ||
destBin | string | VARCHAR2(40) | Destination bin | ||
destType | string | VARCHAR2(40) | Destination type | ||
destStorageLocation | string | VARCHAR2(40) | Destination storage location | ||
quantity | number | NUMBER(13,3) | Quantity | ||
holdType | string | CHAR(1) | Q or S | ||
holdQuantity | number | NUMBER(13,3) | Hold quantity | ||
houseAirWayBill | string | VARCHAR2(32) | House Airway Bill | ||
purchaseOrderId | string | VARCHAR2(10) | Empty for now | ||
purchaseOrderLineId | string | VARCHAR2(10) | Empty for now | ||
dnNumber | string | VARCHAR2(26) | Delivery Notes on Packing info | ||
an | string | VARCHAR2(10) | arrival notice | ||
anLine | string | VARCHAR2(5) | arrival notice line | ||
dataType | string | VARCHAR2(20) | SOIGR |
{
"push_id": "11111",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"workshop_code": "LSSC-SMT",
"data": [
{
"tplReceiptId": "188011",
"supplierId": "1000068649",
"shipToId": "L220",
"receiptDate": "2020-11-20 14:00:00",
"tplReceiptLineId": "S37250",
"itemId": "000000C52509",
"destBin": "VENDOR",
"destType": "C21",
"destStorageLocation": "MRNM",
"quantity": 1440,
"holdType": "Q",
"holdQuantity":0,
"houseAirWaybill":"APLU062607978",
"purchaseOrderId": "",
"purchaseOrderLineId":"",
"dnNumber":"5500150390",
"an": "1234567896",
"anLine": "1234567896",
"dataType": "SOIGR"
}
]
}
LOI_GR data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
tplReceiptId | string | VARCHAR2(20) | 3PL receipt id | Y | |
supplierId | string | VARCHAR2(10) | Supplier id | ||
shipToId | string | VARCHAR2(4) | Logical plant | ||
receiptDate | string | DATE | Receipt date,yyyy-MM-dd HH:mm:ss | ||
invoiceNumber | string | VARCHAR2(16) | Invoice number | ||
tplReceiptLineId | string | VARCHAR2(20) | 3PL receipt line id | Y | |
itemId | string | VARCHAR2(18) | Item id | ||
destBin | string | VARCHAR2(40) | Destination bin | ||
destType | string | VARCHAR2(40) | Destination type | ||
destStorageLocation | string | VARCHAR2(40) | Destination storage location | ||
quantity | number | NUMBER(13,3) | Quantity | ||
holdType | string | CHAR(1) | Q or S | ||
holdQuantity | number | NUMBER(13,3) | Hold quantity | ||
houseAirWayBill | string | VARCHAR2(32) | House Airway Bill | ||
purchaseOrderId | string | VARCHAR2(10) | Purchase Order (or Sales Agreement) Number | ||
purchaseOrderLineId | string | VARCHAR2(5) | Purchase Order Line (or Sales Agreement Line) Number | ||
dnNumber | string | VARCHAR2(26) | Delivery Notes on Packing info. | ||
an | string | VARCHAR2(10) | arrival notice | ||
anLine | string | VARCHAR2(5) | arrival notice line | ||
dataType | string | VARCHAR2(20) | LOIGR |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"tplReceiptId": "188011",
"supplierId": "1000068649",
"shipToId": "X410",
"receiptDate": "2020-11-20 14:00:00",
"invoiceNumber": "9953090187",
"tplReceiptLineId": "S37250",
"itemId": "000000C52509",
"destBin": "VENDOR",
"destType": "C21",
"destStorageLocation": "MRNM",
"quantity": 1440,
"holdType": "Q",
"holdQuantity":0,
"houseAirWaybill":"APLU062607978",
"purchaseOrderId": "",
"purchaseOrderLineId":"",
"dnNumber":"5500150390",
"an": "1234567896",
"anLine": "1234567896",
"dataType": "LOIGR"
}
]
}
MO_PREKITTING_FINISH data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
productionOrdId | string | VARCHAR2(80) | mo id | Y | |
shipToId | string | VARCHAR2(4) | plant | ||
sourceType | string | VARCHAR2(40) | pre source type | ||
sourceStorageLocation | string | VARCHAR2(40) | pre source sloc | ||
sourceBin | string | VARCHAR2(40) | pre source bin | ||
destType | string | VARCHAR2(20) | dest type | ||
destStorageLocation | string | VARCHAR2(40) | dest location | ||
destBin | string | VARCHAR2(40) | dest bin | ||
pullQuantity | number | NUMBER | pull qty | ||
itemId | string | VARCHAR2(18) | material name | Y |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"productionOrdId": "EMC021122001",
"shipToId": "L210",
"sourceType": "L21",
"sourceStorageLocation": "MRNM",
"sourceBin": "FIS",
"destType": "W02",
"destStorageLocation": "MW02",
"destBin": "KIT",
"pullQuantity": 2,
"itemId": "SP10R39102"
}
]
}
CONFIRM_PULL data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
pullId | String | VARCHAR2(40) | Pull header id | Y | |
shipToId | String | VARCHAR2(40) | Logic plant | ||
destStorageLocation | String | VARCHAR2(40) | destStorageLocation | ||
destBin | String | VARCHAR2(40) | Destination bin | ||
destType | String | VARCHAR2(40) | Destination type | ||
pullType | String | VARCHAR2(40) | Pull type | ||
pullLineId | String | VARCHAR2(40) | Pull line id | Y | |
itemId | String | VARCHAR2(18) | Item id | ||
supplierId | String | VARCHAR2(40) | Supplier id | ||
sourceStorageLocation | String | VARCHAR2(40) | Source storage location | ||
sourceBin | String | VARCHAR2(40) | Source bin | ||
sourceType | String | VARCHAR2(40) | Source type | ||
quantity | number | NUMBER | Confirm quantity | ||
dataType | String | VARCHAR2(40) | PullConfirm |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"workshopCode": "LSSC-SMT",
"data": [
{
"pullId": "1489865",
"shipToId": "L210",
"destStorageLocation": "MMMN",
"destBin": "W09",
"destType": "W06",
"pullType": "NORMAL",
"pullLineId": "18390314",
"itemId": "000000A36941",
"supplierId": "1000037984",
"sourceStorageLocation": "MRNM",
"sourceBin": "VENDOR",
"sourceType": "C51",
"quantity": 21,
"dataType": "PullConfirm"
}
]
}
DISPATCH_PULL data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
pullId | String | VARCHAR2(10) | Pull header id | Y | |
shipToId | String | VARCHAR2(4) | Logic plant | ||
shippedDate | String | DATE | Shipped date | ||
pullLineId | String | VARCHAR2(10) | Pull line id | Y | |
itemId | String | VARCHAR2(18) | Item id | ||
supplierId | String | VARCHAR2(40) | Supplier id | ||
sourceStorageLocation | String | VARCHAR2(40) | Source storage location | ||
sourceBin | String | VARCHAR2(40) | Source bin | ||
sourceType | String | VARCHAR2(40) | Source type | ||
quantity | number | NUMBER | Dispatch quantity | ||
dataType | String | VARCHAR2(40) | Dispatch |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"pullId": "P102237",
"shipToId": "L210",
"shippedDate": "2021-09-11 11:11:11",
"pullLineId": "PL136303",
"itemId": "000000A36941",
"supplierId": "1000037984",
"sourceStorageLocation": "MRNM",
"sourceBin": "VENDOR",
"sourceType": "C51",
"quantity": 21,
"dataType": "Dispatch"
}
]
}
BALANCE_PULL data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
pullId | String | VARCHAR2(10) | Pull header id | Y | |
shipToId | String | VARCHAR2(4) | Logic plant | ||
shippedDate | DATE | DATE | Ship date | ||
destType | String | VARCHAR2(40) | Destination type | ||
destBin | String | VARCHAR2(40) | Destination bin | ||
pullLineId | String | VARCHAR2(40) | Pull line id | Y | |
itemId | String | VARCHAR2(40) | Item id | ||
supplierId | String | VARCHAR2(40) | Supplier id | ||
destStorageLocation | String | VARCHAR2(40) | |||
sourceStorageLocation | String | VARCHAR2(40) | Source storage loc | ||
sourceBin | String | VARCHAR2(40) | Source bin | ||
sourceType | String | VARCHAR2(40) | Source type | ||
quantity | number | NUMBER | quantity | ||
dataType | String | VARCHAR2(40) | Balance |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"pullId": "H102237",
"shipToId": "L270",
"shippedDate": "2021-09-11 11:11:11",
"destType": "L51",
"destBin": "FIS",
"pullLineId": "PL136303",
"itemId": "000000A36941",
"supplierId": "1000037984",
"destStorageLocation":"sss",
"sourceStorageLocation": "MRNM",
"sourceBin": "VENDOR",
"sourceType": "C21",
"quantity": 21,
"dataType": "Balance"
}
]
}
INVENTORY_SNAPSHOT data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
supplierId | String | VARCHAR2(40) | Supplier id | Y | |
shipToId | String | VARCHAR2(4) | Logic plant | Y | |
itemId | String | VARCHAR2(18) | Item id | Y | |
status | String | VARCHAR2(10) | Status | Y | |
storageLocation | String | VARCHAR2(40) | Storage location | Y | |
storageBin | String | VARCHAR2(40) | Storage bin | Y | |
storageType | String | VARCHAR2(40) | Storage type | Y | |
quantity | number | NUMBER | quantity | ||
dataType | String | VARCHAR2(40) | Inventory |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"supplierId": "1000037984",
"shipToId": "L270",
"itemId": "000000A36941",
"status": "A",
"storageLocation": "MRNM",
"storageBin": "VENDOR",
"storageType": "C25",
"quantity": 1,
"dataType": "Inventory"
}
]
}
PO_SNAPSHOT data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
purchaseOrderId | String | VARCHAR2(10) | Po id | Y | |
supplierId | String | VARCHAR2(40) | Supplier id | ||
shipToId | String | VARCHAR2(4) | Logic plant | ||
createDate | Date | DATE | Create date | ||
startDate | Date | DATE | Start date | ||
endDate | Date | DATE | End date | ||
purchaseOrderLineId | String | VARCHAR2(5) | Po line id | Y | |
itemId | String | VARCHAR2(18) | Item id | ||
quantity | number | NUMBER | quantity | ||
openQuantity | number | NUMBER | Open quantity | ||
dataType | String | VARCHAR2(40) | POK |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"purchaseOrderId": "4500375969",
"supplierId": "1000037984",
"shipToId": "L210",
"createDate":"2021-09-01 11:11:11",
"startDate":"2021-09-01 11:11:11",
"endDate":"2021-09-01 11:11:11",
"purchaseOrderLineId": "L10",
"itemId": "000000A36941",
"quantity": 1,
"openQuantity": 1,
"dataType": "POK"
}
]
}
CUSTOMS_DELIVERY_DETAIL
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
deliveryNoteNo | String | VARCHAR2(18) | Y | ||
deliveryLineNo | String | ||||
deliveryPlateNumber | number | VARCHAR2(10) | truck license | ||
totalGrossWeight | String | NUMBER(18,3) | |||
totalBoxNumber | number | NUMBER(18,3) | |||
itemId | String | VARCHAR2(18) | item id | ||
quantity | number | number | |||
pullId | String | VARCHAR2(10) | pullheaderid | Y | |
pullLineId | String | VARCHAR2(10) | pulllineid | Y | |
inventoryType | String | VARCHAR2(10) | inventory type SOI or LOI | ||
sourcePlant | String | VARCHAR2(4) | |||
sourceLocation | String | VARCHAR2(4) | |||
destPlant | String | VARCHAR2(4) | |||
destLocation | String | VARCHAR2(4) | |||
coo | String | VARCHAR2(20) | |||
brand | String | VARCHAR2(20) | |||
type | String | VARCHAR2(20) | |||
dataType | String | VARCHAR2(40) | |||
supplierCode | String | VARCHAR2(40) | |||
orderNo | String | VARCHAR2(12) | |||
orderItem | String | VARCHAR2(32) | |||
fullBoxIndicator | String | VARCHAR2(32) | Y or N | ||
price | number | NUMBER(18,5) | |||
curr | String | VARCHAR2(10) | currency | ||
dropshipFlag | string | VARCHAR2(2) | Y/N |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"deliveryNoteNo":"20212222",
"deliveryPlateNumber":"20212222",
"totalGrossWeight":1111.3721,
"totalBoxNumber":666,
"itemId": "0000041U7042",
"quantity": 1,
"pullId": "P104329",
"pullLineId": "PL123316",
"inventoryType":"SOI",
"sourcePlant": "C24",
"sourceLocation": "MRNM",
"destPlant": "C25",
"destLocation": "MRNM",
"coo": "xx",
"brand": "xx",
"type":"candyman",
"dataType": "CUSTOMS_DELIVERY",
"route":"MRNM_FFFF",
"supplierCode":"00000123",
"orderNo":"moId",
"orderItem":"molineid",
"fullBoxIndicator":"Y",
"price": 11,
"curr":"502",
"dropshipFlag":"Y"
}
]
}
PURCHASE_ORDER data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
purchaseOrderId | string | VARCHAR2(10) | PO Id | Y | |
supplierId | string | VARCHAR2(10) | Supplier Id | ||
shipToId | string | VARCHAR2(4) | Logical plant | ||
purchaseOrderLineId | string | VARCHAR2(5) | PO line id | Y | |
poType | string | VARCHAR2(40) | |||
itemId | string | VARCHAR2(18) | Material Id | ||
quantity | number | NUMBER(13,3) | Quantity | ||
openQuantity | number | NUMBER(13,3) | Open quantity | ||
storageLocation | string | VARCHAR2(40) | Storage location | ||
returnItem | string | VARCHAR2(40) | Remark return PO | ||
dataType | string | VARCHAR2(20) | PO | ||
createDate | string | DATE | CreateDate | ||
startDate | string | DATE | StartDate | ||
endDate | string | DATE | EndDate |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "VMI",
"target_system": "HIC/LESHINE",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"purchaseOrderId": "509405940594",
"supplierId": "1000019769",
"shipToId": "X410",
"purchaseOrderLineId": "00202",
"poType": "MB",
"itemId": "0000041U7042",
"quantity": 9964,
"openQuantity": 22,
"storageLocation": "MRMN",
"returnItem": "eeeeeee",
"dataType": "PO",
"createDate": "2021-01-01 11:11:11",
"startDate": "2021-01-01 11:11:11",
"endDate": "2021-01-01 11:11:11"
}
]
}
ITEM_SUPPLIER_ALL/ITEM_SUPPLIER data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
supplierId | string | VARCHAR2(40) | Supplier Id | Y | |
supplierDesc | string | VARCHAR2(200) | Supplier Description | ||
itemId | string | VARCHAR2(18) | Material Id | Y | |
itemDesc | string | VARCHAR2(200) | Material Description | ||
shipToId | string | VARCHAR2(4) | Logical plant | Y | |
itemType | string | VARCHAR2(40) | Material type, defined by ECC sscode | ||
status | string | VARCHAR2(40) | Operation type * | ||
inspectionType | string | VARCHAR2(40) | Whether the item needs inspection | ||
dataType | string | VARCHAR2(20) | ItemSupplier |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "VMI",
"target_system": "HIC/LESHINE",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"supplierId": "1000019769",
"supplierDesc": "Asia Vital Components Company Ltd",
"itemId": "0000041U7042",
"itemDesc": "BRACKETQ4000bracket325BT ",
"shipToId": "X410",
"itemType": "PU",
"status": "UPDATE",
"inspectionType": "Y",
"dataType": "ItemSupplier"
}
]
}
PULL_INFO data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
shipToId | String | VARCHAR2(4) | Logic plant | ||
productionLine | String | VARCHAR2(40) | Production line | ||
deliveryDate | String | DATE | Delivery date (DS upload) XXX | ||
destStorageLoc | String | VARCHAR2(40) | Destination storage location | ||
destType | String | VARCHAR2(40) | Destination type | ||
destBin | String | VARCHAR2(40) | Destination bin | ||
pullType | String | VARCHAR2(40) | Pull type * | ||
moType | String | VARCHAR2(40) | Demand type * | ||
isSOI | String | VARCHAR2(10) | CASE WHEN INVENTORY_TYPE='SOI' THEN 'Y' ELSE 'N' END | ||
creationDate | String | DATE | Creation date | ||
pullId | String | VARCHAR2(10) | Pull header ID | Y | |
pullLineId | String | VARCHAR2(10) | Pull line ID | Y | |
tplReceiptId | String | VARCHAR2(10) | 3PL receipt ID | ||
tplReceiptLineId | String | VARCHAR2(10) | 3PL receipt line ID | ||
sourceType | String | VARCHAR2(40) | Source type | ||
sourceStorageLocation | String | VARCHAR2(40) | Source storage location | ||
sourceBin | String | VARCHAR2(40) | Source bin | ||
specialRemark | String | VARCHAR2(40) | Nullable | ||
supplierId | String | VARCHAR2(40) | Supplier ID | ||
supplierDesc | String | VARCHAR2(40) | Nullable in case of LOI | ||
quantity | number | NUMBER | Request quantity | ||
fullBoxQuantity | number | NUMBER | Full box quantity | ||
itemId | String | VARCHAR2(18) | Material ID | ||
itemDesc | String | VARCHAR2(200) | Material description | ||
lotNumber | String | NUMBER | only for manual | ||
boxId | String | VARCHAR2(40) | only for manual | ||
brand | String | VARCHAR2(40) | only for manual | ||
coo | String | VARCHAR2(18) | only for manual | ||
dateCode | String | VARCHAR2(40) | only for manual | ||
urgent | String | VARCHAR2(40) | only for manual | ||
dataType | String | VARCHAR2(40) | Pull | ||
route | String | VARCHAR2(400) | |||
groupId | String | VARCHAR2(20) | |||
totalQty | number | number | |||
saNumber | String | VARCHAR2(64) | |||
saLineId | String | VARCHAR2(5) | |||
productionOrdId | String | VARCHAR2(20) | For BOX, MO; for SMT, schedule number | ||
stackLocationBarCode | string | VARCHAR2(20) | SMT only | ||
runFlag | string | VARCHAR2(100) | forbox, BDT220810RUN1,BDT220810RUN2 |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "VMI",
"target_system": "HIC/LESHINE",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"workshop_code":"LSSC-SMT",
"data": [
{
"shipToId": "L220",
"productionLine": "mx_kit131",
"deliveryDate": "2021-01-01 11:11:11",
"destStorageLoc": "MRNM",
"destType": "W02",
"destBin": "1DTKIT",
"pullType": "MANUAL",
"moType": "SO",
"isSOI": "Y",
"creationDate": "2021-01-01 11:11:11",
"pullId": "P104329",
"pullLineId": "PL123316",
"tplReceiptId ": "104329",
"tplReceiptLineId ": "104329",
"sourceType": "C24",
"sourceStorageLocation": "MRNM",
"sourceBin": "VENDOR",
"specialRemark": "1494233 L-121",
"supplierId": "1000019769",
"supplierDesc": "SEAGATE TECHNOLOGY LLC",
"quantity": 1,
"fullBoxQuantity": 6,
"itemId": "0000041U7042",
"itemDesc": "HDD_ASM 1TB SGT Grenada SSHD",
"lotNumber": "xx",
"boxId": "xx",
"brand": "xx",
"coo": "xx",
"dateCode": "xx",
"urgent": "xx",
"dataType": "Pull",
"route":"MRNM_FFFF",
"groupId":"GROUP1",
"totalQty":1009,
"saNumber":"5100000000",
"saLineId":"00010",
"productionOrdId": "MSSSSSSS",
"stackLocationBarCode":"0001",
"runFlag":"BDT220810RUN1,BDT220810RUN2",
}
]
}
PULL_MO_INFO data
Parameter | Type | DB type | Description | Primary Key | Required |
---|---|---|---|---|---|
productionOrdId | String | VARCHAR2(12) | For BOX, MO; for SMT, schedule number | Y | |
stackLocationBarCode | string | VARCHAR2(20) | stack location for SMT .BOX leave it null | Y- Only for smt | |
shipToId | String | VARCHAR2(4) | plant | ||
bomName | String | VARCHAR2(18) | finish goods name | ||
pullId | String | VARCHAR2(10) | pull header id | Y | |
pullLineId | String | VARCHAR2(10) | pull line id | Y | |
sourceType | String | VARCHAR2(40) | source type | ||
sourceStorageLocation | String | VARCHAR2(40) | source sloc | ||
sourceBin | String | VARCHAR2(40) | source bin | ||
destType | String | VARCHAR2(40) | dest type | ||
destStorageLocation | String | VARCHAR2(40) | dest sloc | ||
destBin | String | VARCHAR2(40) | dest bin | ||
pullType | String | VARCHAR2(40) | |||
inventoryType | String | VARCHAR2(40) | inventory type LOI/SOI | ||
supplierId | String | VARCHAR2(40) | soi: vendor id, loi default 3PL | ||
headerSupplierId | String | VARCHAR2(40) | 3pl | ||
pullQuantity | number | NUMBER | pull qty | ||
productionLine | String | VARCHAR2(40) | production line | ||
deliveryDate | String | DATE | delivery date by APS | ||
itemId | String | VARCHAR2(18) | material name | ||
posnr | String | VARCHAR2(4) | reservation no in MO bom | ||
route | String | VARCHAR2(400) | |||
indicator | String | VARCHAR2(10) | CSC | original packing:CSC, others leave null | |
remark | String | VARCHAR2(250) | |||
changeType | String | VARCHAR2(10) | ADD/UPDATE | if mo bom changed, need to resend whole mo list and set it to UPDATE, others ADD | |
prodDesc | string | VARCHAR2(120) | production description | ||
moQty | number | NUMBER(11,0) | mo qty | ||
runFlag | string | VARCHAR2(100) | forbox, BDT220810RUN1,BDT220810RUN2 |
{
"push_id": "11111",
"workshop_code": "LSSC-SMT",
"source_system": "VMI",
"target_system": "HIC/LESHINE",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"data": [
{
"productionOrdId": "EMC021122001",
"stackLocationBarCode":"0001"
"shipToId": "L270",
"bomName": "10QYPAR1EU",
"pullId": "1643590",
"pullLineId": "23814134",
"sourceType": "C24",
"sourceStorageLocation": "MRNM",
"sourceBin": "VENDOR",
"destType": "C24",
"destStorageLocation": "MRNM",
"destBin": "VENDOR",
"pullType": "NORMAL",
"inventoryType": "SOI",
"supplierId": "1000194982",
"headerSupplierId": "flex",
"pullQuantity": 2,
"productionLine": "mx_kit131",
"deliveryDate": "2021-01-01 11:11:11",
"itemId": "0000041U7042",
"posnr": "0049",
"route":"MRNM_FFFF",
"indicator": "",
"remark":"",
"changeType":"ADD",
"prodDesc":"product",
"moQty":10,
"runFlag":"BDT220810RUN1,BDT220810RUN2", --
}
]
}
URGENT_PULL data
Param | Type | DB Type | Description | Primary Key | Required |
---|---|---|---|---|---|
pullId | String | VARCHAR2(10) | starts with H and cannot be repeated with balance pull. | Y | |
shipToId | String | VARCHAR2(4) | |||
shippedDate | DATE | DATE | Ship date | ||
destType | String | VARCHAR2(40) | Destination type | ||
destBin | String | VARCHAR2(40) | Destination bin | ||
pullLineId | String | VARCHAR2(40) | Pull line id | Y | |
itemId | String | VARCHAR2(40) | Item id | ||
supplierId | String | VARCHAR2(40) | Supplier id, 3PL if LOI else if SOI , should be vendor id | ||
destStorageLocation | String | VARCHAR2(40) | Used for warehouse IM movement | ||
sourceStorageLocation | String | VARCHAR2(40) | Source storage loc | ||
sourceBin | String | VARCHAR2(40) | Source bin | ||
sourceType | String | VARCHAR2(40) | Source type | ||
remark | String | VARCHAR2(4000) | limited to 4000 length | ||
quantity | number | NUMBER | quantity | ||
dataType | String | VARCHAR2(40) | Balance |
{
"push_id": "11111",
"workshop_code": "LSSC",
"source_system": "HIC/LESHINE",
"target_system": "VMI",
"system_time":"2020-11-20 14:00:00",
"total_size": 2,
"current_page": 1,
"current_page_size": 1,
"mode":"sync", //This interface will be confirmed asynchronously by the workflow, so add this parameter
"data": [
{
"pullId": "H102237",//It starts with H and cannot be repeated with balance pull.
"pullLineId": "PL136303",
"shipToId": "L270",
"shippedDate": "2021-09-11 11:11:11",
"destStorageLocation":"sss",
"destType": "L51",
"destBin": "FIS",
"itemId": "000000A36941",
"supplierId": "3PL",//Supplier id, if it is LOI, please fill in 3PL, if it is SOI, please fill in supplier id
"sourceStorageLocation": "MRNM",
"sourceBin": "VENDOR",
"sourceType": "C21",
"quantity": 21,
"remark":"for what DN",
"dataType": "URGENT"
}
]
}