Обзор

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 или адаптивная карточка, отправленные потоком, используют тех же получателей и ту же ссылку. Меняется только последнее действие потока.

Вопросы и ответы

Задайте вопрос по статье и получите официальный ответ нашей команды.

Вопросов пока нет. Задайте первый вопрос.

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

Приватные типы отсутствий: что коллеги видят в календаре

Как работают приватные типы отсутствий в Vitextra Absence & Coverage: кто видит настоящий тип и число дней, где серая метка «Отсутствует» заменяет их в Team Absence Calendar и в экспорте в CSV, какие типы приватны по умолчанию, как изменить настройку и что правило конфиденциальности не защищает.

72 4 мин
Изменение цветовой темы веб-части Vitextra List Filter

Как изменить оформление веб-части Vitextra List Filter с помощью CSS: цвета кнопок, стиль подписей, элементы списка и выравнивание под тему вашего портала SharePoint.

100 3 мин
Организация вопросов: категории, группировка, фильтр по категориям, сортировка и свёртывание

Как структурировать базу знаний Vitextra Questions and Answers: задать категории в столбце выбора «Категория», сгруппировать вопросы под заголовками категорий, включить вкладки фильтра по категориям, сортировать по имени, порядку вопросов или дате создания в любом направлении, свернуть или развернуть ответы по умолчанию, а также какое сочетание подходит для небольших, средних и больших баз знаний.

41 5 мин

Поделиться