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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Нажмите кнопку "Опубликовать", расположенную в нижней части списка "Модель данных".

  • В открывшемся окне выберите способ публикации: простая или публикация с приоритетом.

  • Подтвердите выбор.

Список наборов правил

Рисунок 1 – Список наборов правил

Свойства нового набора правил

Рисунок 2 – Свойства нового набора правил

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. Подтвердите действие.

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

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