Power Apps – Die perfekte Suche nach Inhalten

Die Suche nach Inhalten in Zeichenbereich-Apps oder anders ausgedrückt in Canvas Apps kann herausfordernd werden. Aufgrund der Delegierung, wird nicht eine gesamte Liste (SharePoint) durchsucht, sondern nur die ersten 500 bis maximal 2000 Einträge. Diese Obergrenze lässt sich leider nicht vermeiden, es sei denn, es würde statt einer SharePoint-Liste mit einer Dataverse-Tabelle gearbeitet werden.

Hinweis: Nähere Informationen zur Delegierung sind in der Referenz von Microsoftunter dem Link nachzulesen.

https://learn.microsoft.com/de-de/power-apps/maker/canvas-apps/delegation-overview

In diesem Blog beschreibe ich, wie das Limit clever umgangen werden kann, so dass es wahrscheinlich keine weiteren Probleme bereiten wird. Die Formulierung „wahrscheinlich“ muss hier verwendet werden, da bei großer Anzahl von Zeilen, es dennoch zu Engpässen führen könnte.

Nehmen wir an, es gibt eine Liste mit sehr vielen Einträgen. Mehr als 100.000 zum Beispiel.

Kombinieren wir als Beispiel für die Suche mehrere Kriterien, wie z.B. die Suche nach einem Fall mit einer Vorgangsnummer und einem Statuswert. Generell lässt sich sagen, je mehr Kriterien, um so besser die Suche, desto weniger anzuzeigende Elemente.

Dennoch sehen wir oben links über dem Steuerelement “Katalog” eine Warnung als gelbes Dreieck.

image

Das nachfolgende Beispiel zeigt, wie die Suche als Ausgangspunkt vorgenommen wird, um der Delegierung auszuweichen.

clip_image002

Es gilt, per Eingabe eines Textwertes „Titel“, wird zeichenweise der Titel durchsucht (Volltextsuche). Um die Suche einzuschränken, kann weiterhin eine „Vorgangsnummer“ verwendet werden, und ggf. noch ein „Statuswert“. Alle Suchparameter können wahlweise einzeln oder in Kombination zueinander zusammen verwendet werden. Zusätzlich werden in diesem Beispiel die Einträge angezeigt, die ein Benutzer selbst erstellt hat. Das reduziert auch noch die Menge der Zeilen, ist jedoch optional.

clip_image004

Die Funktion „Search“ ist nicht delegierbar, es werden also aus der Datenquelle max. 2000 abgerufen. In Kombination mit der eingeschlossenen Funktion „Filter“, die wiederum delegierbar ist, also alle Datensätze der Quelle filtert, ergibt sich eine Kombination, die die meisten Probleme aufgrund der Menge der zurückzugebenden Datenzeilen eliminiert.

Die „Filter“ Funktion reduziert die Zeilen der Datenquelle, erst dann findet mittels Funktion „Search“ die weiterführende Suche statt. Wäre dies so nicht kombiniert worden, wäre die Suche deutlich eingeschränkter, da sie sich nur auf die ersten 2000 Zeilen erstrecken würde.

Mittels eines Steuerelements „Label3“ wird der Name des Users, der die App benutzt angezeigt und dienst zur Filterung der Daten, die von ihm selbst erstellt wurden. Das macht die Funktion „User“ möglich. Die Formatierung erfolgt über die Eigenschaft „Text“.

clip_image006

clip_image008

Hinweise:

Mittels der Funktion „StartsWith“ wird die Vorgangsnummer Zahl für Zahl durchsucht, ebenso der Username, um die eigens erstellten Datensätze auszuwerfen. Mit der Funktion „IsBlank“ wird überprüft, ob das Steuerelement „ComboBox1“ eine Auswahl ausweist, weiter erfolgt die Prüfung, welcher Wert durch Aufklappen ausgewählt worden ist. Dazwischen befindet sich ein doppelt-Pipe Operator, der ist gleichzusetzen mit der Funktion „Oder“. Damit wird im Falle einer Auswahl, danach gefiltert, wird nichts ausgewählt, wird alles aus der Liste angezeigt, anders gesagt, der Statuswert wird ignoriert.

Das Steuerelement „ComboBox1“ enthält per Eigenschaft „Items“ die Funktion “Choices”. Diese ruft die Werte aus der SharePoint-Liste ab.

clip_image010

clip_image012

Viel Erfolg bei der nächsten Suche.

Kommentare sind geschlossen