Sharepoint event receiver что это

Цикличность и временное отключение приемников событий в SharePoint

Как Вы можете знать, в SharePoint существует множество приемников событий (EventReceiver), которые позволяют вызывать пользовательский код при выполнении стандартных операций с объектами SharePoint, например добавление/удаление/изменение элементов списков. Работа с приемниками событий заслуживает отдельной статьи, но их по данной тематике и так довольно много, например Тут

Сегодня мы рассмотрим 2 частных случая проблем, которые могут возникнуть у начинающего разработчика SharePoint при работе с ресиверами:

1. Цикличный вызов событий.

То есть использование SystemUpdate для отключения вызова обработчиков событий будет не достаточно, хотя, признаюсь, в вышеуказанном примере как раз таки лучше вызывать SystemUpdate вместо Update, чтобы исключить изменения вышеуказанных полей и созданию новой версии элемента, если включена версионность.

Данную проблему поможет нам решить свойство EventFiringEnabled у SPEventReceiverBase (или даже у текущего наследуемого объекта от SPEventReceiverBase).

Данное свойство позволяет управлять возможностью вызова каких-либо обработчиков событий унаследованных от класса SPEventReceiverBase в текущем потоке. То есть в Вашем коде Вы можете выключать и включать вызовы обработчиков событий и не бояться, что другой код или простая работа пользователя (которая также вызывает ресиверы) будет омрачена отключением или выключением обработчиков в Вашем конкретном методе.

При вызове указанного кода при выполнении метода вызов ресиверов будет отключен. Стоит обратить внимание на то, что все ресиверы, унаследованные от SPEventReceiverBase, при установке свойства EventFiringEnabled в false будут отключены и об этом необходимо будет позаботиться самим. То есть Если в промежутке кода между выключением вызова ресиверов и включением Вы попытаетесь обновить другой список, к которому привязан обработчик событий на обновление, он не выполнится (Почему? Об этом немного ниже). Код, который должен был быть выполненным, необходимо выполнить принудительно.

Если обратить внимание на указанный выше код, то станет сразу понятно, что он не оптимален. Как минимум логичнее обернуть его в try-catch-finally(ну или как минимум просто try-finally). Вы же знаете что это или это?

В результате получится следующий код, который независимо от результата на выходе включит выполнение обработчиков событий обратно

Ниже по тексту будет представлен еще один возможный вариант отключения с инструкциейusing

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

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

По своей сути задача очень схожа с предыдущей, но у нас нет объекта SPEventReceiverBase и отключать вызов ресиверов нечему. Тут необходимо обратиться к рефлетору и посмотреть, что из себя представляет данный класс и как нам дальше быть.

Из кода видно, что у класса есть свойство EventFiringEnabled (мы им чуть ранее пользовались для отключения вызова событий) и с его помощью получается или устанавливается значение из статического свойства SPEventManager.EventFiringDisabled. Код данного свойства представлен ниже:

Так как метод статический, а внутренняя работа основана уже на потоках, то получается, что каждый унаследованный от SPEventReceiverBase класс работает уже не совсем с контекстом текущего объекта. Требуемая информация читается и записывается в отведенные для наших потоков ячейках памяти. Получается, что не столько важно из какого ресивера выполняется отключение или включение вызовов других обработчиков, сколько важно в каком потоке это делается. Таким образом, достаточно создать собственный класс, унаследованный от SPEventReceiverBase (или от SPItemEventReceiver для нашего конкретного случая, который в свою очередь также является наследником ), в требуемом месте кода инициализировать экземпляр и работать с уже привычным нам свойством EventFiringEnabled.

Получилось то, чего мы и ожидали. При обновлении не отработал ресивер. И как я сказал ранее, данный подход имеет право на жизнь и многие таким пользуются, но данную конструкцию я бы описал немного иначе. Мне очень нравятся using-паттерны. Как минимум за то, что используя данный функционал можно быть уверенным, что независимо от ошибок внутри инструкции, всегда будет вызван Dispose.

Свой класс я описал следующим образом:

Работа с данным классом получается следующей:

