Интеграция с CWMS

Материал из Меасофт
Перейти к: навигация, поиск

Внешние запросы от системы CWMS

Oбработка статуса и количества вложений

Метод

Реализована обработка статуса и количества вложений по url: index.php

  • При получение статуса 3 добавляется статус [21] Готов к выдаче
  • Корректируется количество вложений
    • изменений количества не происходит, если товар представлен в заказе несколькими вложениями

Входящие данные

Документация: https://rm.cwms3000.ru/projects/communication/wiki/%D0%92%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%B2_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D1%83_%D0%B8_%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D1%83

Пример запроса:

<DOC>
  <DOC_OUT>
    <CONTR>85</CONTR>
    <NUMBER>103200-0001061553</NUMBER>
    <ID_DOC>103200</ID_DOC>
    <STATUS>8</STATUS>
    <STATUS_DSC>Отгружен</STATUS_DSC>
    <DATE>24.12.2021-09.42.14</DATE>
    <OLD_STATUS>0</OLD_STATUS>
    <OLD_STATUS_DSC></OLD_STATUS_DSC>
    <UPLOAD_END>2021-12-24T09:42:12</UPLOAD_END>
    <TYPE>Заказ на отгрузку</TYPE>
    <DSC>примечание из корреспонденции</DSC>    
    <CONTENT>
      <CODE CODE="40581">
        <CNT>4</CNT>
        <ACTUAL_CNT>16</ACTUAL_CNT>
        <UNIT_TYPE>шт</UNIT_TYPE>
        <ST_PART></ST_PART>
        <PART_NUM></PART_NUM>
        <EXPIRE_DATE>3000-01-01T00:00:00</EXPIRE_DATE>
        <NOM_TYPE>1</NOM_TYPE>
        <SUB_NOM_TYPE></SUB_NOM_TYPE>        
      </CODE>
      <CODE CODE="40582">
        <CNT>4</CNT>
        <ACTUAL_CNT>16</ACTUAL_CNT>
        <UNIT_TYPE>шт</UNIT_TYPE>
        <ST_PART></ST_PART>
        <PART_NUM></PART_NUM>
        <EXPIRE_DATE>3000-01-01T00:00:00</EXPIRE_DATE>
        <NOM_TYPE>1</NOM_TYPE>
        <SUB_NOM_TYPE></SUB_NOM_TYPE>        
      </CODE>
    </CONTENT>
    <EXT_PARAMS>
       <PARAM> 
         <PARAM_NAME>Шифр</PARAM_NAME>
         <PARAM_VALUE>000000111</PARAM_VALUE>
         <PARAM_CAPTION>Шифр</PARAM_CAPTION>
       </PARAM>  
    </EXT_PARAMS>
  </DOC_OUT>
</DOC>


Ответ

- При отсутствии критических ошибок: (Пустой запрос не вызывает критическую ошибку и считается успешным)

<?xml version="1.0" encoding="UTF-8"?><request>OK</request>

- При возникновении критической ошибки:

<?xml version="1.0" encoding="UTF-8"?><request>ERROR</request>

- При необходимости изменения количества товара представленного несколькими вложениями

<?xml version="1.0" encoding="UTF-8"?><request>addresscode = [Код заказа] {[Код товара]} - This item has several records. Updating its quantity is prohibited</request>

Лог

Факт запроса на обработку статуса и количества вложений отображается по url: info.php?s=index&d=2022-01-09

где параметр s - источник логов, d - дата лога. При не указанной дате выводится лог на текущую дату

Cинхронизация номенклатуры

Метод

Реализована синхронизация номенклатуры по url: items.php

Габариты номенклатуры синхронизируются при совпадении items.code как NOM->CODE и items.ClientCode как NOM->CODE2

Входящие данные

Документация: https://rm.cwms3000.ru/projects/communication/wiki/%D0%A1%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2_%D0%BD%D0%BE%D0%BC%D0%B5%D0%BD%D0%BA%D0%BB%D0%B0%D1%82%D1%83%D1%80

Пример запроса:

