Добавление правила поиска похожих контрагентов на странице лида.

Добрый день!
В разделе "Лиды" в привязанных контрагентах отображаются похожие контрагенты. Стандартный функционал подбирает похожих по правилу (из документации https://academy.terrasoft.ru/documents/marketing/7-9/chasto-zadavaemye-v...):
"Похожим считается контрагент, у которого:
Значение поля [Название контрагента] на странице лида совпало со значением поля [Название контрагента] на странице контрагента.
Значения полей [Название контрагента] и [Страна] на странице лида совпадают со значениями полей [Название контрагента] и [Страна] на странице контрагента."
То есть сравниваются поля Name из Account и Account из Lead. Мне необходимо добавить правило поиска похожих при совпадении ИНН. В лидах и контрагентах я добавила поле UsrInn.
В базе есть хранимая процедура, которая занимается поиском похожих tsp_FindAccountSimilarRecords. Создала копию этой процедуры и вместо DECLARE @accountNameColumn sysname = 'Name' поставила DECLARE @accountNameColumn sysname = 'UsrInn'. Но скорее всего это только указание поля для сравнения в контрагенте. Где указанна колонка для лида, мне найти не удалось. Знаний в sql у меня не много, но предполагаю, что необходимо выполнить еще какую то регистрацию добавления правил похожих.
Так же была написана отдельная хранимая процедура для сравнения UsrInn в лидах и контрагентах, выдающая похожих контрагентов. Но где то определенно нужна регистрация этого правила.
Кто нибудь сталкивался с подобным? Или, возможно, у кого то есть мысли по поводу решения данной задачи?

Нравится

5 комментариев

Добрый день!

Сперва необходимо добавить запись в таблицу DuplicatesRule, указав Name, IsActive и ObjectId аналогично уже существующим правилам.

В tsp_FindAccountSimilarRecords необходимо сделать следующее:
1. объявить своё правило аналогично @AccountNameRule, указав id записи, которую добавили в DuplicatesRule
2. объявить пользовательское поле аналогично @accountNameColumn
3. в @accountRulesConfig добавить запись для своего правила аналогично существующим правилам.

Добрый день!
Можете рассказать поподробнее о третьем пункте? Я объявила новое правило @InnRule и пользовательское поле @accountInnColumn, но мне не понятно, что именно описывают правила в @accountRulesConfig. В таком виде не работает:
(@InnRule, @accountSchemaName, NULL, @accountInnColumn, @baseNormalizeFn + '(##VALUE##,''' + @nameNormalizePattern + ''')', @accountCleanDataSchemaName)

Добрый день!

Для того, чтобы ваше правило поиска работало, вам так же нужно переопределить SimilarLeadSearchHelper.cs из пакета CoreLead. Именно этот исходный код на сервере отвечает за генерацию XML, который описывает ваш текущий лид для обработки в процедуре.

Вам нужно создать новый Исходный код в Конфигурации и заполнить его по примеру(прикрепляю .txt)

P.S. Конкретно для ИНН лучше написать фильтр вида:
@innNormalizePattern nvarchar(12) = N'0-9'
и правило описать как:
(@InnRule, @accountSchemaName, NULL, @accountInnColumn, @baseNormalizeFn + '(N##VALUE##,N''' + @innNormalizePattern + ''')', NULL)

Добрый день!
Большое спасибо, все работает!

Тот же самый кейс, но, к сожалению, после обновления форума нет возможности скачать пример, как переопределить SimilarLeadSearchHelper.cs. Может у кого-то из участников сохранился этот файл? Или быть может кто-то сталкивался с подобным кейсом и может подсказать?!

Показать все комментарии