Externe Ereignisse und Warnungen in SharePoint

Hier erfahren Sie, die Konzepte hinter der Erstellung von remote-Ereignisempfänger in SharePoint, die an externen Listen angefügt werden kann, und führen Sie bei der Aktualisierung der externen Daten, die die Liste darstellt.

Was sind Ereignisempfänger?

Ein Ereignisempfänger ist ein teilverwalteter Code, der auf sharePoint auslösende Ereignisse wie Hinzufügen, Verschieben, Löschen, Einchecken und Auschecken reagiert. Wenn diese Ereignisse auftreten und die Kriterien des Ereignisempfängers erfüllt sind, wird der Code ausgeführt, den Sie schreiben, um zusätzliche Funktionen bereitzustellen. Wenn SharePoint-Objekte wie Listen, Workflows und Features so konfiguriert sind, dass sie auf das Auftreten dieser Ereignisse warten, werden sie als Ereignishosts bezeichnet.

Mit Ereignisempfängern können Sie Geschäftslogik ausführen, wenn ein bestimmtes Ereignis auftritt. Im Wesentlichen sind dies die Hooks, mit denen Sie Code erstellen können, um bestimmte Bedingungen zu behandeln, Benachrichtigungen zu erstellen, andere Systeme zu aktualisieren usw. Wenn Sie Ereignisempfänger erstellen, wird eine DLL generiert. Sie können diese DLL im globalen Assemblycache platzieren, sodass die Ereignisempfänger als Reaktion auf Änderungen in einem externen System aufgerufen werden.

Das folgende Beispiel enthält einen einfachen externen-Ereignisempfänger in C#-, der ausgeführt wird, wenn der Liste ein neues Element hinzugefügt wird.

public class EntryContentEventReceiver : SPItemEventReceiver
{
  public override void ItemAdded(SPItemEventProperties properties)
  {
    base.ItemAdded(properties);
    // properties.ExternalNotificationMessage holds the message sent by the external system
  }
}

Externe Ereignisempfänger können auch für einen Entitätsereignisempfänger und als Remoteereignisempfänger erweitert werden, die lokal oder in Microsoft Azure als Dienst bereitgestellt werden.

Was sind remote-Ereignisempfänger?

Remote-Ereignisempfänger sind für SharePoint neu. In einer herkömmlichen SharePoint-Lösung verwenden Sie einen Ereignisempfänger zum Verarbeiten von Ereignissen, wie Benutzer erstellen oder Löschen von Listen oder Elemente in Listen. In einer SharePoint-Add-In verwenden Sie einen remote-Ereignisempfänger, ähnliche Ereignisse behandeln. Remote-Ereignisempfänger funktionieren ähnlich wie reguläre Ereignisempfänger, außer dass remote-Ereignisempfänger Ereignisse, die eintreten behandeln, wenn ein SharePoint-Add-In auf einem anderen System aus der Host-Web-Anwendung ist.

Business Connectivity Services (BCS) verwendet remote-Ereignisempfänger, externe Listen und Entitäten zugeordnet ist, können Sie Code schreiben, der reagieren kann auf Änderungen an Daten im externen System gehostet werden.

Um dies zu unterstützen, wurden zwei Stereotype auf das Schema des Modells BDC hinzugefügt: EventSubscriber und EventUnsubscriber.

Hinweis

Ereignisempfänger werden in Sandkastenlösungen nicht unterstützt.

Welche Features und Funktionen stellt die neue externe Ereignisempfängerinfrastruktur bereit?