<NOMENKLATURA>
    <NOM>
        <CODE>3</CODE>
        <CODE2>787662</CODE2>
        <NAME_DOC>name_doc</NAME_DOC>
        <NAME>ннн 1:6990</NAME>
        <GROUP_NAME>group1</GROUP_NAME>
        <UNIT_NAME>шт</UNIT_NAME>
        <UNIT_OP_NAME>кор</UNIT_OP_NAME>
        <UNIT_CL_NAME>кор</UNIT_CL_NAME>
        <EXPIRE>0</EXPIRE>
        <SALE_DAYS>0</SALE_DAYS>
        <STORAGE_TEMP/>
        <DSC />
        <ABC_GROUP>0</ABC_GROUP>
        <BREND>ТМ AUTOTIME</BREND>
        <STATUS>3</STATUS>
        <id_importer />
        <id_producer>vend_414</id_producer>
        <id_supplier>vend_414</id_supplier>
        <label_desc />
        <STAMPED>1</STAMPED>
        <STORE_AREAS>
            <STORE_AREA>5</STORE_AREA>
        </STORE_AREAS>
        <PALLS_INFO>
            <PALL>
                <TYPE>1</TYPE>
                <BLCK>1</BLCK>
                <LENGTH>7</LENGTH>
                <WIDTH>1</WIDTH>
                <HEIGHT>10</HEIGHT>
                <WEIGHT_NETTO>0</WEIGHT_NETTO>
                <WEIGHT_BRUTTO>0</WEIGHT_BRUTTO>
                <LAYER_CNT>0</LAYER_CNT>
            </PALL>
        </PALLS_INFO>
        <UNITS_INFO>
            <UNIT>
                <TYPE>шт</TYPE>
                <CNT>1</CNT>
                <BARCODE></BARCODE>
                <BARCODETYPE></BARCODETYPE>
                <WEIGHT_NETTO>0</WEIGHT_NETTO>
                <WEIGHT_BRUTTO>0</WEIGHT_BRUTTO>
                <PRICE>0</PRICE>
                <LENGTH>7</LENGTH>
                <WIDTH>3</WIDTH>
                <HEIGHT>10</HEIGHT>
                <NDS>0</NDS>
                <VOLUME>0</VOLUME>
                <EXPONENT>1</EXPONENT>
            </UNIT>
            <UNIT>
                <TYPE>кор</TYPE>
                <CNT>5</CNT>
                <BARCODE></BARCODE>
                <BARCODETYPE></BARCODETYPE>
                <WEIGHT_NETTO>0</WEIGHT_NETTO>
                <WEIGHT_BRUTTO>0</WEIGHT_BRUTTO>
                <PRICE>0</PRICE>
                <LENGTH>0</LENGTH>
                <WIDTH>0</WIDTH>
                <HEIGHT>0</HEIGHT>
                <NDS>0</NDS>
                <VOLUME>0</VOLUME>
                <EXPONENT>1</EXPONENT>
            </UNIT>
        </UNITS_INFO>
        <OTHER_CODES>
            <CODE>
                <ARTK_CLIENT>add_code</ARTK_CLIENT>
                <NAME_ITEM_CLIENT>name_add_code</NAME_ITEM_CLIENT>
                <BARCODE>EAN13</BARCODE>
                <BARCODETYPE>0000073601210</BARCODETYPE>
                <DSC></DSC>
                <UNIT_TYP></UNIT_TYP>
                <ID_CLIENT>Client1</ID_CLIENT>

            </CODE>
        </OTHER_CODES>
        <EXT_PARAMS>
            <PARAM>
                <PARAM_NAME>ext_param1</PARAM_NAME>
                <PARAM_VALUE>val1</PARAM_VALUE>
            </PARAM>
        </EXT_PARAMS>
        <NOM_CHANGE_NOM>
            <NOM>
                <CODE>1276654</CODE>
                <ORD>1</ORD>
                <COEFF>1.1</COEFF>
            </NOM>
            <NOM>
                <CODE>46344</CODE>
                <ORD>2</ORD>
                <COEFF>1.1</COEFF>
            </NOM>
        </NOM_CHANGE_NOM>
        <NOM_CONTENT>
            <NOM>
                <CODE>content_code1</CODE>
                <CNT>2</CNT>
                <NOMUNIT>1</NOMUNIT>
            </NOM>
        </NOM_CONTENT>
        <BARCODES>
            <BARCODE>
                <BAR_CODE>237847656437463</BAR_CODE>
                <UNIT_TYP>шт</UNIT_TYP>
                <TYP>EAN13</TYP>
            </BARCODE>
            <BARCODE>
                <BAR_CODE>258476359667757</BAR_CODE>
                <UNIT_TYP>шт2</UNIT_TYP>
                <TYP>EAN13</TYP>
            </BARCODE>
            <BARCODE>
                <BAR_CODE>4875643746245</BAR_CODE>
                <UNIT_TYP>кор</UNIT_TYP>
                <TYP>EAN13</TYP>
            </BARCODE>
        </BARCODES>
    </NOM>
