Импорт справочника кассиров из ERP в SetRetail10

Для чтения визуальной составляющей схемы XSD, а также типами обязательных данных, ознакомьтесь с правилами использования.

Методы web-сервиса для импорта кассиров

Внимание:

  • При импорте кассиров не нужно преобразовывать данные в base64.
  • Блок кассиров должен быть представлен в виде well formed XML в блоке CDATA.

Без обратной связи

МетодimportCashiers
URLhttp://IP-адрес_сервера:8090/SET-ERPIntegration/CashiersImport
WSDLhttp://IP-адрес_сервера:8090/SET-ERPIntegration/CashiersImport?wsdl

Поле

Тип данных

Описание

Обязательное

Принимаемые параметры

xml

XML (CDATA)

Справочник кассиров в формате XML

Да

Возвращаемые параметры

return

boolean

True в случае успешной обработки пакета


Описание формата данных кассиров


C обратной связью

МетодimportCashiersWithTi
URLhttp://IP-адрес_сервера:8090/SET-ERPIntegration/CashiersImport
WSDLhttp://IP-адрес_сервера:8090/SET-ERPIntegration/CashiersImport?wsdl

Поле

Тип данных

Описание

Обязательное

Принимаемые параметры

xml

XML (CDATA)

Справочник кассиров в формате XML

Да

ti

string

Transaction Id - номер передаваемого пакета данных, по которому можно будет получить обратную связь.

Нет

Возвращаемые параметры 

return

boolean

True в случае успешной обработки пакета


Описание формата данных кассиров

Важно

Идентификатор пакета ti Transaction Id – является уникальным идентификатором этого пакета в SetRetail10, что накладывает определённые ограничения на повторный импорт пакета и загрузку разных типов данных с одним идентификатором.

Формат данных

Внимание!

  • В одном пакете нельзя одновременно загружать два действия над одним кассиром. 
  • Например: нужно изменить ФИО кассира, затем заблокировать.
    • 1-й пакет изменение данных.
    • 2-й пакет блокировка.
  • В одном сообщении нельзя загружать несколько вариантов изменения данных над одним кассиром. 
  • Все сообщения с действиями над кассирами обрабатываются последовательно.
  • Если произошла такая загрузка, то будет обработано последнее действие: например загрузили изменение ФИО, затем блокировку кассира. Результат: кассир будет заблокирован, ФИО изменится. Кассир останется заблокированном. В данном случае, когда происходит ситуация передачи учетно записи другому кассиру.

SRTE-2815 - Getting issue details... STATUS

Загрузка кассиров позволяет импортировать из ERP в SetRetail10 полную информацию о кассирах.

cashUsers

Наименование элемента

Тип данных

Описание

cashUser

Комплексный

Информация о кассире


cashUsers/cashUser

Наименование элемента

Тип данных

Описание

Обязательное

tabNum

String

Табельный номер кассира

Да

firstName

String

Имя кассира

Нет
lastNameStringФамилияНет

middleName

String

Отчество

Нет

password

String

Пароль

Да

role

String

Роль кассира

Да

Blocked

String

Признак блокировки кассира

Да

barcode

String

Штрихкод, для авторизации кассира по штрихкоду

Нет

magneticCard

String

Код для авторизации кассира по бесконтактной карте

Нет

magneticKey

String

Штрихкод, для авторизации кассира по магнитной карте

Нет

setV10Card

String

Код, для авторизации кассира по магнитной карте SetRetail10

Нет
innString

10.2.44.2

ИНН-кассира

Если поле присутствует, то оно должно состоять из 12 цифр (может начинаться с "0").

В противном случае, загрузка присланного кассира отклоняется.

Нет
shop-indexStringНомер магазина (1-99999), в который должен быть загружен кассир.
Указывается только при загрузке в SetCentrum
Нет
genderКомплексный

Пол кассира

SRTE-2493 - Getting issue details... STATUS

10.2.84.0

Возможные значения:

  • FEMALE - Женский
  • MALE - Мужской
  • UNDEFINED - Не выбран

Элемент используется для печати пола согласно законодательству Германии.