Здесь уже комментарии излишни, но тем не менее. При инициализации объекта DisableItemEvents будет сохранено первоначальное значение свойства EventFiringEnabled и установлено в false. А при диспоузе объекта свойство EventFiringEnabled будет возвращено обратно.

Таким образом мы рассмотрели возможные варианты отключения вызовов обработчиков событий как внутри ресиверов, так и из вне.

Источник

Приемники событий и приемники событий списков в модели надстроек SharePoint

Обработка событий в новой модели надстроек SharePoint выполняется не так, как при использовании кода с полным доверием.

В типичном решении фермы с кодом, требующим полного доверия (FTC), приемники событий списков и других событий создавались с помощью

кода серверной объектной модели SharePoint Server и развертывались с помощью решений. В данном случае код приемника событий выполняется на сервере SharePoint Server.

В случае модели надстройки SharePoint приемники событий создаются за пределами SharePoint в веб-службе и регистрируются в SharePoint. Они называются удаленными приемниками событий (RER). В этом случае код приемника событий выполняется на том веб-сервере, где размещена веб-служба.

С января 2017 г. SharePoint Online поддерживает веб-перехватчики списка, которые можно использовать вместо удаленных приемников событий «-ed». Дополнительную информацию о веб-перехватчиках см. в статье Обзор веб-перехватчиков SharePoint. Обратите также внимание, что некоторые примеры веб-перехватчиков доступны в репозитории GitHub sp-dev-samples.

Рекомендации высокого уровня

В качестве общего правила ниже приведены рекомендации высокого уровня для создания приемников событий.

Если URL-адрес конечной точки приемника событий недоступен, код приемника событий не будет выполнен. URL-адрес может быть недоступен по нескольким причинам. Основными из них являются неправильная настройка во время регистрации URL-адреса конечной точки, неполадки с DNS, возникающие при попытке решить проблемы с URL-адресом, и закрытие или нерабочее состояние сайта, размещающего конечную точку.

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

Отладка приемников событий

Чтобы выполнить отладку приемников событий, необходимо настроить несколько параметров в Azure и Visual Studio. Дополнительную информацию об отладке и пошаговые инструкции см. в следующей статье.

Источник

Event Receiver или Создание простой системы логирования действий с библиотеками документов SharePoint

1. Создаем пустой проект в Visual Studio

Sharepoint event receiver что это. step1. Sharepoint event receiver что это фото. Sharepoint event receiver что это-step1. картинка Sharepoint event receiver что это. картинка step1

2.Добавляем в него EventReceiver. Для этого жмем правой кнопкой на проекте и создаем элемент.

Sharepoint event receiver что это. step2. Sharepoint event receiver что это фото. Sharepoint event receiver что это-step2. картинка Sharepoint event receiver что это. картинка step2

3. Выбираем Приемник Событий

Sharepoint event receiver что это. step3. Sharepoint event receiver что это фото. Sharepoint event receiver что это-step3. картинка Sharepoint event receiver что это. картинка step3

4. После этого появляется следующий код в EventReceiver1.cs

///
/// События элемента списка
///
public class EventReceiver1 : SPItemEventReceiver
<
///
/// Добавляется элемент.
///
public override void ItemAdding(SPItemEventProperties properties)
<
base.ItemAdding(properties);
>

///
/// Обновляется элемент.
///
public override void ItemUpdating(SPItemEventProperties properties)
<
base.ItemUpdating(properties);
>

///
/// Удаляется элемент.
///
public override void ItemDeleting(SPItemEventProperties properties)
<
base.ItemDeleting(properties);
>

5. Коментируем base.* функции, добавляем свои…
//base.ItemAdding(properties);
WriteLog(properties, «add»);

…….
//base.ItemUpdating(properties);
WriteLog(properties, «update»);

//base.ItemDeleting(properties);
WriteLog(properties, «delete»);

6. Создаем список в который будут логироваться действия с библиотеками SharePoint

также, как в пункте 2 жмем «Создать элемент», выбираем «Список»

Далее настраиваем список, по минимуму нам понадобится 2 поля: Название, Операция

Sharepoint event receiver что это. step4. Sharepoint event receiver что это фото. Sharepoint event receiver что это-step4. картинка Sharepoint event receiver что это. картинка step4

