Как узнать в каком канале создана запись в ленте?

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

Событие в БП понятно какое - Новая запись в объекте "Сообщение/комментарий". А дальше? Не совсем понятно как через доступные поля с guid (схема и экземпляр объекта) выйти на ответственного. Что вообще означают эти два поля?

Нравится

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

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

Зная, с какого объекта начинать, - сделать первый шаг бизнес процесса.
Схема - UId объекта, в котором оставлен комментарий (по сути это уникальный идентификатор объекта в системе)
Экземпляр объекта - Id записи в объекте.

Теперь Вам необходимо элементом "Задание-сценарий" считать значение OwnerId для определения ответственного за запись (Id которой у Вас есть) в объекте (UId которого у Вас есть) (элемент читать данные не подходит - там нельзя динамически определять объект).

Ну и остался последний шаг:smile: - элементом "Добавить данные" необходимо добавить запись в объект "Уведомления", указав значения полям "Кому" (ответственному), "Объект" (UId объекта), "Уникальный идентификатор записи" (Экземпляр объекта), Время (Текущая дата и время).

Конец процесса.

"Демьяник Алексей Олегович" написал:Зная, с какого объекта начинать, - сделать первый шаг бизнес процесса.
Схема - UId объекта, в котором оставлен комментарий (по сути это уникальный идентификатор объекта в системе)
Экземпляр объекта - Id записи в объекте.

Спасибо! Я правильно понимаю, что если, например, комментарий оставлен в какой-либо задаче, то "Схема - UId объекта" - будет указывать на "Активности", а "Экземпляр объекта - Id записи в объекте" - это GUID конкретной задачи?

"Мамедов Фариз Эльдарович" написал:

Спасибо! Я правильно понимаю, что если, например, комментарий оставлен в какой-либо задаче, то "Схема - UId объекта" - будет указывать на "Активности", а "Экземпляр объекта - Id записи в объекте" - это GUID конкретной задачи?

Да, совершенно верно!

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

Для того, чтобы поставить "тег на пользователя" Вам необходимо записать в объект SocialMention (Упоминания пользователя) Контакт пользователя в поле "Контакт" и Id комментария, в котором пользователь был упомянут, в поле "Сообщение".

сделал, но все равно не появляется уведомление в комм. панели о новом сообщении. Сообщение появляется, но в комм. панели не отражается этот факт.

На коммуникационной панеле есть две кнопки, связанные с лентой:
1) Лента
2) Уведомления ленты

Уведомления ленты пользователь получает, если:
1) Запись пользователя была прокомментирована
2) На записи пользователя нажали "like"

Сообщения в ленту пользователь получает уведомления, если он подписан на ленту. Например, пользователь Шевченко П.Р. подписался в разделе "Contacts" на запись "Иванющенко В.А".
В случае, если другой пользователь Калиниченко С.Т. напишет сообщение в ленте записи контакта Иванющенко В.А. какое-то сообщение, тогда в ленте на коммуникационной панеле пользователь Шевченко П.Р. увидит сообщение, написанное Калиниченком С.Т.

Шевченку П.Р. понравился комментарий написанный Калиниченком С.Т..
Шевченко П.Р. нажал "Нравится" и оставил свой комментарий к записи Калиниченком С.Т.
У пользователя Калиниченко С.Т. количество уведомлений в ленте увеличится на два.

То есть, это нормальное поведение системы.

Я правильно понимаю, что для реализации моего фукнционала, надо помимо того, что я пишу сообщения в ленту Активности, надо еще подписать Автора активности на ленту этой активности?

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

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

Добавляю в рамках БП записи в объекты (пробовал во все)
Упоминание пользователя
Уведомление ленты

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

Добавляю в рамках БП записи в объекты (пробовал во все)
Упоминание пользователя
Уведомление ленты

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

"Демьяник Алексей Олегович" написал:

Ну и остался последний шаг:smile: - элементом "Добавить данные" необходимо добавить запись в объект "Уведомления", указав значения полям "Кому" (ответственному), "Объект" (UId объекта), "Уникальный идентификатор записи" (Экземпляр объекта), Время (Текущая дата и время).

Конец процесса.

Только сама запись не должна находится в конечном состоянии..

