Добрый день!

Появилась идея отправлять уведомление некоторой выборке пользователей. Выборка производится в бизнес процессе в задании - сценарии с помощью ESQ.

Возможно ли из c#-го кода отправить уведомление?

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

Может быть есть способ проще написать метод для отправки такого уведомления?

Нравится

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

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

var Activity = UserConnection.EntitySchemaManager.GetInstanceByName("Activity");
var EntityActivity = Activity.CreateEntity(UserConnection);
EntityActivity.SetDefColumnValues();
EntityActivity.SetColumnValue("OwnerId", contactID);
EntityActivity.SetColumnValue("Title", "Активность с уведомлением");
EntityActivity.SetColumnValue("RemindToOwner", true);
EntityActivity.SetColumnValue("RemindToOwnerDate", DateTime.UtcNow);
EntityActivity.Save(false);

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

var Activity = UserConnection.EntitySchemaManager.GetInstanceByName("Activity");
var EntityActivity = Activity.CreateEntity(UserConnection);
EntityActivity.SetDefColumnValues();
EntityActivity.SetColumnValue("OwnerId", contactID);
EntityActivity.SetColumnValue("Title", "Активность с уведомлением");
EntityActivity.SetColumnValue("RemindToOwner", true);
EntityActivity.SetColumnValue("RemindToOwnerDate", DateTime.UtcNow);
EntityActivity.Save(false);
Показать все комментарии

Добрый день,

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

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

Нравится

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

Подскажите, каким образом реализовано визирование в бизнес-процессе, с помощью элемента "Визирование", или с помощью добавления новой записи объекта визы?

 

Есть ли при открытии коммуникационной панели какие-либо ошибки в консоли браузера (F12)?

Олег Нефедьев,

Визирование реализовано с помощью элемента "Визирование". В консоли какие-то ошибки есть.

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

Доброго времени суток, коллеги!

 

Хотел попробовать добавить уведомление ответственному по возвращению из стадии "OnHold" в "В работе", создал шаблон уведомления, выстроил цепочку чтения данных и отправки, но не знаю как считать id обращения для чтения ответственного именно в том обращении, которое возварщается "В работу" когда стартовым действием является не "сигнал" а "стартовый таймер".

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

Как это можно реализовать?

Нравится

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

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

 

Либо добавить служебное логическое поле «обработан» и программно его значение-галку снимать при смене стадии и ставить после отправки.  И фильтровать в БП по таймеру записи, где снято.

 

Хотя, если делаем обработчик события смены стадии, можно всё сделать в нём и нет смысла в отдельном БП по таймеру.

 

Вам нужно по таймеру обработать все обращения со статусом "В работе" или только последнее?

Ксензов Егор,

Мне нужно обработать индивидуально обращение, которое было возварщено из стадии OnHold и отправить уведомление именно тому ответственному, обращение которого было возвращено. Знаю как "цеплять к id" если 1 шаг это стартовый сигнал, а вот с таймером не разобрался как сделать

Шарифуллин Руслан,

здравствуйте! Тогда Вам необходимо добавить в данный процесс подпроцесс который будет обрабатывать обновленную коллекцию. В данной статье описана работа с коллекциями в БП. Это так на вскидку.

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

 

Либо добавить служебное логическое поле «обработан» и программно его значение-галку снимать при смене стадии и ставить после отправки.  И фильтровать в БП по таймеру записи, где снято.

 

Хотя, если делаем обработчик события смены стадии, можно всё сделать в нём и нет смысла в отдельном БП по таймеру.

 

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

Доброго всем дня.

 

Некоторое время назад появилась ошибка: "1 of 0 records imported from the source file "". 4294967295 record(s) not imported.".

Периодически появляется в коммуникационной панели в системных уведомлениях: http://prntscr.com/ru3qoq

 

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

 

По данным записям (ошибкам) в таблице Reminding колонка SubjectId с "нулевым" Id: http://prntscr.com/ru3l3r

 

Сталкивался ли кто с подобной ошибкой? 

Нравится

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

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

Для устранения нужно установить пакет FileImportNotificationFix_20.04.07_12.51.35.zip на сайт (лучше сначала проверить на тесте) или дождаться, когда выйдет очередное обноление, его включающее.

Зверев Александр,

Большое спасибо, Александр! 

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

Вопрос

В рамках процесса создается Активность, в участников добавляются пользователи. Данная Активность подразумевает встречу участников для решения вопроса. Необходимо, чтобы информацию о данной встрече отправлялась не просто письмом, а в виде Meeting Request, чтобы встреча была отражена в MS Exchange у пользователя.

