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

Но как создать на C# (не в бизнес процессе) уведомление без этой ссылки, как это реализовано например у уведомлений об синхронизации с LDAP?

Нравится

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

Создаете в с# в таблице Remindings запись, вот и будет вам текст без ссылки. Откройте таблицу Remindings и посмотрите запись у которой дата 24.02.2021 в 17:57 и увидите какие поля должны быть заполнены чтобы получить такое уведомление.

Именно туда и ложил, потому что все уведомления там лежат только с указанием разных типов. Пробовал и такой способ   и такой . Смотрел в таблице "Reminding" как реализовано уведомление что на скрине, но без указания раздела его пользователь просто не видит, а с указанием делает гиперссылкой 

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

Мне эти ссылки не нужны. Приложите код которым создаете уведомление и скриншоты с полями в двух записях бд, та которая у вас создается уведомление и уведомление с ldap. 

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

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

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

А исходные данные мне нужны чтобы понять куда вы смотрите и почему разницу не видите.

Данные из бд можно работая в SQL Server Management Studio  выгрузить в csv, можно выделить и скопировать в excel.

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

И приложите свой c# код создания уведомления и файл с двумя записями из Reminding.

От

Полозюков Евгений Петрович,

Ответ простой - в 7.13 нельзя создать уведомление без ссылки, потому это поправили в более поздних версиях

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

Добрый день!

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

Нравится

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

Денис, о каких именно уведомлениях речь?

 

Если это записи в таблице Reminding (Уведомление), можно включить администрирование по записям и нужным записям сразу выдавать права на чтение только тем, кому надо. Это можно в БП на событии создания (проверяя, что именно по активности с определёнными названием или связями с обращением) или, если возможно, доработать сам код, где запись создают.

 

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

 

Аналогично для записей в ленте в таблице ESNNotification (Уведомление ленты).

 

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

 

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

Добрый день!
Аналогичный вопрос!

Как можно ограничить видимость отдельного элемента коммуникационной панели для определённых групп?
 

Создать операцию, выдать группам права на неё, а в коде страницы, где эта кнопка, привязать видимость к проверке на эту операцию.

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

Всем доброго времени суток! 

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

Нравится

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

Этот механизм реализован в схеме DesktopPopupNotification, функция из которой вместе с параметрами сообщения вызывается в том месте системы, где хотим что-то сообщить. Например, в SectionMergeHelper:

/**
 * Show popup message with the merge info.
 * @param {Number} mergeRecordsCount Count of records to merge.
 */
showMergePopup: function(mergeRecordsCount) {
	var config = this.getMergePopupConfig(mergeRecordsCount);
	DesktopPopupNotification.showNotification(config);
},
 
/**
 * Returns the config of the popup notification.
 * @param {Number} mergeRecordsCount Count of records to merge.
 * @return {Object} Config of the popup notification.
 */
getMergePopupConfig: function(mergeRecordsCount) {
	var bodyTemplate = this.getMergePopupBodyTemplate();
	return {
		id: this.Terrasoft.generateGUID(),
		title: resources.localizableStrings.MergeNotificationTitleTemplate,
		body: this.Ext.String.format(bodyTemplate, mergeRecordsCount),
		icon: this.getMergePopupIconUrl(),
		onShow: this.onShowPopup,
		ignorePageVisibility: true
	};
},

Соответственно, если хотите, чтобы в одних разделах что-то показывалось, а в других — нет, нужно в ненужных переопределить логику, закомментировав вызов showNotification.

Александр, спасибо за развёрнутый ответ! В частности интересуют уведомления об успешном запуске процессов, например при опубликовании обращения или очистки кэша Redis, в схемах процессов вызов данной функции не обнаружил

Похоже на функцию _showSuccessfullyRunProcessPopup в схеме ProcessModuleUtilities.

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

 Большое спасибо за помощь :3

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

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

Столкнулся с проблемой отображения уведомлений в коммуникационной панели.

Задача: при добавлении нового участника в деталь "команда" в карточке продажи - уведомлять добавленного участника в коммуникационной панели.

Делал через бп (скриншот во вложении).

