Веб-сервис запроса обратной связи (на стороне SetRetail10)

Описание

Веб-сервис запроса обратно связи предназначен для диагностики состояния получения пакетов из ERP-системы.

Для того, чтобы произвести диагностику отправленной информации из ERP-системы, произведите выгрузку с уникальным идентификатором пакета TI.

Важно

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

После загрузки пакета с информацией из ERP, отправляется пакет с запросом и TI-идентификатором первичного пакета.

Алгоритм построения запроса обратной связи

Метод

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

-

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

Поле

Тип данных

НазначениеОбязательное

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

xmlGetstatus

xml

Список идентификаторов пакетов, по которым необходимо получить обратную связь

Да



import

тег

Для каждого запрашиваемого пакета указывается отдельный тег import

Да

ti

string

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

Да

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

xmlGetstatus

xml

Список идентификаторов запрашиваемых пакетов с указанием статуса обработки





import

тег

Для каждого запрошенного пакета указывается отдельный тег import

ti

string

В каждом теге import указывается один идентификатор запрошенного пакета в атрибуте ti.

Ошибки и статусы обработки всего пакета

status

status-messageНазначениеОтображение при импорте типа данных

-1


Происходит процесс сохранения пакета в базу данных сервера.
  • Товары
  • Комплекты
  • Кассиры
  • Карты
  • Рекламные акции
0packagedoesn'texistПакет не найден, то есть не отправлялся из ERP.
  • Товары
  • Комплекты
  • Кассиры
  • Карты
  • Рекламные акции
1xmlerrorПакет не прошёл проверку валидности структуры данных - XML
  • Товары
  • Комплекты
  • Кассиры
  • Карты
  • Рекламные акции
2inprogressПакет в обработке
  • Товары
  • Комплекты
  • Кассиры
  • Карты
  • Рекламные акции
3correctПакет обработан полностью, все сущности успешно прошли валидацию
  • Товары
  • Комплекты
  • Кассиры
  • Карты
  • Рекламные акции
4invalid itemПакет обработан полностью, но некоторые сущности не прошли проверку и были отклонены.
  • Товары
  • Комплекты
  • Кассиры
  • Карты
  • Рекламные акции
5internalerrorПроизошла внутренняя критическая ошибка сервера во время обработки пакета. Дальнейшая обработка данных невозможна.
  • Товары
  • Комплекты
6dublicate item

SRTE-2381 - Getting issue details... STATUS

10.2.75.0

Произошел импорт пакета дубликата

  • Товары
  • Кассиры
  • Продавцы
  • Карты и клиенты
  • Рекламные акции
Ошибки и статусы сущностей внутри пакета

integrity_errorСущность не соответствует настроенным параметрам валидации
  • Товары
  • Комплекты
  • Кассиры
  • Карты
  • Рекламные акции

parent_errorСущность не соответствует настроенным параметрам валидации
  • Товары
  • Комплекты

Пример запроса и ответа

Пример запроса для получения обратной связи по пакетам с номерами 12345 и 12346:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:feed="http://feedback.ERPIntegration.crystals.ru/">
	<soapenv:Header /> 
	<soapenv:Body>
		<feed:getPackageStatus>
			<xmlGetstatus>
				<import ti="12345" /> 
				<import ti="12346" /> 
			</xmlGetstatus>
		</feed:getPackageStatus>
	</soapenv:Body>
</soapenv:Envelope> 
Пример ответа по обратной связи:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
	<env:Header /> 
	<env:Body>
		<ns2:getPackageStatusResponse xmlns:ns2="http://feedback.ERPIntegration.crystals.ru/">
			<xmlGetstatus>
				<import ti="12345" status="3" status-message="correct"/>
				<import ti="12346" status="0" status-message="package doesn't exist"/>
			</xmlGetstatus>
		</ns2:getPackageStatusResponse>
	</env:Body>
</env:Envelope>  

-

Текстовый формат для 1С

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

Поле

Тип данных

Описание

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

ti

string

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

В формате строки через "," (через запятую) 

Пример: <ti>1,2,3</ti>

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

return

Base64

XML ответа, со структурой, аналогичной описанному выше ответу xmlGetstatus, закодированная Base64.

Весь xml ответа передается как одна закодированная в Base64 строка

Пример запроса для получения обратной связи по пакетам с номерами 12345 и 12346:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:feed="http://feedback.ERPIntegration.crystals.ru/">
	<soapenv:Header /> 
	<soapenv:Body>
		<feed:getPackageStatusLight>
			<ti>12345,12346</ti>
		</feed:getPackageStatusLight>
	</soapenv:Body>
