Обзор

Discussions разделяет уведомления на две части. Веб-часть фиксирует, кто о чём хочет узнавать: она ведёт список подписок, позволяет пользователям подписаться на доску или тему с выбранной частотой и помечает людей, упомянутых в сообщении. Доставка писем оставлена потоку Power Automate, который владелец сайта запускает в собственном клиенте. Сама веб-часть никогда не отправляет почту и не запрашивает разрешение Mail.Send или какое-либо иное разрешение Microsoft Graph; данные, нужные потоку, лежат в обычных списках SharePoint на сайте.

В этой статье описан этот контракт: что веб-часть гарантирует в списках и что поток должен с этим делать.

❗ Важно
В версии 26.10.2 шаблон потока Power Automate не поставляется. Веб-часть сохраняет подписки и упоминания, как описано ниже, но письма не отправляются, пока в вашем клиенте не появится поток. Контракт из этой статьи — это то, на чём такой поток строится; готовый к импорту шаблон и статья о его настройке запланированы на один из следующих выпусков.

Что делает веб-часть

Подписка на доску или тему

Пользователи, которые могут писать (разрешение Добавление элементов (Add Items) на сайте, входящее в уровни «Участие» и «Изменение»), видят кнопку Подписаться на панели команд доски и в заголовке каждой темы. Один щелчок подписывает с частотой Сразу; раскрывающаяся часть кнопки предлагает варианты Сразу, Ежедневная сводка и Еженедельная сводка, а также Отписаться. Когда пользователь подписан, на кнопке написано Подписка и выбранная частота. Автор новой темы подписывается на неё автоматически с частотой Сразу. У посетителей с правами только на чтение кнопки нет, потому что они не могут писать в список подписок.

Кнопка «Подписаться» с меню частоты

Кнопка «Подписаться» с меню частоты

Каждая подписка — это один элемент списка Подписки обсуждений (Discussions Subscriptions), по одному на пользователя и объект: повторная подписка на ту же тему с другой частотой обновляет элемент, а не добавляет второй, а Отписаться удаляет его. Поэтому отключить уведомления значит удалить свои подписки; отдельного признака «без звука» нет. Руководство пользователя — в статье KB10404. Подписка на доски и темы: подписки и частота сводок.

Упоминания

Когда пользователь вводит в редакторе @ и выбирает человека, веб-часть вставляет в текст сообщения ссылку вида <a href="mailto:…" data-mention-id="{siteUserId}">@Имя</a> и одновременно добавляет человека в столбец «пользователь» Упоминания темы или ответа. Этот столбец — сигнал для потока: ему не нужно разбирать HTML, чтобы узнать, кто упомянут. Упоминания можно править вместе с сообщением; столбец перезаписывается при каждом сохранении. См. KB10403. Упоминания @ в Discussions.

Список «Подписки обсуждений»

СтолбецВнутреннее имяЗначение
ПользовательVtxUserПодписчик (столбец «пользователь»)
Тип объектаVtxTargetTypeBoard или Topic
Идентификатор объектаVtxTargetIdИдентификатор элемента доски в списке Доски обсуждений (Discussions Boards) или элемента темы в списке Темы обсуждений (Discussions Topics)
ЧастотаVtxFrequencyImmediate, Daily или Weekly
ДоскаVtxBoardПодстановка на доску, в том числе для подписок на темы, чтобы все подписки одной доски можно было прочитать одним фильтром
НазваниеTitleBoard:{id} или Topic:{id}, для удобства чтения в представлениях списка

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

Список «Подписки обсуждений»

Список «Подписки обсуждений»

События, на которые реагирует поток

Все события — это обычные события элементов двух списков с содержимым; поток использует стандартные триггеры SharePoint При создании элемента и При создании или изменении элемента.

СобытиеСписокУсловие
Новая темаТемы обсужденийЭлемент создан со значением Статус утверждения = Approved
Тема утверждена модераторомТемы обсужденийЭлемент изменён, и Статус утверждения сменился на Approved
Новый ответСообщения обсужденийЭлемент создан со значением Статус утверждения = Approved
Ответ утверждёнСообщения обсужденийЭлемент изменён, и Статус утверждения сменился на Approved
Принят лучший ответТемы обсужденийПринятый ответ сменился с 0 на идентификатор ответа
УпоминаниеОба спискаУпоминания содержит пользователей
Элемент ожидает модерацииОба спискаЭлемент создан со значением Статус утверждения = Pending