При смене NotificationType на Notification - во вкладке системных уведомлений все отображается корректно. Можно перейти в продажу по ссылке.
При значении Reminding - во вкладке напоминаний пустота (а напоминание нужно как раз именно там). При этом на счетчике самой вкладки видно, что напоминание есть.

Решаема ли задача через бп? Или все же нужно кодить? Сначала подумал что нужно создавать провайдер, но я так понял что после 7.12 схема поменялась? Вообщем буду рад подсказке как это корректнее всего сделать.

С Активностями-Участниками аналогичный бп работает нормально (уведомления в напоминаниях отображаются).

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

Нравится

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

Возможно, при создании записи в таблице Reminding не заполнены нужными значениями все поля. Сравните в базе значения у той записи, что отображается у пользователя в этом разделе верно и у Вашей, созданной при помощи БП.

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

Александр, спасибо за подсказку. В таблице Reminding поле SourceId получает null. Не совсем пока понятно что с этим сделать, но это уже хоть что-то) Буду разбираться.

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

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

Александр, так я тоже пробовал еще в самом начале. К сожалению никакого эффекта это не дает (но кстати SourceId в таблице заполняется, это да).

На данный момент оставил уведомления как NotificationType = Notification. Но хотелось бы конечно разобраться.

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

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

Добрый день! Возможно ли в интерфейсе BPM Online настроить уведомления в почту о том, что есть незакрытые активности?

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

Нравится

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

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

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

Сидоров Александр Валерьевич,

Александр, спасибо за ответ! Скорее всего такой вариант устроит.

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

Вся эта информация есть в академии: поля, если они чисто служебные, без отображения, можно добавить в дизайнере объектов. Если и в каротчку — в мастере разделов.

А в этой статье есть готовое решение Вашей задачи:

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

Если просроченных задач очень много, то можно отправлять список одним письмом, используя добавление таблицы с задачами в текст письма с помощью дополнения https://marketplace.terrasoft.ua/template/data-table-e-mail-bpmonline

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

Добрый день господа.

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

Пробовал создавать БП , хоть и опыта нет.

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

Нравится

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

Здравствуйте, Кирилл! В активности есть параметр напомнить ответственному(чек-бокс) + дата напоминания - http://prntscr.com/orgt25, можете рассчитывать необходимую дату и время напоминания при формировании активности и заполнять.

Здравствуйте, Кирилл! В активности есть параметр напомнить ответственному(чек-бокс) + дата напоминания - http://prntscr.com/orgt25, можете рассчитывать необходимую дату и время напоминания при формировании активности и заполнять.

Нигрескул Алексей,  отлично я создал БП в котором один элемент "Добавить данные"  и с помощью которого успешно  добавляются данные в активность обрабатывая объект "задание", все замечательно но вот когда уведомление приходит юзеру в заголовке просто текст c ссылкой на активность , можно ли эту ссылку на свою запись "Задание" перебить?

А зачем Вы пишете курсивом?

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

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

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

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

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

Третья проблема - сделать ручное удаление уведомлений.

 

Вопрос оформлю идеей, но нужны советы куда копать для самостоятельной реализации этих "фишек"?

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

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

По второму, нужно смотреть логику SystemNotificationsSchema и SystemNotificationProvider. В первой есть запуск функции markNewNotificationsAsRead, которая реализована в BaseNotificationsSchema.

По третьему, эти записи хранятся в таблице Reminding. При желании, можно зарегистрировать её как справочник и там удалять записи.

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

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

var insert = new Insert(UserConnection).Into("Reminding")
    .Set("ContactId", Column.Const("410006E1-CA4E-4502-A9EC-E54D922D2C00"))
    .Set("Description", Column.Const("Привет это напоминание"))
    .Set("PopupTitle", Column.Const("Напоминание"))
    .Set("RemindTime", Column.Const("2018-08-09 12:00"))
    .Set("SysEntitySchemaId", Column.Const("41AF89E9-750B-4EBB-8CAC-FF39B64841EC"))
    .Set("SourceId", Column.Const("A66D08E1-2E2D-E011-AC0A-00155D043205"))
    .Set("SubjectId", Column.Const("ED9F217C-F36B-1410-A086-00155D04C01D"))
    .Set("SubjectCaption", Column.Const("Содержимое"))
    .Set("TypeCaption", Column.Const("Task"))
    .Set("NotificationTypeId", Column.Const("5D4B76F0-953C-4F91-A8A4-B85DF935074F"));

