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

Предупреждение

В версии 6.10.2 реализована работа правил качества для атрибутов связи и классификатора.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечания:

  • При работе с исходящими портами правил качества рекомендуется избегать атрибутов типа Кодовый/Альтернативно кодовый. Значения являются уникальными и не редактируются после первой публикации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Upath-выражения

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

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

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

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

    • Для классификатора последовательно указывается тип объекта (classification), далее через разделитель "|" указывается имя классификатора (industrial_machine), его версия (machine) и необходимый узел (milling), затем в конце - атрибут (type). Пример: "classification:industrial_machine|machine|milling:{}.type".

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