Наборы правил качества¶
Создание набора¶
Чтобы создать набор правил:
Убедитесь, что включен режим черновика.
Убедитесь, что в разделе "Качество данных" активна закладка "Наборы правил".
Нажмите кнопку "Создать набор", расположенную в правой части заголовка таблицы.
В результате действия откроется выдвижная панель с настройками нового правила.
Заполните основные настройки:
Имя. Логическое имя набора.
Отображаемое имя. Имя, которое будет отображаться пользователям.
Описание. Опционально. Дополнительная информация о наборе.
Укажите состав правил качества в наборе:
Правило. Выпадающий список с правилами качества.
Контекст. Контекст выполнения для выбранного правила. Использует выражение Upath, где задаются объекты системы, для которых будет применяться выбранное правило. Подробнее о Upath-выражениях см. ниже
Входящие порты правила качества. Позволяют выбирать атрибут/запись, для которых будет выполняться правило качества. Состав параметров порта зависит от выбранного правила качества и функции, которая была задана в этом правиле.
Выбрать атрибут - задание атрибутов в виде Upath-выражения (описание см. ниже).
Задать константу - задание одиночного значения константы или в некоторых случаях - массива значений.
Исходящие порты правила качества. Позволяют выбирать атрибут/запись, в которые будут выгружаться результаты выполнения правила качества. Заполняются по правилам, аналогичным Входящим портам. Исходящие порты доступны для редактирования, только если в правиле качества включен режим "Обогащение".
При необходимости добавьте одно или несколько правил качества в набор. Нажмите кнопку "Добавить", расположенную в правой части заголовка настроек набора. При добавлении нового правила, в окне набора правил, происходит автоматическая прокрутка.
Чтобы сменить порядок выполнения правил качества, используйте стрелки вверх и вниз. Правило, которое находится вверху, будет запускаться первым. Для удобства области с правилами качества можно свернуть кликом по заголовку.
При необходимости удалите правило качество из набора. Нажмите кнопку "Удалить", расположенную в правой части строки "Правило" соответствующего правила.
Сохраните изменения. Нажмите кнопку "Сохранить", расположенную в верхнем правом углу выдвижной панели.
Далее перейдите в закладку Назначение правил для назначения правил качества на объекты системы.
После того как все данные введены и сохранены, опубликуйте черновик.
Рисунок 1 – Пример заполнения свойств нового набора правил
Редактирование набора¶
Редактирование доступно для каждой закладки в разделе "Правила качества".
Для редактирования:
Перейдите в закладку "Наборы правил".
Выберите требуемую строку в списке.
В результате откроется выдвижная панель. Некоторые поля, например, логическое имя, будут недоступны для изменения.
Внесите изменения.
Сохраните изменения. Нажмите кнопку "Сохранить", расположенную в правом верхнем углу выдвижной панели.
После того как все данные введены и сохранены, опубликуйте черновик.
Удаление набора¶
Удаление доступно для каждой закладки в разделе "Правила качества".
Для удаления в закладке "Наборы правил":
В списке правил отметьте флагом требуемые правила.
Кнопка "Создать набор" сменится на кнопку "Удалить". Нажмите кнопку.
Подтвердите действие и опубликуйте черновик.
Upath-выражения¶
Upath-выражения используются в следующих параметрах набора правил: Контекст выполнения, Входящие и Исходящие порты.
Контекст выполнения. Позволяет задавать область применения для входящих портов: Типы активов, Справочники, Связи.
Входящие и Исходящие порты. Позволяют уточнять и задавать конкретные атрибуты или запись целиком, типы активов, справочники, связи. Возможна любая глубина вложенности.
Для комплексного атрибута необходимо выбрать вложенные в него атрибуты, поскольку выбор комплексного атрибута целиком недоступен.
Кнопка "Сменить вид" позволяет переключаться между 2 видами отображения: вид 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 (последний содержит лишние пробелы в начале и конце значения) - пробелы будут удалены за счет отработки правила обогащения.