Внешние модули — различия между версиями
Elena (обсуждение | вклад) |
Elena (обсуждение | вклад) |
||
Строка 96: | Строка 96: | ||
− | ::[[Файл:plugincard5.png| | + | :::[[Файл:plugincard5.png|350px]] [[Файл:plugincard4.png|350px]] |
Версия 06:17, 28 апреля 2011
Основная проблема, решаемая подключением внешних модулей, - доступ пользователей к информации с отображением в специфичном виде, не имеющем возможности быть настроенным средствами стандартного приложения Oktell.
Например, возможны случаи, когда средствами встроенного редактора форм не удается «красиво» решить поставленную задачу обработки звонков операторами, а применение веб-технологий затруднено по тем или иным причинам. В частности с этой потребностью можно столкнуться, когда необходимо в зависимости от выбираемых оператором значений отображать сильно отличающиеся по структуре данные в форме и при этом оставлять возможность перевыбора. Или когда в операторскую форму необходимо загружать большой объем данных (это замедляет отображение формы), тем более это нехорошо, если часть данных может вовсе не потребоваться в соответствии с выбором оператора. Может понадобиться отображение специфичных элементов управления, или возможность редактирования данных в таблице. Все эти задачи позволяет решить технология подключения plugin-программ.
В то же время другой вариант применения описываемой plugin-технологии основывается на необходимости доступа операторов к данным в БД по своей инициативе. Данные, редактируемые при поступлении или осуществлении вызовов по голосовым задачам средствами операторских диалоговых форм (любого типа), недоступны пользователю стандартного приложения Oktell для редактирования в любое время по его инициативе. Для этого необходимы услуги администратора, имеющего доступ к БД, или разработка специальных отчетов, что в общем случае неудобно. Plugin-технология дает возможность разработки специальных подпрограмм, запускаемых из меню клиентского приложения Oktell и работающими по аналогии со стандартными модулями приложения. В визуальных формах plugin-программы известным ее разработчику способом программируется некоторая модель взаимодействия пользователя с данными в БД. Часть пользователей получают доступ к форме, которая в общем случае может быть очень сложной и содержать в себе несколько различных вариантов наполнения. В зависимости или вне зависимости от того какой пользователь ее открывает, она может принимать или не принимать тот или иной вид. В общем случае таким образом организованная plugin-программа позволяет реализовывать и другие задачи, не связанные явно с редактированием данных в БД.
Модуль служит для регистрации plugin-программ, а также для настройки главного меню Oktell на отображение внешних модулей, представленных в виде ссылок на веб-сервисы или ссылок на отдельные формы, содержащиеся в plugin-программах.
Plugin-программа представляет собой некоторую совокупность файлов (сборок, библиотек, данных), содержащих некоторые программные разработки. Их создание производится отделом разработки ПО или службой внедрения на основании поставленных задач. Также создание может производиться пользователями системы. Однако для разработки необходимы базовые знания в части программирования в среде Windows.
Подробно о создании plugin-программ можно узнать в руководстве по интеграции. Раздел «Встраиваемые plugin-модули».
Plugin-модули
Plugin-программа поставляется в виде архива или как совокупность отдельных файлов. Система Oktell хранит информацию о подключенных plugin-программах в базе данных, обеспечивает соответствие версий программ на всех клиентских рабочих местах, и дает возможность настраивать и использовать содержащиеся внутри них формы. Plugin-формой называется разработанное в plugin-программе окно, задекларированное для использования в Oktell. Фактически, plugin-форма может быть любой сложности: конструкция визуального отображения может быть динамической, изменяемой, связанной с запуском некоторых алгоритмов, осуществлением запросов к серверу телефонии, к серверу БД, взаимодействием с клиентским приложением.
Для использования содержимого plugin-программы необходимо ее зарегистрировать. Это делается на вкладке «plugin-модули». В режиме регистрации (добавления) задаются название, описание, подключается основная сборка, в которой реализован интерфейс взаимодействия, а также дополнительные сборки и файлы, необходимые plugin-программе дла корректной работы.
Возможно также указание архивных пакетов с plugin-программами. При этом производится их распаковка и тестовое подключение. Перед тем, как станет доступна возможность сохранения, приложение осуществляет временную загрузку plugin-программы и проверку корректности интерфейса, после чего выгружает ее.
Все дополнительные связанные файлы размещаются рядом с основной сборкой в подкаталоге, указанном в столбце «Относительное размещение».
Впоследствии при редактировании регистрационной информации plugin-программы возможно изменение (подмена) основной сборки. Вместе с этим возможно дополнение, изменение, удаление, перемещение дополнительных файлов.
Тип загрузки определяет режим, в котором будет использоваться plugin-программа.
- Загрузка в отдельный домен. Поддерживает динамическое обновление без необходимости перезапуска клиентского приложения - по команде администратора модули одномоментно выгружаются на всех клиентских компьютерах (возможно данные, занесенные в формы plugin-программы, не сохранятся) и происходит обновление библиотек с последующей загрузкой plugin-программы в память. Имеет недостаток ::* более длительное исполнение кода, в частности заметное торможение ёмких визуальных интерфейсов, а также невозможность пользования табуляцией для перехода на поля таблицы при помощи клавиатуры. Режим является рекомендованным для пуско-наладочных и проверочных работ. Также может быть использован в случае, если plugin-программа не несет функций отображения визуальных интерфейсов, а лишь выполняет внутренние служебные действия (запускается на старте клиентского приложения).
- Загрузка в домен приложения. Скорость работы визуальных интерфейсов аналогична собственным модулям клиентского приложения. Доступно управление клавиатурой для перехода при помощи табуляции между полями основного окна клиентского приложения и полями форм plugin-программы. Однако позволяет обновлять библиотеки plugin-программы только перезагрузкой клиентского приложения Oktell. При рассылке администратором команды на обновление у пользователя (если загрузка plugin-программы уже осуществлена) всплывает уведомление о необходимости обновить plugin-программы. Автоматически клиентское приложение не перезапускается. Режим используется по умолчанию. Рекомендован для использования в обычном режиме после введения модуля в эксплуатацию, когда частого и быстрого обновления не требуется (или не слишком критично).
Момент загрузки определяет, когда будет производиться загрузка библиотек plugin-программы и, соответственно, создание основного объекта управления (подробно в руководстве по интеграции). Отображение визуальных форм plugin-программы происходит только при выборе пользователем соответствующего пункта меню, или обслуживания им задачи call-центра, если в сценарии используется plugin-форма. Загрузка библиотек в память производится по умолчанию при первом обращении к нему. Однако plugin-программа может выполнять невизуальные действия (следить за состояниями, предоставлять удаленному супервизору право доступа к определенным запрограммированным в plugin-программе режимам на компьютерах операторов и т.д.). В этом случае plugin-программа может потребовать запуска на старте приложения. При этом отличается запуск полнофункционального окна клиентского приложения (расширенного рабочего места) и минимизированного (сокращенного рабочего места).
- При первом обращении к модулю. Запускается только в случае необходимости доступа к визуальной форме, описанной в plugin-программе. Используется по умолчанию. Рекомендован к использованию во всех случаях, когда не требуется фоновой деятельности plugin-программы.
- При запуске расширенного рабочего места. В приложениях всех пользователей, имеющих привилегию доступа к полнофункциональному расширенному рабочему месту (подробнее в разделе «Администрирование. Пользователи. Роли») загрузка в память будет произведена сразу же на старте приложения. В приложениях пользователей, работающих в минимизированном окне, загрузка будет производиться по первому обращению из диалогового сценария.
- При запуске клиентского приложения. Во всех клиентских приложениях независимо от вида рабочего места загрузка будет производиться на старте приложения.
Режим отладки позволяет активировать полное или частичное логирование всего процесса взаимодействия с plugin-программой. Логирование ведется в специальный лог-журнал Plugin.
- Отключено.
- Логировать названия методов и событий. Каждый вызов метода логируется на стороне Oktell строкой входа и строкой выхода с указанием названия. Каждое событие логируется на стороне Oktell при вызове и после возврата управления.
- Логировать названия и параметры методов и событий. Помимо названий в строке вызова логируется полный текст параметров, а при возврате управления - полный текст возвращаемого значения.
После всех необходимых модификаций необходимо сохранить изменения. Приложение переводит интерфейс в режим списка зарегистрированных plugin-программ, параллельно запускается асинхронная процедура сохранения на сервере. Осуществляется сохранение данных в БД, а также пересылка всех файлов на сервер с формированием архива для обновления клиентских рабочих станций. О полном завершении процедуры сохранения сообщит соответствующее уведомление, и в списке будут отображены изменения (это происходит не сразу при переходе в режим списка). После этого все вновь подключаемые клиентские станции смогут скачать последние версии plugin-программ.
Администратору доступен режим форсированного обновления plugin-программ на клиентских компьютерах. Для этого после завершения процедуры сохранения необходимо нажать кнопку «Применить». Если не дождаться завершения сохранения, часть клиентских мест не произведет обновления.
Необходимо иметь в виду, что форсированное обновление проходит без выгрузки приложения Oktell, но с выгрузкой plugin-программы. Все её открытые формы будут закрыты, а несохраненные данные потеряются.
Режим форсированного обновления доступен только для программ, зарегистрированных с выставлением типа загрузки «С поддержкой динамического обновления» или незагруженных. Другие plugin-программы будут отображать уведомления пользователю о необходимости перезагрузки приложения для обновления.
С момента сохранения plugin-программы и обновления на клиентских компьютерах становятся доступны сервисы настройки использования ее форм в комплексе:
- среди стандартных модулей клиента Oktell в отдельном разделе, по умолчанию именуемом «Внешние модули»;
- в диалоговом режиме (в сценариях диалога в качестве компонента plugin-форма).
Разделы меню
Вкладка позволяет осуществить настройку содержимого раздела главного меню «Внешние модули». В составе его пунктов находятся ссылки на внешние модули, подключаемые как страницы веб-сервисов или plugin-формы (формы зарегистрированных в системе plugin-программ).
Состав отображаемых внутри раздела модулей определяется настройками и установленными правами доступа и может различаться для разных пользователей. Их порядок определяется соответствующими индексами и настраивается при отображении списка, отсортированного по возрастанию значений столбца («Порядок»).
Любой модуль можно временно скрыть из доступных у всех пользователей, сняв флаг доступности в столбце «Статус».
Создания и/или редактирование производится в режиме редактирования, куда можно зайти двойным щелчком по таблице в строке с интересующей формой или нажатием соответствующей кнопки внизу.
На вкладке «Свойства» помимо текста для отображения модуля в меню и стартового заголовка (который может меняться в ходе работы модуля) необходимо указать тип подключаемого модуля и соответствующую ему ссылку. Не запрещается использовать несколько экземпляров одной и той же plugin-формы в меню.
Для модулей, отбражающих plugin-формы необходимо из списка зарегистрированных plugin-программ выбрать интересующую, а затем в поле с указанием формы - одну из заявленных объектом управления стартовых plugin-форм, отмеченных для использования в режиме пунктов меню (CRM).
В описании plugin-формы (непосредственно в plugin-программе) может быть задан адрес на страницу со справкой. Она становится доступна по щелчку мышью на пиктограмме с вопросительным знаком в поле пункта меню. Если адрес справка не задан, пиктограмма не отображается.
Результат отображения в клиентском приложении Oktell формы plugin-программы в общем виде может быть абсолютно разным, даже динамически изменяющимся. На примере демонстрационной plugin-программы:
Для модулей, отображающих страницы веб-сервисов, необходимо указать строку с адресом страницы. Допускается использование параметров в качестве составляющих частей строки с адресом, которая в общем случае представляет собой GET-запрос с параметрами.
При настройке веб-модуля может быть указана индивидуальная страница справки, которая будет отображена при щелчке мышью на пиктограмму с вопросительным знаком в поле элемента меню. Адрес может быть как web-адресом, так и ссылкой на chm или html файл. В последнем случае файл ищется в каталоге приложения (попадая туда через обновление клиентских приложений из каталога LiveUpdate серверной службы). При необходимости задания ссылок на внутренние страницы файла справки необходимо задавать адрес в формате «manual.chm::/topic.htm#anchor».
Результат отображения в клиентском приложении Oktell страницы веб-сервиса будет выглядеть примерно таким образом:
Выставление прав доступа к пункту меню производится на вкладке «Права доступа». Каждый модуль может быть заявлен по умолчанию как доступный всем пользователям или как недоступный никому. Дополнительно здесь же рядом выставляются исключения. Соответственно те, кому модуль недоступен, если он доступен всем по умолчанию, или те, кому модуль доступен, если модуль недоступен по умолчанию.
В итоге после сохранения необходимых свойств и перезагрузки клиентских приложений каждому пользователю станет доступен тот набор внешних модулей, который определен для него.
Следует заметить, что будут дополнительно исключены неактивные модули (у которых статус «скрыт»), а также plugin-формы, регистрация которых удалена из системы.