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