Вопрос

Добрый день!

 

Специфика работы заказчика находить инвесторов для Инвестпроектов . Инвестпроекты регистрируется в качестве лида. 

Задача состоит в том чтобы после регистрации Лида система сама отфильтровала необходимых инвесторов из раздела контрагента и предоставила выбор для предложения  им инветспроекта.

Напр.  Зарегистрирован Лид, где необходимо найти инвестора для инвестиции в сельское хозяйства.  Система должна найти необходимого инвестора из списка и предоставить для пользователя для дальнейшей обработки.

Я добавил вклаку в лидах, и в этой вкладке добавил 5-6 полей выбора инвесторов (контрагентов). Необходимо сделать так чтобы в момент выбора контрагента система отфильтровала необходимы лиду контрагента.

Заранее благодарю.

У меня такой же вопрос

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

Видимо, нужно разрабатывать что-то подобное механизму подбора продуктов в заказе. Или, ещё боле похоже по смыслу, подбор листингов по лиду в bpm’online real estate (см. стр. 27). И то, и другое — сложная логика, нужно разбираться, как она реализована.

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

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

Существует ли инструмент, с помощью которого в мобильном приложении можно изменить тип поиска с "Начинается с" на "Содержит"?

У меня такой же вопрос

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

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

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

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

Вы можете попробовать самостоятельно изменить логику.

Для мобильной же версии необходимо реализовывать на уровне код.
Вам необходимо:
- если не создан, то создать пользовательский манифест мобильного приложения (информация есть на SDK - https://academy.terrasoft.ru/documents/technic-sdk/7-11/manifest-mobilnogo-prilozheniya, просьба ознакомиться). Проще всего будет его создать если зайти в мастер мобильного приложения и сохранить текущие настройки;
- прописать в корне манифеста, в отдельную секцию - http://prntscr.com/hfwdpf:
 
"PreferedFilterFuncType": 'Terrasoft.FilterFunctions.SubStringOf',
 
- сохранить изменения;
- очистить кэш и провести первичную синхронизацию;
- в результате должно работать согласно бизнес-задаче - http://prntscr.com/hgci19.
 
По умолчанию название манифеста MobileApplicationManifestDefaultWorkspace, но если это пользовательское рабочее место, то приблизительное имя в конфигурации будет MobileApplicationManifest[название рабочего места].
Примечание. Заметьте, какое рабочее место Вы используете в мобильном устройстве и в какой манифест Вы добавляете код. Убедитесь, что Вы просинхронизированы с тем рабочим местом.

Также об этом параметре ("Terrasoft.FilterFunctions.SubStringOf") было описано на Академии -https://academy.terrasoft.ru/documents/technic-sdkmob/7-12/manifest-svoystva-dannyh-i-biznes-logiki.

Дмитрий, огромное спасибо!

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

Добрый день, можно ли в общем окне поиска:

сделать возможность поиска по фио/ почте/ телефону, показывать дубли и все что связано с этим лидом/ контактом?

И есть ли какой-то поиск по почте, что бы не скроллить в панели?

У меня такой же вопрос

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

Мария, в новых версиях системы уже реализован глобальный поиск, который работает по всем полям, в том числе и по почте, номеру телефона и т.д. и т.п. Почитать о нем Вы можете в руководстве пользователя https://academy.terrasoft.ua/documents/studio/7-10/globalnyy-poisk

Здравствуйте, Мария!

Начиная с версии 7.10.0 был добавлен функционал глобального поиска по всем полям раздела.
Поиск в системе по письмам будет реализован в будущих версиях приложения.

Спасибо за ответ, а можно ли настроить,чтобы глобальный поиск происходил по почте и по телефону, т.к. сейчас при вводе почты или моб. поиск происходит по фильтру "ФИО" в Контактах или же по колонке "Лид" в Лидах и т.д., и в итоге не выводит никаких результатов?

"Shevchenko Andrey" написал:Начиная с версии 7.10.0 был добавлен функционал глобального поиска по всем полям раздела.
Поиск в системе по письмам будет реализован в будущих версиях приложения.

Уточните, пожалуйста, в каком релизе запланирована такая доработка.

"Алла Савельева" написал:
Shevchenko Andrey пишет:

Начиная с версии 7.10.0 был добавлен функционал глобального поиска по всем полям раздела.
Поиск в системе по письмам будет реализован в будущих версиях приложения.

Уточните, пожалуйста, в каком релизе запланирована такая доработка.

Life is better than you think :-)


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

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

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

"Мотков Илья" написал:

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

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

Прикрепленный файлРазмер

instrukciyaponastroykeglobalnogopoiskadlyaklientovon-site.doc
44.9 кб


Спасибо большое!! Странно, что этого нет в документации на систему.

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

Добрый день, необходимо изменить тип поиска с типа «Начинается с» на «Содержит». В системных настройках в настройке "Тип сравнения для строковых колонок" установили значение по умолчанию равное “1”, перезашли в црм, кеш очистили, но все равно тип поиска не изменился, все еще необходимо искать в таком формате: %продукт%. Подскажите пожалуйста, в чем может быть проблема?

У меня такой же вопрос

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

Здравствуйте, Мария!

Системная настройка "Тип сравнения для строковых колонок" влияет только на поиск в быстром фильтре. В версии 7.9.0 поиск в быстром фильтре для справочных полей был доработан - при фильтрации по справочному полю система предлагает варианты, названия которых начинаются с введенного в поиске текста.

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

Спасибо за быстрый ответ :smile:, а как тогда можно поменять тип поиска в окне справочника, чтобы не осуществлять поиск с % ?

:smile:

Нужно заместить схему LookupPageViewModuleGenerator. Метод pushSelectFilters отвечает за тип поиска. В коробочной версии тип поиска START_WITH.

В замещающей схеме Вам необходимо заменить тип поиска на CONTAIN.

Поиск "%запрос%" отрабатывает значительно медленнее, чем поиск "запрос%".

Спасибо! :smile:
Возник еще такой вопрос по этой теме:
когда вбиваем текст просто в поле, то без % не находит туры:

а если через всплывающее окно, то нормально срабатывает:

Можно ли как-то реализовать, что бы и в поле поиск работал без % ?

Для изменения типа сравнения с первого скриншота, вам необходимо изменить возвращаемое значение метода "getLookupComparisonType" в файле all-combined, сделать это можно если у вас сайт on-site самостоятельно, если же на серверах bpm'online то через службу поддержки.

.

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

Добрый день!

У контакта имеются поля Phone, MobilePhone, HomePhone.
У лида MobilePhone, BusinesPhone.
У контрагента Phone, AdditionalPhone.

Раньше я делал поиск через через
$filter=substringof('6665544', MobilePhone)
Но в разделе "Средства связи" пользователи могут добавлять много номеров, поэтому поиск не работает по всем этим полям.

Я увидел тип ContactCommunication в котором и хранятся остальные номера.

Один из вариантов поиска это сначала сделать запрос

/0/ServiceModel/EntityDataService.svc/ContactCommunicationCollection?$filter=substringof('07562135947', SearchNumber)&$select=ContactId для получения Id контакта, а затем получить контакт из ContactCollection по Id.

Для этого нужно делать два запроса.

Подскажите, как сделать поиск всего лишь одним запросом ,чтобы искать сразу и по полям и в коллекции ContactCommunication ?

У меня такой же вопрос

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

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

Ознакомтесь со статьями:

  1. URI Conventions
  2. Using $select, $expand, and $value in ASP.NET Web

"Терещук Павел" написал:

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

Ознакомтесь со статьями:

  1. URI Conventions
  2. Using $select, $expand, and $value in ASP.NET Web

Спасибо! Получилось осуществить поиск конктакта через один запрос к ContactCommunicationCollection и $extend Contact.

Все хорошо, но мне надо получить лишь некоторые поля Contact, а именно Id, Name, OwnerId, AccountId.

Для этого я добавляю в запрос $select=Contact/Id, Contact/Name и это работает без ошибок.

Но если я добавляю Contact/OwnerId или Contact/AccountId, то получаю ошибку:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

    1
    Элемент коллекции с именем AccountId не найден
    
        Элемент коллекции с именем AccountId не найден
        Terrasoft.Common.ItemNotFoundException
           at Terrasoft.Core.MetaItemCollection`1.GetByName(String name)&#xD;
   at Terrasoft.Core.Entities.EntitySchema.GetInheritedPath(String columnPath)&#xD;
   at Terrasoft.Core.Entities.EntitySchemaQuery.CreateColumn(String columnPath)&#xD;
   at Terrasoft.Core.Entities.EntitySchemaQuery.AddColumn(String columnPath)&#xD;
   at Terrasoft.Core.Entities.EntityQueryProvider.Build(Expression expression)&#xD;
   at Terrasoft.Core.Entities.EntityQueryProvider.LoadEntityCollection(Expression expression)&#xD;
   at Terrasoft.Core.Entities.EntityQueryProvider.ExecuteEnumerable[TResult](Expression expression)&#xD;
   at Terrasoft.Core.Entities.EntityQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()&#xD;
   at System.Data.Services.Providers.BasicExpandProvider.ExpandedQueryable`1.GetEnumerator()&#xD;
   at System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable enumerable)&#xD;
   at System.Data.Services.DataService`1.SerializeResponseBody(RequestDescription description, IDataService dataService, IODataResponseMessage responseMessage)&#xD;
   at System.Data.Services.DataService`1.HandleRequest()
    

Хотя если не задавать $select, то эти поля присутствуют.

Вот запрос:

https://004057-sales-enterprise.bpmonline.com/0/ServiceModel/EntityDataService.svc/ContactCommunicationCollection?$filter=substringof('224433305083', SearchNumber)&$expand=Contact&$select=Contact/Id,Contact/Name,Contact/AccountId,Contact/OwnerId

Подскажите что не так делаю?

Разобрался. Вопрос закрыт. Спасибо за помощь!

Войдите или зарегистрируйтесь, чтобы комментировать
Идея
Предлагаю, чтобы при поиске в командной строке в открытой карточке происходил переход к найденным записям раздела.Как сейчас происходит, если выбрать одну из команд Найти контакт/Найти контрагента
Реализована
6 комментариев

Владимир, добрый день!

Правильно ли понимаем, что Вы хотите с помощью командой строки искать по всем разделам, а не по разделу «Контакты»/«Контрагенты»?
Можете более подробно описать идею.

"Вильшанский Дмитрий" написал:Правильно ли понимаем, что Вы хотите с помощью командой строки искать по всем разделам, а не по разделу «Контакты»/«Контрагенты»?

Нет, я хочу искать по текущему разделу. Как это было бы, если бы я карточку закрыл

"Владимир Соколов" написал:
Вильшанский Дмитрий пишет:

Правильно ли понимаем, что Вы хотите с помощью командой строки искать по всем разделам, а не по разделу «Контакты»/«Контрагенты»?

Нет, я хочу искать по текущему разделу. Как это было бы, если бы я карточку закрыл

А как Вы тогда представляете поиск по всем разделам? Если Вы в одной карточке хотите найти что-то другое (например, работали над заявкой и решили быстренько открыть другой счет или продажу) не по текущему объекту? Вы тогда будете переходить в другой раздел и там осуществлять поиск? Это же лишние шаги.
Какая у Вас бизнес-задача?

"Вильшанский Дмитрий" написал:А как Вы тогда представляете поиск по всем разделам?

А есть поиск по всем разделам?

"Вильшанский Дмитрий" написал:кая у Вас бизнес-задача?

Например, оплата счетов. Есть список оплат, пользователь находит первый счет, заносит оплату. Затем он видит вверху поле для поиска, совершенно логично вбивает туда номер второго счета, но ничего не происходит - надо нажимать Close, затем открывать счет.
Не критично, конечно, выполнить два лишних клика на каждый документ, но всё же выглядит логично

"Владимир Соколов" написал:

А есть поиск по всем разделам?


