Для работы необходимо установить и настроить сервис Sales-ws на кассовый сервер.
Для выгрузки продаж из БД All по протоколу SOAP реализованы следующие методы:
document– выгрузка документов по идентификатору смены,shift– выгрузка смен по времени открытия смены,shiftChanged– выгрузка смен по времени загрузки на кассовый сервер,shiftCount– подсчет количества смен за указанное время (по времени открытия смены),shiftChangedCount– подсчет количества измененных смен за указанное время (по времени загрузки на кассовый сервер),shiftRoutine– выгрузка активных смен за указанное время (активными считаются смены, которые были открыты и/или закрыты в указанный период),shiftRoutineCount– подсчет количества активных смен за указанное время.
Информацию о выгружаемых данных можно посмотреть в разделе "Продажи".
При работе с БД, содержащей большое количество записей, может возникнуть проблема производительности (невозможно за раз получить весь объем данных). Для того чтобы снизить нагрузку на ресурсы и избежать зависания сервисов, можно применить метод постраничной навигации (пейджинация). Пейджинация используется в методах shift, shiftChanged и shiftRoutine. При необходимости выгрузить определенный пул данных в запросе нужно указать, на страницы какого размера будут разбиты данные для запроса и какую из страниц необходимо отобразить.
Пусть требуется выгрузить данные смен с 11 по 20. Тогда в запросе необходимо указать, что все данные будут разбиты на страницы по 10 записей и требуется отобразить 1-ю страницу данных (это будет вторая страница, но так как нумерация начинается с нуля, то указываем в pageNumber значение 1).
В этом случае запрос будет выглядеть следующим образом:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bean="http://cashserver.artix.su/sales/ws/beans">
<soapenv:Header/>
<soapenv:Body>
<bean:shiftRequest>
<!--Optional:-->
<bean:timeBegin>2016-09-16T00:00:00.000+00:00</bean:timeBegin>
<!--Optional:-->
<bean:timeEnd>2016-10-16T00:00:00.000+00:00</bean:timeEnd>
<!--Optional:-->
<bean:shopCode>21</bean:shopCode>
<bean:status>ALL</bean:status>
<bean:pageNumber>1</bean:pageNumber>
<bean:pageSize>10</bean:pageSize>
</bean:shiftRequest>
</soapenv:Body>
</soapenv:Envelope>
Результатом данного запроса будет выгрузка всех смен с 16.09.2016 по 16.09.2016 для магазина с кодом 21. По запросу будут возвращены данные со 2-й страницы при том, что все записи разбиты на страницы по 10 записей в каждой.
Все поля запроса проходят валидацию. При неверном заполнении будет выведена ошибка.
Document
Метод document используется для выгрузки документов. Выборка документов осуществляется по идентификатору смены. В запросе может быть указан идентификатор кластера.
| Наименование поля | Тип данных | Описание | Примечания |
|---|---|---|---|
| workshiftid | числовой | Идентификатор смены, за которую будут выгружены документы | Обязательное поле |
| clusterid | строковый | Идентификатор кластера | |
| timeBegin | дата и время | Начало диапазона времени | Формат поля "yyyy-MM-ddTHH:mm:ss" |
| timeEnd | дата и время | Конец диапазона времени | Формат поля "yyyy-MM-ddTHH:mm:ss" |
В результате выполнения запроса возвращается информация о документах смены с указанным идентификатором.
Shift
Метод shift используется для выгрузки смен, открытых в указанный период времени. Выгрузка смен осуществляется для магазина с указанным кодом.
| Наименование поля | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| timeBegin | дата и время | Начало диапазона времени | ||
| timeEnd | дата и время | Конец диапазона времени | ||
| shopCode | строковый | Код магазина | ||
| clusterId | строковый | Идентификатор кластера | ||
| status | строковый |
| Статус смен, которые необходимо выгрузить | Обязательное поле |
| pageNumber | числовой | Номер страницы | Обязательное поле | |
| pageSize | числовой | Количество элементов на странице | Обязательное поле |
В результате выполнения запроса возвращается информация о сменах, открытых в указанный период времени.
ShiftChanged
Метод shiftChanged используется для выгрузки смен по времени их загрузки на кассовый сервер. Выгрузка смен осуществляется для магазина с указанным кодом.
| Наименование поля | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| timeBegin | дата и время | Начало диапазона времени | ||
| timeEnd | дата и время | Конец диапазона времени | ||
| shopCode | строковый | Код магазина | ||
| clusterId | строковый | Идентификатор кластера | ||
| status | строковый |
| Статус смен, которые необходимо выгрузить | Обязательное поле |
| pageNumber | числовой | Номер страницы | Обязательное поле | |
| pageSize | числовой | Количество элементов на странице | Обязательное поле |
В результате выполнения запроса возвращается информация о сменах по времени их загрузки на кассовый сервер.
ShiftCount
Метод shiftCount осуществляет подсчет количества элементов в таблице workshift.
| Наименование поля | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| timeBegin | дата и время | Начало диапазона времени | ||
| timeEnd | дата и время | Конец диапазона времени | ||
| shopCode | строковый | Код магазина | ||
| clusterId | строковый | Идентификатор кластера | ||
| status | строковый |
| Статус смен, которые необходимо проверить | Обязательное поле |
В результате выполнения запроса возвращается информация о количестве смен с указанным статусом. Если статус в запросе не указан, то возвращается количество всех записей.
ShiftChangedCount
Метод shiftChangedCount осуществляет подсчет количества элементов в таблице workshift, которые были изменены в указанный промежуток времени.
| Наименование поля | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| timeBegin | дата и время | Начало диапазона времени | ||
| timeEnd | дата и время | Конец диапазона времени | ||
| shopCode | строковый | Код магазина | ||
| clusterId | строковый | Идентификатор кластера | ||
| status | строковый |
| Статус смен, которые необходимо проверить | Обязательное поле |
В результате выполнения запроса возвращается информация о количестве смен, в которые были внесены изменения за указанный промежуток времени.
SecurityLog
Метод securityLog выполняет выгрузку журнала выполненных операций из таблицы crighths БД All.
| Наименование поля | Тип данных | Описание | Примечания |
|---|---|---|---|
| workshiftid | числовой | Идентификатор смены, за которую будет выгружен журнал выполненных операций | Обязательное поле |
| clusterId | строковый | Идентификатор кластера | |
| timeBegin | дата и время | Начало диапазона времени | Формат поля "yyyy-MM-ddTHH:mm:ss" |
| timeEnd | дата и время | Конец диапазона времени | Формат поля "yyyy-MM-ddTHH:mm:ss" |
В результате выполнения запроса возвращаются данные журнала выполненных операций по смене с указанным идентификатором.
ShiftRoutine
Метод shiftRoutine используется для выгрузки активных смен за некоторый период. Активными считаются смены, которые были открыты и/или закрыты в указанный диапазон времени.
| Наименование поля | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| timeBegin | дата и время | Начало диапазона времени | ||
| timeEnd | дата и время | Конец диапазона времени | ||
| shopCode | строковый | Код магазина | ||
| clusterId | строковый | Идентификатор кластера | ||
| status | строковый |
| Статус смен, которые необходимо проверить | Обязательное поле |
| pageNumber | числовой | Номер страницы | Обязательное поле | |
| pageSize | числовой | Количество элементов на странице | Обязательное поле |
В результате выполнения запроса возвращается информация о сменах, активных в указанный период времени.
ShiftRoutineCount
Метод shiftRoutineCount осуществляет подсчет количества элементов в таблице workshift, которые были активны в указанный промежуток времени.
| Наименование поля | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| timeBegin | дата и время | Начало диапазона времени | ||
| timeEnd | дата и время | Конец диапазона времени | ||
| shopCode | строковый | Код магазина | ||
| clusterId | строковый | Идентификатор кластера | ||
| status | строковый |
| Статус смен, которые необходимо проверить | Обязательное поле |
В результате выполнения запроса возвращается информация о количестве смен, которые были активны за указанный промежуток времени.
Данные, возвращаемые в зависимости от параметров и методов
При выполнении запроса с интервалом времени открытые и закрытые смены могут иметь различное положение относительно выбранного периода времени:
В зависимости от того, какие параметры и методы используются для выгрузки смен, результат может отличаться:
- метод
shiftвернет смены 2,4,6 (без использования параметра "Статус смены"), так как он оперирует временем открытия смены и возвращает смены, открытые в диапазоне дат, - метод
shiftRoutineвернет смены 1-6 (без использования параметра "Статус смены"), так как он оперирует понятием текущая смена, т.е. та смена, которая была активна в диапазон дат.