insert.Execute();

return true;

 

Нравится

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

Сравните в базе новую и существующие записи в таблице напоминаний. Может, не все поля заполнены или заполнены не так.

Понял как надо делать)
Вот этот код почему то работает как надо..
Напоминания отображаются полностью, ..

Entity remindingEntity = UserConnection.EntitySchemaManager.GetInstanceByName("Reminding").CreateEntity(UserConnection);

// Индификатор записи
var caseId = new Guid("ED9F217C-F36B-1410-A086-00155D04C01D");

// Индификатор раздела
var entitySchemaId = "41AF89E9-750B-4EBB-8CAC-FF39B64841EC";

remindingEntity.SetDefColumnValues();
remindingEntity.SetColumnValue("AuthorId", authorId);
remindingEntity.SetColumnValue("ContactId", authorId);
remindingEntity.SetColumnValue("Description", Description);
remindingEntity.SetColumnValue("SubjectCaption", Title);
remindingEntity.SetColumnValue("SourceId", Terrasoft.Configuration.RemindingConsts.RemindingSourceAuthorId);
remindingEntity.SetColumnValue("RemindTime", UserConnection.CurrentUser.GetCurrentDateTime());
remindingEntity.SetColumnValue("NotificationTypeId", Terrasoft.Configuration.RemindingConsts.NotificationTypeRemindingId );
remindingEntity.SetColumnValue("SysEntitySchemaId", entitySchemaId);
remindingEntity.SetColumnValue("SubjectId", caseId);

remindingEntity.Save();

return true;

t.vladislav,

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

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

Здравствуйте! Может кто-нибудь подскажет как решать проблему, с отображением данных уведомлений.

Сами уведомления приходят, всё хорошо, но они не отображаются "красными кружками", в боковой панели, на "Центр уведомлений". Версия 7.11

Нравится

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

Механизм уведомлений будет работать корректно при правильно настроенных сокетах. С порядком настройки сокетов можно ознакомиться здесь. Также следует обратить внимание на тот факт, что обязательно должен быть активирован компонент "WebSocket Protocol". Ниже прикреплен скриншот для наглядности:

Мотков Илья,

Cпасибо за ответ, сделал как написано, в консоли отобразилась надпись 

WebSocket-connection opened for url:ws://demo.bpmonline.com/0/Nui/ViewModule.aspx.ashx
а так же типа такого периодически сыпется

Уведомления всё равно не появляются, т.е. сами уведомления приходят, но оповещений на уведомления так и не появляются.
Эти уведомления ведь могут работать и на пользовательские разделы?

Насколько понимаю Ваш сайт размещен локально. В данном случае Вам следует обратить внимание на следующие факторы:
1. Должна использоваться только регламентированная Terrasoft операционная система (только Windows в качестве сервера для разворачивания и для клиентской ПК. Также для клентского ПК еще может использоваться MAC OS но только в браузере Safari);
2. Должен использоваться только регламентированный Terrasoft браузер (Chrome, Mozilla последней актуальной версии, Safari под MAC OS);
3. Должны быть открыты и корректно настроены веб-сокеты, ссылка выше.

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

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

Вопрос

Можно ли как-то отключить на время все email-уведомления из системы?

Ответ

В базовой версии bpm'online нет возможности отключить уведомления по новым письмам.
Необходимо вносить изменения напрямую в базу sql-запросом. 
В таблице MailboxSyncSettings нужно отключить уведомления 
update MailboxSyncSettings set SendWebsocketNotifications = 'false'

Обратите внимание! В этом случае может возникнуть ситуация, когда новое письмо не будет отображаться на коммуникационной панели. Необходимо будет перейти в другую папку в почте (входящие/исходящие) или обновить страницу браузера.

Нравится

Поделиться

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