7. Пишем саму функцию, в которой в 2 поля свежесозданного списка записываем Url измененного элемента и совершенную операцию.

public void WriteLog(SPItemEventProperties properties, string operation)
<
SPWeb web = properties.Web;
SPList loglist = web.Lists[«ListLog»];
SPListItem item = loglist.AddItem();

item[«Название»] = properties.ListItem.Url;
item[«Операция»] = operation;ыек

8. Готово. Собраный wsp-пакет внедряется так

P.S. Разумеется приведенный пример не является идеалом, хотя бы потому что у списка есть ограничения. Но ничего не мешает заменить тело WriteLog и например писать в файл или базу..

Статья написана по мотивам разработки «SharePoint Guru» Дениса

UPDATE

Бывают проблемы при дебаге Event Reciever. Выдавало примерно такой текст:

Error occurred in deployment step ‘Activate Features’: Feature with Id ‘2447ad0c-98d2-4363-9ef0-f217694f804e’ is not installed in this farm, and cannot be added to this scope.

Немного другое тело:

if(properties.List.Title == «НекийСписок») < //Только этот список интересует
SPWeb web = properties.Web;
SPList loglist = web.Lists[«Список_log»];
SPListItem item = loglist.AddItem();

item[«Название»] = properties.ListItem.Url;
item[«Сотрудник»] = properties.ListItem[«Employee»]; //Поле из отслеживаемого списка
item[«Операция»] = operation;

//var result = MessageBox.Show(properties.List.Title, «ListTitle», MessageBoxButtons.YesNo);
>

UPDATE2:

Нормальное задание списка на котором событие должно отрабатывать делается так..

В EventReceiver открываем Elements.xml, у элемента Receivers заменяем на:

Каким-то образом такой проект все равно не хотел запускаться и дебажиться. Сборка проходила, на этапе активации фичи был фаил. Помог перевод всего решения в режим sanboxed solution. И предыдущие примочки с реестром.

Но в sanboxed solution не подключиться к базе. Вернулся к farm solution. Пакет собирался, но на этапе активации была ошибка. Позже когда добавил еще пару событий на отработку они волшебным образом игнорировались, а старые отрабатывались.

Источник

Создание удаленного приемника событий в надстройках SharePoint

Для начала желательно иметь представление о надстройках SharePoint с размещением у поставщика, а также разработать несколько надстроек, которые были бы хоть немного сложнее уровня «Hello World». См. статью Создание надстроек SharePoint, размещаемых у поставщика.

Кроме того, следует ознакомиться со статьей Обработка событий в надстройках SharePoint.

Создание удаленного приемника событий

В этой статье показано, как усовершенствовать надстройку SharePoint, добавив удаленный приемник событий (RER), который обрабатывает событие ItemAdded для пользовательского списка на сайте надстройки. Удаленный приемник событий регистрируется на сайте надстройки с помощью декларативной разметки. Удаленные приемники событий регистрируются с помощью хост-сайта программно. Соответствующий пример кода см. на странице SharePoint/PnP/Samples/Core.EventReceivers.

Приемник удаленных событий должен быть веб-службой SOAP. В этом примере он реализован как служба Windows Communication Foundation (WCF), но его возможно реализовать в стеке не от Майкрософт.

Чтобы следовать приведенным здесь указаниям и ввести код самостоятельно, скачайте пример из репозитория SharePoint-Add-in-CSOM-BasicDataOperations, а затем откройте его в Visual Studio.

Этот пример использует файл TokenHelper.cs, созданный в Инструментах разработчика Office для Visual Studio. На момент создания примера это была последняя версия, но на момент чтения этой статьи она могла устареть. Тем не менее этот пример отлично подходит для создания первого удаленного приемника событий. Когда вы будете готовы двигаться дальше, ознакомьтесь с примерами в разделе «Дополнительные ресурсы» ниже. Скорее всего, они будут оставаться актуальными.

Регистрация удаленного приемника событий

Откройте проект надстройки SharePoint в Visual Studio.

В обозревателе решений выберите узел проекта надстройки.

В строке меню выберите Проект > Добавить новый элемент.

На панели Установленные шаблоны выберите узел Office/SharePoint.

На панели Шаблоны выберите шаблон Удаленный приемник событий.

