Добрый день!



На вновь установленной on-site версии 7.16.2 Sales (PostgreSQL) отсутствует функционал поиска и объединения дублей. На ранее установленной on-site версии 7.14.0 Bank Customer Journey (MSSQL)  данный фунционал присутствовал сразу, без установки дополнительных программ.

Подскажите, нужно ли делать установки, описанные в статье  https://academy.terrasoft.ru/docs/user/razvertyvanie_onsite/nastrojka_konteinernikh_komponentov/massovyj_poisk_dublej/nastroit_massovyy_poisk_dubley , либо функционал поиска и объединения дублей можно добавить стандартными настройками системы (если да, просьба написать какими) 

Нравится

2 комментария

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

 

На MsSql поиск дублей (для разделов контрагенты, контакты и лиды) работал без микросервиса, т.к. происходил через процедуры внутри базы, для PostgreSQL этих процедур к сожалению нет.

Трефилов Павел Сергеевич,

Спасибо за информацию!

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

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

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



Для того чтобы завершить зависшую задачу в On-Site вам потребуется:



1. Зайти на сервер, где развернут сервис массового поиска дублей.

2. Зайти в docker-контейнер с базой MongoDB. В консоли выполнить команду:

docker exec -it dd-mongodb bash



3. Подключиться к MongoDB. В консоли выполнить команду:

mongo



4. Подключиться к базе, в которой храниться вся информация о задачах массового поиска дублей.

В консоли выполнить команду:

use dup-bulk-deduplication



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

В консоли выполнить команду:

db.getCollection('DeduplicationTaskEntity').find({Status: 2}).pretty()



В результате выполнения этой команды можно увидеть один или больше JSONобъектов, которые описывают запущенные задачи по поиску дублей.

JSON(ы) выглядят примерно так:



{ "_id" : UUID("450da7fb-9ac5-49c5-a146-feebc3482b2e"),

"IsActual" : true,

"TokenId" : "3a868426cf95283bd0b51ef7776337ed",

"ElasticIndexName" : "EntityName",

"SourceEntityName" : "IndexName",

"TotalRecordsCount" : NumberLong(0),

"ProcessedRecordsCount" : NumberLong(0),

"MaxDuplicatesPerRecord" : null,

"StartedOn" : ISODate("2021-01-13T09:31:16.269Z"),

"FinishedOn" : null,

"FailReason" : null,

"Status" : 2,

"Rules" : [

{

"_t" : "DeduplicationRuleEntity",

"Columns" : [

"#Column"

]

}

]

}



где,



Изображение удалено.

 

Обычно задачи зависают из-за того, что количество обработанных записей меньше, чем общее количество записей в разделе (ProcessedRecordsCount < TotalRecordsCount), при этом больше нет под-задач на обработку отдельной записи из раздела, то есть часть записей останется не обработанной. На данный момент нет ответа на вопрос, куда пропадают под-задачи на обработку отдельной записи из раздела. Эта проблема находиться в проработке.



6. Необходимо завершить одну (или несколько) зависшую задачу:

  •  Если необходимо завершить ОДНУ какую-то конкретную задачу (в случае, если есть одна зависшая задача, а вторая была недавно запущена и она еще действительно находиться в процессе), то нужно скопировать ID этой задачи и выполнить следующую команду:

getCollection('DeduplicationTaskEntity').updateOne({ _id: UUID("450da7fb9ac5-49c5-a146-feebc3482b2e")}, { $set: { Status: NumberInt(5) } })

 

           Если все выполнено правильно, то результат выполнения команды будет следующий:

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

 

  • Если необходимо просто завершить ВСЕ зависшие задачи:

    db.getCollection('DeduplicationTaskEntity').updateMany({ Status: 2}, { $set: { Status: NumberInt(5) } })



    Если все выполнено правильно, то результат выполнения команды будет следущий (где N - количество обновленных задач):

    { "acknowledged" : true, "matchedCount" : N, "modifiedCount" : N }

Нравится

Поделиться

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

Добавляю в игнор лист по кнопке "Не считать дублями".

Но что делать если нажал нечаянно и хочу вернуть обратно?

Нравится

2 комментария

Удалить запись из таблицы AccountDuplicateSearchGroupExclusions.

Василий, решение вашего запроса зависит от механизма дедупликации, который используется на сайте.

Для механизма поиска дублей на хранимых процедурах достаточно удалить записи  из таблиц AccountDuplicateSearchGroupExclusions/ContactDuplicateSearchGroupExclusions для очистки всех записей, которые были помечены как "Не считать дублями".

