Наборы правил качества¶
Предупреждение
В версии 6.10.2 реализована работа правил качества для атрибутов связи и классификатора.
Создание набора¶
Чтобы создать набор правил:
Убедитесь, что включен режим черновика и выбран черновик.
Убедитесь, что в разделе "Качество данных" активна закладка "Наборы правил".
Нажмите кнопку Создать набор, расположенную в правой части заголовка таблицы.
В результате действия откроется выдвижная панель с настройками нового правила.
Заполните основные настройки:
Имя. Логическое имя набора.
Отображаемое имя. Имя, которое будет отображаться пользователям.
Описание. Опционально. Дополнительная информация о наборе.
Укажите состав правил качества в наборе:
Правило. Выпадающий список с правилами качества.
Контекст. Контекст выполнения для выбранного правила. Использует выражение Upath, где задаются объекты системы, для которых будет применяться выбранное правило. Подробнее о Upath-выражениях см. ниже
Входящие порты правила качества. Позволяют выбирать атрибут/запись, для которых будет выполняться правило качества. Состав параметров порта зависит от выбранного правила качества и функции, которая была задана в этом правиле.
Выбрать атрибут - задание атрибутов в виде Upath-выражения (описание см. ниже).
Задать константу - задание одиночного значения константы или в некоторых случаях - массива значений.
Исходящие порты правила качества. Позволяют выбирать атрибут/запись, в которые будут выгружаться результаты выполнения правила качества. Заполняются по правилам, аналогичным Входящим портам. Исходящие порты доступны для редактирования, только если в правиле качества включен режим "Обогащение".
Примечания:
При работе с исходящими портами правил качества рекомендуется избегать атрибутов типа Кодовый/Альтернативно кодовый. Значения являются уникальными и не редактируются после первой публикации.
При необходимости добавьте одно или несколько правил качество в набор. Нажмите кнопку Добавить, расположенную в правой части заголовка настроек набора. При добавлении нового правила, в окне набора правил, происходит автоматическая прокрутка.
Правило, находящееся сверху, запускается первым. Чтобы изменить порядок выполнения правил качества, используйте стрелки вверх и вниз. Области с правилами качества для удобства можно свернуть кликом по заголовку.
При необходимости удалите правило качество из набора. Нажмите кнопку Удалить, расположенную в правой части строки "Правило" соответствующего правила.
Сохраните изменения. Нажмите кнопку Сохранить, расположенную в верхнем правом углу выдвижной панели.
Далее перейдите в закладку Назначение правил для назначения правил качества на объекты системы.
После того как все данные введены и сохранены, опубликуйте черновик.
Рисунок 1 – Список наборов правил
Рисунок 2 – Свойства нового набора правил
Редактирование набора¶
Редактирование доступно для каждой закладки в разделе "Правила качества".
Для редактирования:
Перейдите в закладку "Наборы правил".
Выберите требуемую строку в списке.
В результате откроется выдвижная панель. Некоторые поля, например, логическое имя, будут недоступны для изменения.
Внесите изменения.
Сохраните изменения. Нажмите кнопку Сохранить, расположенную в правом верхнем углу выдвижной панели.
После того как все данные введены и сохранены, опубликуйте черновик.
Удаление набора¶
Удаление доступно для каждой закладки в разделе "Правила качества".
Для удаления в закладке "Наборы правил":
В списке наборов правил отметьте флагом требуемые наборы правил.
Кнопка "Создать набор" сменится на кнопку Удалить. Нажмите кнопку.
Подтвердите действие и опубликуйте черновик.
Upath-выражения¶
Upath-выражения используются в следующих параметрах набора правил: Контекст выполнения, Входящие и Исходящие порты.
Контекст выполнения. Позволяет задавать область применения для входящих портов: Справочники, Реестры, Связи, а также Классификации. Контекст заполняется только для фильтрации внутри комплексного атрибута.
Входящие и Исходящие порты. Позволяют уточнять и задавать конкретные атрибуты или запись целиком, реестры, справочники, связи, а также классификаторы, их версии и узлы. Возможна любая глубина вложенности.
Для комплексного атрибута необходимо выбрать вложенные в него атрибуты, поскольку выбор комплексного атрибута целиком недоступен.
Для классификатора последовательно указывается тип объекта (classification), далее через разделитель "|" указывается имя классификатора (industrial_machine), его версия (machine) и необходимый узел (milling), затем в конце - атрибут (type). Пример: "classification:industrial_machine|machine|milling:{}.type".
Кнопка "Сменить вид" позволяет переключаться между 2 видами отображения: вид Upath и человекочитаемый путь атрибута с отображаемыми именами.
Примечания:
В DRAFT фазе автоматически работают только правила валидации, правила обогащения применяются только в ручном режиме.
При перемещении узла классификатора с атрибутом, на который ссылается Upath, потребуется корректировка Upath, чтобы правило продолжило работать.
Синтаксис UPath¶
Принцип построения Upath-выражений:
Имена атрибутов разделяются точками: <комплексный_атрибут>.<вложенный_атрибут>;
[ ] – фильтровать по индексу записи в комплексном атрибуте;
{ } – добавить в порт запись целиком (тип порта: любой или запись);
{имя_атрибута:значение_атрибута} – фильтровать по точному значению вложенного атрибута. Только для комплексных атрибутов.
Значения для фильтрации указываются в зависимости от типа атрибута:
Строковый тип, Перечисление, Ссылка на справочник со строковым кодовым атрибутом: Person_Doc{Doc_Status:'not valid'}.Doc_type
Целочисленный тип: Material{Units:12345}.Height
Численный тип: Material{Width:12.345}.Height
Логический тип: Process{Complete:false}.Result
Дата: Person_Doc{Issue_Date:2010-01-12}.Doc_type
Время: Service{Start_Time:15:32:54}.Certificate
Дата/время: Service{Last_date:2018-04-28T15:32:54}.Certificate
Значения атрибутов: Строковый, Перечисление, Ссылка на справочник (со строковым кодовым атрибутом) обрамляются в одинарные кавычки. Для всех прочих типов значения атрибута кавычки не используются, например, person{birthday:yyyy-mm-ddTHH:mm:ss}
Совет
Пример фильтрации по значению атрибутов: Contact{Contact_Type:'home'} позволяет выбрать коллекцию комплексных атрибутов "Контакты", у которых вложенный атрибут "Тип контакта" имеет значение "Домашний" (тип порта: любой или запись)
Совет
Пример фильтрации по индексу записи: Person_Doc[2].Doc_Series позволяет выбрать коллекцию атрибутов "Серия" из состава комплексного атрибута "Документы" с индексом 2
Для построения более сложных Upath-выражений см. официальную документацию и синтаксис языка выражений MVEL.
Пример фильтрации с учетом условий:
Существует реестр persons, имеющий комплексный атрибут contacts, в составе которого созданы 2 атрибута: contact_type и contact_value.
Для него необходимо создать правило качество с выполнением условия: если атрибут contact_type имеет значение "email", то для атрибута contact_value требуется применить правило обогащения, например, очистка от пробелов.
Upath-выражение будет иметь вид: register:persons:{}.contacts{record.attributes['contact_type'].value == 'email'}.contact_value
где record - это корневой контекст выполнения выражения типа DataRecord.class. Выражение будет выбирать только атрибуты (attributes) с именем contact_value, и только те, у которых атрибут contact_type имеет значение 'email'.
Далее созданный набор правил, содержащий функцию "Удаление пробелов", назначается на реестр persons. При попытке опубликовать запись с заполненным атрибутами: contact_type = email и contact_value = mymail@gmail.com (последний содержит лишние пробелы в начале и конце значения) - пробелы будут удалены за счет отработки правила обогащения.