BCS kann durch verwenden und die SharePoint Ereignisempfänger Features erweitern können Warnungen, externe Liste Ereignisempfänger und Entität Ereignisempfänger eine erweiterte Funktionalität hinzufügen.

  • Warnungen: Warnungen waren in mehreren Versionen ein integraler Bestandteil von SharePoint, aber bis zu arePoint würden sie nicht mit externen Listen funktionieren. Ein Benutzer kann jetzt Benachrichtigungen erstellen, für eine externe Liste, die dasselbe Verhalten wie Warnungen für eine standardmäßige SharePoint-Liste verfügen.
  • Ereignisempfänger für externe Liste: Ereignisempfänger können jetzt an externen Listen, wie sie für standard-Listen können angefügt werden soll. Dadurch wird ein Erweiterbarkeitsmechanismus bereitgestellt, mit dem Sie de schreiben können, die zu bestimmten Zeiten ausgeführt wird.
  • Ereignisempfänger Entität: Entity-Ereignisempfänger bieten die Flexibilität heraus robusteren Code schreiben, der andere Vorgänge wie die Bereitstellung von Benutzerkontext zum Filtern von Daten ermöglicht. Dadurch kann eine bessere Personalisierung und benutzerdefinierte Sicherheit.

Remote-Ereignisdienst in SharePoint ermöglicht verschiedene interessante Szenarien. Beispielsweise müssen Sie eine Anwendung "Sales führen Tracking" möglicherweise, die ein Verkaufsteam benachrichtigt werden, wenn neue Vertriebskontakte in eine Anwendung externen Lead eingegeben werden können. Bei der Eingabe eines neuen Vertriebsleads wird SharePoint durch das Benachrichtigungssystem benachrichtigt, die Teil der Lead-Anwendung ist. SharePoint empfängt die Benachrichtigung und erstellt dann neue Vorgänge für die angegebene Vertriebsmitarbeiter jeder neuen Lead Nachverfolgung. Konfigurieren Sie die Anwendung Vertriebsleads Eintrag für das externe System zum Senden einer Benachrichtigung in SharePoint auf die Erstellung der einzelnen neuen Lead, ist SharePoint vollständig auf dem neuesten Stand.

Voraussetzungen für die Verwendung von Ereignisempfängern für externe Listen

Um Ereignisempfänger für externe Listen verwenden, benötigen Sie Folgendes:

  • SharePoint
  • Visual Studio 2012

Weitere Informationen zum Einrichten einer SharePoint-Entwicklungsumgebung finden Sie unter Einrichten einer allgemeinen Entwicklungsumgebung für SharePoint.

Konfigurieren Sie das externe System, um SharePoint externe Ereignisse benachrichtigen

Für externe Ereignisse arbeiten müssen eine Reihe von Komponenten installiert und in der SharePoint-Host und dem externen System konfiguriert werden.

Sie müssen das externe System konfigurieren, sodass es das folgende Aufgaben ausführen kann:

  • Bestimmen, wann die Basisdaten. Für das externe System wissen, wann Änderungen vorgenommen wurden müssen Sie einen Mechanismus für das Abrufen bestimmter Änderungen erstellen. Hierzu können Sie mit einem Intervallen Dienst, der die Datenquelle in bestimmten Abständen abfragt.
  • Empfangen und Anforderungen aufzuzeichnen für Abonnements zu Änderungsbenachrichtigungen. Das externe System besitzt eine Abonnementspeicher implementieren, damit es speichern kann, wer Änderungsbenachrichtigungen erhalten soll. Die einfachste Lösung ist wahrscheinlich eine Datenbanktabelle. Die Tabelle (oder ein beliebiger Anism) sollte SubscriptionID, Übermittlungsadresse, Ereignistyp und Entitätsname aufzeichnen.
  • Buchen Benachrichtigungen Representational State Transfer (REST) Endpunkte. Damit SharePoint-Abonnenten wissen, dass eine Änderung aufgetreten ist, muss die externe Systemanwendung eine HTTPWebRequest an die im Abonnementspeicher aufgezeichnete Übermittlungsadresse senden. Diese Übermittlungsadresse ist ein RESTful-Endpunkt, der von SharePoint während des Abonnementprozesses generiert wird.

Konfigurieren von SharePoint, um die Kommunikation mit externen Systemen zu ermöglichen

Um eine Kommunikation mit dem externen System zu ermöglichen, muss SharePoint durch Folgendes konfiguriert werden:

  • Ein BDC-Modell mit EventSubscriber und EventUnsubscriber Stereotypen konfiguriert
  • Ereignisempfänger

