В Comindware Business Application Platform можно настроить визуальное отображение этапов процесса с помощью шевронов.
В этой статье представлен пример настройки приложения для отображения прогресса открытия магазина в виде цветных шевронов пройденных этапов.
Определения
Шевроны — это представление атрибута типа «Запись», хранящего несколько значений, в виде последовательности цветных плашек с заголовками записей связанного шаблона.
Каждый шеврон содержит заголовок связанной с ним записи в виде гиперссылки на запись.
Конечный пользователь может нажимать шевроны для просмотра связанных с ними записей во всплывающем окне.
Цвет шеврона можно задать двумя способами:
с помощью системного атрибута «Цвет» связанной записи;
Имеется процесс открытия магазина, состоящий из семи этапов.
Требуется настроить на форме магазина отображение прогресса пройденных этапов открытия в виде цветных шевронов.
Цвет шевронов должен зависеть от статуса прохождения этапа:
этап пройден с задержкой — красный;
этап пройден вовремя — зелёный;
этап начат — оранжевый;
этап не начат — серый.
Логика работы приложения
Для реализации прикладной задачи мы создадим следующие сущности (см. «Исходные данные»):
шаблон записи «Магазины», в котором будут храниться сведения о магазинах;
справочник этапов открытия магазинов — шаблон записи, который будет хранить записи с названиями и номерами этапов;
шаблон записи «Этапы», в котором будут храниться данные о прогрессе открытия каждого магазина:
при запуске процесса «Открытие магазина» магазина стандартный набор этапов открытия магазина заполняется автоматически с помощью процесса «Копирование этапов из справочника»;
этапы открытия конкретного магазина можно переименовать, добавить или удалить.
шаблон процесса «Копирование этапов из справочника», который будет создавать запись в шаблоне «Этапы» и копировать в неё название и номер этапа из справочника этапов;
шаблон процесса «Открытие магазина», который будет вызывать процесс «Копирование этапов из справочника» для каждого этапа из справочника, чтобы скопировать названия и номера этапов в список этапов открытия конкретного магазина. Кроме того, в каждый этап открытия магазина процесс поместит ссылку на соответствующий этап в справочнике.
На форме «Прогресс открытия магазина» в шаблоне «Магазины» мы разместим шевроны, связанные с шаблоном записи «Этапы».
Пользователь может указать прогресс выполнения каждого этапа с помощью формы «Прогресс открытия магазина».
Шевроны на форме «Прогресс открытия магазина» будут окрашиваться в соответствии с прогрессом выполнения соответствующих этапов.
Исходные данные
Создайте приложение «Управление магазинами» и настройте перечисленные ниже шаблоны.
Справочник этапов
Создайте шаблон записи«Справочник этапов» с системным именемSpravochniketapov.
Создайте следующие атрибуты в этом шаблоне:
Название атрибута
Свойства
Название этапа
Тип данных: текст
Формат отображения:обычный текст
Использовать как заголовок записей: флажок установлен
Номер этапа
Тип данных: число
Количество знаков после запятой: 0
В шаблоне создайте записи со следующими данными:
Название этапа
Номер этапа
Оценка
1
ИК 1
2
ИК 2
3
Договор
4
УФРС
5
Предв. подготов. к откр.
6
АПП
7
Шаблон записи «Этапы»
В этом вспомогательном шаблоне будут хранится скопированные из Справочника этапов данные об этапах для каждой записи в шаблоне «Магазины».
Создайте шаблон записи«Этапы».
Создайте в шаблоне «Этапы» следующие атрибуты:
Название атрибута
Свойства
Название этапа
Тип данных: текст
Формат отображения:обычный текст
Использовать как заголовок записей: флажок установлен
Номер этапа
Тип данных: число
Количество знаков после запятой: 0
Этап начат
Тип данных: логический
Системное имя:Etapnachat
Этап пройден
Тип данных: логический
Системное имя:Etapproyden
Этап пройден вовремя
Тип данных: логический
Системное имя:Etapproydenvovremya
Этап из справочника
Тип данных: запись
Формат отображения:гиперссылка
Связанный шаблон: Справочник этапов
Хранить несколько значений: флажок снят
Взаимная связь с атрибутом:не используется
Шаблон процесса «Копирование этапов из справочника»
Этот вспомогательный шаблон будет служить для передачи данных из шаблона «Этапы» в процесс «Открытие магазина».
Создайте шаблон процесса со следующими свойствами:
Название: Копирование этапов из справочника
Связь с шаблоном записи: с имеющимся
Связанный шаблон: Этапы
Откройте вкладку «Диаграмма»
Постройте простой процесс, состоящий из двух элементов: начального события и конечного события.
В меню элемента начального события выберите пункт «Сценарий на выходе».
Создание сценария на выходе из начального события процесса «Копирование этапов из справочника»
В свойствах действия «Изменить значения атрибутов» настройте таблицу изменения значений атрибутов следующим образом:
Атрибут
Операция со значениями
Значение
Название этапа
Заменить
Этапы → Название этапа
Номер этапа
Заменить
Этапы → Номер этапа
Должен получиться сценарий, показанный на следующей иллюстрации:
Сценарий для изменения значений атрибутов на выходе из начального события процесса «Копирование этапов из справочника»
Чтобы вернуться из конструктора сценария к конструктору диаграммы процесса, нажмите кнопку «Назад» в браузере.
Проверьте и опубликуйте диаграмму процесса «Копирование этапов из справочника».
Шаблон записи «Магазины»
Создайте шаблон записи«Магазины».
Создайте в шаблоне «Магазины» следующие атрибуты:
Название атрибута
Свойства
Название магазина
Тип данных: текст
Формат отображения:обычный текст
Этапы открытия магазина
Тип данных: запись
Формат отображения:гиперссылка
Связанный шаблон: Этапы
Хранить несколько значений: флажок установлен
Взаимная связь с атрибутом:с новым
Свойства нового атрибута:
Название: Магазин
Хранить несколько значений: флажок снят
Шаблон процесса «Открытие магазина»
Создайте шаблон процесса со следующими свойствами:
Название: Открытие магазина
Связь с шаблоном записи: Связать с существующим
Связанный шаблон: Магазины
Настройка шаблона процесса «Открытие магазина»
Мы настроили заполнение данных по этапам, и теперь необходимо настроить вызов нашего процесса копирования
Откройте шаблон процесса «Открытие магазина».
Откройте вкладку «Диаграмма».
Перетащите на диаграмму элемент «Вызов процесса» (рекомендуется сразу после начального события).
В меню элемента выберите пункт «Свойства» .
Отобразится окно «Свойства вызова процесса»
На вкладке «Основные» настройте параметры следующим образом:
Экспертные настройки: установите флажок
Шаблон для выборки объектов:Справочник этапов
Выражение для выборки объектов:from a in db->Spravochniketapov select a->id (выражение вернёт ID записей в справочнике этапов, по количеству которых будет запущен подпроцесс)
Режим выполнения: параллельный
Связь шаблона записи с процессом:через атрибут
Шаблон процесса:Копирование этапов из справочника
Записи, связанные с процессом: создавать новые
Атрибут связи:Этапы открытия магазина → Этап из справочника (в этот атрибут будет записываться IDэтапа из справочника, возвращённый выражением для выборки объектов, для каждой созданной записи в шаблоне «Этапы»).
Настройка вызова процесса «Копирование этапов из справочника»
Выберите вкладку «Данные на входе».
Нажмите на кнопку «Добавить» и настройте сопоставление атрибутов подпроцесса и текущего процесса:
Атрибут шаблона записи подпроцесса: Магазин
Значение: ID
В результате каждая запись, созданная процессом «Копирование этапов из справочника» будет связана с записью в шаблоне «Магазин», и благодаря взаимной связи в атрибуте «Этапы открытия магазина» будет записан набор идентификаторов записей из шаблона «Этапы».
Сохраните свойства элемента «Вызов процесса».
Проверьте и опубликуйте диаграмму процесса.
Настройка шевронов на форме «Прогресс открытия магазина»
Если для одной записи одновременно сработают несколько правил, возвращающих разные цвета, то шеврон будет окрашен в цвет, заданный последним сработавшим правилом.
Правил окраски шевронов может быть неограниченное количество, но для оптимальной работы платформы рекомендуется задавать не более 8 условий.
Следует помнить, что условие окрашивания шеврона вычисляется в контексте шаблона, связанного с текущим шаблоном посредством с атрибута типа «Запись». Поэтому обратиться к атрибутам текущего шаблона, на форме которого размещены шевроны, можно только посредством обратной ссылки. Например, к атрибуту «Название магазина» можно обратиться посредством атрибута «Магазин» из шаблона «Этапы»:$Magazin->Nazvaniemagazina.
Снова перетащите атрибут «Этапы открытия магазина» в область «Прогресс открытия магазина».
На панели «Свойства поля» выберите представление «Таблица».
В поле «Сортировка» на панели «Свойства таблицы» выберите атрибут «Номер этапа».
Вынесите в таблицу «Этапы открытия магазина» следующие атрибуты шаблона «Этапы» в качестве столбцов:
Магазин
Номер этапа
Название этапа
Этап начат
Этап пройден
Этап вовремя
Сохраните форму.
Настроенная форма «Прогресс открытия магазина»
Проверка работы приложения
Откройте шаблон процесса «Открытие магазина».
Нажмите кнопку «Перейти к экземплярам».
Отобразится таблица «Все записи» со списком экземпляров процесса.
Создайте новый экземпляр процесса.
Подождите некоторое время, чтобы процесс выполнился.
Обновите список экземпляров, нажав кнопку «Обновить список» .
Статус процесса должен смениться на «Завершен».
Из списка экземпляров процесса перейдите к связанной записи шаблона «Магазины» по ссылке в столбце «Запись».
Отобразится настроенная форма «Прогресс открытия магазина».
Расставьте флажки в таблице «Этапы открытия магазина».
Цвета шевронов должны меняться в зависимости от состояния флажков «Этап начат», «Этап пройден», «Этап пройден вовремя»:
серый цвет — установлен флажок «Этап начат»;
зелёный цвет — установлены все три флажка;
красный цвет — установлены флажки «Этап начат» и «Этап пройден».