ERP — WMS

Способ передачи сообщений:
Обмен XML файлами через FTP сервер
Интеграция путем выгрузки/скачивания файлов в формате XML на/с FTP сервер.
Используется FTP сервер склада или клиента. Возможно использование sFTP сервер клиента.
Формат WMS описан ниже, если используется формат клиента, то данный момент обсуждается отдельно.
Структура каталога FTP сервера WMS:
- IN — для загрузки файлов из ERP в WMS
- IN\ARCHIVE — после обработки со стороны WMS, файлы переносятся в архивную папку
- OUT — для выгрузки файлов из WMS в ERP
- OUT\ARCHIVE — папка для архивирования файлов со стороны клиента (опционально)
Наименование файлов, желательное правило для соблюдения последовательной загрузки файлов и разбора ситуации в случае ошибки = [Код типа сообщения]_[Клиент]_[Тип сообщения]_[Номер клиента]_[Дата/Время выгрузки].xml:
- 1. Загрузка справочника контрагентов = 1_STORERKEY_STORER_DATETIME.xml
- 2. Загрузка товарного справочника = 2_STORERKEY_SKU_DATETIME.xml
- 3. Загрузка ожидаемого прихода на склад = 3_STORERKEY_RECEIPT_20240000000001_DATETIME.xml
- 4. Выгрузка факта приемки на склад = 4_STORERKEY_RECEIPT_CONFIRMED_DATETIME.xml
- 5. Загрузка ожидаемой отгрузки со склада = 5_STORERKEY_ORDERS_20240000000001_DATETIME.xml
- 6. Выгрузка факта отгрузки со склада = 6_STORERKEY_ORDERS_CONFIRMED_DATETIME.xml
- 7. Загрузка полного остатка запасов товара клиента для сверки на стороне склада = 7_STORERKEY_BALANCE_DATETIME.xml
- 8. Выгрузка полного остатка запасов товара клиента для сверки на стороне клиента = 8_STORERKEY_BALANCE_DATETIME.xml
Значение полей будут согласованы отдельно разработчиком:
- SystemID — Код склада
- STORERKEY — Код клиента
1. Загрузка справочника контрагентов (опционально)
В одном файле может быть загружено множество контрагентов (поставщиков/получателей).
<?xml version="1.0" encoding="UTF-16"?>
<Message>
<Head>
<MessageID>Идентификатор сообщения (опционально)</MessageID>
<Date>Дата (формат dd.MM.yyyy)</Date>
<MessageType>STORER</MessageType>
<Recipient>
<SystemID>Код склада (сообщит разработчик)</SystemID>
</Recipient>
</Head>
<Body>
<Commodity>
<STORERKEY>Код контрагента</STORERKEY>
<COMPANY>Наименование</COMPANY>
<TYPE>Тип (3 - Поставщик/Перевозчик, 2 - Получатель)</TYPE>
</Commodity>
<Commodity>
<STORERKEY>Код контрагента</STORERKEY>
<COMPANY>Наименование</COMPANY>
<TYPE>Тип (3 - Поставщик/Перевозчик, 2 - Получатель)</TYPE>
</Commodity>
</Body>
</Message>
2. Загрузка товарного справочника
В одном файле может быть загружено множество товаров.
<?xml version="1.0" encoding="UTF-16"?>
<Message>
<Head>
<MessageID>Идентификатор сообщения (опционально)</MessageID>
<Date>Дата (формат dd.MM.yyyy)</Date>
<MessageType>SKU</MessageType>
<Recipient>
<SystemID>Код склада (сообщит разработчик)</SystemID>
</Recipient>
</Head>
<Body>
<Commodity>
<STORERKEY>Код клиента (сообщит разработчик)</STORERKEY>
<SKU>Артикул</SKU>
<DESCR>Наименование</DESCR>
<PACKKEY>Упаковка</PACKKEY>
</Commodity>
<Commodity>
<STORERKEY>Код клиента (сообщит разработчик)</STORERKEY>
<SKU>Артикул</SKU>
<DESCR>Наименование</DESCR>
<PACKKEY>Упаковка</PACKKEY>
</Commodity>
</Body>
</Message>
3. Загрузка ожидаемого прихода на склад
В одном файле может быть загружен только 1 документ.
В WMS системе поле <EXTERNRECEIPTKEY>Номер документа клиента</EXTERNRECEIPTKEY> должно быть уникальным. Если в ERP системе каждый год нумерация документов начинается с нуля, то необходимо в Номер документа добавить префикс = год документа, для соблюдения уникальности.
<?xml version="1.0" encoding="UTF-16"?>
<Message>
<Head>
<MessageID>Идентификатор сообщения (опционально)</MessageID>
<Date>Дата (формат dd.MM.yyyy)</Date>
<MessageType>Receipt</MessageType>
<Recipient>
<SystemID>Код склада (сообщит разработчик)</SystemID>
</Recipient>
</Head>
<Body>
<ReceiptHeader>
<STORERKEY>Код клиента (сообщит разработчик)</STORERKEY>
<RECEIPTGROUP>Realizaciya</RECEIPTGROUP>
<RECEIPTDATE>Дата документа (формат dd.MM.yyyy)</RECEIPTDATE>
<EXTERNRECEIPTKEY>Номер документа клиента</EXTERNRECEIPTKEY>
<CARRIERKEY>Код поставщика (если используется справочник контрагентов, опционально)</CARRIERKEY>
<CARRIERNAME>Наименование поставщика (опционально)</CARRIERNAME>
<TRAILERNUMBER>Номер авто/жд транспорта (опционально)</TRAILERNUMBER>
<DRIVERNAME>ФИО водителя (опционально)</DRIVERNAME>
<ReceiptDetail>
<SKU>Артикул</SKU>
<DESCR>Наименование</DESCR>
<QTYEXPECTED>Кол-во (разделитель целой и дробной части - точка)</QTYEXPECTED>
<STORERKEY>Код клиента (сообщит разработчик)</STORERKEY>
<EXTERNRECEIPTKEY>Номер документа клиента</EXTERNRECEIPTKEY>
<EXTERNLINENO>Номер строки документа клиента</EXTERNLINENO>
</ReceiptDetail>
<ReceiptDetail>
<SKU>Артикул</SKU>
<DESCR>Наименование</DESCR>
<QTYEXPECTED>Кол-во (разделитель целой и дробной части - точка)</QTYEXPECTED>
<STORERKEY>Код клиента (сообщит разработчик)</STORERKEY>
<EXTERNRECEIPTKEY>Номер документа клиента</EXTERNRECEIPTKEY>
<EXTERNLINENO>Номер строки документа клиента</EXTERNLINENO>
</ReceiptDetail>
</ReceiptHeader>
</Body>
</Message>
4. Выгрузка факта приемки на склад (опционально)
В одном файле может быть выгружен только 1 документ.
<?xml version="1.0" encoding="UTF-16"?>
<Message>
<Head>
<MessageID>Идентификатор сообщения (опционально)</MessageID>
<Date>Дата (формат dd.MM.yyyy)</Date>
<MessageType>Receipt</MessageType>
<Recipient>
<SystemID>Код склада</SystemID>
</Recipient>
</Head>
<Body>
<ReceiptHeader>
<STORERKEY>Код клиента</STORERKEY>
<RECEIPTGROUP>Realizaciya</RECEIPTGROUP>
<RECEIPTDATE>Дата документа (формат dd.MM.yyyy)</RECEIPTDATE>
<EXTERNRECEIPTKEY>Номер документа клиента</EXTERNRECEIPTKEY>
<STATUS>Статус (CLOSED-закрыт)</STATUS>
<ReceiptDetail>
<SKU>Артикул</SKU>
<QTYRECEIVED>Кол-во (разделитель целой и дробной части - точка)</QTYRECEIVED>
</ReceiptDetail>
<ReceiptDetail>
<SKU>Артикул</SKU>
<QTYRECEIVED>Кол-во (разделитель целой и дробной части - точка)</QTYRECEIVED>
</ReceiptDetail>
</ReceiptHeader>
</Body>
</Message>
5. Загрузка ожидаемой отгрузки со склада
В одном файле может быть загружен только 1 документ.
В WMS системе поле <EXTERNORDERKEY>Номер документа клиента</EXTERNORDERKEY> должно быть уникальным. Если в ERP системе каждый год нумерация документов начинается с нуля, то необходимо в Номер документа добавить префикс = год документа, для соблюдения уникальности.
<?xml version="1.0" encoding="UTF-16"?>
<Message>
<Head>
<MessageID>Идентификатор сообщения (опционально)</MessageID>
<Date>Дата (формат dd.MM.yyyy)</Date>
<MessageType>ORDER</MessageType>
<Recipient>
<SystemID>Код склада (сообщит разработчик)</SystemID>
</Recipient>
</Head>
<Body>
<OrderHeader>
<STORERKEY>Код клиента (сообщит разработчик)</STORERKEY>
<EXTERNORDERKEY>Номер документа клиента</EXTERNORDERKEY>
<ORDERDATE>Дата документа (формат dd.MM.yyyy)</ORDERDATE>
<CONSIGNEEKEY>Код получателя (если используется справочник контрагентов, опционально)</CONSIGNEEKEY>
<C_COMPANY>Наименование получателя (опционально)</C_COMPANY>
<TRAILERNUMBER>Номер авто/жд транспорта (опционально)</TRAILERNUMBER>
<DRIVERNAME>ФИО водителя (опционально)</DRIVERNAME>
<OrderDetail>
<STORERKEY>Код клиента (сообщит разработчик)</STORERKEY>
<UOM>EA</UOM>
<SKU>Артикул</SKU>
<OPENQTY>Кол-во (разделитель целой и дробной части - точка)</OPENQTY>
</OrderDetail>
</OrderHeader>
</Body>
</Message>
6. Выгрузка факта отгрузки со склада (опционально)
В одном файле может быть выгружен только 1 документ.
<?xml version="1.0"?>
<Message>
<Head>
<MessageID>Идентификатор сообщения (опционально)</MessageID>
<Date>Дата (формат dd.MM.yyyy)</Date>
<MessageType>Order</MessageType>
<Recipient>
<SystemID>Код склада</SystemID>
</Recipient>
</Head>
<Body>
<OrderHeader>
<STORERKEY>Код клиента</STORERKEY>
<ORDERDATE>Дата документа (формат dd.MM.yyyy)</ORDERDATE>
<EXTERNORDERKEY>Номер документа клиента</EXTERNORDERKEY>
<STATUS>Статус (SHIPPED-отгружен)</STATUS>
<OrderDetail>
<SKU>Артикул</SKU>
<SHIPPEDQTY>Кол-во (разделитель целой и дробной части - точка)</SHIPPEDQTY>
</OrderDetail>
<OrderDetail>
<SKU>Артикул</SKU>
<SHIPPEDQTY>Кол-во (разделитель целой и дробной части - точка)</SHIPPEDQTY>
</OrderDetail>
</OrderHeader>
</Body>
</Message>
7. Загрузка полного остатка запасов товара клиента для сверки на стороне склада (опционально)
В одном файле должны быть загружены все балансы, предыдущая выгрузка затирается.
В разработке, раздел будет дополнен при необходимости.
8. Выгрузка полного остатка запасов товара клиента для сверки на стороне клиента (опционально)
В разработке, раздел будет дополнен при необходимости.