Есть в планах (ориентировочно в версии 7.10)

"Владимир Соколов" написал:
Вильшанский Дмитрий пишет:

кая у Вас бизнес-задача?

Например, оплата счетов. Есть список оплат, пользователь находит первый счет, заносит оплату. Затем он видит вверху поле для поиска, совершенно логично вбивает туда номер второго счета, но ничего не происходит - надо нажимать Close, затем открывать счет.
Не критично, конечно, выполнить два лишних клика на каждый документ, но всё же выглядит логично

А как же вертикальный реестр? Если этого мало, то тогда есть и фильтр в вертикальной реестре.

"Вильшанский Дмитрий" написал:А как же вертикальный реестр? Если этого мало, то тогда есть и фильтр в вертикальной реестре.

Можно и так. Просто, гораздо больше действий

Войдите или зарегистрируйтесь, чтобы комментировать
Идея
При установке системной настройки [Тип сравнения для строковых колонок] = 1 хотелось бы, чтобы во всех lookup-полях это тоже работало бы без знака %.Иначе, пользователям всё равно приходится использовать знак %, что усложняет работу.
Одобрена
3 комментария

Здравствуйте, Владимир!

Для решения данного вопроса необходимо заместить схему LookupPageViewModuleGenerator. В данной схеме есть метод pushSelectFilters. Именно этот метод отвечает за тип поиска. В базовой версии тип поиска START_WITH. В замещающей схеме Вам необходимо заменить тип поиска на CONTAIN.

"Мотков Илья" написал:В замещающей схеме Вам необходимо заменить тип поиска на CONTAIN.

Уже хорошо! Спасибо!

"Мотков Илья" написал:Именно этот метод отвечает за тип поиска

Останется как нибудь забиндить тип поиска на системный параметр и будет вообще красиво все :)

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

Добрый день!

В жизни компаний иногда случается смена имени, в жизни людей случается смена фамилии. С помощью БП можно организовать хранение истории изменений.

Но как можно организовать поиск по старым названиям/фамилиям из командной строки?
Или можете предложить другое решение? (Фильтр с поиском по детали истории пользователям каждый раз будет долго настраивать)

У меня такой же вопрос

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

Владимир, здравствуйте!

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

Как вариант Вы можете хранить не актуальную информацию в пользовательской колонке и по ней фильтровать.

Спасибо за вариант!

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

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

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

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

BPM 7.5. В стандартной поставке BPM уже содержится достаточно много примеров реализации той или иной функциональности. Но нет встроенных средств (или я их не нашел) для текстового поиска по этим скриптам. Как это сделать? Доступ к серверу и DB есть, возможно, эти файлы где то лежат в файловой системе, или их каким то образом можно экспортировать, и затем произвести поиск текста внутри файлов?

Спасибо

У меня такой же вопрос

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

JS файлы можно выгрузить и работать с ними напрямую.

Примерный алгоритм описан тут:
http://www.community.terrasoft.ru/forum/topic/12344

Спасибо, но есть опасения.
Цитата с поста по ссылке

1. В WebApp.Loader\Web.config найти запись по ключу "useFileContent" и установить
useFileContent="true"
2. В ConnectionString.config найти запись по ключу "clientUnitContentPath" и установить путь выгрузки JScript файлов:
name="clientUnitContentPath" connectionString="C:\Projects\JS_Code"
3.Перейти в конфигурацию, выбрать из меню "Действие" пункт "Обновить клиентские модули из базы данных"
4. Внесити изменения в JScript файлы, например используя IDE для работы с такими файлами
5. Для фиксации результата выбрать из меню "Действие" пункт "Зафиксировать клиентские модули в базе данных"

Не повлияют ли каким-либо побочным образом вышеописанные действия на привычную (без этих изменений в конфигах) работу приложения? Есть ли какие-то ньюансы?

"trickbz" написал:Есть ли какие-то ньюансы

нюнса два:
1) надо нажимать "Обновить клиентские модули из базы данных"/"Зафиксировать клиентские модули в базе данных"
2) вы не сможете работать с кодом (не распространяется на LESS) через дизайнер модулей

На работе самого приложения никак не отразится

Запрашиваемая страница не найдена.

Войдите или зарегистрируйтесь, чтобы комментировать

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

У меня такой же вопрос

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

Такой же функционал вы можете существует в комуникационной панели.

Владимир, а что вы имели в виду под "Такой же функционал вы можете существует в комуникационной панели"?

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

http://academy.terrasoft.ua/documents/docs/product/bpm'online%20ITIL%20…

Нашел вам стать, в которой описан функционал CTI панели

Хотел ещё у вас уточнить какой Вы используете продукт?

Владимир, bpmonline 7.5 commerce. А каким образом связана коммуникационная панель и командная строка, ведь в коммуникационной панели есть только: лента, уведомления ленты и виза?

Уточните, пожалуйста, для какого продукта и версии вы хотите сделать данный функционал?

Владимир, BPMOnlineCommerce Версия 7.5.0.627.

Из коммандной строчки есть возможность запускать процессы (Run Process)

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

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

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

Иван, есть возможность поменять на другую колонку. Необходимо поменять primaryDisplayColumn у объекта Contact, это либо можно сделать в настройках объекта в расширенных свойствах, поменяв колонку "отображаемое значение" во вкладке "системные колонки". Либо как сделал я, заменил значение в модуле ContactSectionV2.js, в функции init()

                        this.entitySchema.primaryDisplayColumn.name="Имя колонки(как в базе данных)";
                        this.primaryDisplayColumnName="Имя колонки(как в базе данных)";
                        this.entitySchema.primaryDisplayColumn.caption="Просто имя колонки, это будет отображаться на странице";
                        this.entitySchema.primaryColumn.uId="Уникальный id колонки, можно посмотреть в метаданных объекта";
                        this.entitySchema.primaryDisplayColumn.uId="Уникальный id колонки, можно посмотреть в метаданных объекта";

Таким образом можно менять фильтр динамически, если добавить условия.

"Киричатый Иван Владимирович" написал:

Из коммандной строчки есть возможность запускать процессы (Run Process)

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


а можно подробней, как это реализовать? или пример?

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

Предварительно, Вам необходимо настроить бизнес процесс.
Бизнес процесс приблизительно следующий:
Автогенерируемая страница с полем с типом строка. Назовем это поле "Номер".
Чтение данных (считаем количество записей) по объекту "Средства связи контакта" с фильтром Номер = Автогенерируемая страница.Номер
Условные потоки:
если количество == 0, тогда конец процесса или вывести автогенерируемую страничку с предупреждением, что информации о таком номере нет.
если количество != 0, тогда идем дальше:
Чтение данных (читаем первую запись) по объекту "Средства связи контакта" с фильтром Номер = Автогенерируемая страница.Номер
Чтение данных по объекту "Контакты" с фильтром Id = Средства связи контакта.Id
Открыть страницу редактирования Контакта, режим редактирования существующей записи, где id = Чтение данных контакта.Первый элемент результирующей коллекции.Id

Процесс с командной строки будет вызываться командой "Запустить процесс + [Название Вашего процесса]".

спасибо, все получилось

а есть ли возможность выводить список контактов/контрагентов которые содержат этот номер?

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

Без использования программирования такой возможности нет.
Для того, чтобы вывести всех контактов и контрагентов:
1) создайте новую преднастроенную страницу с фильтрацией из объектов "Средства связи контакта" и "Средства связи контрагента"
2) используйте элемент "Преднастроенная страница" в бизнес процессе.
Укажите страницей созданную Вами. В параметр фильтрации Вам нужно передавать средство связи.

В результате, Вам отобразятся все записи контактов и контрагентов.

Если у Вас небольшая база, то можно обойтись без программирования.
Создайте автогенерируемую страницу из 4 полей:
1) 2 поля для контактов
2) 2 поля для контрагентов.

Заполнить эти поля Вы сможете из параметров элемента "Чтение данных" контактом или контрагентом.

Войдите или зарегистрируйтесь, чтобы комментировать