</soapenv:Envelope> 
Пример ответа по обратной связи:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
	<env:Header /> 
	<env:Body>
		<ns2:getPackageStatusResponse xmlns:ns2="http://feedback.ERPIntegration.crystals.ru/">
			<return>
PHhtbEdldHN0YXR1cz4KPGltcG9ydCB0aT0iMTIzNDUiIHN0YXR1cz0iMyIgc3RhdHVzLW1lc3NhZ2U9ImNvcnJlY3QiLz4KPGltcG9ydCB0aT0iMTIzNDYiIHN0YXR1cz0iMCIgc3RhdHVzLW1lc3NhZ2U9InBhY2thZ2UgZG9lc24ndCBleGlzdCIvPgo8L3htbEdldHN0YXR1cz4=
			</return>
		</ns2:getPackageStatusResponse>
	</env:Body>
</env:Envelope> 
После декодирования из Base64 получится XML аналогичного формата:
<xmlGetstatus>
	<import ti="12345" status="3" status-message="correct"/>
	<import ti="12346" status="0" status-message="package doesn't exist"/>
</xmlGetstatus>

Обратная связь по типам данных

Товары

В случае загрузки справочника товаров с помощью методов с обратной связью, при обнаружении ошибок в данных по конкретным товарам, не приводящим к нарушению целостности всего XML-пакета, информация по таким ошибкам будет накапливаться по мере обработки всего пакета. Когда весь пакет будет обработан, он получит статус 4 (invalid item), а вложенными тегами в таком пакете будут указаны коды товаров с указанием конкретной ошибки.

Если в этом же пакете будут находиться товары, по которым не будет обнаружено ошибок, то такие товары нормальным образом пройдут проверку и попадут на кассы (в случае нормального прохождения других ступеней бизнес логики, таких как печать ценников)

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

Поле

Тип

Описание

good

тег

По каждому товару в XML пакете, при обработке которого произошла ошибка, и соответственно товар не был доставлен на кассу.




marking-of-the-good

string

Код товара

errortype

string

Тип ошибки -integrityError

Указывается, когда товар не проходит проверку целостности данных. И задерживается на полке отклонённых товаров. Например, при обязательном наличии НДС, пришёл товар без НДС.

errormessage

string

Сообщение об ошибке. Сообщение указывается на русском языке, для возможности его отправки сотрудникам ответственным за возникновение данной ошибки.


<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
	<env:Header /> 
	<env:Body>
		<ns2:getPackageStatusResponse xmlns:ns2="http://feedback.ERPIntegration.crystals.ru/">
			<xmlGetstatus>
				<import ti="12345" status="4" status-message="invalid item"/>
				<good marking-of-the-good="010080_ST" errortype="integrityError" errormessage="Отсутствует корректная цена у товара." />
				<good marking-of-the-good="010081_ST" errortype="integrityError" errormessage="У товара отсутствует НДС"/>
			</xmlGetstatus>
		</ns2:getPackageStatusResponse>
	</env:Body>
</env:Envelope> 

Комплекты

SRTE-2476 - Getting issue details... STATUS

10.2.77.0

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

Поле

Тип

Описание

good

тег

По каждому комплекту в XML-пакете, при обработке которого произошла ошибка, и соответственно товар не был доставлен на кассу.




marking-of-the-good

string

Код комплекта

errortype

string

Тип ошибки -integrityError

Указывается, когда товар не проходит проверку целостности данных. И задерживается на полке отклонённых товаров. Например, при обязательном наличии НДС, пришёл товар без НДС.

errormessage

string

Сообщение об ошибке. Сообщение указывается на русском языке, для возможности его отправки сотрудникам ответственным за возникновение даннойошибки.

  1. При отсутствии в справочнике товаров, включенных в состав комплекта:
    status=4 status-message=invalid item
    errortype=parent_error errormessage="В справочнике товаров нет товара, входящего в комплект"

  2. При отсутствии количества товара, включенного в комплект:
    status=4 status-message=invalid item
    errortype=integrityError errormessage="Не указано количество товара в комплекте"

  3. При указанном количестве товара как отрицательное (т.е. допускаются значения количества только как положительное число):
    status=4 status-message=invalid item
    errortype=integrityError errormessage="Указано не верное количество товара в комплекте. Должно быть положительным"

  4. При указании комплекта (самого в себе или иного) в составе комплекта:
    status=4 status-message=invalid item
    errortype=integrityError errormessage="Комплект не может быть включен в комплект."

