Verwenden von OData und ECTs in SharePoint 2013

Veröffentlichung des Originalartikels: 07.12.2012

Eine der angenehmen Verbesserungen in SharePoint 2013 BCS besteht darin, dass in SharePoint jetzt OData in BDC-Anwendungen verarbeitet werden können. Dennoch sind mir neulich einige Lücken in diesem Prozess aufgefallen, also werde ich diese hier erläutern, für den Fall, dass Sie mit ähnlichen Problemen konfrontiert werden. Zum Einstieg empfehle ich Ihnen, dieses Dokument zu lesen, dass grundlegende Informationen zum Erstellen einer Anwendung für OData enthält: https://msdn.microsoft.com/en-us/library/sharepoint/jj163967.aspx. Der größte Nachteil dabei ist, dass Sie in SharePoint Designer KEINE BDC-Anwendung erstellen können, die sich mit einer OData-Quelle verbinden lässt – dazu müssen Sie mithilfe eines Tool wie z. B. Visual Studio einen externen Inhaltstyp (External Content Type (ECT) erstellen.

In dem oben verlinkten Dokument werden Sie schrittweise durch die Erstellung des ECT geführt. Anschließend wird gezeigt, wie diese ECTs in einer SharePoint-App verwendet und entsprechend bereitgestellt werden. Es wird jedoch NICHT erläutert, wie ein ECT dem BDC-Katalog hinzugefügt wird, damit er von mehreren Websitesammlungen verwendet werden kann – und genau dafür ist dieser Beitrag vorhanden. Wenn Sie das im obengenannten Artikel beschriebene Verfahren ausführen, wird ein ECT für jede Entität (wie z. B. eine Tabelle) erstellt. Dies ist zu beachten, weil in der ECT-Datei für alle Entitäten ein gemeinsamer Name verwendet wird, und Sie dadurch nur einen ECT zum BDC-Katalog hochladen können. Um jeder dieser Entitäten in SharePoint nutzen zu können, müssen Sie folgende Schritte ausführen:

  1. Klicken Sie mit der rechten Maustaste auf die ECT-Datei in Visual Studio, wählen Sie "Öffnen mit..." und dann XML (Text)-Editor. Im Dokument im Modellelement sehen Sie oben das Attribut "Name". Dieser Wert muss in allen ECT-Dateien eindeutig sein, die Sie zum BDC hochladen, daher sollten Sie alle in einen beschreibenden Wert für die jeweilige Entität ändern, z. B. "Kundentabelle".
  2. Sie können (müssen aber nicht) den Namespace des Entity-Elements ändern, das sich etwa 20 Zeilen weiter unten im Dokument befindet. Ich habe ihn so geändert, dass er mit dem Modellnamen konsistent ist, aber dies ist nur eine Frage des Stils und nicht erforderlich.
  3. Sobald Sie die Änderungen vorgenommen und die Datei gespeichert haben, können Sie die ECT-Datei direkt zum BDC-Katalog hochladen. Verwenden Sie einfach die Standardoptionen – es handelt sich um ein Modell –, klicken Sie auf die Schaltfläche "OK", und schon sind Sie fertig.
  4. Nachdem Sie die Modelle importiert haben, denken Sie daran, Benutzern Verwendungsberechtigungen dafür zu erteilen; andernfalls können die Modelle nicht genutzt werden.

Eine Sache sollte noch erwähnt werden – über SQL-Datenbanken oder die Azure-Tabellenspeicherung erhalten Sie keine gebrauchsfertigen OData-Metadatenendpunkte. Zum Glück ist das Hinzufügen für SQL relativ einfach. Sie führen dazu kurz gesagt folgende Schritte durch:

  1. Erstellen einer neuen leeren ASP.NET-Webanwendung
  2. Hinzufügen eines ADO.NET Entity Data Model
  3. Hinzufügen eines WCF-Datendiensts
  4. In Ihrem WCF-Datendienst müssen Sie im Klassenkonstruktor den Typ festlegen; dieser Schritt mag auf den ersten Blick etwas undurchsichtig erscheinen. Suchen Sie nach einer Datei (die sich im Ordner "App_Code" befinden sollte) mit einem ähnlichen Namen wie "myDataConnection.Context.tt". Wenn Sie diese erweitern, sollte darunter die Klasse "myDataConnection.Context.cs" angezeigt werden. Öffnen Sie diese, um zwei Informationen anzuzeigen, die Sie für Ihren WCF-Datendienst benötigen:  1) den Klassennamen, den Sie als Typ für den WCF-Datendienst-Klassenkonstruktor verwenden.  2) die Namen der unterstützten Entitäten, die wie Get-/Set-Eigenschaften implementiert sind. Sie benötigen die Entitätennamen ebenfalls im WCF-Datendienst, da Sie mindestens "SetEntitySetAccessRules" für jede Entität erstellen müssen, die Sie verfügbar machen möchten. Dies wird in den Kommentaren ausführlicher erklärt, wenn Sie einen WCF-Datendienst hinzufügen – ich erkläre lediglich, wo Sie beim Erstellen einer dieser Regeln den Entitätennamen finden.

 

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Using OData and ECTs in SharePoint 2013