"Демьяник Алексей Олегович" написал:

Ну и остался последний шаг - элементом "Добавить данные" необходимо добавить запись в объект "Уведомления", указав значения полям "Кому" (ответственному), "Объект" (UId объекта), "Уникальный идентификатор записи" (Экземпляр объекта), Время (Текущая дата и время).

Конец процесса.

Только сама запись не должна находится в конечном состоянии..

Спасибо, но в этом то как раз и затык. Суть кейса - уведомить автора задачи о том, что ответственный её выполнил. И как раз таки задача находится в конечном состоянии. В этом случае, уведомления не работают. Поэтому хочу добавлять комментарий в ленту задачи (это получается), но надо еще оповестить автора.

Тогда поступим по другому.
1) Добавим в "Сообщение/комментарий" одну запись:

  • Контакт - Автор
  • Сообщение/комментарий - "Выполнение задачи"
  • Схема
  • Экземпляр

2) Добавим в "Сообщение/комментарий" еще одну запись:

  • Контакт - Ответственный
  • Сообщение/комментарий - "Задача выполнена"
  • Родительское сообщение - Id созданной записи с первого пункта
  • Схема
  • Экземпляр

Система создаст уведомление автору, что его запись была прокомментирована ответственным.:smile:

Добрый день!
Скажите, пожалуйста, а как сделать в данном случае в бизнес-процессе не просто сигнал на добавление записи в объект "Сообщение/комментарий", а сигнал на то, что сообщение в ленту было добавлено в привязке к обращению или к контрагенту?
Надо, я так понимаю, в условиях сигнала выбрать то, что сигнал должен соответствовать условиям,
и указать схему - UID объекта, в котором оставлено сообщение в ленте ( т.е. UID объекта обращение/ контрагент). Где посмотреть можно этот UID в конфигурации - какой указать?
Предполагаю, что в метаданных объекта MetaData.Schema.UId? А если объектов несколько для обращения, то смотреть в последнем унаследованном?

"Татаровская Дарья" написал:

Добрый день!

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

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

и указать схему - UID объекта, в котором оставлено сообщение в ленте ( т.е. UID объекта обращение/ контрагент).

Здравствуйте, Дарья! С этой частью полностью согласен - нужно указать условия в фильтре стартового сигнала.

"Татаровская Дарья" написал:

Где посмотреть можно этот UID в конфигурации - какой указать?

Предполагаю, что в метаданных объекта MetaData.Schema.UId? А если объектов несколько для обращения, то смотреть в последнем унаследованном?

А здесь я бы по другому сделал - добавил бы какой-то уникальный комментарий "АБЫРВАЛГ" к записи в разделе Контрагенты. Далее бы открыл MS SQL и выполнил скрипт

select EntitySchemaUId from SocialMessage where Message = "АБЫРВАЛГ"

И для записи в разделе "Обращения" сделал бы то же самое (только сообщение желательно изменить, чтобы не запутаться).

Добрый день! Через sql я в принципе понимаю как найти... - эта если у меня версия on-site
А если версия on-demand?

Можно бизнес процессом:
1) Чтение данных по объекту "Сообщение/комментарий" с фильтром Сообщение = "АБЫРВАЛГ"
2) Формула - подставить в параметр "Текстовое поле" автогенерируемой страницы, выбрать параметр "Схема" из чтения данных
3) Автогенерируемая страница с одним полем "Текстовое поле".

После запуска процесса откроется автогенерируемая страница и в текстовом поле будет Id...

"Демьяник Алексей Олегович" написал:

Тогда поступим по другому.

-skip-

Система создаст уведомление автору, что его запись была прокомментирована ответственным.:smile:

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

Понятно)) через sql быстрее, конечно.
Спасибо, попробую на клиенте повторить еще эти действия.
А вообще UID разный будет в разных сайтах (версия одна, сборка одна)
? Если у меня есть, например, сайт on-site,и сайт on-demand ( такая же версия, такая же сборка) - то там UID для схемы будет не совпадать?

И еще вопрос: Вы писали, что необходимо элементом "Задание-сценарий" считать значение OwnerId для определения ответственного за запись (Id которой у Вас есть) в объекте (UId которого у Вас есть) (элемент читать данные не подходит - там нельзя динамически определять объект).
Где можно посмотреть пример подобного считывания, скажите, пожалуйста.

