Перейти к основному содержимому
Версия: 4.0

Расширение функционала Mobile SMARTS с помощью плагинов

Расширения (плагины) используются для выполнения какой-либо работы под управлением сервера Mobile SMARTS без обработки вызовов c ТСД и событий сервера (например, плагин может следить за содержимым заданной папки и загружать данные при изменении файлов или делать бэкап по расписанию).

В состав дистрибутива платформы входят следующие плагины для сервера Mobile SMARTS:

НазваниеНеобходимые файлыОписание
Вызов серверных операцийДля панели управления: не требуется
Для сервера: не требуется
Позволяет вызывать серверные операции из конфигурации Mobile SMARTS как обработчики событий сервера Mobile SMARTS.
Excel/ csv обмен на сервереДля панели управления: не требуется
Для сервера: Cleverence.Connectivity.ExcelCsv.dll
Позволяет выполнять загрузку на сервер Mobile SMARTS справочников номенклатуры, ячеек, палет и документов из форматов Excel или CSV, а также выполняет преобразование завершенных на терминале документов в формат Excel или CSV.
ЕГАИС3 - Обработчик документовДля панели управления: Cleverence.Connectivity.ArmEgais.Panel.dll
Для сервера: Cleverence.Connectivity.EgaisDocProcessor.dll
Плагин предназначен для предобработки документов ЕГАИС (построение доп. таблиц) и постобработки завершенных документов. Используется в конфигурациях «ЕГАИС3», «Склад 15».
Плагин разделения дополнительных таблицДля панели управления: Cleverence.Connectivity.TableSlicerConnector.Panel.dll
Для сервера: Cleverence.Connectivity.TableSlicerConnector.dll
Плагин предназначен для разделения таблиц по заданному условию при обмене с ТСД. Позволяет ограничить объем данных, выгружаемых на ТСД.
Плагин резервного копирования данных базДля панели управления: не требуется
Для сервера: не требуется
Позволяет выполнять бэкап справочников и таблиц из базы данных Mobile SMARTS с заданной периодичностью.

Регистрация расширений (плагинов)​

Для того, чтобы использовать расширение (плагин) на сервере Mobile SMARTS, его необходимо добавить через панель управления. Все расширения, добавленные в конфигурацию Mobile SMARTS, находятся внутри узла «Внешние соединения и расширения -> Расширения».

Добавление в конфигурацию нового расширения выполняется с помощью щелчка правой кнопкой мыши на узле «Расширения». В открывшемся контекстном меню нужно выбрать «Добавить внешнее соединение…» (или «Добавить расширение…»), в списке выбрать нужный модуль и нажать ОК:

RDP

В конфигурации всегда присутствует расширение «Вызов серверных операций».

Настройка параметров расширения выполняется через боковую панель свойств:

RDP

После добавления расширения и настройки параметров нужно сохранить конфигурацию.

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

RDP

Для того, чтобы разрешить работу расширения, нажмите правой кнопкой мыши на узле дерева, выберите в контекстном меню «Разрешить».

RDP

Модуль должен перейти в разрешенное состояние (красная иконка):

RDP

Для работы расширения под управлением сервера Mobile SMARTS и настройки параметров расширения через Панель управления используются две версии библиотеки (файлы dll). Первая dll, предназначенная для сервера, размещается в <Папка базы Mobile SMARTS>\\Server\\DataService\\bin\. Вторая dll, для панели управления — в <Папка базы Mobile SMARTS>\\Control panel\\Addins. Некоторые стандартные расширения, входящие в дистрибутив платформы Mobile SMARTS, не требуют дополнительных файлов dll (см. Список существующих стандартных расширений).

Если библиотека модуля для панели управления загружена, а для сервера библиотека отсутствует (или не была загружена в процесс сервера Mobile SMARTS), то при сохранении конфигурации Mobile SMARTS после добавления модуля в панели управления данные о добавленном модуле не запишутся в файлы конфигурации. При попытке разрешить работу коннектора получаем ошибку. Если загрузить конфигурацию с сервера (кнопка «Обновить» в панели управления), видим, что добавленного модуля нет:

RDP

Для устранения ошибки нужно серверную версию dll модуля положить в < _Папка базы Mobile SMARTS>\\Server\\DataService\\bin, перезапустить сервер базы данных Mobile SMARTS и заново добавить модуль через панель управления.

Операции, выполняемые на сервере​

В платформе Mobile SMARTS есть возможность вызова серверных операций из конфигурации Mobile SMARTS. Серверная операция — это операция, выполняемая на сервере Mobile SMARTS, в отличие от обычной операции, которая выполняется на самом ТСД.

Серверные операции могут использоваться в следующих случаях:

  • в случае работы с коллективным документом — позволяет ускорить работу за счет замены множества одиночных вызовов на сервер одним, при котором целый кусок алгоритма отрабатывает на сервере. Дополнительно, используя блокировки, это позволяет решить проблемы несогласованного изменения данных в сложных случаях;

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

  • в качестве обработчиков серверных событий (производить какие-то операции с данными при выгрузке или завершении документа).

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