</NOMENKLATURA>
  • NOM->CODE - внутренний код номенклатуры,
  • NOM->CODE2 - код номенклатуры клиента `itemclient`.`ClienCode`
  • NOM->UNITS_INFO->UNIT - блок с количественными и габаритными характеристиками номенклатуры.

При проверке данных номенклатуры на корректность, сверяются коды номенклатуры, проверяется ее активность (не в архиве). Обязательным признаком корректности структуры данных, является наличие тега NOM->UNITS_INFO->UNIT->WEIGHT_NETTO

Ответ

- При отсутствии критических ошибок: (Пустой запрос не вызывает критическую ошибку и считается успешным)

<?xml version="1.0" encoding="UTF-8"?><request>OK</request>

- При возникновении критической ошибки:

<?xml version="1.0" encoding="UTF-8"?><request>ERROR</request>

Лог

Факт запроса синхронизации номенклатуры отображается по url: info.php?s=items&d=2022-01-10

где параметр s - источник логов, d - дата лога. При не указанной дате выводится лог на текущую дат

Cинхронизация складских остатков

Метод

Версия 2: http://62.84.120.241:54280/stockfast.php

Данных о тестировании клиентом нет.

  • Устанавливается остаток товара по клиенту.
    • Синхронизация происходит всему запросу по кодам товаров и коду клиента.
    • Остаток товаров, которых нет в запросе считается равным 0.

Входящие данные

Формат входящего xml

Структура получена из рабочих примеров.
Пример запроса:

<?xml version="1.0" encoding="UTF-8"?>
<STOCK FD="2022-01-11T02:14:36">
  <CONTR>85</CONTR>
  <REC>
    <CODE>40236</CODE>
    <CNT>5</CNT>
    <EXPIRE_DATE>3000-01-01T00:00:00</EXPIRE_DATE>
    <NOM_TYP>1</NOM_TYP>
    <SUB_NOM_TYP></SUB_NOM_TYP>
    <PALL_TYPE>1</PALL_TYPE>
    <ST_PART_N></ST_PART_N>
    <DSC></DSC>
    <BLOCK_TYPE></BLOCK_TYPE>
  </REC>
  <REC>
    <CODE>40237</CODE>
    <CNT>5</CNT>
    <EXPIRE_DATE>3000-01-01T00:00:00</EXPIRE_DATE>
    <NOM_TYP>1</NOM_TYP>
    <SUB_NOM_TYP></SUB_NOM_TYP>
    <PALL_TYPE>1</PALL_TYPE>
    <ST_PART_N></ST_PART_N>
    <DSC></DSC>
    <BLOCK_TYPE></BLOCK_TYPE>
  </REC>
</STOK>
  • CONTR - код клиента
  • REC->CODE - код товара
  • REC->CNT - Количество товаров

Ответ

- При отсутствии критических ошибок:

<?xml version="1.0" encoding="UTF-8"?><request>OK</request>

- При возникновении критической ошибки:

<?xml version="1.0" encoding="UTF-8"?><request>Error: Empty DATA</request>

Сообщение об ошибке возникает:

  • При пустом запросе: Error: Empty DATA
  • При откате транзакции: Error: Rollback transaction
  • При пустом ID клиента: Error: Empty client ID

Лог

Факт запроса отображается по url

где параметр s - источник логов, d - дата лога. При не указанной дате выводится лог на текущую дату