Спасибо

Коробочные объекты имеют одинаковый UId, пользовательские - разные.

"Татаровская Дарья" написал:

И еще вопрос: Вы писали, что необходимо элементом "Задание-сценарий" считать значение OwnerId для определения ответственного за запись (Id которой у Вас есть) в объекте (UId которого у Вас есть) (элемент читать данные не подходит - там нельзя динамически определять объект).

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

Спасибо

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

Спасибо
В своем процессе я создавала не уведомление, а уведомление по ленте.
Т.к. на ленте оставляют сообщения пользователи веб-портала, а у них нет прав на уведомления, только на уведомления по ленте.
В принципе, все получилось:
уведомление по ленте создается
использовала элемент Добавление данных
(заполненные поля:
владелец - ответственный из обращения; сообщение - ссылка на сообщение в ленте; прочитанное = false; тип - "опубликовал новое сообщение")
Но для того, чтобы на правой панели в кнопке "уведомления по ленте" появилась цифра "1"( то есть признак того, что появилось новое уведомление), необходимо нажать f5 - обновить страницу.

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

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

Дарья, за обновление количества записей отвечает процесс "Получить количество уведомлений". Он запускается с периодичностью раз в минуту.
Вроде ничего больше и не сделаешь...

Спасибо

"Демьяник Алексей Олегович" написал:

Можно бизнес процессом:

1) Чтение данных по объекту "Сообщение/комментарий" с фильтром Сообщение = "АБЫРВАЛГ"

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

3) Автогенерируемая страница с одним полем "Текстовое поле".

После запуска процесса откроется автогенерируемая страница и в текстовом поле будет Id...

Добрый день!
С текстовым полем не получается
Возникает
ошибка преобразование типа System.GUID в String невозможно,
т.к. значение идентификатора пытается засунуться в поле типа стринг

А в преднастроенной странице нет поля типа идентификатор...

Как тогда получить значение это на on-demand?

Ну как вариант использовать конструкцию [Параметр].ToString().
Кстати, элемент "Формула" преобразовывает данные в текстовый вид. Его нужно использовать перед элементом "Преднастроенная страница".

формулу использовала как раз до элемента пренднастроенная страница.
[Параметр].ToString() - такая конструкция помогла, спасибо.
Единственное, в параметр надо было помещать не схему из чтения данных, а экземпляр объекта из чтения данных

"Демьяник Алексей Олегович" написал:Ну и остался последний шаг - элементом "Добавить данные" необходимо добавить запись в объект "Уведомления", указав значения полям "Кому" (ответственному), "Объект" (UId объекта), "Уникальный идентификатор записи" (Экземпляр объекта), Время (Текущая дата и время).

Хотела бы добавить уведомление по объекту(обращение) с помощью элеманта "Добавить данные"
у уведомления есть следующие поля
"Кому" - это ответственный
"Объект" - UID схемы объекта, по которому должно прийти уведомление
"Уникальный идентификатор заголовка" - это идентификатор самого объекта
"Время" - текущая дата и время
"Автор" - текущий контакт
SubjectCaption - это наименование уведомления

но есть еще

"SourceId" (Источник) - что такое источник? что необходимо туда вписывать?

"Hash" - хэш код. что такое хэш код в данном случае, каким образом его формировать, напишите, пожалуйста
Предполагаю, что влияет на заголовок самого уведомления?(чтобы писалось не просто обращение, а обращение № такое-то)

Здравствуйте, Дарья!

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

Добрый день! делаю аналогичную задачу по созданию уведомлений при изменении ответственного по продаже. Создала БП, который стартует по сигналу изменения записи в объекте Продажи. Для определения ответственного вставила код

var Ownerid1 =
new Select(UserConnection)
.Column("Ownerid")
.From("Opportunity")
.Where("Id").IsEqual(Column.Parameter(RecordId));
return true;

Переменные Ownerid1и RecordId описала в параметрах как уникальные идентификаторы, значение для RecordId передала через кубик Формула.
Кубиком Добавить вставляю ответственного в поле Кому, но значение не передается (посмотрела через SQL запрос). Получается, что неправильно передаю Ownerid1. Подскажите, пожалуйста, как передать Ownerid1 корректно. Спасибо!

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