Wie ist die externe Ereignisdienst aktiviert?

Sie können externe Ereignisdienst in SharePoint über die Websiteeinstellungen oder durch die folgenden benutzerdefinierten Feature-Id zu Ihrem Projekt hinzufügen aktivieren.

<ActivationDependency FeatureTitle="BCSEvents" FeatureId="60c8481d-4b54-4853-ab9f-ed7e1c21d7e4" />

Ereignisdienst für ein externes System ist aktiviert, wenn SharePoint die Empfängeradresse erstellt und ihn an das externe System während des Aktivierungsvorgangs abonnieren sendet.

Projektfluss Abonnementmethode für externe Ereignisse zwischen SharePoint und externen Systemen

In Abbildung 1 Beachten Sie, dass drei Einzelschritte umfasst bei Verwendung von externen Ereignisempfänger: abonnieren, Benachrichtigung, und melden Sie sich ab.

Abbildung 1 vollständige Datenfluss für externe Benachrichtigungen

Datenfluss bei externen Ereignisbenachrichtigungen

EventSubscriber: Abonnieren Sie Benachrichtigungen

Für einen Benutzer (SharePoint-Objekt) zum Empfangen von Benachrichtigungen, wenn sich die zugrunde liegenden Daten geändert hat muss der Benutzer für eine Entität Abonnieren von Benachrichtigungen. Um dies zu ermöglichen, wurde das Schema BDC-Modell erweitert, um das Stereotyp Subscribe enthalten. Das Stereotyp Subscribe wird von SharePoint lassen Sie das externe System wissen, dass der Absender aufgefordert wird, Änderungen an den zugrunde liegenden Daten benachrichtigt werden sollen.

Abbildung 2 zeigt die des Informationsflusses zwischen SharePoint und das externe System während des Aktivierungsvorgangs abonnieren.

Abbildung 2: Prozessablauf abonnieren

Prozessablauf der Abonniermethode für externe Ereignisse

Im folgenden werden den allgemeinen Ablauf des Prozesses Abonnement beschrieben:

  1. Benutzer fordert ein Abonnement für Benachrichtigungen. SharePoint initiiert mit einer benutzerdefinierten Benutzeroberfläche (eine Schaltfläche auf einer Seite oder ein Menüband) eine Anforderung an das externe System-app für Benachrichtigungen.

  2. SharePoint generiert eine Empfängeradresse. Im Rahmen des Prozesses zum Abonnieren erstellt SharePoint einen REST-Endpunkt, in denen Benachrichtigungen zugestellt werden.

  3. Abonnementanforderung wird an das externe System gesendet. SharePoint anschließend kapselt die Anforderer Informationen zusammen mit der dynamisch generierte REST-URL und sendet eine Webanforderung an das externe System.

  4. Externes System Anforderung empfängt. Es gibt verschiedene Möglichkeiten für die Implementierung einer Abonnementspeicher. In diesem Beispiel verwenden Sie eine SQL Server-Datenbanktabelle.

  5. Externes System generiert eine SubscriptionId. Eine neue subscriptionId wird mithilfe von Code in der Anwendung Line-of-Business (LOB) generiert. Die subscriptionId sollte eine GUID.

  6. Externes System zeichnet das Abonnement. Die externe Systemanwendung zeichnet die subscriptionId, Empfänger-, Ereignistyp und andere Informationen aus SharePoint gesendet, in dem Abonnementspeicher.

  7. Externes System sendet die SubscriptionId an SharePoint. Für SharePoint korrekt weiterzuleiten, die Updates, die vom externen System gesendet werden die subscriptionId zurück an SharePoint gesendet, und SharePoint zeichnet diese Informationen in der Datenbank.

    Das BDC-Modell ist gegen Subscribe Function Import funktionsfähig. In diesem Beispiel wird die Metadaten für den Funktionsimport angezeigt.

<EntityType Name="EntitySubscribe">
   <Key>
      <PropertyRef Name="SubscriptionId" />
   </Key>
   <Property xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation"
             Name="SubscriptionId"
             Type="Edm.Int32"
             Nullable="false"
             p6:StoreGeneratedPattern="Identity" />
   <Property Name="EntityName"
             Type="Edm.String"
             MaxLength="250"
             FixedLength="false"
             Unicode="true" />
   <Property Name="DeliveryURL"
             Type="Edm.String"
             MaxLength="250"
             FixedLength="false"
             Unicode="true" />
   <Property Name="EventType" Type="Edm.Int32" />
   <Property Name="UserId"
             Type="Edm.String"
             MaxLength="50"
             FixedLength="false"
             Unicode="true" />
   <Property xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation"
             Name="SubscribeTime"
             Type="Edm.Binary"
             MaxLength="8"
             FixedLength="true"
             p6:StoreGeneratedPattern="Computed" />
   <Property Name="SelectColumns"
             Type="Edm.String"
             MaxLength="10"
             FixedLength="false"
             Unicode="true" />
</EntityType>

Codebeispiel: BDC-Modell mit abonnieren

Es folgt ein Beispiel für ein BDC-Modell mit der Subscribe -Methode hinzugefügt.

<Method Name="SubscribeCustomer" DefaultDisplayName="Customer Subscribe" IsStatic="true">
   <Properties>
     <Property Name="ODataEntityUrl" Type="System.String">/EntitySubscribes</Property>
     <Property Name="ODataHttpMethod" Type="System.String">POST</Property>
     <Property Name="ODataPayloadKind" Type="System.String">Entry</Property>
     <Property Name="ODataFormat" Type="System.String">application/atom+xml</Property>
     <Property Name="ODataServiceOperation" Type="System.Boolean">false</Property>
   </Properties>
   <AccessControlList>
      <AccessControlEntry Principal="NT Authority\\Authenticated Users">
         <Right BdcRight="Edit" />
         <Right BdcRight="Execute" />
         <Right BdcRight="SetPermissions" />
         <Right BdcRight="SelectableInClients" />
      </AccessControlEntry>
   </AccessControlList>
   <Parameters>
      <Parameter Direction="In" Name="@DeliveryURL">
         <TypeDescriptor TypeName="System.String" Name="DeliveryURL" >
            <Properties>
               <Property Name="IsDeliveryAddress" Type="System.Boolean">true</Property>
            </Properties>
         </TypeDescriptor>
      </Parameter>
      <Parameter Direction="In" Name="@EventType">
         <TypeDescriptor TypeName="System.Int32" Name="EventType" >
            <Properties>
               <Property Name="IsEventType" Type="System.Boolean">true</Property>
            </Properties>
         </TypeDescriptor>
      </Parameter>
      <Parameter Direction="In" Name="@EntityName">
         <TypeDescriptor TypeName="System.String" Name="EntityName" >
            <DefaultValues>
               <DefaultValue MethodInstanceName="SubscribeCustomer"
                  Type="System.String">Customers</DefaultValue>
            </DefaultValues>
      </TypeDescriptor>
    </Parameter>
    <Parameter Direction="In" Name="@SelectColumns">
      <TypeDescriptor TypeName="System.String" Name="SelectColumns" >
        <DefaultValues>
          <DefaultValue MethodInstanceName="SubscribeCustomer" Type="System.String">*</DefaultValue>
        </DefaultValues>
      </TypeDescriptor>
    </Parameter>
    <Parameter Direction="Return" Name="SubscribeReturn">
      <TypeDescriptor Name="SubscribeReturnRootTd" TypeName="Microsoft.BusinessData.Runtime.DynamicType">
        <TypeDescriptors>
          <TypeDescriptor Name="SubscriptionId" TypeName="System.String" >
            <Properties>
              <Property Name="SubscriptionIdName" Type="System.String">Default</Property>
            </Properties>
            <Interpretation>
              <ConvertType LOBType="System.Int32" BDCType="System.String"/>
            </Interpretation>
          </TypeDescriptor>
          <TypeDescriptor Name="DeliveryURL" TypeName="System.String" />
          <TypeDescriptor Name="SelectColumns" TypeName="System.String" >
          </TypeDescriptor>
          <TypeDescriptor Name="EntityName" TypeName="System.String" />
          <TypeDescriptor Name="EventType" TypeName="System.Int32" />
          <TypeDescriptor Name="UserId" TypeName="System.String" />
          <!--TypeDescriptor Name="SubscribeTime" TypeName="System." /-->
        </TypeDescriptors>
      </TypeDescriptor>
    </Parameter>
  </Parameters>
  <MethodInstances>
    <MethodInstance Type="EventSubscriber" ReturnParameterName="SubscribeReturn" ReturnTypeDescriptorPath="SubscribeReturnRootTd" Default="true" Name="SubscribeCustomer" DefaultDisplayName="Customer Subscribe">
      <AccessControlList>
        <AccessControlEntry Principal="NT Authority\\Authenticated Users">
          <Right BdcRight="Edit" />
          <Right BdcRight="Execute" />
          <Right BdcRight="SetPermissions" />
          <Right BdcRight="SelectableInClients" />
        </AccessControlEntry>
      </AccessControlList>
    </MethodInstance>
  </MethodInstances>
</Method>

Tabelle 1 sind die wichtigen Attribute des BDC-Modells, die erforderlich sind, stellen Sie das Subscribe Stereotyp arbeiten.

Tabelle 1. BDC-Modellattribute

Attribut Beschreibung
IsDeliveryAddress Ein Boolean -Flag, das in einer TypeDescriptor verwendet, um anzugeben, ob die bereitgestellten Empfängeradresse verwendet werden, um Benachrichtigungen zu übermitteln.
IsEventType Ein Boolean -Flag, das in einer TypeDescriptor verwendet, um anzugeben, ob der bereitgestellten Ereignistyp ist als den Ereignistyp verwendet werden soll. Gültige Ereignistypen sind ItemAdded, ItemUpdated, ItemDeletedund So weiter.
SubscriptionIdName Eine Zeichenfolge, die auf eine TypeDescriptor, die den Namen eines Teils subscriptionId darstellt.

Benachrichtigungen

In SharePoint wurde die Ereignisbehandlung Infrastruktur zum Zulassen von externen Datenquellen zum SharePoint zu benachrichtigen, wenn die Informationen im externen System geändert wurden verbessert. Klicken Sie dann können SharePoint eine Benachrichtigung erhält, von Ereignisempfängern, die dem externen SharePoint-Liste oder Entität zugeordnet sind Code zum Ausführen der angegebenen Aktionen ausführen.

Wenn ein Abonnement erstellt wird, benötigt das externe System eine Möglichkeit zum Teilen Sie SharePoint auf eine bestimmte Entität zu den Änderungen, die aufgetreten sind. Das externe System wird erwartet, dass Benachrichtigungen an die Empfängeradresse von SharePoint mit dem externen System während des Subscribe-Prozesses mit einer OData-Atom-Format Nutzlast bereitgestellten übermitteln.

Abbildung 3 zeigt den Kommunikationsfluss zwischen dem externen System und SharePoint auf, wenn die Daten im externen System ein neuer Datensatz hinzugefügt wird.

Abbildung 3 Benachrichtigungsprozess

Benachrichtigungsprozess für externe Ereignisse

  1. Neuer Datensatz hinzugefügt wird, mit externen System. In diesem Beispiel wird ein neuer Datensatz mit dem externen System über die Benutzeroberfläche der Anwendung oder direkt in der Datenbank hinzugefügt.
  2. Externen System-Anwendung ist von der Änderung benachrichtigt. Die externen System-Anwendung enthält, sollten Sie die Änderungen vorgenommen werden, die an die zugrunde liegenden Daten gestellt werden sollen. Es gibt mehrere Möglichkeiten, um diese Schritte durchführen. Sie können SQL-Trigger, die ausgelöst werden, wenn Daten für bestimmte Tabellen geändert, oder Sie können einen Abrufmechanismus zum Abfragen von Datenspeicher für Änderungen erstellen. Andere Möglichkeiten zur Verfügung stehen, aber jede muss mit Leistung berücksichtigen ausgewertet werden soll.
  3. Externes System sendet Benachrichtigungsanforderung an SharePoint über Empfängeradresse. Um die Änderungen zu kommunizieren, verfügt über eine Anforderung Atom-Format an die Empfängeradresse gesendet werden, die in die Branchenanwendung Abonnementspeicher gespeichert ist.

Nutzdaten der Benachrichtigung

Bei der Erstellung die Benachrichtigung LOB-System eine HTTP-Nutzlast erstellen, die alle Details des Elements enthält, die geändert, wurde, oder nur die Identität des geänderten Elements.

  • Identität: Wenn die Nutzlast als Identität gesendet wird, wird erwartet, dass die Nutzlast haben nur Informationen über die Identität des geänderten Elements. Beispielsweise würde für einen Kunden in einer Kundenentität, die Nutzlast nur enthalten die ID des Kunden, die sich geändert hat.
  • Vollständige Element: In diesem Fall ist die Nutzlast ein vollständiger Datensatz, der im externen System geändert hat. Im Kundenbeispiel wird der gesamte geänderten Kundendatensatz aufgenommen.

Hinweis

Das vollständige Element wird nur unterstützt, wenn Sie den OData-Connector verwenden.

Der Typ der Nutzlast, die vom externen System gesendet wird, muss während des Abonnementvorgangs angegeben werden.

Es folgt ein Beispiel für die BDC-Modell-Eigenschaft für Benachrichtigungen verwendet.

<Property Name="NotificationParserType" Type="System.String">
   ODataEntryContentNotificationParser
</Property>

Wenn sie nicht angegeben wird, ist die Standard-Nutzlast eine Identität.

Notification Delivery-Adresse (virtuelle Adresse)

Der Anmeldevorgang initiiert aus SharePoint-Suchergebnissen in einer virtuellen Adresse von SharePoint, die einen Einstiegspunkt für das externe System zum Bereitstellen von Benachrichtigungen ermöglicht erstellt wird. Die Lieferadresse wird vom externen System verwendet, um diese Benachrichtigungen zu veröffentlichen. Die Lieferadresse wird auch während der Abonnementanforderung an das externe System übergeben.

EventUnsubscriber: Abonnement aus der Benachrichtigungsliste entfernen

Der Vorgang Unsubscribe entfernt ein Abonnement aus der Benachrichtigungsliste.

Abbildung 4 zeigt, dass die UnSubscribe-Methode viel einfacher ist. Da die Abonnement-ID an SharePoint zurückgesendet und von SharePoint aufgezeichnet wurde, müssen Sie nur die UnSubscribe-Anforderung mit der richtigen Abonnement-ID senden.

Abbildung 4 Codefluss für kündigen-Methode

Prozess zum Kündigen externer Benachrichtigungen

BDC-Modell für zum Abmelden

Im folgende XML-Beispiel zeigt die Erstellung einer hebt das Abonnement von BDC-Modell aus dem externen Systemereignisbenachrichtigungen.

<Method Name="UnSubscribeExpenseReport" DefaultDisplayName="ExpenseReport
    Unsubscribe">
    <Properties>
        <Property Name="ODataEntityUrl" Type="System.String">
            /Subscriptions(@ID)</Property>
        <Property Name="ODataHttpMethod" Type="System.String">DELETE</Property>
        <Property Name="ODataPayloadKind" Type="System.String">Property</Property>
        <Property Name="ODataServiceOperation" Type="System.Boolean">false</Property>
    </Properties>
    <AccessControlList>
        <AccessControlEntry Principal="NT Authority\\Authenticated Users">
            <Right BdcRight="Edit" />
            <Right BdcRight="Execute" />
            <Right BdcRight="SetPermissions" />
            <Right BdcRight="SelectableInClients" />
        </AccessControlEntry>
    </AccessControlList>
    <Parameters>
        <Parameter Name="@ID" Direction="In">
            <TypeDescriptor Name="ID" TypeName="System.Int32">
                <Properties>
                    <Property Name="SubscriptionIdName" Type="System.String">ID</Property>
                </Properties>
                <Interpretation>
                    <ConvertType LOBType="System.Int32" BDCType="System.String" />
                </Interpretation>
            </TypeDescriptor>
        </Parameter>
    </Parameters>
    <MethodInstances>
        <MethodInstance Name="UnSubscribeExpenseReport" DefaultDisplayName="ExpenseReport
             Unsubscribe" Type="EventUnsubscriber" Default="true">
            <AccessControlList>
                <AccessControlEntry Principal="NT Authority\\Authenticated Users">
                    <Right BdcRight="Edit" />
                    <Right BdcRight="Execute" />
                    <Right BdcRight="SetPermissions" />
                    <Right BdcRight="SelectableInClients" />
                </AccessControlEntry>
            </AccessControlList>
        </MethodInstance>
    </MethodInstances>
