OData-Filter mit SharePoint verwenden
In dieser Lerneinheit erfahren wir, wie man OData-Filter (Open Data Protocol) beim Abfragen von SharePoint-Listen und ‑Dokumentbibliotheken verwendet.
Warum einen OData-Filter verwenden?
Warum sollten Sie für SharePoint OData-Filter verwenden? Standardmäßig ruft die Aktion Elemente abrufen für Listen oder die Aktion Dateien abrufen für Dokumente nur die ersten 100 Elemente oder Filter von SharePoint ab, wenn Sie keine Werte Höchstzahl oder Schwellenwert festlegen. Sie können zwar eine Höchstzahl bis zum standardmäßigen Drosselungsschwellenwert von 5.000 Elementen angeben, wenn Ihre Liste oder Bibliothek jedoch mehr als 5.000 Elemente oder Dateien enthält, ist dies nicht der Fall und gibt alle Ihre Daten über einen Eintrag unter „Höchstzahl“ zurück. Daher hilft Ihnen das Filtern Ihrer Abfrage dabei, Ergebnisse zu erzielen, die sich unter den Schwellenwerten befinden.
Der Versuch, eine Zahl größer als 5000 einzugeben, führt zu einem Fehler bei der Ausführung des Flows.
Aktionseinstellungen für umfassende Listen oder Bibliotheken verstehen
Wenn Ihre Liste oder Bibliothek mehr als 100 Elemente oder Dateien und bis zu 5.000 Elemente umfasst, müssen Sie lediglich die Höchstzahl anpassen. Unter Höchstzahl können Sie einen Wert bis zum Standardschwellenwert von 5000 eingeben. Der Schwellenwert soll verhindern, dass bei diesem Schritt jemals mehr als 5.000 Elemente zurückgegeben werden. Höchstzahl ist eine leistungsstarke Möglichkeit, bis zu 5000 Elemente aus Ihren Daten abzurufen.
Wenn Ihre Liste oder Bibliothek mehr als 5.000 Elemente umfasst oder Ihre Abfrage mehr als 5.000 Elemente zurückgibt, müssen Sie die Paginierung des Schritts aktivieren. Was ist eine Paginierung? Jedes Mal, wenn durch die Aktion Elemente abrufen Werte abgerufen sind, werden jeweils 100 Elemente abgerufen. Genauso wie wenn Sie durch Ihre SharePoint-Liste oder ‑Bibliothek scrollen, gelangen Sie zum Ende der sichtbaren Elemente, und SharePoint ruft weitere 100 Elemente ab. Durch die Paginierung kann der Abrufvorgang (in Batches von 100 Elementen) also weit darüber hinaus fortgesetzt werden. Bedenken Sie jedoch, dass die Paginierung Zeit braucht und Ihren Flow verlangsamt. Wenn die Paginierung aktiviert ist, wiederholt Ihre Aktion diesen Vorgang, um den manuell eingegebenen Wert des Gesamtschwellenwerts zurückzugeben (ein weiterer notwendiger Eintrag, mit dem wir uns gleich befassen werden).
Um die Einstellung „Paginierung“ zu finden, wählen Sie die Auslassungspunkte in rechts in Ihrer Aktion „Elemente abrufen“ oder „Dateien abrufen“ aus, um die Einstellungen anzuzeigen.
Schalten Sie im Aktionseinstellungsfeld die Option Paginierung auf Ein um. Anschließend müssen Sie hier einen Wert für Schwellenwert eingeben. Die Paginierung kann von 1 bis zu 100.000 Elementen aus Ihrer Datenquelle zurückgegeben werden, Sie müssen sie aber nur für die Anzahl der Elemente festlegen, die Sie voraussichtlich zurückgeben. Klicken Sie abschließend auf die Option Fertig, um zu den normalen Einstellungen zurückzukehren.
Die Einstellung Schwellenwert im Einstellungsfeld ist etwas schwer zu verstehen, aber betrachten Sie es folgendermaßen. Es sollte der Anzahl der Elemente entsprechen, die Sie aus Ihrer Abfrage erwarten, es können jedoch nicht mehr als 100.000 Elemente zurückgegeben werden. Wenn Sie zum Beispiel Ihren Schwellenwert auf 500 festlegen und 2.000 Elemente mit der Abfrage übereinstimmen, erhalten Sie nur 500 Elemente. Wenn Sie im gleichen Fall Ihren Schwellenwert auf 2000 festlegen, erhalten Sie alle 2000 erwarteten Elemente.
Warum ist das wichtig? Warum sollten Sie nicht einfach die Werte für Höchstzahl (5.000) und Schwellenwert (100.000) maximieren? Weil es Zeit braucht und Ihren Flow verlangsamt, Power Automate zum Paginieren zu beauftragen. Wenn Sie beispielsweise mit einem Höchstzahl von 2500 alle Daten erhalten, die Sie erwarten, ist es nicht erforderlich, die Paginierung umzuschalten und den Maximalwert auf den Schwellenwert anzuwenden, um weiterhin durch Ihre Daten zu paginieren.
Bevor wir fortfahren, sollten Sie noch Folgendes bedenken: Stellen Sie den Höchstzahl immer auf 5.000 ein, wenn Sie mit der Rückgabe von mehr als 5.000 Elementen rechnen. Höchstzahl ist eine schnelle Möglichkeit, für die Rückgabe der ersten 5.000 Artikel, und die Paginierung beginnt am Ende dieser ersten 5.000 Elemente. Sie arbeiten zusammen. Die Paginierung an sich funktioniert, sie muss jedoch weiterhin 100 Elemente gleichzeitig abrufen, um die gleiche Arbeit zu erledigen.
OData in Ihrer Filterabfrage verwenden
Nachdem wir uns nun mit dem Filtern Ihrer Daten befasst haben, lernen wir nun, wie Sie die OData-Filterung verwenden. Wenn Sie für Ihre Abfragen OData-Filter verwenden, basiert das Muster im Feld Filterabfrage auf dem Datentyp in der Spalte. Beginnen wir mit einem Filter nach Spalte. Wenn der Spaltenwert einer Zeichenfolge entspricht, können wir einen Filter verwenden, der folgendermaßen aussieht:
StringColumn eq 'text'
Sehen Sie, wie die OData-Anweisung die Abkürzung Gl für Gleiche verwendet? Es handelt sich um OData-Code für den Gleichheitsoperator. Beachten Sie auch, dass unser Zeichenfolge-Wert in einfache Anführungszeichen gesetzt ist.
Wir können denselben OData-Operator für eine Spalte mit numerischem Wert verwenden, wie beispielsweise:
NumericColumn eq 3
Beachten Sie, dass wir keine einfachen Anführungszeichen brauchen, wenn wir numerische Werte vergleichen.
SharePoint führt nicht jeden Prozess aus, zu dem es von Power Automate aufgefordert wird, aufgrund von Delegationsbeschränkungen. Das bedeutet, dass SharePoint nur bestimmte Arten von Abfragefiltern eigenständig ausführt. Hier finden Sie die OData-Operatoren, die Sie verwenden können, um die SharePoint-Filter aufzufordern:
Operator | Abkürzung | Syntax |
---|---|---|
Equals | eq |
StringValueColumn eq 'text' (oder NumericColumn eq number ) |
Not equals | ne |
StringValueColumn ne 'text' (oder NumericColumn ne number ) |
Less than | lt |
NumericColumn lt number (oder DateValueColumn lt date ) |
Greater than | gt |
NumericColumn gt number (oder DateValueColumn gt date ) |
Less than or equal to | le |
NumericColumn le number (oder DateValueColumn le date ) |
Greater than or equal to | ge |
NumericColumn le number (oder DateValueColumn le date ) |
Starts with | startswith | startswith(StringValueColumn, 'text') |
Substring of | substringof | substringof('text', StringValueColumn) |
And | and | FilterFormula and FilterFormula |
Or | or | FilterFormula or FilterFormula |
Text gleich Filter durchgehen
Gehen wir zusammen ein Beispiel durch. Finde eine SharePoint-Liste mit mehreren Elementen, die Sie verwenden können, und öffnen Sie dann eine separate Browserinstanz für das Power Automate Maker Portal.
Wählen Sie auf dem Startbildschirm des Power Automate Maker Portal die Registerkarte Erstellen im Navigationsmenü links aus.
Wählen Sie aus den Optionen oben Sofortiger Cloud-Flow aus.
Klicken Sie auf Einen Flow manuell auslösen>Erstellen.
Fügen Sie unter Ihrem Trigger einen Schritt hinzu und suchen Sie nach Sharepoint.
Suchen Sie die SharePoint-Aktion Elemente abrufen, und wählen Sie sie aus.
Fügen Sie eine SharePoint-Website-Adresse hinzu. Es handelt sich um die Homepage-URL der Website, auf der sich Ihre SharePoint-Liste befindet. Wenn Sie Ihren SharePoint-Listennamen im Dropdownmenü für die Site-Adresse anzeigen, können Sie Ihre SharePoint-Website auswählen, indem Sie auf die Startseite wechseln durch die Auswahl von Start in der Navigationsleiste auf der linken Seite, und kopieren Sie dann die URL aus Ihrem Browser. Wählen Sie zurück in Power Automate die Dropdownoption Benutzerdefinierten Wert eingeben aus, und fügen Sie Ihre SharePoint-Homepage-URL ein.
Suchen Sie unter Listenname nach dem SharePoint-Listennamen aus dem Dropdownmenü, und wählen Sie ihn aus.
Erweitern Sie die Option Erweiterte Optionen anzeigen, und suchen Sie das Feld Filterabfrage. Beachten Sie, dass der Hinweistext (Sie können den gesamten Hinweis anzeigen, indem Sie mit der Maus über das Feld fahren) Ihnen mitteilt, dass eine ODATA-Filteranweisung erwartet wird, und dass er sogar Syntaxbeispiele umfasst.
Beginnen wir mit dem Filtern einer SharePoint-Textwertspalte mit der Funktion equals (eq). Wählen Sie eine Ihrer Spalten aus, unter der Textwerte vorhanden sind. Geben Sie für die Formel Ihren Spaltennamen eq und dann einen Wert unter dieser Spalte in einfache Anführungszeichen ein. Geben Sie einen genauen Wert in die Anführungszeichen ein, der sich in den Spaltendaten befindet.
Der Filter funktioniert nicht, wenn der Spaltenname/-wert nicht genau übereinstimmt. Navigieren Sie zu den Listeneinstellungen, die von SharePoint aufgelistet werden, um die Werte Ihrer Spaltennamen anzuzeigen. Wählen Sie dazu das Einstellungssymbol aus, und bewegen Sie dann die Maus über den Spaltennamen. Suchen Sie dann unten auf dem Bildschirm nach dem entsprechenden Spaltennamen. Wenn Sie die Maus über den Namen bewegen, wird eine URL mit einem Gleichheitszeichen und dann Ihr Spaltenname angezeigt.
Sehen Sie sich unser folgendes Beispiel an. Unsere SharePoint-Spalte heißt Produktbeschreibung, aber der tatsächliche Name in den Daten ist field_1, dies ist der Name, den wir für den Spaltennamen eingeben müssten.
Damit wir anzeigen können, wie viele Elemente mit unserem Filter zurückgegeben werden, fügen wir unter der Aktion Elemente abrufen ein weiteres Element hinzu. Fügen Sie eine Aktion Verfassen hinzu. Wählen Sie das Feld Eingaben aus, und wechseln Sie zur Registerkarte Ausdruck. Fügen Sie dann im Eingabefeld „Ausdruck“ folgende Formel hinzu:
length(outputs('Get_items')?['body/value'])
Diese Aktion zählt die Anzahl der Zeilen, die unsere Aktion Elemente abrufen zurückgibt.
Wählen Sie Aktualisieren aus, um diesen Wert zu speichern.
Testen wir nun unseren Flow. Wählen Sie Speichern>Test>Manuell>Test aus, und klicken Sie dann nach der Überprüfung Ihrer Verbindung auf die Option Flow ausführen.
Erweitern Sie die Aktion Verfassen in den Flow‑ergebnissen, sobald der Flow ausgeführt wurde. Dann wird angezeigt, wie viele Elemente zurückgegeben wurden. Entspricht das Ihren Erwartungen? Wenn Sie den Test mit einer großen Artikelliste gemacht haben und mehr als ein Artikel Ihren Kriterien entsprach, haben Sie möglicherweise nur 100 Artikel zurückgegeben.
Wenn Ihr Filter nicht ganz funktioniert hat, überprüfen Sie, ob der Spaltenname genau ist und die passenden Daten in einfachen Anführungszeichen angezeigt werden.
Verwenden Sie die Höchstzahl
Lassen Sie uns anhand des gleichen Flows sehen, was die Verwendung der Höchstzahl für uns bewirkt. Höchstzahl ist eine hervorragende Möglichkeit, um zu testen, ob Ihre Liste richtig gefiltert wird, da Sie die zurückgegebenen Daten auf einige wenige Elemente beschränken und diese Daten schnell anzeigen können, sobald der Flow ausgeführt wurde.
Setzen Sie Ihren Flow dann wieder in den Bearbeitungsmodus.
Erweitern Sie die Aktion Artikel abrufen, und wählen Sie dann Erweiterte Optionen anzeigen aus.
Geben Sie im Feld rechts von Höchstzahl den Wert 1 ein.
Führen Sie Ihren Flow nun testweise erneut aus.
Tipp
Beim Testen Ihres Flows können Sie die Option Automatisch mit einer vorherigen Ausführung verwenden, um den Flow mit weniger Klicks schnell erneut auszuführen.
Wenn Sie im Bildschirm „Laufergebnisse“ die Aktion „Verfassen“ erweitern, sollte sie bei den Eingaben/Ausgaben den Wert 1 widerspiegeln.
Wenn Sie die Aktion „Elemente abrufen“ erweitern, können Sie die Option Zum Herunterladen klicken auswählen, um den JSON-Code Ihres zurückgegebenen Elements darzustellen.
Setzen Sie Ihren Flow dann erneut in den Modus Bearbeiten.
Geben Sie einen Höchstzahl-Wert für das ein, was Sie in Ihrer Abfrage erwarten (bis zu 5.000), aber nicht größer als die Anzahl der Elemente in Ihrer Liste.
Speichern und Testen Sie Ihren Flow erneut. Haben Sie die erwarteten Ergebnisse erreicht? Wenn nicht, wechseln Sie zurück, überprüfen Sie Ihre Werte und versuchen Sie es erneut.
Paginierung verwenden
Sie benötigen zum Testen der Paginierung eine Liste mit mehr als 100 Elementen, da die Funktion Get Items jeweils 100 Elemente abruft. Eine Liste mit 101 bis 200 Elementen würde zwei Abrufe aufrufen. Denken Sie daran, dass Sie keine Paginierung wirklich benötigen, wenn Sie 5000 Elemente oder weniger zurückgeben möchten. Höchstzahl ist weitaus leistungsfähiger. Sie erfahren dadurch, wie das funktioniert.
Setzen Sie Ihren Flow dann erneut in den Modus Bearbeiten.
Löschen Sie Ihren Wert für Höchstzahl, sodass Höchstzahl leer ist. Realistisch gesehen würden Sie für Ihren Filter immer Höchstzahl verwenden, da dieser schnell Ihre ersten 5000 Werte aufrufen kann. In diesem Fall möchten wir jedoch zeigen, wie die Paginierung funktioniert und wie langsam sie sein kann, wenn sie alleine durchgeführt wird.
Wechseln Sie zu den Einstellungen der Aktion Elemente abrufen.
Schalten Sie die Paginierung auf Ein, und geben Sie die Nummer der Elemente in, die Sie erwartungsgemäß im Eingabefeld Schwellenwert abrufen.
Wählen Sie Fertig aus.
Speichern und Testen Sie Ihren Flow. Wenn die Liste sehr umfassend ist, beachten Sie, dass die Ausführung des Flows viel Zeit in Anspruch nimmt. Stellen Sie sich vor, Sie müssten durch Ihre gesamte SharePoint-Liste mit jeweils 100 Elementen scrollen!
Zusammenfassend
Sie haben hoffentlich ein grundlegendes Verständnis von Folgendem erlangt:
SharePoint-Listen mit den OData-Filtern filtern,
Warum Sie SharePoint filtern möchten,
Und wie Sie Ihre SharePoint‑Aktionen anpassen können, um die gewünschten Daten zurückzugeben.