Используйте элемент "Чтение данных".

Данная задача решается следующим минимальным набором элементов:
1) Стартовый сигнал
2) Чтение данных продажи
3) Чтение данных ответственного
4) Отправить email
5) Конец процесса

Алексей, спасибо за ответ! Похоже я неточно описала задачу... необходимо создать уведомление ответственному в Уведомлениях в Ленте.

Здравствуйте!
Я ренее в этой теме описывал реализацию.

Только в первом сообщении должен быть ответственный, а "комментировать" должен Supervisor.

Алексей, добрый день! У нас задача получается такая, что при изменении ответственного в продаже появляется новое уведомление справа в Уведомлениях, при этом нам не надо создавать задачу ответственному. Вставляю кубиком Добавить в Уведомления ответственного, заголовок. SQL запросом проверили, что это все в таблице Уведомления есть. Добавили в Сообщения/Комментарии ответственного (уведомление необходимо только ответственному). Новое уведомление не появляется, процесс завершается успешно. Подскажите, пожалуйста, что сделали неверно. Спасибо!

Юлия, Вы меня запутали!

В системе есть два объекта "Уведомление" и "Сообщение/комментарий". Они между собой не связаны.

"Юлия Мишутина" написал:

Добавили в Сообщения/Комментарии ответственного (уведомление необходимо только ответственному).

Уведомления по новым сообщениям в ленте не приходят.

Алексей, добрый день!
Перед нами стоит следующая задача: при изменении ответственного по продаже необходимо чтобы пользователю, который стал ответственным, приходило уведомление справа на панели, где уведомления по задачам, в формате «Вы стали ответственным по продаже №…», при этом количество уведомлений также отображалось (т.е. появилось новое, появилась единичка) и была возможность перейти в объект Продажа, как сейчас можно перейти в Активность, при этом никакая задача создаваться не должна, только уведомление на панели.
Мы создали БП, состоящий из следующих действий:
1.Сигнал-Изменили ответственного в Продаже;
2.Читать продажу;
3.Читать ответственного по продаже;
4. Добавить уведомление ответственному по продаже.
В «Добавить уведомление ответственному по продаже» Объект-Справочник.Продажа, Уникальный идентификатор заголовка-ID измененной продажи,Кому-ID ответственного.
При изменении ответственного в продаже бизнес-процесс завершается без ошибок, но ни уведомление, ни отображение нового уведомления не появляются. Если смотреть sql запросом уведомления в таблице уведомлений, они есть.
Подскажите пожалуйста, что мы делаем не так и как реализовать поставленную задачу? Спасибо!

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

Ограничение - продажа не должна быть в конечном состоянии, т.к. уведомления не будут отображаться.

Вам необходимо заполнять следующие поля:
Объект (выбор значения из справочника - Продажа)
Уникальный идентификатор заголовка - (Id продажи)
Кому - (Ответственный)
Время - (текущая дата/время)
Описание
Источник (выбор значения из справочника - Ответственный)
Заголовок

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

Ограничение - продажа не должна быть в конечном состоянии, т.к. уведомления не будут отображаться.

Вам необходимо заполнять следующие поля:
Объект (выбор значения из справочника - Продажа)
Уникальный идентификатор заголовка - (Id продажи)
Кому - (Ответственный)
Время - (текущая дата/время)
Описание
Источник (выбор значения из справочника - Ответственный)
Заголовок

Алексей, подскажите, пожалуйста, что имеется в виду под конечным состоянием продажи. Если это Активность, с ней вроде понятно, если активность в Статусе "завершена", значит она в конечном состоянии. У Продажи есть только Стадия и мы тестируем на "Определении потенциала". В поле Источник значение добавили, уведомления не появились. Спасибо!

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

Рекомендую по данному вопросу зарегистрировать обращение в службу поддержки (желательно, чтобы это обращение было зарегистрировано от имени авторизованного лица:smile:).

В данном случае речь идет о стадии продажи. Конечное состояние определяется соответствующим признаком в справочнике.

все тикеты как правило заканчиваются одинаково - ничем.

Где пример как создать напоминание в коде C#? 

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