В поле Имя оставьте имя, указанное по умолчанию (RemoteEventReceiver1), и нажмите Добавить.

В списке Тип приемника событий выберите События элемента списка.

В списке Элемент, который должен быть источником событий выберите Настраиваемый список.

В данном примере используется настраиваемый общий список. Тем не менее, приемник удаленных событий также может обрабатывать события, которые возникают в стандартных списках SharePoint, например Объявления или Контакты.

В списке Обработать следующие события выберите Добавляется элемент и нажмите Готово.

К веб-приложению добавляется веб-служба, чтобы обрабатывать указанное удаленное событие. В надстройку SharePoint добавляется приемник удаленных событий, а ссылка на элемент списка добавляется в файл Elements.xml приемника, который хранится в веб-компоненте надстройки.

Создание списка

В обозревателе решений выберите узел проекта надстройки.

В строке меню выберите Проект > Добавить новый элемент.

На панели Установленные шаблоны выберите узел Office/SharePoint.

На панели Шаблоны выберите шаблон Список.

В поле Имя оставьте имя, указанное по умолчанию (List1), и нажмите Добавить.

Выберите Создать экземпляр списка на основе существующего шаблона списка > Настраиваемый список и нажмите Готово.

Добавление функций в удаленный приемник событий

Если тестовая ферма SharePoint и Visual Studio работают на разных компьютерах (или в качестве тестового сайта SharePoint используется область клиентов SharePoint Online), настройте проект для отладки с помощью служебной шины Microsoft Azure. Дополнительные сведения см. в статье Устранение неполадок и отладка удаленного приемника событий в надстройке SharePoint.

Замените содержимое файла кода для службы удаленного приемника событий (то есть в файле RemoteEventReceiver1.svc.cs) указанным ниже кодом. Этот код выполняет следующие задачи:

Возвращает допустимый объект контекста клиента.

Если список под названием EventLog еще не существует, он создается и заполняется именами удаленных событий.

Добавляет запись в список для события, включая метку даты и времени.

На момент написания этой статьи Инструменты разработчика Office для Visual Studio содержали ссылки на все сборки, необходимые при создании приемника. В более поздних версиях пакета они могут отсутствовать. При возникновении ошибок компилятора просто добавьте отсутствующие ссылки. Например, может потребоваться добавить ссылки на System.ServiceModel или System.ComponentModel.DataAnnotations.

Запуск и тестирование обработчика событий

Протестируйте обработчик, выполнив указанную ниже процедуру.

Нажмите клавишу F5 для запуска проекта.

Подтвердите, что вы доверяете надстройке. Запустится ваша надстройка SharePoint. После этого появится таблица доступных списков, в которой будет список List1.

Выберите идентификатор списка List1. Этот идентификатор будет скопирован в поле Получение элементов списка.

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

В поле Добавить элемент введите First Item (Первый элемент), а затем нажмите кнопку Добавить элемент. Элемент Первый элемент будет добавлен в список List1. При этом активируется удаленный приемник событий и добавляется запись в список EventLog.

Нажмите кнопку Обновить списки, чтобы вернуться к таблице списков. В таблице появится новый список с именем EventLog (Журнал событий).

Выберите значение GUID ListID для EventLog, а затем нажмите кнопку Получить элементы списка. Появится таблица для списка EventLog с записью для события Handle ItemAdding, которое происходит при добавлении элемента в список List1.

Добавление и удаление обработчиков событий с помощью Visual Studio

В обозревателе решений выберите узел проекта для удаленного приемника событий.

На панели Свойства установите для свойств событий, которые нужно обрабатывать, значение True.

Например, если вы хотите обеспечить реакцию на добавление элемента списка пользователем, задайте для свойства Обрабатывать ItemAdding значение True. Если вы не хотите обрабатывать это событие, задайте для его свойства значение False.

Удаленные события SharePoint в Visual Studio

Sharepoint event receiver что это. sp vs properties window remoteevents. Sharepoint event receiver что это фото. Sharepoint event receiver что это-sp vs properties window remoteevents. картинка Sharepoint event receiver что это. картинка sp vs properties window remoteevents

Если вы добавили событие, включите код для его обработки в файл кода веб-службы, как и для предыдущих событий.

Для обработки события другого типа добавьте в Надстройка SharePoint еще один приемник удаленных событий. Например, если приемник удаленных событий обрабатывает события, связанные с элементами списка, вы можете добавить в него еще одно такое событие. Однако если вы хотите обрабатывать событие, связанное со списками, вам нужно добавить другой приемник удаленных событий.

URL-адрес и ограничения при размещении удаленных приемников событий в рабочей среде

Удаленный приемник событий может быть размещен в облаке или на локальном сервере, который не используется в качестве сервера SharePoint. URL-адрес производственного приемника не может использовать определенный порт. Это значит, что вам необходимо использовать порт 443 для протокола HTTPS (рекомендовано) или порт 80 для HTTP. Если вы используете HTTPS, приемник размещен локально, а надстройка находится в SharePoint Online, сервер размещения должен иметь доверенный сертификат, выданный центром сертификации. (Самозаверяющий сертификат подходит, только если надстройка расположена в локальной ферме SharePoint.)

Источник

Внешние события и оповещения в SharePoint

Узнайте концепции создания приемников удаленных событий в SharePoint, которые можно прикрепить к внешним спискам и выполнить при обновлении внешних данных, представленных в списке.

Что представляют собой приемники событий?

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

Приемники событий позволяют выполнять бизнес-логики при возникновении определенных событий. По сути это обработчики, где можно создать код, чтобы обрабатывать некоторые условия, сделать уведомлений, обновление других систем и т.д. При создании приемников событий создается библиотеки DLL. Можно поместить эту Библиотеку в глобальном кэше сборок, чтобы приемников событий, вызываются в ответ на изменения в внешней системы.

Следующий пример содержит приемник простой внешних событий в C#, который выполняется при добавлении нового элемента в список.

Внешние приемники событий также могут быть расширены для работы с приемником событий сущности и удаленными приемниками событий, развернутых в качестве локальной службы или Microsoft Azure.

Что такое удаленные приемники событий?

Приемники удаленных событий являются новыми для SharePoint. Традиционные решения SharePoint используйте приемника событий для обработки событий, таких как пользователи, создание и удаление списков и элементов списка. В Надстройка SharePoint использовать удаленного приемника событий для обработки событий, аналогичные. Удаленные приемники событий действуют подобно приемников событий регулярных, за исключением того, что удаленные приемники событий обработки событий, происходящих при Надстройка SharePoint на другой системе с его узла веб-приложения.

Службы Business Connectivity Services (BCS) использует удаленных приемников событий подключенного к внешних списков и entities можно написать код, который может реагировать на изменения в данные, размещаемые во внешней системе.

Чтобы решить эту проблему, были добавлены два стереотипов схеме модели BDC: EventSubscriber и EventUnsubscriber.

[!Примечание] Приемники событий не поддерживаются в изолированных решениях.

Какие функции и возможности нового инфраструктура приемника внешних событий предоставляет?

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

Оповещений: Оповещений было неотъемлемой частью SharePoint нескольких версий, но до SharePoint они не будут работать с внешними списками. Теперь пользователь может создавать оповещения на внешний список, для которого отличается от оповещений для стандартного списка SharePoint.

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

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

Удаленное событие в SharePoint делает возможным несколько интересных сценариев. Например возможно, «Продажи отслеживание потенциальных клиентов» приложение, которое позволяет получать уведомления при вводе нового сбыту в приложение внешнего интереса продажах. При вводе нового ведущего сотрудника отдела продаж через систему уведомлений, который является частью приложения интереса уведомляется SharePoint. SharePoint получает уведомления и затем создает новые задачи для указанного сотрудников отдела продаж к исполнению на каждый новый ведущий сотрудник. При настройке приложения запись ведущего сотрудника отдела продаж на внешнюю систему, чтобы отправить уведомление SharePoint при создании каждого нового интереса, SharePoint будет храниться полностью в актуальном состоянии.

Необходимые условия для использования приемников событий для внешних списков

Чтобы использовать приемники событий для внешних списков, вам необходимо следующее:

Visual Studio 2012

Дополнительные сведения о настройке среды разработки SharePoint см. в этой SharePoint.

