Вопрос

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

Нравится

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

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

Видимо, так и нужно. Также см. похожее обсуждение по изменению «собаки» в ленте.

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

Добрый день.

С помощью БП я создаю лид при поступлении звонка, и мне необходимо добавить запись звонка к этому лиду.

Пытаюсь добавить к записи звонка мой созданный лид (настройки элемента ниже),Изображение удалено. 

но вот ничего не добавляется. Идентификатор звонка передает метод и он правильный.

Подскажите, пожалуйста, возможно есть особенности для записей из раздела Звонки и как-то по другому нужно добавлять?

Нравится

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

Добрый день.

В теории так, как Вы реализовали, должно работать.

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

Также, если у Вас on-site, то с помощью SQL Server Profiler можно посмотреть, какой запрос идет базу, когда выполняется этот элемент.

Алла Савельева,

Судя по данным трассировки БП то лид добавляется, но по факту оказывается что нет:

Семенов Михаил пишет:

Судя по данным трассировки БП то лид добавляется

А разве проблема была в том, что лид не добавлялся - Вы же писали, что в звонке не заполняется поле 'Лид'?

Всё-таки просмотрите профайлером, какой запрос идет в базу.

Алла Савельева,

да, я это и имел ввиду - не добавляется лид к звонку) Я просто различаю термины "добавить" и "создать"))

 

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

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

Подскажите как можно экспортировать пользователей с номерами IP телефонии что занесены в настройки пользователя?

Нравится

6 комментариев
Лучший ответ

Вот пример формата поля ConnectionParams - {"debugMode":false,"disableCallCentre":true,"ExtensionName":"123"}

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

Ещё, как вариант, можно написать стандартный sql-запрос insert.

Для выгрузки данных реализуйте sql-запрос.

Если у Вас bpm'online on-site, то можно выполнить запрос прямо на сервере баз данных через Microsoft SQL Server Management Studio.

Если on-demand, то можно установить Модуль для выполнения SQL - скриптов "SQL Executor" и выполнить запрос из него.

И оттуда, и оттуда можно информацию выгрузить в MS Excel.

Алла Савельева,

а в какой таблице хранятся данные о номерах ip телефонии что прикреплены к пользователю? Мне нужно выгрузить таблицу с колонками "контакт; номер телефона avaya"

Александр Тыра,

Сделайте, пожалуйста, скриншот, чтобы я точно понимала о каких именно настройках идет речь.

Подозреваю, что речь о настройках телефонии Avaya, которые хранятся в части записей таблицы SysMsgUserSettings сериализированными в формате JSON в поле ConnectionParams. И в SQL-запросе придётся этот JSON парсить, вычленяя номер.

Как вариант, те же номера могут также вестись на детали средств связи в разделе контактов. Если они там есть у контактов этих пользователей, проще выгрузить оттуда.

Вот пример формата поля ConnectionParams - {"debugMode":false,"disableCallCentre":true,"ExtensionName":"123"}

Для разных систем телефонии формат ещё и разный.

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

Как в клиентском коде сделать подгрузку одного поля что бы не обновлять всю страницу?

Нравится

3 комментария
Лучший ответ

Александр Тыра,

Вам же ответили по событию вычитайте через клиентский esq (javascript - без перезагрузки страницы) значения интересующих вас полей и проапдэйте их Пример тут

Как вариант можно дернуть вэб сервис, тоже без перезагрузки страницы

Самый очевидный, но возможно не самый правильный вариант - esq.

Дмитрий А.,

Это доступ в базу данных, а я имею введу по событию что бы обновилось не все окно а только одно поле полезли в базу и обновилось. Как заставить это сделать по событию?

Александр Тыра,

Вам же ответили по событию вычитайте через клиентский esq (javascript - без перезагрузки страницы) значения интересующих вас полей и проапдэйте их Пример тут

Как вариант можно дернуть вэб сервис, тоже без перезагрузки страницы

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

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

Нравится

7 комментариев
Лучший ответ

Вариант 1: Сделайте в процессе фильтрацию по частям. Например, по алфавиту от A до F.

И затем меняйте фильтр, удаляя в несколько приёмов.



Вариант 2: Фильтровать в разделе (как в п.1) и удалять штатными методами



Вариант 3: написать SQL

Вариант 1: Сделайте в процессе фильтрацию по частям. Например, по алфавиту от A до F.

И затем меняйте фильтр, удаляя в несколько приёмов.



Вариант 2: Фильтровать в разделе (как в п.1) и удалять штатными методами



Вариант 3: написать SQL

Владимир Соколов,

Фильтр не получится использовать - там все значения одинаковые. А по поводу SQL можно подробнее?

NothingHappen,

https://marketplace.terrasoft.ru/app/sql-executor-bpmonline

Можно писать sql запросы прямо в bpm.

delete top(n) from tableName [where ...]

NothingHappen,

Вам нужно написать sql-запрос на удаление вида:

