...

Как скриптом прикрепить к стандартному сообщению ссылку на объект?

Тема в разделе "Разработчикам", создана пользователем r.kiyamov, 18 июл 2018.

  1. r.kiyamov

    r.kiyamov Member

    В дизайнере при настройке блока Оповещение есть возможность указать ссылку на объект скрин - https://www.screencast.com/t/KwKhcDNuOQp
    как такую же штуку приклеить к оповещению создаваемому скриптом?
    Код:
    var message = InterfaceActivator.Create<IChannelMessage>();
                    message.Recipients.Add(activeUser);
                    message.FullMessage = string.Format("{0} отредактировал сделку {1} в {2}", activeUser, context.Sale, DateTime.Now);
                    message.Subject = string.Format("Отредактирована сделка {0}", context.Sale);
                    message.CreationAuthor = activeUser;
                    message.CreationDate = DateTime.Now;
                    message.Save();
    создаю так. как надо переиначить чтоб можно было добавить ссылку на объект?)

    Тупо вставить ссылку в тело сообщения можно но это не круто)

    хочется чтоб было кликабельное слово например Сделка и по клику попадаем в целевую сделку.
     
  2. pushkarev

    pushkarev Active Member

    Функциональность оповещений в процессах это не сообщения. Физически эти сообщения лежат в таблице "Feed", и в видимо относятся к объекту типа FeedModel. В нем можно указывать ссылку, которая будет открывать при клике на название сообщения. Честно говоря не нашел примеров как работать с этим типом, но можно попробовать работать как со стандартным объектом через интерфейсактиватор. Полное название класса : EleWise.ELMA.Messages.Models.FeedModel.
    Если у вас есть поддержка, то можете попробовать спросить у нее, решение должно быть, только она не документировано.
     
  3. r.kiyamov

    r.kiyamov Member

    Код:
    var message = InterfaceActivator.Create<FeedModel>();
               
                message.TextHtml = "Ссылка";
                message.Url = "http://192.168.2.3/CRM/ContractorLegal/Details/99507";
                message.Subject = string.Format("Отредактирована сделка {0}", context.Sale);
                message.CreationAuthor = activeUser;
                message.CreationDate = DateTime.Now;
                message.Save();
    да FeedModel это оно но у него почему-то отсутствует метод Save видимо модель надо создавать, а засылать в ленту уже как-то иначе.... может есть какой-то Manager для этого?
     
  4. pushkarev

    pushkarev Active Member

    Есть FeedManager, он используется в контроллерах системы, но в какой он сборке и пространстве имен я не нашел, нужно глубже исследовать и экспериментировать. Видимо разработчики не очень хотели, чтобы его использовали другие внедренцы, раз так все запрятали.
     
  5. r.kiyamov

    r.kiyamov Member

    FeedManager похоже просто private в скриптах пишет что недоступен из-за уровня защиты... печалька
     
  6. r.kiyamov

    r.kiyamov Member

    В статье https://www.elma-bpm.ru/KB/article-5558.html описано как создать сообщение с помощью скрипта. Изменение статуса с помощью m.Statuses - не рекомендуется. Как можно поменять статус сообщения?
     

Поделиться: