Как создать уведомление в коде 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);
2) Если другой объект системы, для которого есть NotificationProvider, то можно сделать аналогичный инсерт в таблицу reminding. Наполнение как из скриншота (скрин из бп, переделывать под createEntity немного лень). Единственное что в поле "Объект" надо вставить ID нужного объекта из вью, в "Уник. индетификатор заголовка" - id конкретной страницы
3) Если другой объект системы, у которого нет NotificationProvider, то обходной вариант - в активность прикреплять ссылку на ваш объект, уведомление прикреплять к активности. Или лепить собственный NotificationProvider, где-то тут на форуме уже обсуждалась данная тема.
И комментируя ваш батхёрт в соседней теме. "смотрите примеры в конфигурации" - это , пожалуй, девиз террасофта. так было полтора года назад, так осталось и сейчас. никто на форуме (за исключением 5-6 отдельных товарищей) не выкладывает отдельных решений кодом для вопрошающих.
Варфоломеев Данила,
спасибо за инф. у меня свой раздел. провайдера не было. провайдера нового написал. занес запись о нем в таблицу NotificationProvider. Создаю из кода уведомление, не вижу его нигде. Подскажете что еще нужно? может настройка какая-нибудь или еще какое-то сообщение нужно послать?
Данько Дмитрий Леонидович пишет:
Подскажете что еще нужно?
Насколько я помню надо проверить наличие записи в Reminding (isread должно быть false), проверить, чтобы был зарегистрирован провайдер для раздела в NotificationProvider, проверить ошибки в консоли (отрабатывает ли C# код провайдера) и самое главное надо для коммуникационной панели сделать описание айтема уведомления (верный способ, что всё работает, но нет описания для уведомления — в коммуник. панели "пустое" место, нет картинки, что нет напоминаний, как на скрине)
Варфоломеев Данила,
1) в таблицу NotificationProvider добавил 1 строку - описание провайдера ClassName = 'xxxxxxxxxx' (полное название моей схемы), Type=1 (Notification)
2) в таблицу Reminder добавил уже несколько строк - все заполнены. они как бы и должны появляться в уведомлениях. но не появляются.
В коде стоит обработка исключений они не появляются, записи успешно уходят в SQL.
3) у меня выглядит так как вы выложили на фото. пусто. что означает сделать описание итема для комуник панели? подскажите пож.
Варфоломеев Данила,
слушайте, у меян работают уведомления, вы помогли. но они работают только вод супервизором. А под моим аккаунтом, который я себе создал не работают, нужно что-то настраивать. подскажете что? под моим локальным аккаунтом вообще нигде ни одно уведомление не отображается, но код срабатывает я проверил
отбой. я кажется разобрался. я в коде инициализирую получателя - в коде C# это всегда супервизор. надо как-то по другому пользователя указывать, другой контакт.
Данько Дмитрий Леонидович пишет:
что означает сделать описание итема для комуник панели? подскажите пож.
Надеюсь вы разобрались, но на всякий случай отпишусь.
Загляните в ReminderNotificationsSchema (в схеме из пакета nui - свалка, можете глянуть в пакете Invoice). По сути там в diff описывается как отрисовывается единичное уведомление для конкретного объекта.
Добрый день,
можно ли поподробнее про пункт "создать описание айтема уведомлений"? Что это и , где хранится? Цель создать визу для кастомного объекта через свой кастомный Approval процесс. Notification provider описан и зарегистрирован, никаких ошибок он уже больше не кидает, в конечном результате имею именно пустое, без картинки пространство в коммуникационной панели.
Видимо, речь о пункте 3 в инструкции:
3. Заместить схему вкладки напоминаний ReminderNotificationsSchema
1. Чтобы отображались напоминания по требуемому объекту, создайте в пользовательском пакете замещающую схему ReminderNotificationsSchema и добавьте в нее необходимую программную логику.
...