delete from <название таблицы>
where <условия для выборки нужных записей>

Если у Вас bpm'online on-site, то можно выполнить запрос прямо на сервере баз данных через Microsoft SQL Server Management Studio.

Если on-demand, то можно установить Модуль для выполнения SQL - скриптов "SQL Executor" и выполнить запрос из него.

Алла Савельева,

Извините за глупый вопрос, но с sql я не знаком, как узнать адрес данной таблицы и задать условия?

NothingHappen пишет:

Извините за глупый вопрос, но с sql я не знаком, как узнать адрес данной таблицы и задать условия?

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

Обратитесь в службу поддержки Террасофт, чтобы специалисты помогли Вам решить данную проблему.

Алла Савельева,

Спасибо.

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

Можно ли подключить кассовые аппараты и сканеры штрихкодов к системе bpm'online?

Нравится

2 комментария
Лучший ответ

А почему нет?

Но я бы рекомендовал написать например свой сервис (службу OS) который будет обслуживать ваше оборудование и дергать bpm через вэб сервисы или любым другим способом.

А почему нет?

Но я бы рекомендовал написать например свой сервис (службу OS) который будет обслуживать ваше оборудование и дергать bpm через вэб сервисы или любым другим способом.

В маркете есть модуль «Storekeeper for bpm’online», поддерживающий работу со сканером штрихкода и «Виртуальная касса для работы с процессингом покупок».

Не уверен по архитектуре современных партнёрских версий bpm'online для лояльности, но во времена Loyalty 5.3 кассы подключались к своему ПО, например, «СуперМаг УКМ», которое уже по сети взаимодействовало со стандартными или доработанными веб-сервисами bpm'online.

А сканер штрих-кода в простейшем случае просто имитирует ввод цифр из кода с клавиатуры с последующим нажатием клавиши Enter.

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

Не могу понять в чем проблема , все делаю по инструкции https://academy.terrasoft.ru/documents/technic-sdk/7-14/primenenie-filtracii-k-spravochnym-polyam?_ga=2.187658344.1798117710.1565074747-1746837617.1550722519

Есть таблица Rashodnik и в этой таблице есть поле сотрудник  UsrSotrudnik, необходимо чтобы по сотруднику был фильтр . Делаю так

"UsrSotrudnik": {
       .....
       "lookupListConfig": {
          "filters": {
               var filterGroup = Ext.create("Terrasoft.FilterGroup");
               filterGroup.add("Job",
                                Terrasoft.createColumnFilterWithParameter(
                                    Terrasoft.ComparisonType.EQUAL,
                                    "[UsrRashodnik:UsrSotrudnik].FullJobTitle",
                                    "Кассир"));
               return filterGroup;
           }
       }
}

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

Нравится

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

Не пробовали через бизнес правила в графическом интерфейсе? Там тоже есть фильтрация полей по условию

Александр Тыра,

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

А не напутали ли с условием? Точно ли поле FullJobTitle у Вас в таблице UsrRashodnik? Для сравнения, в справке по приведенной ссылке для поля Owner фильтруют справочник контактов, проверяют на истинность поле Active в связанном с контактом SysAdminUnit:

filterGroup.add("IsActive",
    Terrasoft.createColumnFilterWithParameter(
    Terrasoft.ComparisonType.EQUAL,
    "[SysAdminUnit:Contact].Active",
    true));

Если сайт развёрнут на Ваших серверах, посмотреть получаемый запрос в базу можно в SQL-профайлере.

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

Коллеги, добрый вечер!

Подскажите идеи пжлст для реализации следующей задачи:

в разделе Excel отчеты есть отчет. Его нужно отправлять каждый день по расписанию на определенный email.

 

Спасибо!)

Нравится

7 комментариев
Лучший ответ

Елена К пишет:

А немного поправив, это вы что примерно имеете ввиду

Пока не могу сказать точно. Эта задача у нас в проекте тоже стоит, но пока не запущена в анализ и разработку. Я просто описал направление решения. Возможно, в сентябре смогу рассказать детально

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

Насколько я понимаю раздел Excel отчеты это не базовый функционал?

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

Отправка файлов в БП на этом форуме обсуждалась не раз и особой сложности не представляет.

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

Григорий Чех,

Григорий, это приложение https://marketplace.terrasoft.ru/app/excel-reports-builder-bpmonline, выпущенное Terrasoft. При запуске  созданного в  разделе "Excel отчеты" отчета происходит скачивание файла Excel. У нас вопрос как через БП сгенерировать cамо вложение, а там дальше мы с ним уже разберемся). Спасибо!

 

Елена К,

Мы, например, используем другое дополнение -

https://marketplace.terrasoft.ua/app/reports-generator-bpmonline

И там отчеты, скорее всего сохраняются, так как, в результате генерируется ссылка в уведомлениях, и только оттуда их можно скачать.