Настройка внешней системы для уведомления SharePoint внешние события

Для внешних событий для работы число компонентов нужно установить и настроить на узел SharePoint и внешняя система.

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

Определение при изменении базовых данных. Для внешней системы, чтобы узнать, когда были внесены изменения необходимо создать механизм опроса для конкретных изменений. Это можно сделать с помощью запланированных служба, которая опрашивает источника данных через определенные интервалы времени.

Получения и записи запросов для подписки на уведомления об изменениях. Реализация хранилища подписок, чтобы его можно хранить получателей уведомлений об изменении имеет во внешней системе. Самое простое решение, вероятно, — это таблица базы данных. В таблице (или выберите любой механизм) должны записать SubscriptionID, адрес доставки, тип события и имя сущности.

Регистрации уведомлений конечным точкам представлений состояния (REST). Чтобы позволить SharePoint подписчики знать, что было изменено, внешняя система приложению необходимо отправить HTTP WebRequest на адрес доставки, записанные в хранилища подписок. Этот адрес доставки — это RESTful конечной точки, создаваемая программой SharePoint во время процесса подписки.

Настройка SharePoint для обеспечения связи с внешними системами

Чтобы разрешить связь с внешней системы, SharePoint должны быть настроены следующие:

Модели BDC с EventSubscriber и EventUnsubscriber стереотипов настроены

Как включить внешние события

Вы можете включить внешнее событие в SharePoint через Параметры сайте или добавив в проект следующий пользовательский id функции

Включается событий для внешней системы, когда SharePoint создает адрес доставки и отправляет его к внешней системе во время процесса подписки на.

Общий поток внешние события между SharePoint и внешними системами

На рисунке 1, обратите внимание, что состоит из трех различных шагов при использовании приемников событий внешнего: подписка, уведомления и отменить подписку.

На рисунке 1 поток завершения данных для внешних уведомлений

Sharepoint event receiver что это. . Sharepoint event receiver что это фото. Sharepoint event receiver что это-. картинка Sharepoint event receiver что это. картинка

EventSubscriber: подписки на уведомления

Для пользователя (объект SharePoint) для получения уведомлений при изменении базовых данных пользователю необходимо подписаться на уведомления для сущности. Для этого схемы модели BDC был расширен стереотипа Subscribe. Стереотипа Subscribe используемые SharePoint для внешней системы знать, что отправитель запрашивает уведомлений об изменениях в базовые данные.

На рисунке 2 показано обмен информацией между SharePoint и внешней системы во время процесса подписки на.

На рисунке 2. Подписка Технологическая схема

Sharepoint event receiver что это. . Sharepoint event receiver что это фото. Sharepoint event receiver что это-. картинка Sharepoint event receiver что это. картинка

Ниже описаны общие поток в процедуре подписки.

Пользователь запрашивает подписки для уведомлений. Использование настраиваемого пользовательского интерфейса (кнопка на странице или ленты), SharePoint инициирует запрос на приложение внешней системе для уведомлений.

SharePoint создает адрес доставки. В ходе процесса подписки на SharePoint создает конечных точек REST, где доставки уведомлений.

К внешней системе отправляется запрос подписки. SharePoint инкапсулирует запросившей информации наряду с динамически созданные URL-адрес REST и отправляет веб-запрос к внешней системе.

Внешняя система получает запрос. Существуют разные возможности по внедрению хранилища подписок. В этом примере необходимо использовать таблицу базы данных SQL Server.

Внешняя система генерирует subscriptionId. Новые subscriptionId создается с помощью кода в приложении бизнес (LOB). subscriptionId должно быть идентификатором GUID.

Внешняя система записывает подписки. Приложение внешняя система записывает subscriptionId, адрес доставки, тип события и другие сведения, отправленные из SharePoint в хранилище данных подписки.

Внешняя система отправляет subscriptionId SharePoint. Для SharePoint для правильной маршрутизации обновлений, отправляемые с внешней системы subscriptionId отправляется SharePoint и SharePoint записывает эти данные в базе данных.

Модели BDC работает на импорт функции Subscribe. Метаданные для функции импорта показано в следующем примере.

Пример кода: модели BDC с подписки на