</Method>

<Method IsStatic="false" Name="Unsubscribe">
    <AccessControlList>
        <AccessControlEntry Principal="NT AUTHORITY\\Authenticated Users">
            <Right BdcRight="Edit" />
            <Right BdcRight="Execute" />
            <Right BdcRight="SetPermissions" />
            <Right BdcRight="SelectableInClients" />
        </AccessControlEntry>
    </AccessControlList>
    <Parameters>
        <Parameter Direction="In" Name="subscriptionId">
            <TypeDescriptor TypeName="System.String" Name="subscriptionId"
                IsSubscriptionId="true" />
         </Parameter>
    </Parameters>
    <MethodInstances>
        <MethodInstance Type="EventUnsubscriber" Default="true" Name="Unsubscribe"
            DefaultDisplayName="UnSubscriber">
            <Properties>
                <Property Name="LastDesignedOfficeItemType" Type="System.String">None</Property>
            </Properties>
            <AccessControlList>
                <AccessControlEntry Principal=" NT AUTHORITY\\Authenticated Users ">
                    <Right BdcRight="Edit" />
                    <Right BdcRight="Execute" />
                    <Right BdcRight="SetPermissions" />
                    <Right BdcRight="SelectableInClients" />
                </AccessControlEntry>
            </AccessControlList>
        </MethodInstance>
    </MethodInstances>
</Method>

Codebeispiel: Anfügen eines Ereignisempfängers zu einer externen Liste

Der folgende Code enthält ein Beispiel für das Anfügen eines Ereignisempfängers an eine externe Liste. Nach dem Anfügen lauscht der Ereignisempfänger auf Benachrichtigungen vom externen System zu Updates, Ergänzungen und Löschungen, die für die nativen Daten ausgeführt werden.

private static void AddEventReceiver(string siteUrl, string listTitle)
{
  string assembly = "SampleEventReceiver, Culture=neutral, Version=1.0.0.0,PublicKeyToken=1bfafa687d2e46a7";
  string className = "SampleEventReceiver.EntryContentEventReceiver";
  try
  {
    using (SPSite site = new SPSite(siteUrl))
    {
      using (SPWeb web = site.OpenWeb())
      {
        SPList list = web.Lists[listTitle];
        list.EventReceivers.Add(SPEventReceiverType.ItemAdded, assembly, className);
      }
    }
  }
  catch (Exception e)
  {
    Console.WriteLine(e);
  }
}

Weiterführendes: Weitere Informationen zur Verwendung von externen Ereignisempfänger

Weitere Informationen über externe Ereignisse und Warnungen finden Sie in der folgenden.

Tabelle 2. Erweiterte Konzepte für die Arbeit mit externen Ereignisempfängern

Artikel Beschreibung
Vorgehensweise: Erstellen einer OData-Datendiensts zur Verwendung als einer externen BCS-System Erfahren Sie, wie Sie einen WCF-Dienst (Internet addressable Windows Communication Foundation) erstellen, der OData verwendet, um Benachrichtigungen an SharePoint zu senden, wenn sich die zugrunde liegenden Daten ändern. Diese Benachrichtigungen werden zum Auslösen von Ereignissen verwendet, die an externe Listen angefügt sind.

Siehe auch