Коллективная работа​

Для того, чтобы операция выполнялась на сервере, в панели управления в свойствах операции нужно установить настройку «Выполняется на сервере — Да».

RDP

При вызове такой операции её исполнение будет полностью происходить на сервере. Если же она будет вызвана в обычном, не коллективном документе, то она всё также будет исполняться на мобильном устройстве.

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

Явный вызов операции на сервере​

Но серверную операцию можно вызвать явно и для обычного, неколлективного, документа. Для этого можно воспользоваться расширением «Вызов серверных операций».

«Вызов серверных операций» всегда присутствует в конфигурации Mobile SMARTS в случае использования серверной базы в папке «Расширения».

RDP

Явный вызов необходимо выполнять с помощью действия «Вызов метода внешней системы».

RDP

Обработка событий сервера​

Расширение «Вызов серверных операций» поддерживает обработку событий документов с помощью операции, выполняемой на сервере.

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

Прочие события (получение номенклатуры, запрос данных из таблиц онлайн) пока не поддерживаются.

Документ добавляется​

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

В серверную операцию передается добавляемый документ (переменная сессии Document). Если выполнение операции прерывается (переход [прервать операцию]), добавление документа на сервер отменяется, в лог сервера добавляется запись: «Документ отклонен обработчиком события». Если отмена добавления не требуется, операция должна завершиться по переходу [завершить операцию].

Параметры:

ИмяТипОписание
DocumentОбъект документаДобавляемый документ

Возвращаемые значения:

ИмяТипОписание
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Документ добавлен​

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

В серверную операцию передается добавленный документ (переменная сессии Document). Обработчик может внести изменения в документ. После вызова обработчика документ сохраняется на сервере.

Параметры:

ИмяТипОписание
DocumentОбъект документаДобавленный документ

Возвращаемые значения:

ИмяТипОписание
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Документ назначается пользователю​

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

В серверную операцию передается назначаемый пользователю документ (переменная сессии Document). Если выполнение серверной операции прерывается (переход [прервать операцию]), назначение документа пользователю ТСД отменяется. Если отмена назначения не требуется, операция должна завершиться по переходу [завершить операцию].

Операция может внести изменения в документ.

Параметры:

ИмяТипОписание
DocumentОбъект документаНазначаемый документ
DeviceInfoОбъект DeviceInfoИнформация о состоянии ТСД. Можно получить ид. пользователя ТСД и др.

Возвращаемые значения:

ИмяТипОписание
NeedSaveбулевоУказание серверу сохранить документ. Применяется при успешном завершении операции.
NeedRestoreбулевоУказание серверу загрузить документ из файла. Применяется при успешном завершении операции. Внесенные операцией изменения будут отменены.
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Документ назначен пользователю​

Событие о том, что документ захвачен на обработку. Вызывается в момент, когда документ был передан на ТСД для работы с ним.

В серверную операцию передается добавленный документ (переменная сессии Document). Обработчик может внести изменения в документ. После вызова обработчика документ сохраняется на сервере и отдается на обработку.

Параметры:

ИмяТипОписание
DocumentОбъект документаНазначенный документ
DeviceInfoОбъект DeviceInfoИнформация о состоянии ТСД. Можно получить ид. пользователя ТСД и др.

Возвращаемые значения:

ИмяТипОписание
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Документ изменен​

Событие об изменении документа. Вызывается при сохранении документа на сервер в процессе работы на ТСД при использовании в конфигурации Mobile SMARTS действия «Сохранение документа на сервер».

В серверную операцию передается измененный документ (переменная сессии Document).

Операция может внести изменения в документ.

Параметры:

ИмяТипОписание
DocumentОбъект документаИзмененный документ
DeviceInfoОбъект DeviceInfoИнформация о состоянии ТСД. Можно получить ид. пользователя ТСД и др.

Возвращаемые значения:

ИмяТипОписание
NeedSaveбулевоУказание серверу сохранить документ. Применяется при успешном завершении операции.
NeedRestoreбулевоУказание серверу загрузить документ из файла. Применяется при успешном завершении операции. Внесенные операцией изменения будут отменены.
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Документ завершен​

Событие о завершении обработки документа. Вызывается при получении сервером завершенного документа с ТСД.

В серверную операцию передается завершенный документ (переменная сессии Document).

Операция может внести изменения в документ.

Параметры:

ИмяТипОписание
DocumentОбъект документаЗавершенный документ.
DeviceInfoОбъект DeviceInfoИнформация о состоянии ТСД. Можно получить ид. пользователя ТСД и др.

Возвращаемые значения:

ИмяТипОписание
NeedSaveбулевоУказание серверу сохранить документ. Применяется при успешном завершении операции.
NeedRestoreбулевоУказание серверу загрузить документ из файла. Применяется при успешном завершении операции. Внесенные операцией изменения будут отменены.
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Документ возвращен с ТСД без обработки​

Вызывается когда документ с терминала был возвращен пользователем вызовом release (вернуть документ без изменений).

В серверную операцию передается возвращенный документ (переменная сессии Document).

Параметры:

ИмяТипОписание
DocumentОбъект документаВозвращенный документ
DeviceInfoОбъект DeviceInfoИнформация о состоянии ТСД. Можно получить ид. пользователя ТСД и др.

Возвращаемые значения:

ИмяТипОписание
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Документ удален​

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

В серверную операцию передается удаленный документ (переменная сессии Document). Отменить удаление нельзя.

Параметры:

ИмяТипОписание
DocumentОбъект документаВозвращенный документ
DeviceInfoОбъект DeviceInfoИнформация о состоянии ТСД. Можно получить ид. пользователя ТСД и др.

Возвращаемые значения:

ИмяТипОписание
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Получить список документов​

Событие о запросе получения списка документов с сервера. Вызывается при заходе в список документов на терминале и периодически при нахождении внутри списка.

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

отладка

Параметры:

ИмяТипОписание
ResultКоллекция описаний документов DocumentDescriptionCollectionВ параметр Result передается список описаний документов, полученный предыдущим обработчиком данного события в цепочке обработчиков. Если предыдущего обработчика нет или он вернул null, передается null.
DocumentОбъект документаНовый документ с тем типом, список документов которого был запрошен.
DeviceInfoОбъект DeviceInfoИнформация о состоянии ТСД. Можно получить ид. пользователя ТСД и др.

Возвращаемые значения:

ИмяТипОписание
ResultКоллекция описаний документов DocumentDescriptionCollectionОперация может внести изменения в переданную коллекцию описаний документов или вернуть новую коллекцию
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Получить документ​

Событие о запросе получения документа по идентификатору или штрихкоду с сервера. Событие может использоваться совместно с событием «Получить список документов».

Также получение документа может выполняться по штрихкоду, отсканированному в окне выбора документов. В этом случае в параметрах типа документа должна быть включена настройка «Выбирать по штрихкоду с сервера — Да».

Параметры:

ИмяТипОписание
DocumentTypeNameстрокаИмя типа запрошенного документа
DocumentIdстрокаИдентификатор или штрихкод запрошенного документа
GetDocumentModeцелое числоРежим получения документа:
=0 — получить документ по ид;
=1 — получить документ по штрихкоду.
DocumentОбъект документаДокумент, полученный предыдущим обработчиком данного события в цепочке обработчиков. Если предыдущего обработчика нет или он вернул null, передается новый документ соответствующего типа.
DeviceInfoОбъект DeviceInfoИнформация о состоянии ТСД. Можно получить ид. пользователя ТСД и др.

Возвращаемые значения:

ИмяТипОписание
ResultОбъект документаДокумент, возвращаемый обработчиком на ТСД. Если документ не найден, нужно вернуть null.
ErrorстрокаОписание ошибки. Если значение заполнено, считается, что операция завершилась неудачно, вызывается исключение.

Плагин резервного копирования данных баз​

Для серверной базы Mobile SMARTS есть возможность гибко настроить резервное копирование данных, хранящихся в базе. Для этого используется специальное расширение для сервера Mobile SMARTS — «Плагин резервного копирования данных баз». Расширение позволяет настроить резервное копирование справочников и дополнительных таблиц. Резервное копирование документов и конфигурации выполняется встроенными в сервер Mobile SMARTS механизмами, настройка расширения для этого не требуется.

Для того, чтобы включить резервное копирование справочников и таблиц, расширение необходимо добавить в конфигурацию Mobile SMARTS через панель управления. Узел «Внешние соединения и расширения — Расширения» щелчок правой кнопкой мыши, в контекстном меню выбираем «Добавить расширение…», в списке выбираем «Плагин резервного копирования данных баз»:

RDP

Настраиваем параметры.

Есть возможность указать путь к папке для хранения резервных данных. Если путь к папке для хранения данных не задан, используется папка по пути <папка базы Mobile SMARTS>\Backup. Резервные данные за определенную дату сохраняются в подпапку вида Backup\_yyyyMMdd\_hhmm_ (например, Backup\_20190812\_1830) указанной папки.

Если не указаны дата/ время начала резервирования данных, отсчет времени начнется спустя один час после запуска сервера Mobile SMARTS и первый раз процедура резервирования запустится спустя количество дней, заданное в настройке «Период в днях между циклами резервирования».

После того, как настройки заданы нужно сохранить конфигурацию.

Обязательно нужно разрешить работу расширения. Для этого нажимаем правой кнопкой мыши на узле расширения, в контекстном меню выбираем «Разрешить». Иконка расширения должна измениться.