Для механизма поиска дублей с использованием сервиса дедупликации ( детальнее в статье https://academy.terrasoft.ua/docs/user/ustanovka_i_administrirovanie/ra…) для сброса признаков "Не являются дублями" всех помеченных пачек дублей на сервисе дедупликации необходимо почистить таблицу UniqueEntity в mongodb. 

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

Добрый вечер.

Хотелось бы добавить кастомное правило поиска дублей. Действовал с оглядкой на https://academy.terrasoft.ru/documents/technic-sdk/7-14/dobavlenie-pravila-poiska-dubley ,но возникла сложность при объявлении типов параметров, если аналог с mscql UNIQUEIDENTIFIER - uuid, то какой аналог у CreatingObjectInfo? 

Будет ли достаточно создания только одной процедурки или имеются еще какие-то не очевидные, но нужные действия

Как она будет взаимодействовать с elasticsearch в таком случае

И хоть и неправильную но все же процедуру я пытался прикреплять к правилу, согласно гайду, но с пустым телом "RuleBody" она не хотела функционировать

Было бы прекрасно, если бы имелся какой-нибудь пример на postgresql.

Bpm'online развернут on-site. Глобальный поиск и тд настроены

Заранее спасибо

Нравится

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

Посмотрите статью в академии ДОБАВЛЕНИЕ ПРАВИЛА ПОИСКА ДУБЛЕЙ

Руслан, добрый день!



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

Инструкция по настройке массового поиска дублей для приложений on-site:

https://academy.terrasoft.ru/documents/administration/7-14/nastroyka-massovogo-poiska-dubley

Григорий Чех, На неё я и оглядывался, когда пытался добавить правило

Мотков Илья,

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

Для Postgre есть только поиск дублей на основе ElasticSearch. Старые разработки на основе хранимых процедур работать не будут.

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

Здравствуйте!

Интересует функционал проверки дублей в моб.приложении в объектах: "контакты", "контрагенты", "лиды".



Есть ли такая возможность? Или приходится после работы в поле, в десктопной версии самостоятельно каждому менеджеру осуществлять проверку дублей?

Нравится

1 комментарий

Роман, добрый день!

Если менеджеры работают в мобильном приложении в режиме "оффлайн", то поиск дублей отрабатывает после синхронизации: новые записи попадают в реестр записей в десктопе, реестр изменяется в соответствии с настроенными правилами поиска и удаления дублей (данный процесс можно автоматизировать - https://academy.terrasoft.ru/documents/studio/7-12/nastroyka-pravil-i-raspisaniya-poiska-dubley#XREF_31918), после выполнения поиска и объединения дублей, в результате повторной синхронизации реестр изменится.

Если работа в мобильном приложении ведется в онлайн-режиме, то отрабатывает поиск дублей на объекте, то есть, при сохранении записи.

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

Коллеги, здравствуйте.

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

Есть ли какой-то обходной метод? К примеру, я хочу слить два дубля контактов, но точно по такому же контакту уже имеется другой отв.менеджер, я бы хотел позвонить и уточнить информацию у этого менеджера по данному контакту. Как мне это можно сделать и узнать информацию?

Отсюда так же возникает вопрос по ограничениям прав: если менеджер одного отдела (видит только свои контакты) вводит контакт, а он уже есть в базе (ввел менеджер другого отдела). Увидит ли первый, что есть дубль в базе?



Спасибо!

Нравится

3 комментария

Добрый день, Роман!

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

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

Обойти эту логику, к сожалению, нельзя, и пока у нас нет в планах менять эту логику. По сути это вопрос не по ошибке поиска дублей, а по особенностям администрирования прав доступа.

Могу посоветовать несколько вариантов:

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

2. При массовом поиске можно учитывать, что сам поиск может запускать любой менеджер с любыми правами, но просматривать результаты поиска и сливать дубли может только тот пользователь, роль которого не ограничивает доступ к Контактам.

Хорошего дня!

Здравствуйте, Роман. Сейчас работаем над обновленной дедупликацией, в которой пользователь увидит, что есть похожие записи, даже если у него не было прав доступа на эти данные. Увидит он только ограниченную информацию (колонки, по которым система ищет дубли, а также ответственного по записи). Данные доработки будут доступны в ближайших релизах. Следите за обновлениями.

Татьяна Адамчук, прекрасная новость! До того приходилось реализовывать это дополнительными методами

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

Коллеги, здравствуйте!
Необходимо настроить права для поиска дублей для bpm 7.9.0. В документации этого не нашла, попался небольшой документ для версий 3.х https://community.terrasoft.ru/system/files/duplicates_search_setting...
Подскажите, пожалуйста, какие-либо материалы по данному вопросу, либо может, кто-то с этим сталкивался?

Нравится

2 комментария

Добрый день, Елена!

Права доступа на работу с функционалом дедупликации настраиваются в соответствующих правах доступа на операции: 1. Доступ к правилам поиска дублей; 2. Обработка дублей; 3. Поиск дублей.
Во вложении прикреплен скриншот для наглядности. Для каждой из вышеуказанных операций можно дать права определенной роли или конкретному пользователю.
Базовый функционал и логика поиска дублей описана в руководстве пользователя (+ статьи см. также): https://academy.terrasoft.ru/documents/sales-commerce/7-9/globalnyy-poi…

Валерий, спасибо большое!

Показать все комментарии
Сделать проверку уникальности полей (например, название контрагента, регистрационный номер, имя контакта, номер телефона и т.п. - можно еще выбирать на уровне конфигурации) во время ввода данных.Тогда если пользователь введет в карточку нового контакта имя и фамилию, то система сразу предупредит, что уже есть такой, а не будет молчаливо дожидаться, пока пользователь потратит минут 10 на ввод всей имеющейся информации, чтобы потом обнаружить, что такой контакт уже есть в системе. Думаю, что Select по полю не так сильно скажется на объеме трафика и быстродействии. Тем более, что можно это и отключать по желанию пользователя
4 комментария

Обнаружили, что подобное происходит в разделе Документы, но лишь при сохранении карточки.

На и так не особо шустром интерфейсе скажется плохо :) а так идея хорошая

"Александр Кудряшов" написал:На и так не особо шустром интерфейсе скажется плохо

Думаю, что с индексами будет не медленнее, чем подтягивание значений в Lookup

плюсую, но только при наличии настройки в профиле

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

Добрый день!

в руководстве администратора http://www.training.terrasoft.ru/system/files/TS_AG_3.4.0.pdf
параграф 4.4. Настройка правил поиска дублей с.152
написано что для версий Террасофт 3.Х доступно окно настроек для правил поисков дублей [Правила поиска дублей]
у нас версия 3.4.1 но данной настройки у нас нет.
посмотрел среди сервисов через конфигуратор, там тоже нет ничего похожего.

подскажите пожалуйста в чем может быть проблема?

Нравится

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

Здравствуйте, Андрей!

В конфигураторе сервисы называются wnd_DuplicateSearchSettingsEdit (карточка) и wnd_DuplicateSearchSettingsGridArea (реестр).

Что касается запуска настроек поиска из пользовательской части, то запуск выполняется из настроек:

Настройки - > Правила поиска дублей.

Андрей, здравтсвуйте!

да? как раз так и написано в руководстве: Настройки - > Правила поиска дублей.

но у нас этого почему то нет,
и сервисов wnd_DuplicateSearchSettingsEdit wnd_DuplicateSearchSettingsGridArea в конфигураторе нет.

по вхождению Duplicate находятся только такие:

scr_DuplicatesUtils
scr_MergeDuplicates
scr_SubjectDuplicates
wnd_MergeDuplicates
wnd_SubjectDuplicates

они вроде используются в другом месте Файл -> Сервис -> Проверка дублей

?

Андрей, здравствуйте!

да иммено так напасано в Руководстве: Настройки - > Правила поиска дублей.

но у нас этого нет.

так же я не смог найти сервисы wnd_DuplicateSearchSettingsEdit и wnd_DuplicateSearchSettingsGridArea .

по вхождению Duplicate находятся только сервисы:

scr_SubjectDuplicates
scr_MergeDuplicates
scr_DuplicatesUtils
wnd_MergeDuplicates
wnd_SubjectDuplicates

Вот как выглядит меню настройки

Здравствуйте, Андрей!

Дело в том, что у Вас выполнялся так называемый лайт-переход с версии 3.3.2 на версию 3.4.1.

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

При этом конфигурационная часть, в частности, сервисы окна настроек поиска, хранимые процедуры - не переносились.

В этом, собственно, причина, почему настройка правил поиска дублей отсутствует.

понятно, спасибо!

а можно ли эти сервисы получить отдельно?
или где то найти?

Андрей,

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

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

Сообщите, пожалуйста, если это необходимо.
Если необходимо - просьба сообщить по адресу: support@terrasoft.ru

да, нам данный функционал был бы очень полезен!

Андрей, Вы напишите на support@terrasoft.ru ?

кстати в в вышеупомянутом руководстве http://www.training.terrasoft.ru/system/files/TS_AG_3.4.0.pdf
параграф 4.4. Настройка правил поиска дублей с.152
сказано

цитата :
<<
В Terrasoft 3.X реализована возможность поиска дублей по всем таблицам
конфигурации системы.
>>

неточность в руководстве?

да Андрей, я написал на support@terrasoft.ru

Андрей,

письмо получили, дистрибутив направим.

Что касается руководства, то упомянутая цитата касается версии 3.4.0 и выше.

Ответ службы поддержки:
В Terrasoft XRM + Service Desk версии 3.4.1 нет русского релиза

как быть?

Андрей,

мы направили Вам демо-версию Terrasoft XRM версии 3.4.1.

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

Да, сборку получили, спасибо!
Там есть запароленные архивы. не подскажете пароль?

Андрей,

направили линк повторно и указали пароль.

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

Добрый день!
Не могу сообразить каким образом осуществляется вызов проверки на дублирование контрагента при сохранении записи.
Мне нужно сделать проверку при изменении поля, например пользователь ввел ИНН, нужно сразу сделать проверку.
Подскажите, пожалуйста, где можно посмотреть?

Нравится

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

Какая у Вас версия, 3.3.2 или 3.4?

TS XRM Distribution 3.4.1

"Молчанов Дмитрий Павлович" написал:Не могу сообразить каким образом осуществляется вызов проверки на дублирование контрагента при сохранении записи.

При событии Post на Dateset-е, для которого настроен поиск дублей, на уровне ядра срабатывает поиск, и результаты передаются в функцию BaseDuplicatesFound в скрипте scr_BaseDuplicatesFoundHandler. В этом скрипте организовано открытие окна «Найдены дублирующиеся записи» с нужными данными.

Непосредственно поиск осуществляется хранимкой вроде tsp_AccountDS (для каждого раздела она генерируется автоматически при настройке правила поиска), хранимка вызывается на уровне ядра.

Дмитрий, чем не подходит настройка проверки на дублирование базовыми средствами?
Вы можете перейти в Файл - Настройки - Правила поиска дублей и создать правило, при котором поиск будет осуществляться в момент сохранения записи (можно задать настройку активации поиска в момент изменения значения в определенном поле):
/system/files/duplicate.png

Требуется реализовать проверку на дубли не при сохранении записи, а при заполнении определенных полей (Наименование, ИНН, Телефон).

Мне кажется, это будет не очень удачный вариант: при вводе каждой буквы проверять тысячи записей. На заполненной базе существующая проверка дублей при сохранении «задумывается» на несколько секунд.

Или там будет отдельная кнопка «проверить на дубли»?

Ну можно сделать не на DataChange, а на OnExit у контрола. На текущий момент отрабатывает в течении секунды примерно.

Дмитрий, тогда в нужный момент выполняйте вызов хранимой процедуры tsp_AccountDS, затем анализируйте результат.

Немного ввёл в заблуждение, при сохранении вызывается хранимая функция fn_AccountLDS, она и вернёт список записей, которые могут быть дублями.

А tsp_AccountDS — при ручном поиске дублей из меню.

Можно настроить правило, как показала на рисунке Наталия, поставить breakpoint в скрипте scr_BaseDuplicatesFoundHandler и посмотреть, какие данные туда передаются при сохранении записи, у которой есть дубли.

Потом запрограммировать на событии OnExit (или любом другом) вызов BaseDuplicatesFound с такими же параметрами, данные получать из хранимки fn_AccountLDS.

Также учтите, что в окне «Найдены дублирующиеся записи» есть кнопка «Объединить», она может работать некорректно, если запись ещё не сохранена, а хотите её слить.

Большое спасибо. Попробую сделать.

Добрый день!

в руководстве администратора http://www.training.terrasoft.ru/system/files/TS_AG_3.4.0.pdf
параграф 4.4. Настройка правил поиска дублей с.152
написано что для версий Террасофт 3.Х доступно окно настроек для правил поисков дублей [Правила поиска дублей]
у нас версия 3.4.1 но данной настройки у нас нет.

подскажите пожалуйста в чем может быть проблема?

Андрей,

данный вопрос рассматривается в теме:

Дубли записей

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