Назначение правил сопоставления

Во вкладке "Назначение правил" идет привязка сконфигурированных ранее таблиц сопоставления и наборов правил к конкретным атрибутам/связям реестров/справочников (Рисунок 1).

Вкладка "Назначение правил"

Рисунок 1 – Вкладка "Назначение правил"

Назначение правил

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

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

  2. Нажмите кнопку image1 Добавить и выберите необходимый реестр/справочник из перечня существующих.

    • Для назначения правил на справочник - кнопка справа от заголовка Справочники, для назначения правил на реестр - справа от заголовка Реестры.

    • Кнопка становится недоступной если уже были использованы все доступные таблицы сопоставления (наборы для выбранной таблицы).

    • Ограничение: правила сопоставления невозможно назначить на реестр, содержащий связи типа "Включение" - при попытке сохранения отобразится системная ошибка.

  3. В результате действия откроется выдвижная панель с параметрами назначения (Рисунок 2).

  4. В поле Таблица выберите таблицу сопоставления из списка ранее созданных, к которой далее будет привязан набор правил.

    • При добавлении таблицы сопоставления автоматически будет выбран первый доступный набор правил (для ограничения возможности сохранения таблицы без набора). Если таблица содержит только один набор правил - он будет недоступен для удаления, кнопка удаления будет неактивна.

    • Если таблица не содержит наборов правил - она не отображается в выпадающем списке.

    • При необходимости добавления еще одной таблицы нажмите кнопку image1 Добавить справа от заголовка Назначения. Используйте кнопку Удалить, чтобы стереть лишние таблицы.

  5. В результате действия ниже отобразится перечень колонок сопоставления таблицы и набор правил, который можно назначить на эту таблицу.

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

    • При необходимости можно изменить вид текста, нажав кнопку image3 Сменить вид. Путь нахождения атрибута, например, для реестра должен иметь вид: Реестр:Имя реестра:{}.Имя атрибута.

    • Для сравнения записей по связям необходимо указать поле вида relation:name_of_relation1:{}.$from_etalon_id для Входящей связи или поле вида relation:name_of_relation1:{}.$to_etalon_id для Исходящей связи; где name_of_relation1 - системное имя связи.

    • Для сравнения записей по атрибутам узлов классификаторов необходимо следовать синтаксису Upath-выражений - подробнее см. ниже.

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

    • Изменение порядка расположения наборов правил доступно при помощи кнопки image2. Нажмите и удерживайте кнопку, чтобы перетащить набор в необходимое место.

  8. В поле "Набор правил" выберите необходимый набор правил из выпадающего списка доступных для этой таблицы наборов.

  9. При необходимости используйте переключатель "Автоматическая консолидация" вверху таблицы для активации автоматического объединения дублирующихся записей выбранного реестра/справочника, которая будет выполняться при создании/изменении записи через интерфейс пользователя.

  10. Нажмите "Сохранить" после заполнения всех параметров и опубликуйте черновик.

Назначение при наличии данных. Если новые правила создаются и назначаются в системе, где уже присутствуют записи реестров/справочников, то рекомендуется переиндексировать данные таблиц сопоставления. Без переиндексации могут быть ошибки отображения дубликатов. Для переиндексации используйте:

  • Либо операцию переиндексации данных (reindexDataJob). Особенности reindexDataJob: можно выбирать, записи каких реестров/справочников будут индексироваться.

  • Либо операцию сопоставления данных (matchingJob). Особенности matchingJob: можно выбирать, по каким наборам будут индексироваться записи. Дает более подробное уведомление.

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

Даже если набор правил не назначен на реестр/справочник, но добавлен в операцию "Задача сопоставления" (matchingJob), то при выполнении операции этот набор правил все равно будет обрабатываться. Это связано с тем, что правила сопоставления работают с абстрактной таблицей матчинга, и это следует учитывать при настройке правил сопоставления

Отмена назначения

Чтобы удалить назначение правил на реестр/справочник:

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

  • В крайнем левом столбце отметьте галочкой строку с необходимым реестром/справочником (одну или несколько).

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

  • Подтвердите или отмените действие.

Совет

Удаление назначенных правил сопоставления происходит в обратном порядке по вкладкам: Назначение правил → Наборы правил → Правила сопоставления → Таблицы сопоставления

Параметры назначения правил

Рисунок 2 – Параметры назначения правил

Upath-выражения для атрибутов узлов классификаторов

В системе доступно сравнение записей по атрибутам узлов классификаторов:

  • По конкретному атрибуту заданного узла с заданной версией и конкретным классификатором;

  • По конкретному атрибуту конкретного узла любой версии заданного классификатора;

  • По наследуемому атрибуту любого подмножества узлов, содержащих этот наследуемый атрибут:

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

    • Если выбирается колонка с другим типом, то будет выбираться только одно случайное значение одного из узлов, которым классифицирована запись.

Для сравнения записей по атрибутам узлов классификаторов необходимо:

  1. Укажите пространство имен classification.

  2. Далее выберите режим: стандартный (по умолчанию) или расширенный.

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

  3. В расширенном режиме выберите необходимый фильтр. Наведите курсор на значок image4, чтобы увидеть подробное описание фильтра.

  4. После указания фильтра выберите имя классификатора, его версию и узел.

    • Далее для фильтра byInhAttr выберите наследуемый атрибут, после чего выберите нужную команду и закройте фильтр. Подробное описание команды доступно при наведении курсора на значок image4. Закрытие фильтра приведет к окончанию его редактирования, а выбранный в команде "attr" атрибут автоматически добавится в конец части Path.

    • Для фильтра anyVersion - закройте фильтр и выберите нужный атрибут.

    • Список доступных на конкретном этапе команд формируется согласно графу команд.

Фильтры пространства имен classification

  1. byInhAttr - фильтр по узлам с указываемым наследуемым атрибутом.

    Фильтр описывает подмножество узлов классификатора в древовидной иерархии узлов, задаваемой наследуемым атрибутом конкретного узла конкретной/любой версии конкретного классификатора. Узел считается входящим в множество, определяемое фильтром, если он включен хотя бы одной командой и не исключен ни одной командой.

    Список команд:

    • clsf, version, node, attr (имена классификатора, версии, узла, наследуемого атрибута, имя версии опционально - при его отсутствии подходит любая версия, где есть такой узел и с таким атрибутом)

    • +down, +up, +node (включает узлы вниз по дереву, узлы вверх по иерархии, конкретный узел)

    • -down, -up, -node (исключает узлы вниз по дереву, узлы вверх по иерархии, конкретный узел)

    Граф команд:

    • $startclsf

    • clsfversion, node

    • versionnode

    • nodeattr

    • attr+down, +up, +node

    • +down, +up, +node, -down, -up, -node+down, +up, +node, -down, -up, -node, $end

  2. anyVersion - фильтр по узлу любой версии.

    Фильтр выбирает узлы с указанным именем любой версии указанного классификатора.

    Список команд:

    • clsf, node

    Граф команд:

    • $startclsfnode$end

Ограничения и примечания в фильтрах:

  • Отображаемые значения узлов и атрибутов не могут быть сгенерированы для фильтров, в которых не указана версия классификатора. Это связано с тем, что у разных версий могут существовать разные узлы и атрибуты. Отображаемые значения будут указаны только для тех частей UPath, которые явно заданы через интерфейс: пространство имен и классификатор.

  • Если в фильтрах не указана версия классификатора, селектор узла будет состоять из двух частей: 1) выбор версии; 2) выбор узла. При этом выбранная версия не будет фигурировать в самом UPath. Это необходимо для обеспечения возможности выбора узла через селектор, а не с помощью ручного ввода.

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

  • Также см. подробнее о REST API пространства имен.

Примеры UPath-выражений

  1. Пример UPath-выражения с выбором атрибута attr узла node версии version классификатора clsf: classification:clsf|version|node:{}.attr.

  2. Пример выбора атрибута myAttr узла node1 любой версии классификатора myClsf: classification:?{anyVersion:clsf=myClsf;node=node1}:{}.myAttr.

  3. Пример выбора наследуемого атрибута myAttr из узла node1 в любом наследующем этот атрибут узле в версии v1 классификатора myClsf: classification:?{byInhAttr:clsf=myClsf;version=v1;node=node1;attr=myAttr;+down=node1}:{}.myAttr.

В примерах 2 и 3 используются фильтры имени типа - вместо typeName в паре namespace:typeName в UPath можно указать фильтр типа имени:

  • Если фильтр требует какие-либо команды:

    namespace:?{filterName:cmd1=value1;cmd2=value2
    
  • Если фильтр не требует команд:

    namespace:?{filterName:}
    namespace:?{filterName}
    

У каждого namespace свой список доступных фильтров. У каждого фильтра свой список команд и определенный порядок последовательности команд, задаваемый графом команд.