Ответ

На данный момент наш механизм синхронизации встреч с MS Exchange выполняет все изменения без отправки уведомлений. Так сделано из-за того, что первично расписание в bpm'online используется как механизм планирования рабочего времени (в т. ч. допустимы многократные переносы).

Для решения вашего кейса нужно настроить синхронизацию календаря, после чего в Outlook будет синхронизировать то же самое расписание, как в bpm'online. Когда нужно будет оправить уведомление, необходимо перейти в Outlook и, например, в контекстном меню нажать "Invite Attendies". В будущих версиях системы планируется добавить возможность отправки уведомления прямо из интерфейса bpm'online.

Нравится

Поделиться

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

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

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

Здравствуйте, Сергей!

Я передал Ваше пожелание аналитикам продукта.
Они рассмотрят возможность его реализации в одной из последующих версий программного продукта.

Мы обязательно уведомим, когда оно будет включено в релиз.

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

Есть какие-то сдвиги по этому вопросу? Люди просят.

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

Реализация данного функционала запланирована в ближайших версиях продукта.

Скоро будем праздновать годовщину идеи

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

Добрый день, коллеги! На маркетплейсе опубликован темплейт https://marketplace.bpmonline.com/template/feed-notifications-account-r…, в котором можно посмотреть пример реализации для указанной задачи. А именно при создании контакта по контрагенту, на которого подписан пользователь, ему отображается сообщение о добавлении нового контакта в Центре уведомлений на вкладке Лента.

Федоренко Михаил Юрьевич,

уже месяц празднуем =)

Подскажите пожалуйста, функционал добавили?

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

Зверев Александр,

Спасибо за ответ!

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

Коллеги, день добрый.

Подскажите, пожалуйста, как можно решить такую задачу.

Есть Активность, в которой Автор и Исполнитель отличаются. Как только Исполнитель завершает задачу Автору должно выводиться уведомление (в коммуникационной панели во вкладке уведомлений) о том, что конкретная задача завершена.

Сделал бизнес-процесс, который добавляет Уведомление по сигналу изменения состояния Активности. Само уведомление в панели появляется, но счётчик не меняется.

Попробовал создать отдельного провайдера (по аналогии с DocumentNotificationProvider и ForecastNotificationProvider), но словил ошибку 400. Подозреваю, что на один раздел может быть только один провайдер уведомлений.

Получилось отловить ошибку, которая выдаётся в консоли:

Сервер обнаружил ошибку при обработке запроса. Сообщение об исключении: "Значение не может быть неопределенным.

Имя параметра: type". Дополнительные сведения см. в журналах сервера. Трассировка стека исключений:
в System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
в System.Activator.CreateInstance(Type type, Object[] args)
в Terrasoft.Configuration.RemindingsHelper.GetResult(Guid sysAdminUnitId, NotificationProviderType type, DateTime date, String methodName)
в Terrasoft.Configuration.RemindingsHelper.GetCount(Guid sysAdminUnitId, NotificationProviderType type, DateTime date)
в Terrasoft.Configuration.RemindingsHelper.GetRemindersCounter(Guid sysAdminUnitId, String dueDate)
в Terrasoft.Configuration.RemindingsHelper.GetPopupConfigResponse(Guid sysAdminUnitId, String dueDate)
в SyncInvokeGetPopupConfig(Object , Object[] , Object[] )
в System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
в System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

 

Нравится

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

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

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

Так же убедитесь, что в таблице NotificationProvider существует запись для нового провайдера.

"Попробовал создать отдельного провайдера (по аналогии с DocumentNotificationProvider и ForecastNotificationProvider), но словил ошибку 400."
- Скорее всего могли быть допущены ошибки в созданном провайдере.
Но если уже есть базовый провайдер уведомлений по Активностям, то нет смысла создавать новый(только если хотите использовать другой тип уведомлений).

Илья, да, записи в Reminding добавляются корректно (и время и прочитано), все записи корректно отображаются на коммуникационной панели.

Запись для нового провайдера тоже добавлял.

Я как раз и хочу добавить провайдер уведомлений по Активностям с типом "Уведомления" (базовый работает с напоминаниями).

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

Александр, по умолчанию ошибки связанные с уведомлениями логируются в общих логах приложения.

Так а в чем проблема была, решили?

Сомневаюсь, что логи за 2017 год сейчас сохранились.

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

Добрый день, подскажите, пожалуйста, какими средствами crm можно реализовать задачу: чтобы при создании нового лида приходило уведомление менеджеру, а также создавалась задача в календаре, которая, если менеджер не выполнит указанное действие через час будет просрочена?