На доске без утверждения каждый новый элемент создаётся со значением Approved; на доске с параметром Требовать утверждения новых сообщений элементы участников создаются со значением Pending и получают Approved, когда модератор их утверждает, — именно в этот момент следует уведомить подписчиков. Отклонённые элементы уведомлений не порождают.

📝 Заметка
Владелец сайта может переименовать списки, потому что веб-часть распознаёт их по идентификаторам столбцов. Поэтому поток должен ссылаться на списки по их идентификатору (GUID), а не по названию, и читать значения столбцов по внутренним именам (VtxApprovalStatus, VtxMentions, …).

Кто что получает

Правила выбора получателей в контракте:

  1. Новая тема — подписчики доски: элементы с Тип объекта = Board и Идентификатор объекта = Доска темы.
  2. Новый ответ — подписчики темы (Тип объекта = Topic, Идентификатор объекта = Тема ответа) плюс подписчики доски этой темы. Автор ответа исключается.
  3. Лучший ответ — автор принятого ответа и подписчики темы.
  4. Упоминание — пользователи из столбца Упоминания элемента. Они уведомляются независимо от подписок и их частоты; упомянутый человек не может отключить упоминания.
  5. Ожидает модерации — участники группы владельцев сайта, которые являются модераторами доски.

Частоты

  • Immediate — поток с триггером При создании или изменении элемента отправляет по одному письму на событие подписчикам с этой частотой.
  • Daily и Weekly — запланированный поток собирает темы, у которых Последняя активность попадает в период, и отправляет одну сводку на подписчика. Ответ обновляет Последнюю активность своей темы, поэтому сводка, построенная по темам, охватывает и новые ответы.

Тема открывается через страницу, на которой размещена веб-часть Discussions, с параметром запроса ?topic={Id}, где {Id} — идентификатор элемента в списке Темы обсуждений. Веб-часть нигде в списках не хранит адрес своей страницы, поэтому адрес страницы — это параметр потока. Та же прямая ссылка используется веб-частью Discussions Activity и описана в статье KB10407. Как поделиться ссылкой на тему в Discussions (прямые ссылки).

Что должен делать поток

Вкратце, поток доставки, построенный на этом контракте:

  • выполняется от имени владельца сайта или общего почтового ящика вашего клиента — отправитель принадлежит вам, а не Vitextra;
  • срабатывает на перечисленные выше события элементов списков Темы обсуждений и Сообщения обсуждений, по идентификатору списка;
  • читает список Подписки обсуждений с фильтром по Доске (и по Типу объекта / Идентификатору объекта), чтобы определить получателей, и столбец Упоминания элемента — для упомянутых пользователей;
  • исключает автора элемента и устраняет дубли, когда человек одновременно подписан и упомянут;
  • строит ссылку из собственного параметра с адресом страницы и идентификатора темы;
  • для сводок выполняется по расписанию и группирует темы по подписчикам.

💡 Совет
Поскольку подписки и упоминания — это обычные данные списков, тот же контракт подходит и для других каналов, помимо почты: сообщение в чате Teams или адаптивная карточка, отправленные потоком, используют тех же получателей и ту же ссылку. Меняется только последнее действие потока.

Рекомендуемые статьи

Organizational Chart. Обзор решения

Vitextra Organizational Chart — веб-часть для SharePoint Online и Microsoft Teams, которая строит интерактивную организационную структуру компании на основе данных Microsoft Entra ID. Узнайте, как это работает: автоматическое построение структуры по атрибуту «руководитель», два режима диаграммы, горизонтальное и вертикальное расположение, карточки сотрудников с фото и статусом присутствия, поиск, фильтрация, экспорт в PDF и JPEG и интеграция с Teams.

66 7 мин
Как добавить Discussions в Microsoft Teams

Пошаговое руководство по использованию Vitextra Discussions как вкладки в канале Microsoft Teams: публикация приложения из каталога приложений SharePoint, добавление вкладки, создание или выбор доски на сайте SharePoint команды, настройка вкладки, как ведут себя разрешения, утверждение и глубокие ссылки в Teams и что проверить, если вкладка пуста.

4 6 мин
Настройка фонового изображения плитки

Как использовать картинку в качестве фона плитки в веб-части Vitextra Smart Tiles: пункт «Фоновое изображение», ввод URL-адреса или выбор изображения из библиотеки сайта, как изображение обрезается и масштабируется, как сохранить читаемость заголовка, запасной цвет, эскиз YouTube и удаление изображения.

70 4 мин

Поделиться