События сервера Mobile SMARTS — специальный механизм, позволяющий выполнять вызов функций внешних соединений (коннекторов) при наступлении определенных событий (например, запрос номенклатуры по идентификатору или штрихкоду с ТСД, получение сервером с ТСД завершенного документа и др.). При вызове функции-обработчика события коннектор, как правило, выполняет обращение к внешней системе, передавая параметры события во внешнюю систему (например, штрихкод, по которому нужно найти номенклатуру или идентификатор завершенного документа, по которому документ можно получить из базы Mobile SMARTS), внешняя система возвращает результат в требуемом виде (например, объект «Товар с упаковкой» PackedProduct, сериализованный в xml), коннектор передает результат серверу для возврата его на ТСД (подробнее написано в статье «Основной принцип работы коннекторов»). В некоторых случаях логика обработки определенных событий может быть реализована непосредственно в самом коннекторе, без вызова внешней системы (например, при добавлении в базу документа для обработки на ТСД коннектор может выполнить построение дополнительных таблиц документа или запретить добавление документа, если не заполнены определенные поля).
Настройка обработчиков событий сервера выполняется через панель управления. Для большинства стандартных коннекторов, входящих в дистрибутив Mobile SMARTS, функции-обработчики указываются в параметрах самого коннектора:
Указание обработчиков событий сервера в свойствах коннектора позволяет организовать вызов нескольких обработчиков для одного события. Порядок вызова обработчиков редактируется в панели управления в свойствах узла «События сервера»:
Примечание. Задание имени функции-обработчика события в параметрах коннектора не является обязательным условием для вызова обработчика. В платформе Mobile SMARTS версий до 3.1 (3.0.xx.xxxx) обработчики событий указывались только в узле «События сервера» в формате «Ид коннектора:Имя функции-обработчика», и коннекторы не имели параметров для задания обработчиков. Такой механизм поддерживается и в версиях 3.1.xx.xxxx. Т. е. если используется коннектор, разработанный для платформы 3.0, не имеющий параметров для указания обработчиков, и обработчик задан в узле «События сервера», вызов обработчика сервером будет выполняться.
Параметры, передаваемые в функцию-обработчик, для каждого события, фиксированные, и функция для успешного вызова должна соответствовать этим параметрам.
События сервера
Название | Описание |
---|---|
События документов | |
ДокументДобавляется |
Событие, возникающее в процессе добавления документа на сервере. Вызывается при выгрузке документа в базу Mobile SMARTS из внешней системы. |
ДокументДобавлен | Событие, возникающее после добавления документа на сервере. Вызывается при выгрузке документа в базу Mobile SMARTS из внешней системы. |
Событие,сообщающее о том что документ готов передаваться на мобильное устройство. Вызывается при запросе с ТСД получения документа для работы. | |
Событие о том, что документ захвачен на обработку. Вызывается в момент, когда документ был передан на ТСД для работы с ним. | |
ДокументИзменен | Событие об изменении документа. Вызывается при сохранении документа на сервер в процессе работы на ТСД при использовании в конфигурации Mobile SMARTS действия «Сохранение документа на сервер». |
Событие о завершении обработки документа. Вызывается при получении сервером завершенного документа с ТСД. | |
Вызывается в случае если документ с терминала был возвращен пользователем вызовом release (вернуть документ без изменений). | |
ДокументУдален | Событие об удалении документа с сервера. Удаление выполняется внешней системой. |
ПолучитьДокумент | Вызывается при выборе в списке документов на ТСД того документа, который еще не был выгружен (попал в этот список с помощью события «Получить список документов»). |
ПолучитьСписокДокументов | Вызывается при входе в список документов на ТСД. Используется в паре с событием «Получить документ» для того, чтобы реализовать выбор документов прямо из учетной системы, без предварительной выгрузки. |
События номенклатуры | |
Событие о том, что продукт был запрошен терминалом по коду (штрихкод, артикул, код) с сервера и не был найден в серверном справочнике. | |
ПолучитьТоварыПоСпискуId |
Событие о том, что несколько товаров были запрошены терминалом по идентификаторам с сервера и не были найден в серверном справочнике. Позволяет реализовывать получение сразу нескольких товаров из базы учетной системы без предварительной выгрузки. |
Вызывается при вводе в строку поиска в списке номенклатуры на ТСД. Используется для того, чтобы реализовать поиск номенклатуры по части наименования прямо из учетной системы. | |
ПолучитьСписокТоваров | Вызывается при входе в список номенклатуры на ТСД. Используется для того, чтобы реализовать выбор номенклатуры прямо из учетной системы, без предварительной выгрузки. |
События таблиц | |
ОбработатьЗапрос | Событие вызывается при запросе данных из таблицы, определенной в конфигурации Mobile SMARTS. Позволяет получать строки таблицы онлайн по запросу с ТСД. |