Нет
jobTitleString

Должность кассира

Используется для выгрузки в ОФД (тег 1021)

Не является привязкой к роли на сервере!

CR-3603 - Getting issue details... STATUS

SRTE-3114 - Getting issue details... STATUS

10.2.92.0

Нет

Для импорта данных по кассирам кодировать xml-структуру в BASE64 для этого типа данных не нужно.

Пример импорта кассиров
<xml>
<![CDATA[
 <cashUsers>
    <cashUser>
        <tabNum>1</tabNum>
        <firstName>ИванTest</firstName>
        <lastName>Иванов</lastName>
        <middleName>Иванович</middleName>
        <password>1</password>
        <role>Администратор</role>
            <setV10Card>0000278</setV10Card>
            <barcode>211200000278</barcode>
            <magneticCard></magneticCard>
            <magneticKey></magneticKey>
         <inn>781234567890</inn>
		<gender>male</gender>
        <jobTitle>Администратор</jobTitle>
        <Blocked>false</Blocked>
    </cashUser>
    <cashUser>
        <tabNum>123</tabNum>
        <firstName>Павел</firstName>
        <lastName>Павлов</lastName>
        <middleName>Павлович</middleName>
        <password>123</password>
        <role>Администратор</role>
        <setV10Card>0000291</setV10Card>
        <barcode>211200000291</barcode>
        <magneticCard></magneticCard>
        <magneticKey></magneticKey>
        <inn>781234567892</inn>
        <gender>male</gender>
        <jobTitle>Администратор</jobTitle>
        <Blocked>false</Blocked>
    </cashUser>
    <cashUser>
        <tabNum>2</tabNum>
        <firstName>Петр</firstName>
        <lastName>Петров</lastName>
        <middleName>Петрович</middleName>
        <password>2</password>
        <role>Кассир</role>
            <setV10Card>0000279</setV10Card>
            <barcode>211200000279</barcode>
            <magneticCard></magneticCard>
            <magneticKey></magneticKey>
         <inn>781234567894</inn>
        <gender>male</gender>
        <jobTitle>Администратор</jobTitle>
        <Blocked>false</Blocked>
    </cashUser>
    <cashUser>
        <tabNum>3</tabNum>
        <firstName>Сидр</firstName>
        <lastName>Сидоров</lastName>
        <middleName>Сидорович</middleName>
        <password>3</password>
        <role>Сервисный инженер</role>
            <setV10Card>0000280</setV10Card>
            <barcode>211200000280</barcode>
            <magneticCard></magneticCard>
            <magneticKey></magneticKey>
         <inn>781234567850</inn>
        <gender>male</gender>
        <jobTitle>Администратор</jobTitle>
        <Blocked>false</Blocked>
    </cashUser>
    <cashUser>
        <tabNum>321</tabNum>
        <firstName>IT</firstName>
        <lastName>Инженер</lastName>
        <middleName></middleName>
        <password>321</password>
        <role>Сервисный инженер</role>
        <setV10Card>0000281</setV10Card>
        <barcode>211200000281</barcode>
        <magneticCard></magneticCard>
        <magneticKey></magneticKey>
        <inn>781234527890</inn>
        <gender>male</gender>
        <jobTitle>Администратор</jobTitle>
        <Blocked>true</Blocked>
    </cashUser>
 </cashUsers>
]]>        
</xml>

Дополнительные возможности

Импорт кассира с ролью по умолчанию

SRTE-2116 - Getting issue details... STATUS

10.2.70.0

Возможность передавать данные о кассире в кассовую систему без указания роли для того, чтобы назначать роль конкретному кассиру в магазине.