Ниже приведен пример модели BDC с помощью метода Subscribe добавлена.

В таблице 1 перечислены важные атрибуты модели BDC, необходимые для стереотипа Subscribe работы.

В таблице 1. Атрибуты модели BDC

АтрибутОписание
IsDeliveryAddressФлаг Boolean, используемый в TypeDescriptor указывает, является ли указанный адрес доставки для доставки уведомлений.
IsEventTypeФлаг Boolean, используемый в TypeDescriptor указывает, является ли предоставленный тип события для использования в качестве типа события. Допустимые типы событий, ItemAdded, ItemUpdated, ItemDeleted и т. д.
SubscriptionIdNameСтрока, используемая на TypeDescriptor, который представляет имя subscriptionId части.

Уведомления

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

При создании подписки во внешней системе требуется способ сообщить SharePoint о изменений, внесенных в конкретной сущности. Предполагается, что во внешней системе доставки уведомлений на адрес доставки в соответствии с требованиями SharePoint к внешней системе во время процесса подписки на использование формате OData Atom полезных данных.

На рисунке 3 показаны поток обмена данными между внешней системы и SharePoint, при добавлении новой записи данных во внешней системе.

Процесс уведомления на рисунке 3

Sharepoint event receiver что это. . Sharepoint event receiver что это фото. Sharepoint event receiver что это-. картинка Sharepoint event receiver что это. картинка

Новую запись добавляется к внешней системе. В этом примере новая запись добавляется к внешней системе, с помощью пользовательского интерфейса приложения или непосредственно в базе данных.

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

Внешняя система отправляет запрос уведомления SharePoint по адресу доставки. Для передачи изменений, запрос формате Atom должен отправляться на адрес доставки, который хранится в хранилище подписки бизнес-приложения.

Полезные данные уведомления

Создание уведомлений, бизнес-системы имеет для создания полезных данных HTTP, который включает в себя полные сведения изменения элемента или идентификатор изменения элемента.

Удостоверений: При отправке полезных данных как удостоверение, полезных данных должен иметь только сведения об идентификации измененный элемент. Например для клиента в сущности клиентов, полезные данные только будет содержать идентификатор клиента, который был изменен.

Полное элемента: В этом случае полезных данных — это запись, который был изменен во внешней системе. В примере клиента включается запись всей измененных клиента.

[!Примечание] Все элементы поддерживается только при использовании соединитель OData.

Во время процесса подписки должен задаваться тип полезной нагрузки, отправляемого во внешней системе.

Ниже приведен пример свойства модели BDC, используемого для уведомлений.

Если не указан, полезных данных по умолчанию является учетные данные.

Адрес доставки уведомлений (виртуальный адрес)

Процесс подписки, запущенного из результаты SharePoint в виртуального адреса, создаваемого с SharePoint, позволяя точки входа для внешней системы для регистрации уведомлений. Адрес доставки используется во внешней системе для отправки этих уведомлений. Адрес доставки также передается внешней системы во время запроса подписки.

EventUnsubscriber: удаление подписки в списке уведомлений

Операция Unsubscribe удаляет подписку в списке уведомлений.

На рисунке 4 показано, что метод UnSubscribe намного проще. Так как идентификатор подписки отправлено обратно в SharePoint и SharePoint записать его, все, что требуется — отправить запрос отказа от подписки с идентификатором подписки на правильные.

На рисунке 4 потока кода для метода отказа от подписки

Sharepoint event receiver что это. . Sharepoint event receiver что это фото. Sharepoint event receiver что это-. картинка Sharepoint event receiver что это. картинка

Модели BDC для отказа от подписки

В следующем примере XML показано, как создать модели BDC, которая отменяет подписку из уведомления о событиях внешней системы.

Пример кода: подключение к внешнему списку приемника событий

В следующем коде приведен пример того, как для подключения к внешнему списку приемника событий. После подключения, приемник событий прослушивание уведомлений из внешней системы о обновления, добавления и удаления, которые выполняются на исходные данные.

От простого к сложному: Дополнительные сведения об использовании приемников внешних событий

Дополнительные сведения о внешние события и оповещения содержатся в следующих разделах.

В таблице 2. Расширенные концепции для работы с приемниками внешних событий

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *