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