Наборы правил качества

Создание набора

Чтобы создать набор правил:

  1. Убедитесь, что включен режим черновика.

  2. Убедитесь, что в разделе "Качество данных" активна закладка "Наборы правил".

  3. Нажмите кнопку image1 "Создать набор", расположенную в правой части заголовка таблицы.

  4. В результате действия откроется выдвижная панель с настройками нового правила.

  5. Заполните основные настройки:

    • Имя. Логическое имя набора.

    • Отображаемое имя. Имя, которое будет отображаться пользователям.

    • Описание. Опционально. Дополнительная информация о наборе.

  6. Укажите состав правил качества в наборе:

    • Правило. Выпадающий список с правилами качества.

    • Контекст. Контекст выполнения для выбранного правила. Использует выражение Upath, где задаются объекты системы, для которых будет применяться выбранное правило. Подробнее о Upath-выражениях см. ниже

    • Входящие порты правила качества. Позволяют выбирать атрибут/запись, для которых будет выполняться правило качества. Состав параметров порта зависит от выбранного правила качества и функции, которая была задана в этом правиле.

      • Выбрать атрибут - задание атрибутов в виде Upath-выражения (описание см. ниже).

      • Задать константу - задание одиночного значения константы или в некоторых случаях - массива значений.

    • Исходящие порты правила качества. Позволяют выбирать атрибут/запись, в которые будут выгружаться результаты выполнения правила качества. Заполняются по правилам, аналогичным Входящим портам. Исходящие порты доступны для редактирования, только если в правиле качества включен режим "Обогащение".

  7. При необходимости добавьте одно или несколько правил качества в набор. Нажмите кнопку "Добавить", расположенную в правой части заголовка настроек набора.

  8. Чтобы сменить порядок выполнения правил качества, используйте стрелки вверх и вниз. Правило, которое находится вверху, будет запускаться первым. Для удобства области с правилами качества можно свернуть кликом по заголовку.

  9. При необходимости удалите правило качество из набора. Нажмите кнопку "Удалить", расположенную в правой части строки "Правило" соответствующего правила.

  10. Сохраните изменения. Нажмите кнопку "Сохранить", расположенную в верхнем правом углу выдвижной панели.

  11. Далее перейдите в закладку Назначение правил для назначения правил качества на объекты системы.

  12. После того как все данные введены и сохранены, опубликуйте черновик.

Пример заполнения свойств нового набора правил

Рисунок 1 – Пример заполнения свойств нового набора правил

Редактирование набора

Редактирование доступно для каждой закладки в разделе "Правила качества".

Для редактирования:

  1. Перейдите в закладку "Наборы правил".

  2. Выберите требуемую строку в списке.

    • В результате откроется выдвижная панель. Некоторые поля, например, логическое имя, будут недоступны для изменения.

    • Внесите изменения.

    • Сохраните изменения. Нажмите кнопку "Сохранить", расположенную в правом верхнем углу выдвижной панели.

  3. После того как все данные введены и сохранены, опубликуйте черновик.

Удаление набора

Удаление доступно для каждой закладки в разделе "Правила качества".

Для удаления в закладке "Наборы правил":

  1. В списке правил отметьте флагом требуемые правила.

  2. Кнопка "Создать набор" сменится на кнопку "Удалить". Нажмите кнопку.

  3. Подтвердите действие и опубликуйте черновик.

Upath-выражения

Upath-выражения используются в следующих параметрах набора правил: Контекст выполнения, Входящие и Исходящие порты.

  • Контекст выполнения. Позволяет задавать область применения для входящих портов: Типы активов, Справочники, Связи.

  • Входящие и Исходящие порты. Позволяют уточнять и задавать конкретные атрибуты или запись целиком, типы активов, справочники, связи. Возможна любая глубина вложенности.

    • Для комплексного атрибута необходимо выбрать вложенные в него атрибуты, поскольку выбор комплексного атрибута целиком недоступен.

Кнопка image2 "Сменить вид" позволяет переключаться между 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 (последний содержит лишние пробелы в начале и конце значения) - пробелы будут удалены за счет отработки правила обогащения.