Zum Inhalt

Tipps, Tricks und Hinweise#

SharePoint Online#

  1. Die Dokumentenablage in SharePoint Online nutzt zur Konnektivität die standardisierte Schnittstellen-Architektur der Microsoft1 Graph API. Hierdurch kann es zu Unterschieden der Anbindung gegenüber der SharePoint-API kommen.

  2. Die Suche nach Schlagworten erfolgt immer mit einem gesetzten http-Header "prefer" mit dem Wert "HonorNonIndexedQueriesWarningMayFailRandomly" um auch über Indexbegriffe suchen zu können, die nicht in einem Index abgebildet werden.

  3. Die Ablage von Dokumenten erfolgt in SharePoint Online immer mit einer Konfliktbehandlung zum Umbenennen. Dies hat zur Folge, dass ein gleichnamiges Dokument, das mit identischen Indexbegriffen abgelegt wird, niemals das bestehende Dokument überschreibt, sondern einen automatisch mit einer Nummer versehenen , angepassten Dateinamen erhält.
    Dies erfolgt automatisiert unter Verwendung des URL-Parameters \@microsoft.graph.conflictBehavior=rename

Einrichtung von App-Registrierungen#

Damit per OAuth 2.0 Authentifizierung unter Verwendung der Graph API auf SharePoint Online zugegriffen werden kann, müssen App-Registrierungen angelegt werden, die für den delegierten Zugriff oder für Anwendungsberechtigungen ausgelegt sind. In den nachfolgenden Kapiteln wird ein kurzer Überblick gegeben, welche Einstellungen und Vorgehensweisen für die Anlage der App-Registrierungen verwendet werden können.

Einrichtung einer App-Registrierung für delegierten Zugriff im Azure AD#

Damit Benutzer sich aus Microsoft Dynamics 365 Business Central1 heraus an der Microsoft1 Graph API für die Verwendung von SharePoint-Zugriffen authentifizieren können, muss eine App-Registrierung für den delegierten Zugriff eingerichtet werden.

Detailinformationen zur Einrichtung einer App-Registrierung sind der Microsoft1-Dokumentation zu entnehmen.

  1. Öffnen Sie die App-Registrierungen im Azure AD, erstellen eine neue App-Registrierung und vergeben Sie einen eindeutigen Namen.

  2. Geben Sie unter "Authentifizierung" die Adresse https://businesscentral.dynamics.com/OAuthLanding.htm als Umleitung -URI mit dem Typ "Web" an.

  3. Erstellen Sie unter "Zertifikate & Geheimnisse" einen neuen geheimen Clientschlüssel und merken diesen vor.

    Achtung! Nach dem Schließen des Popup-Fensters, ist dieser Schlüssel nicht mehr kopierbar!

  4. Vergeben Sie unter "API-Berechtigungen" für den SharePoint-Zugriff "Delegierte Berechtigungen" auf die Microsoft1 Graph-Scopes:

    • Files.ReadWrite.All
    • Sites.ReadWrite.All
    • User.Read

Einrichtung einer App-Registrierung für Anwendungsberechtigungen im Azure AD#

Sofern sich z.B. für die Hintergrundverarbeitung ein Dienst an SharePoint Online anmelden und Dokumente ablegen oder abfragen soll, muss ggfls. eine App-Registrierung mit Anwendungsberechtigungen erstellt werden.

Detailinformationen zur Einrichtung einer App-Registrierung sind der Microsoft1-Dokumentation zu entnehmen.

  1. Öffnen Sie die App-Registrierungen im Azure AD, erstellen eine neue App-Registrierung und vergeben Sie einen eindeutigen Namen.

  2. Geben Sie unter "Authentifizierung" die Adresse https://businesscentral.dynamics.com/OAuthLanding.htm als Umleitung -URI mit dem Typ "Web" an.

  3. Erstellen Sie unter "Zertifikate & Geheimnisse" einen neuen geheimen Clientschlüssel und merken diesen vor.

    Achtung! Nach dem Schließen des Popup-Fensters, ist dieser Schlüssel nicht mehr kopierbar!

  4. Vergeben Sie unter "API-Berechtigungen" für den SharePoint-Zugriff "Anwendungsberechtigungen" auf die Microsoft1 Graph-Scopes:

    • Files.ReadWrite.All
    • Sites.ReadWrite.All

    Es ist auch möglich, mit Sites.Selected anstelle von Sites.ReadWrite.All zu arbeiten. Die Einrichtung von selektiven Berechtigungen ist jedoch nur über APIs und nicht über eine grafische Benutzeroberfläche möglich.

Crawled Properties vs. Managed Properties#

In der SharePoint-Struktur wird grundsätzlich unterschieden zwischen "Durchforsteten Eigenschaften" (Crawled Properties) und "Verwalteten Eigenschaften (Managed Properties).

Durchforstete Eigenschaften entstehen, indem z.B. einer SharePoint-Liste neue Spalten hinzugefügt werden. Auf diese Spalten kann bei Bedarf ein Index gelegt werden, so dass diese Spalten auch direkt indiziert und gefiltert werden können. Der Nachteil ergibt sich allerdings in Bezug auf die Graph-API, sobald ein Indexbegriff listenübergreifend in mehreren tausend Dokumenten verwendet wird (z.B. die Debitorennummer). Hier kann der Filterungsmechanismus der Graph-API keine strukturierte Filterung mehr durchführen und gibt entsprechend einen http-Fehler 422 "The request is unprocessable because it uses too many resources" zurück.

Das "DMS & ECM Interface" bietet hierzu die Möglichkeit, bei zu vielen Treffern automatisch auf eine Suchabfrage (Graph Query) umzustellen und die Dokumente darüber zu beziehen. Hierzu gibt es allerdings folgende Einschränkungen, die zu berücksichtigen sind:

  • Für eine Graph-Query müssen Eigenschaften als "Refinable" gekennzeichnet sein. Dies ist nur über die bereits mitgelieferten Eigenschaften mit den Namen "Refinable\\ (Beispiel "RefinableString00" möglich! Um also eine eigene Eigenschaft durchsuchbar zu machen und für die Rückgabe bereitzustellen, sind den durchsuchbaren Eigenschaften verwaltete, "refinable" Eigenschaften zuzuordnen. Wie dies erfolgt, wird im Nächsten Abschnitt erklärt.

  • Verwaltete Eigenschaften stehen erst nach der Indexierung bereit. Die Indexierung erfolgt in SharePoint Online automatisiert in einem Zeitzyklus zwischen 5 Minuten und 2 Stunden und ist durch den Benutzer oder Administrator nicht steuerbar. Folglich kann es dazu kommen, dass ein soeben abgelegtes Dokument über die Suche noch nicht auffindbar ist!

Zuordnung von "Refinable" Eigenschaften#

Öffnen Sie das Microsoft1 365 admin center und wählen Sie in der linken Navigationsstruktur unter "Admin centers" den Eintrag "SharePoint" aus.

Wählen Sie im "SharePoint admin center" in der linken Navigationsstruktur den Eintrag "More features" und danach im Hauptbereich die Schaltfläche "Open" in der Kachel "Search" aus, um die Sucheinstellungen zu öffnen.

Anschließend wählen Sie im folgenden Bildschirm den Listeneintrag "Manage Search Schema".

Weisen Sie nun den verwalteten Eigenschaften (Managed Properties) mit dem Namensmuster "Refinable\\" die einzelnen durchforsteten Eigenschaften (Crawled Properties) zu, die Sie über die Spalten der Dokumentenbibliothek erstellt haben.

Entsprechende Datentypen für die "Refinable"-Properties sind:

  • RefinableDate (00-19)

  • RefinableDateFirst (00-04)

  • RefinableDateInvariant (00-01)

  • RefinableDateSingle (00-04)

  • RefinableDecimal (00-09)

  • RefinableDouble (00-09)

  • RefinableInt (00-49)

  • RefinableIntFirst (00-04)

  • RefinableString (00-219)

  • RefinableStringFirst (00-39)

  • RefinableStringLn (00-09)

  • RefinableStringWbOff (00-49)

  • RefinableStringWbOffFirst (00-49)

  • RefinableYesNo (00-04)

Eine Übersicht zu den verschiedenen Properties und deren Eigenschaften ist diesem Link zu entnehmen: Microsoft1-Dokumentation


  1. Microsoft, Microsoft Dynamics und Microsoft Dynamics 365 sind Marken der Microsoft-Unternehmensgruppe.