Кейс: В ERP-системе ведётся список сотрудников имеющих право, работать на кассовой зоне, но нет информации о конкретной роли кассира, администратора и т.д. Информация о кассире будет поступать из ERP в SetCentrum без указания роли и пароля.

  • У нового кассира (пришедшего без роли) в визуализации будет автоматически отображаться признак "Без роли".

  • Если кассир уже есть в системе и ему назначена какая-то роль, то импорт кассира без роли не меняет ему роль на "Без роли".

    • В визуализации любому кассиру можно выбрать роль - "Без роли", тем самым, оставив его без роли.

  • При импорте кассира без роли с Centrum на магазин:

    • Если кассир новый, то на магазине создаётся кассир, и ему также указывается роль - "Без роли".

    • Если кассир в магазине уже есть, и ему назначена конкретная роль (например администратор), то эта роль не сбрасывается в значение "Без роли" т.е. роль на магазине - более приоритетная

  • При отсутствии пароля при импорте, кассир записывается в систему без пароля. Авторизация такого кассира на кассе не возможна. (возможна только при идентификации по ШК, карте и д.р.)

<xml>
<![CDATA[
<cashUsers>
    <cashUser>
        <tabNum>123456</tabNum>
        <lastName>Иванов</lastName>
        <firstName>Иван</firstName>
        <middleName>Иванович</middleName>
    </cashUser>
</cashUsers>
]]>
</xml>

Обновление ФИО кассира по табельному номеру

SRTE-2112 - Getting issue details... STATUS  

10.2.70.0

С синхронным ответом о результате обработки пакета

МетодupdateCashiers
URLhttp://IP-адрес_сервера:8090/SET-Cashiers/CashiersUpdateWS
WSDLhttp://IP-адрес_сервера:8090/SET-Cashiers/CashiersUpdateWS?wsdl

Поле

Тип данных

Описание

Обязательное

Принимаемые параметры

update

base64Binary

Справочник кассиров в формате XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cashUsers>
    <cashUser>
        <tabNum>123456</tabNum>
        <lastName>Иванов</lastName>
        <firstName>Иван</firstName>
        <middleName>Иванович</middleName>
    </cashUser>
</cashUsers>
Наименование элементаТип данныхОбязательноОписание
tabNumstringДаТабельный номер кассира
firstNamestringНетИмя кассира
middleNamestringНетОтчество
lastNamestringНетФамилия
Да

Возвращаемые параметры

return

boolean

True в случае успешной обработки пакета


Пример вызова метода
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tran="http://transport.cashiers.setretailx.crystals.ru/">
	<soapenv:Header/>
	<soapenv:Body>
		<tran:updateCashiers>
			<update> 
PGNhc2hVc2Vycz4NCgk8Y2FzaFVzZXI+DQoJCTx0YWJOdW0+MTAwPC90YWJOdW0+DQoJCTxmaXJzdE5hbWU+0JjQstCw0L08L2ZpcnN0TmFtZT4NCgkJPG1pZGRsZU5hbWU+0JjQstCw0L3QvtCy0LjRhzwvbWlkZGxlTmFtZT4NCgkJPGxhc3ROYW1lPtCY0LLQsNC90L7QsjwvbGFzdE5hbWU+DQoJPC9jYXNoVXNlcj4NCjwvY2FzaFVzZXJzPg0K
			</update>
		</tran:updateCashiers>
	</soapenv:Body>
</soapenv:Envelope>
Положительный результат
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:updateCashiersResponse xmlns:ns2="http://transport.cashiers.setretailx.crystals.ru/">
         <return>true</return>
      </ns2:updateCashiersResponse>
   </soap:Body>
</soap:Envelope>
Ошибка - указано имя и фамилия, но номер пустое
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:updateCashiersResponse xmlns:ns2="http://transport.cashiers.setretailx.crystals.ru/">
         <return>[Иван Иванов] doesn't have tabNum in input xml</return>
      </ns2:updateCashiersResponse>
   </soap:Body>
</soap:Envelope>
Указаны табельные номера кассиров которых нет в SetRetail10
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:updateCashiersResponse xmlns:ns2="http://transport.cashiers.setretailx.crystals.ru/">
         <return>Unable update cashiers.  Reason: Unknown tabNumber [123456, 123457]</return>
      </ns2:updateCashiersResponse>
   </soap:Body>
</soap:Envelope>
Ошибка при обработке XML-запроса
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Client</faultcode>
         <faultstring>Unmarshalling Error</faultstring>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>