Нравится

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

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

Задачу можно решить с помощью бизнес-процесса. Дизайн процесса будет выглядеть следующим образом:
1. Стартовый сигнал по добавлению записи в объект Лид.
2. Читать данные в лиде, где Id = Пункт 1. Id
3. Читать данные в контакте, где Id = Пункт 2. Ответственный. Подразумевается, что ответственный в лиде и есть менеджер, которому необходимо отправить уведомление.
4. Отправить письмо, в поле Кому указать Пункт 3. Email.
5. Добавить активность, в активности указать Лид = Пункт 2. Id
6. Элемент “Исключающее ИЛИ по событиям”. От этого элемента выходит два потока:
- первый поток ведет к элементу “Таймер”. В таймере указать 60 минут. После таймера добавить элемент “Изменить данные” в активности, где Id = Пункт 5. Id созданной записи, установить нужное состояние активности (в данном случае Просрочена)
- второй поток ведет к элементу “Обработка сигнала”. Элемент будет ожидать изменение состояния активности, где Id = Пункт 5. Id созданной записи, с фильтром Состояние = Выполнена.

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

Описанная задача может быть решена созданием бизнес-процесса. Логика процесса:
1) Стартовый сигнал по событию добавления записи в объект "Лид"
2) Элемент "Добавить данные" для создания записи в объекте "Активность". Необходимо заполнить поля:
Тип
Категория
Ответственный
Заголовок
Дата начала
Дата завершения
Лид
3) Элемент "Добавить данные" для создания уведомления. Необходимо заполнить следующие поля:
NotificationType: [#Справочник.Тип уведомлений.Reminding#]
Время: [#Системная переменная.Текущее значение даты и времени#]
Кому: [#Ответственный#]
Объект: [#Справочник.Объект раздела (представление).Активность#]
Уникальный идентификатор заголовка: [#Создать активность.Id созданной записи#]
4) Конец процесса.

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

Большое спасибо за помощь. :smile:
Еще такой вопрос: если создавать активность и по активности выводить уведомление в панель - все отлично работает. Но если я вывожу уведомление по созданию нового контакта без активности, то уведомление как бы приходит, но в таком виде: 30 и звоночек не появляется.
ContactNotficationProvider в схемах присутствует. В чем может быть проблема?

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

А провайдер зарегистрирован? Подобная тема обсуждалась здесь.

Добрый вечер, спасибо за отклик.
ContactNotificationProvider шел изначально в сборке
, его тоже необходимо дополнительно регистрировать?
Не подскажите какими средствами осуществлять запуск sql скриптов в bpmonline 7.9, чтобы осуществить регистрацию?

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

Для выполнения sql запросов в системе Вы можете воспользоваться партнерским решением https://marketplace.terrasoft.ru/app/49

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

Коллеги, подскажите, как создать из процесса уведомление пользователю в центр уведомлений?

Нравится

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

Павел,
Задача решается с помощью элемента “Добавить данные”. Записи хранятся в таблице Reminding. Самый простой способ – добавить уведомление из приложения, посмотреть какие поля заполнены в таблице БД и по аналогии заполнить эти поля в процессе.
Также следует учитывать – в системе существуют провайдеры, которые считают и обновляют кол-во уведомлений в зависимости от объекта привязки и типа уведомления. Для основных разделов такие провайдеры уже реализованы. При необходимости следует создать пользовательский провайдер. Пример в системе – ActivityNotificationProvider.

"Зарицкий Олег Васильевич" написал:

Павел,

Задача решается с помощью элемента “Добавить данные”. Записи хранятся в таблице Reminding. Самый простой способ – добавить уведомление из приложения, посмотреть какие поля заполнены в таблице БД и по аналогии заполнить эти поля в процессе.


Здравствуйте, а где можно посмотреть эти поля? В самом объекте Reminding?

Добрый день!
Reminding – развязочная таблица, которая хранит внешние ключи на разные сущности.
Название полей и их тип легче посмотреть в объекте [Уведомление/ Reminding].
Какие значения там хранятся можно посмотреть в таблице БД – Reminding.

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

Доброго времени суток!
Каким образом можно сменить подпись уведомления о новой визе в ком. панели? Чтоб выводилось в формате, к примеру: Заявка [номер], [цель], [получатель].

Нравится

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

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

На примере раздела "Заказы" логика реализована в OrderVisaNotificationProvider. Вам необходимо заместить логику этой схемы.

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

Уже разобрался. Формирую строку в БП, записываю в цель визы, и вывожу в ком. панель вместо имени объекта.

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