Пример ответа об ошибке при импорте комплекта
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:getPackageStatusResponse xmlns:ns2="http://feedback.ERPIntegration.crystals.ru/">
         <xmlGetstatus>
            <import status-message="invalid item" status="4" ti="232323232">
               <good errormessage="Указано не верное количество товара в комплекте. Должно быть положительным
В справочнике товаров нет товара, входящего в комплект
Указано не верное количество товара в комплекте. Должно быть положительным
В справочнике товаров нет товара, входящего в комплект
Указано не верное количество товара в комплекте. Должно быть положительным
В справочнике товаров нет товара, входящего в комплект" errortype="INTEGRITY_ERROR" marking-of-the-good="111113"/>
            </import>
         </xmlGetstatus>
      </ns2:getPackageStatusResponse>
   </soap:Body>
</soap:Envelope>

Кассиры

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

Поле

Тип

Описание

cashUser

тег

По каждому кассиру в XML-пакете, при обработке которого произошла ошибка, и соответственно кассир не был доставлен на кассу.




tabNum

string

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

errortype

string

Тип ошибки - integrityError Указывается, когда кассир не проходит проверку целостности данных.

Например, при обязательном наличии фамилии, пришёл кассир без фамилии.

errormessage

string

Сообщение об ошибке. Для возможности отправки сотрудникам ответственным за возникновение данной ошибки.

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
	<env:Header /> 
	<env:Body>
		<ns2:getPackageStatusResponse xmlns:ns2="http://feedback.ERPIntegration.crystals.ru/">
			<xmlGetstatus>
				<import ti="12349" status="4" status-message="invalid item">
					<cashUser tabNum="" errortype="integrityError" errormessage="Cashier '' is not valid: CashUserType.tabNum: is empty" /> 
					<cashUser tabNum="1427" errortype="integrityError" errormessage="Cashier '1427' is not valid: CashUserType.password: is empty" /> 
  </import>
  </xmlGetstatus>
  </ns2:getPackageStatusResponse>
  </env:Body>
</env:Envelope>

Дисконтные карты

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

Поле

Тип

Описание

internal-card

тег

По каждой карте в XML пакете, при обработке которой произошла ошибка, и соответственно карта не была загружена в систему.




number

string

Номер карты

errortype

string

Тип ошибки - integrityError

Указывается, когда карта не проходит проверку целостности данных.

errormessage

string

 Сообщение об ошибке. Сообщение указывается на русском языке, для возможности его отправки сотрудникам ответственным за возникновение данной ошибки

При ошибочном импорте карт может отобразиться сообщения integrityError, то есть ошибка при проверке целостности данных.

Пример обратной связи по пакету с ошибочными картами: В XML пакете с картами были переданы 2 карты со следующими ошибками. У одной карты отсутствовал номер карты, а у второй была указана не существующая категория:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
	<env:Header />
	<env:Body>
		<ns2:getPackageStatusResponse xmlns:ns2="http://feedback.ERPIntegration.crystals.ru/">
			<xmlGetstatus>
				<import ti="89" status="4" status-message="invalid item">
					<internal-card number="0270416" errortype="integrityError" errormessage="Карта отклонена по причине отсутствия типа [card-type-guid]" />
					<internal-card number="" errortype="integrityError" errormessage="Карта отклонена по причине отсутствия номера [number]" />
				</import>
			</xmlGetstatus>
		</ns2:getPackageStatusResponse>
	</env:Body>
</env:Envelope>

Рекламные акции

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

Поле

Тип

Описание

AdvertisingAction

тег

По каждой рекламной акции в XML пакете, при обработке которой произошла ошибка, и соответственно акция не была доставлен на кассу.




external-code

 string

Внешний код рекламной акции

errortype

 string

Тип ошибки - integrityError

Указывается, когда рекламная акция не проходит проверку целостности данных.

errormessage

 string

 Сообщение об ошибке. Сообщение указывается на русском языке, для возможности его отправки сотрудникам ответственным за возникновение данной ошибки.

При ошибочном рекламных акций может отобразиться сообщения integrityError, то есть ошибка при проверке целостности данных.

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
	<env:Header /> 
	<env:Body>
		<ns2:getPackageStatusResponse xmlns:ns2="http://feedback.ERPIntegration.crystals.ru/">
			<xmlGetstatus>
				<import ti="12350" status="4" status-message="invalid product">
					<AdvertisingAction external-code="TEST122-1" errortype="integrityError" errormessage="Action 'BB1.2 TEST122-1' is not valid: Actions results/set: set has row without marking-of-the-good information Parent action with external code SR10_SECONDPRICE does not exist in BD" /> 
				</import>
			</xmlGetstatus>
		</ns2:getPackageStatusResponse>
	</env:Body>
</env:Envelope>