Данная статья описывает особенности и подходы к проведению настроек блока Управление типами элементов
Данный блок настроек предполагает
- Создание / корректировка типов элементов, в т.ч. шаблонов процессов
- Наполнение типа элемента атрибутами
- Создание / корректировка параметров атрибутов
- Настройки отображение атрибутов на экране
Работа с типами элементов
Тип элемента - обязательный элемент настройки любого списка системы, он определяет вид и содержание строки записи списка
1. Тип элемента определяет набор свойств (атрибутов) конкретной записи списка
2. В одном списке может быть несколько Типов элементов. Это означает, что в списке могут быть записи разного типа, с разными наборами свойств
НАПРИМЕР, в списке задач содержаться записи по задачам из процессов, по замечаниям, задачам из графиков ПИР. Каждый из вид задач должен описываться разными атрибутами, поэтому под каждый вид задачи в системе создан отдельный Тип элемента, который содержит свой набор атрибутов
3. Списки могут состоять из иерархии записей - в этом случае для записей, которые могут содержать внутри вложения, создаются Типы элементов с меткой "Папка"
НАПРИМЕР, в списке-библиотеке для документации проекта, можно заложить разные типы записей-папок, чтобы делать иерархию и видеть на каждом уровне свой набор свойств.
В базовой настройке системы в списке - библиотеке "Файлы" настроены следующие типы записей (Типы элементов):
- Проект (папка)
- Стадия (папка)
- Комплект (папка)
- Файл проекта (не папка - тип элемента с атрибутами для добавленного файла)
4. При создании и настройке Типа элемента выполняется:
- Обязательно
- Именование типа
- Определение будет этот тип папкой или нет
- Прикрепление атрибутов и определение их поведения для записей данного типа
- Не обязательно
- Смена карточки представления (отображения) информации о записи списка данного типа
По умолчанию всегда выставлен базовый вид отображения, в большинстве случаев его можно не менять - Подключение изображения (иконки), которое будет выделять записи данного типа в общем списке значений списка
- Настройка вычислений для заполнения атрибутов данного типа элемента
- Настройка валидаторов (правил блокировки) для записей данного типа
- Настройка автоматизации - автоматических событий в системе при смене статуса данного типа элемента, если у записи предусмотрен статус
- Смена карточки представления (отображения) информации о записи списка данного типа
5. Список всех типов элементов в системе носит иерархический характер.
На самом верхнем уровне - обязательный системный уровень - тип элемента "Элемент"
ВНИМАНИЕ: любые новые типы элементов должны создаваться внутри этого верхнего уровня - типы элемента "Элемент"
Уровнем ниже тоже есть группировка типов элементов. Обязательные группы, куда должны быть помещены новые типы элементов схожего назначения и смысла:
- Файл
- Задача
- Процесс
Работа с атрибутами типов элементов
Атрибуты при настройке Типа элемента
Один из важнейших шагов в настройке Типа элемента - подбор атрибутов для него из списка созданных ранее в системе атрибутов
Если нужного атрибута для Типа элемента, его сначала надо создать, а потом подключить к типу элемента
При добавлении атрибутов к Типу элемента для каждого из них надо определить
- Будет ли этот атрибут в данном типе записи доступен пользователям для ручного заполнения/корректировки? Если нет, то на атрибуте ставится метка "Только для чтения"
- Будет ли атрибут обязательным для заполнения? - ставится метка "Обязательно к заполнению"
- Надо ли контролировать на закладке Активность изменения данного атрибута? Если да, то ставится метка "Отображать в активности"
Типы данных в атрибутах
Атрибуты в Системе создаются в системе с использованием следующих типов данных:
- Многострочный текст - для хранения многострочного текста. Тип столбца в базе данных: TEXT
- Однострочный текст - для хранения однострочного текста. Максимальная длина: 255 символов. Тип столбца в базе данных: VARCHAR(255)
- Число - для хранения целых чисел. Тип столбца в базе данных: INTEGER
- Дата - для хранения даты. Тип столбца в базе данных: TIMESTAMP WITHOUT TIME ZONE
- Время - для хранения времени. Тип столбца в базе данных: TIMESTAMP WITHOUT TIME ZONE
- Флаг - для хранения булевского значения (да/нет). Тип столбца в базе данных: BOOLEAN
- Ссылка на элемент списка - для хранения элементов, которые заданы в другом списке. Тип столбца в базе данных: UUID
- Десятичное дробное число - для хранения дробных чисел. Используется для хранения точных значений. При сложении таких чисел не возникает ошибок, связанных с округлением. Точность: 4 знака после запятой. Тип столбца в базе данных: DECIMAL(18,4)
- Число с плавающей точкой - для хранения дробных чисел. Точность: 15 знаков после запятой. Тип столбца в базе данных: DOUBLE PRECISION
- Уникальный идентификатор - для хранения GUID'ов. Тип столбца в базе данных: UUID
- Данные в json формате - для хранения данных в формате JSON. Тип столбца в базе данных: JSONB
- Изображение - ссылка на картинку. Тип столбца в базе данных: UUID
- Ссылка - для хранения URL. Тип столбца в базе данных: JSONB в формате {"name":"текст ссылки", "uri":"ссылка"}
- Вложения - ссылки на тела файлов. Тип столбца в базе данных: UUID[]
Подходы к проектированию атрибутов для типа элемента
При принятии решения, какие атрибуты следует подключать к конкретному Типу элемента для конкретного списка, следует придерживаться следующих подходов:
1. Предусмотреть атрибуты для
- Получение срезов информации для анализа и отчетов, НАПРИМЕР
- Контроль этапов жизненного цикла (файла/задачи/процесса/проекта) – атрибут «Статус»
- Выборка по загрузке файлов одним сотрудником – атрибут «Изменил»
- Использования в фильтрации и сортировке, НАПРИМЕР, сортировка задач по убыванию – атрибут «Порядковый номер» (колонка «ИД»)
- Для передачи данных из системы в файл (например, в основную надпись чертежа или пояснительной записки) – тогда данные должны быть как отдельные атрибуты, заполняемые по ГОСТу
НАПРИМЕР, название папки 05.2_ИОС2, шифр раздела для передачи в штамп 5.2 ИОС 2 – в отдельном атрибуте «Шифр» у папки с типом «Раздел» - Для организации логических правил выполнения автоматизированных процессов в системе
НАПРИМЕР, если в ходе согласования в системе для файлов рабочей документации нужно проставление штампов, а для файлов проектной документации – не нужно, то система должна отличать эти папки не по названию, а по типу или атрибуту
- Получение срезов информации для анализа и отчетов, НАПРИМЕР
2. Выбрать для атрибутов оптимальный тип данных (текст, число, дата, флажок, значение из справочника, ссылка и пр.)
НАПРИМЕР, атрибут «Номер по порядку» можно сделать как целое число (поле нельзя будет заполнить текстом), а атрибут «Номер раздела» лучше делать текстовым, т.к. оно может содержать ноль впереди, цифры через точку для подразделов и пр.
НАПРИМЕР, атрибут «Шифр раздела» может быть сделан как текст (люди могут писать по-разному и ошибаться – сложности в фильтрации), а может быть выбором из справочника (этот справочник надо создать, заполнить значениями и поддерживать в актуальном состоянии)
3. Важна последовательность получения и заполнения информации
4. Минимизация ручного ввода – минимальное (атрибуты, которые никто не будет заполнять, - не нужны), но необходимое количество атрибутов
5. Выделить атрибуты, которые можно заполнить автоматически, исходя из уже имеющихся данных в системе
НАПРИМЕР, атрибут «Подразделение исполнителя» в задаче для получения выборки всех задач подразделения можно заполнять автоматически путем вычисления при проставлении Исполнителя задачи
РЕКОМЕНДАЦИЯ: решения по составу типов папок и их атрибутов, а также нужных для атрибутов справочников, записать в рабочем варианте Техпроекта на настройки (пример описания см. по ссылке)