Кроме того, в том же дополнении есть процесс запуска генерации отчета по расписанию ("Запуск формирования отчета по правилу"). Немного поправив его, можно файл не сохранять на диске сервера (как в оригинале), а прикреплять к письму, например

Владимир Соколов,

Владимир, да , это приложение тоже стоит, просто меньше используется, чем первое.  А немного поправив, это вы что примерно имеете ввиду?). 

Елена К пишет:

А немного поправив, это вы что примерно имеете ввиду

Пока не могу сказать точно. Эта задача у нас в проекте тоже стоит, но пока не запущена в анализ и разработку. Я просто описал направление решения. Возможно, в сентябре смогу рассказать детально

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

Елена К,

Судя по принскрину приведенному Владимиру,вы можете например создать активность с типом исходящее письмо и отчет не записывать на диск а прикреплять к этой активности и отправлять ее (Как отправлять письмо с вложениями неоднократно в этом форуме обсуждалось)

Коллеги, спасибо! будем пробовать.Как получиться, поделимся).

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

Добрый день. Хочу делать отчеты с использованием формул и дублирующими колонками с разными условиями. Подскажите пожалуйста как это можно сделать.

Нравится

6 комментариев
Лучший ответ

Добрый день! Попробуйте использовать данное дополнение - https://marketplace.terrasoft.ru/app/excel-pivot-report-bpmonline

Добрый день! Попробуйте использовать данное дополнение - https://marketplace.terrasoft.ru/app/excel-pivot-report-bpmonline

Нигрескул Алексей,

Я использую это дополнение, меня интересует как в нем вводить формулы?

Для сложных случаев лучше создавать отчеты ручками например используя OpenXML sdk

Пример на c# создания сводной таблицы можно посмотреть тут

Если нужен какой-то конкретный один или несколько сложных отчётов, можно делать всё на уровне базы: создать view со всеми вычислениями, возвращающий «плоскую» таблицу с фиксированным набором колонок, затем объект с такими же колонками и строить по нему штатными средствами.

Также, кроме упомянутого Алексеем, в маркете есть ещё несколько движков отчётов. Возможно, Вам подойдёт какой-то из них.

Fenix Agro,

Добрый день,

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

Кстати, за прошедшее время стандартный итог «список» тоже начал поддерживать сводные таблицы. Вариантов всё больше.

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

При создании письма для поля кому выдает список адресов вида:

"название лида "

Возможно ли настроить данный фильтр чтобы он выдавал только ФИО контактов вместо названий лидов? или чтобы отсеивались лиды в этом списке

 

Нравится

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

Уточните где именно в системе вы создаете письмо (тк как используются разные страницы редактирования)

Григорий Чех,

Создание нового письма кнопкой с коммуникационной панели,

так же с помощью кнопки mail под кейсом в обращении, лиде или сделке

или ещё так же при ответе на письмо из вкладки Обработка обращения в том числе при ответе по шаблону

В общем везде этот список выглядит одинаково, помимо лидов ещё есть записи типа <<a href="mailto:test@test.rr">test@test.rr</a>>

 

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

 

Выборка идёт из объекта «E-mail адреса» (VwRecepientEmail). Он — представление в базе. То есть, чтобы исправить условие выборки, нужно зайти в базу и исправить код этой view. Главное, не менять набор выдаваемых колонок, они должны совпадать с колонками объекта.

Стандартно код такой:

CREATE VIEW [dbo].[VwRecepientEmail]
AS
SELECT [Id], [Name] + ' &lt;' + [Number] + '&gt;' AS [Email], [d].[UseEmail], [d].[ContactId], [Number]
FROM (SELECT [AccountCommunication].[Id], [Account].[Name], [AccountCommunication].[Number], 0 AS [UseEmail], [Account].[PrimaryContactId] AS [ContactId]
	FROM [AccountCommunication]
	INNER JOIN [Account] ON [Account].[Id] = [AccountCommunication].[AccountId]
	WHERE ([AccountCommunication].[CommunicationTypeId] = 'EE1C85C3-CFCB-DF11-9B2A-001D60E938C6')
	UNION ALL
	SELECT [ContactCommunication].[Id], [Contact].[Name], [ContactCommunication].[Number], [Contact].[DoNotUseEmail], [Contact].[Id] AS [ContactId]
	FROM [ContactCommunication]
	INNER JOIN [Contact] ON [Contact].[Id] = [ContactCommunication].[ContactId]
	WHERE ([ContactCommunication].[CommunicationTypeId] = 'EE1C85C3-CFCB-DF11-9B2A-001D60E938C6')
	UNION ALL
	SELECT NEWID(), [Lead].[LeadName], [Lead].[Email], [Lead].[DoNotUseEmail], [Lead].[Id] AS [ContactId]
	FROM [Lead]) AS [d]
GO

В Вашем случае нужно избавиться от третьего SELECT, который выбирает из лидов, и убрать UNION ALL перед ним. А если не нужны контрагенты, то и от первого, оставив только выборку из контактов.

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