[ELMA3] Реализация скоринга дублей для различных объектов

В системе доступен поиск возможных дубликатов объектов. По умолчанию создана референсная реализация для типа ContractorLegal. Однако дополнительно может быть реализован скоринг дублей различных объектов.

Для реализации скоринга по какому-либо объекту необходимо выполнить следующие действия.

  1. Создать 3 класса, унаследовав их от соответствующих компонентов и переопределив методы:
    • AbstractDuplicateHandler – содержит один переопределяемый метод, возвращающий UID объекта, для которого мы реализуем скоринг;
    • AbstractScoringSettings – содержит метод GetPossibleDuplicatesUids(), возвращающий список UID объектов, среди которых будет осуществляться поиск совпадений, поле TypeUid, возвращающий GUID проверяемого объекта и ScoringSettingsString, возвращающее строку-ключ, по которому настройки скоринга будут храниться в базе;
    • AbstractScoringStepSettings – содержит метод Check (Guid typeUid), позволяющий проверить совпадение входящего GUID с GUID проверяемого объекта, а также поле ScoringStepString, содержащее строку-ключ, по которому настройки шагов будут храниться в базе.
  2. В веб-приложении требуется перейти в настройки скоринга дублей для определенного объекта (Администрирование – Базовые приложения – Глобальные настройки скоринга – "Объект") и осуществить настройку полей для скоринга и шагов скоринга. Подробнее о настройке скоринга дублей см. в справке по системе.
  3. В дизайнере ELMA требуется добавить на форму просмотра данного объекта элемент конструктора форм Панель скоринга. Подробнее об элементе Панель скоринга см. в справке по системе.
  4. При необходимости поддержки сравнения для отдельных типов полей необходимо создать реализацию точки расширения IPropertyDuplicateFilter, в которой требуется реализовать свой сценарий сравнения в методе GetDuplicatesForProperty() и проверку на тип поля в методе Check().