[ELMA3] Портлет запуска процессов
В системе ELMA предусмотрены стандартные интерфейсы запуска процессов, которые автоматически учитывают иерархию процессов в дизайнере и права доступа. Однако, в некоторых случаях стандартный интерфейс может оказаться недостаточно полным, например, в следующих случаях:
- работа в системе ведется по нескольким направлениям деятельности;
- используется филиальная структура с разграничением запуска процессов (некоторые процессы доступны не всем сотрудникам на равных должностях в разных филиалах);
- требуется проведение отладочных запусков процессов для узкого круга сотрудников;
- требуется наглядное разделение процессов по категориям;
- и другие.
В таком случае, можно сделать свой портлет для запуска процессов, который можно было бы настроить на любой вкус.
Рис. 1. Портлет «Запуск процессов»
В данной статье мы рассмотрим основные принципы правильной архитектуры и реализации данного портлета.
У большинства портлетов в системе ELMA можно найти специфичные настройки, которые позволяют настроить не только его внешний вид, но и отображаемые данные. В случае портлета для удобного отображения процессов для запуска, таких настроек может оказаться слишком много, особенно если для каждого процесса потребуется задавать уникальные особенности отображения, времени запуска, категории и т.п.
Предлагается создать специальный справочник, например, Portlet_ProcessStart, и добавить в него следующий набор полей:
Название |
Тип |
Назначение |
Комментарий |
Наименование (Name) |
Строка |
Наименование для группировки процессов |
|
Цвет (Color) |
Цвет |
Для красочного отображения групп процессов |
|
Заголовок процесса (ProcessHeader) |
Заголовок процесса |
Для указания процесса в справочнике и его дальнейшего распределения в группы |
Заголовок процесса – системный объект |
Доступен для запуска (IsActive) |
Да/Нет |
Для частичного отключения запуска процессов из интерфейса пользователя. |
Отключение коснется только портлета |
При необходимости можно добавить свои поля.
Также на вкладке Дополнительно этого справочника следует установить флажки Иерархический и Генерировать фильтр.
Иерархическая структура справочника позволит без особых проблем группировать элементы.
Рис. 2. Справочник «Portlet_ProcessStar»t, вкладка «Дополнительно»
Примерное содержимое этого справочника будет следующим:
Группа «Бухгалтерия», цвет #D1E3B4
- Процесс «Выдача наличных денег», Доступен для запуска = Да
- Процесс «Выдача отпускных», Доступен для запуска = Да
Группа «Документооборот», цвет #FFEB9A
- Процесс «Получить шаблоны договоров», Доступ для запуска = Да
- Процесс «Согласовать входящий счет _ черновик», Доступен для запуска = Нет
Группа «Работа с клиентами», цвет #D7C6D7
- Процесс «Входящая возможность», Доступен для запуска = Да
- Процесс «Быстрая продажа», Доступен для запуска = Да
И так далее, все необходимые для портлета процессы.
Тип поля Цвет позволяет выбирать цвета из удобного селектора, при этом также отображается его представление в RGB кодировке.
Сам портлет можно реализовать через глобальный модуль или через портлет типа «Код». В любом случае, логика кода разметки портлета будет одинаковой и выглядеть примерно так:
- Описание JavaScript функции для вызова стандартного всплывающего окна запуска процесса.
- Загрузка в переменную списка всех процессов, доступных для запуска текущему пользователю, а также загрузка списка всех элементов справочника Portlet_ProcessStart.
- Цикл, в котором формируется список Группа - Процессы, доступные для запуска, на основании пересечений множества процессов, доступных пользователю для запуска, и процессов из справочника.
- Цикл, в котором формируется отображение групп в виде сворачиваемых панелей определенного в справочнике цвета, внутри которых отображаются названия процессов. При формировании названия процесса следует определить JavaScript функцию на щелчок мышью, которая будет вызывать стандартное всплывающее окно запуска процесса. Также можно брать цвет фона из справочника, если он указан.
Рис. 3. Портлет «Запуск процессов»
Если процессы запускаются часто и для них не предусмотрено какой-либо регламентированной процедуры запуска в эксплуатацию, то необходимо в справочнике установить флажок Да в поле Доступен для запуска.
В этом случае также возникнет вопрос о том, к какой категории их отнести, если они уже должны быть доступны для запуска – в коде портлета следует предусмотреть проверку процессов без категории (соответствия в справочнике) и их вывод в специальную панель, например, с названием «Прочие процессы».