In den vorherigen Artikeln dieser Serie haben wir eine PowerApp mit Daten verbunden und diese sowohl in einer Datentabelle als auch in einem Katalog (Gallery) bearbeitet. Dieser Beitrag wird zeigen, wie wir innerhalb dieser Steuerelemente suchen können.

Die bisherigen Artikel der Serie sind:

  1. Arbeiten mit PowerApps – Grundlagen
  2. Grundlagen von PowerApps Komponenten und PowerApps Studio
  3. Daten anlegen, ändern und löschen mit PowerApps
  4. Arbeiten mit Katalogen in PowerApps

Die im Folgenden gezeigten Lösungen gehen sowohl mit einer Datentabelle als auch mit einem Katalog. Da ich aber primär mit dem Katalog arbeite, werde ich sämtliche Beschreibungen und Screenshots mit einem Katalog machen.

Es gibt in PowerApp zwei Möglichkeiten Daten zu finden; dies sind filtern und suchen. Dabei findet die Filter- Formel alle Datensätze in einer Tabelle, die eine vorher definierte Formel erfüllen. Die Suche findet Datensätze in einer Tabelle, die eine Zeichenfolge in einer ihrer Spalten enthalten. Dabei können Sie auch über mehrere Spalten suchen, in der Filter Formel verbinden Sie diese mit ||, in der Search Formel mit ;. Wenn an eine Tabelle eine Suche oder Filter ohne Inhalt übergeben wird, so findet keine Aktion statt, es werden alle Einträge angezeigt.

Arbeiten mit der Suche

Die Such- oder Filterformel wird dabei an die Items Eigenschaft der Datentabelle oder des Kataloges gebunden. Markiert man das Steuerelement, ist diese Eigenschaft auch die Standardeigenschaft.

2019-10-15_11h26_15

Als Beispiel soll eine Suche dienen. Prinzipiell funktioniert es mit Filtern genauso. Um die Suche interaktiv zu nutzen, fügen wir dem Screen über dem Katalog ein Textfeld hinzu. Umbenennen Sie das Feld in txtGallSuche. Fügen Sie in die Items Eigenschaft des Katalogs die folgende Formel ein. Dabei ist ‚Beschaffung‘ die Datenquelle, txtGallSuche.Text der Inhalt des Suchfelds und „Title“;“Beschreibung“ -immer in Anführungsstrichen- die Spalten in denen gesucht wird.

Search(‚Beschaffung‘;txtGallSuche.Text;“Title“;“Beschreibung“)

Diese Formel filtert den Katalog also nach dem Inhalt des Feldes txtGallSuche. Dabei werden die Spalten Titel und Beschreibung durchsucht. Die Suche sucht dabei automatisch in allen Wortbestanteilen in Echtzeit.

2019-10-15_11h33_25

Was ist Delegierung in PowerApps?

Wenn die Eigenschaft Items der Gallery mit einer Suche manipuliert wird, erscheint ein kleines Achtungszeichen an der Gallery. Dies ist eine Warnung zur Delegierung. Dies bedeutet, dass die Suche in der Gallery nicht auf dem Endgerät stattfindet, sondern tatsächlich in der Datenquelle. Dies ist sinnvoll, denn gerade mobile Geräte sind nicht dafür gedacht mit großen Datenmengen zu arbeiten. So werden auch immer nur die ersten 500 Datensätze einer Datenquelle geholt, wobei dies auf 2.000 Einträge erhöht werden kann. Mehr geht aber dann nicht. Unter Umständen bekommen sie damit also falsche Ergebnisse. Die Delegierung verringert damit dieses Problem.

Welche Datenquellen bzw. Konnektoren und welche Formeln Delegierung nutzen, können Sie hier nachlesen. Der Artikel gibt auch eine gute Übersicht über die Problematik an sich: https://docs.microsoft.com/de-de/powerapps/maker/canvas-apps/delegation-overview

7 Kommentare zu „Daten durchsuchen in PowerApps und Delegierung

  1. Hallo,
    eine sehr lesenwerte Reihe hier über PowerApps!
    aber beim bei mir nachbauen des Beispiels mit dem Suchen hätte ich eine Frage:
    SuchText von oben:
    Search(‚Beschaffung‘;txtGallSuche.Text;“Title“;“Beschreibung“)

    der Suchtext soll ja in beiden Spalten, Title oder Beschreibung suchen,
    das klappt bei mir nicht,
    bei nur einer Spalte -also entweder Title oder Beschreibung – da funktioniert die Suche,
    aber nicht wenn ich wie im obrigen Beispiel beide Spalten einfüge.

    Was mache ich falsch ?
    Vielen Dank vorab für eine kurze Hilfestellung!
    Viele Grüße, Arno

    Gefällt mir

    1. Hallo Arno,

      es könnte zum einen sein, dass Du Komma statt Semikolon verwenden musst. Ist aber eher unwahrscheinlich, denn dann würde es in keinem Fall gehen. Andere Möglichkeit ist, die Suche geht immer auf den internen Namen des Feldes. Hat man zum Beispiel die Spalte Title in einer SharePoint Liste umbenannt, so heißt diese intern immer noch Title. Ich habe letzte Woche die Formel erst wieder mit mehreren Spalten verwendet, an der kann es nicht liegen. Sicher, dass auch alle Anführungszeichen/Klammern gesetzt sind?

      Gefällt mir

      1. Hallo Nico,
        danke für deine Antwort!
        ich konnte jetzt beide Varianten reproduzieren:
        (Datenquelle ist keine SharepointListe, sonder Excel OneDriveTabelle mit ca 22000 Datensätzten)

        Variante A-Nico: Formel Search(‚Beschaffung‘;txtGallSuche.Text;“Title“;“Beschreibung“)
        wenn ich das in einer neuen leeren App nachbaue, funktioniert das genau wie gewünscht,
        allerdings nur für die ersten ca 200 bis 500 Datensätzte, aber wie gewünscht für beide Spalten,
        nicht aber für alle 22000 Datensätze.

        Variante B- Arno: Formel Search(‚Beschaffung‘;txtGallSuche.Text;“Title“)
        wenn ich eine weitere leere App erstelle,
        (Datenquelle ist keine SharepointListe, sondern wieder gleiche Excel OneDriveTabelle mit ca 22000 Datensätzen)
        also wenn ich eine weitere leere App erstelle, mit der oben genannten Formel und nur einer SuchSpalte,
        dann sucht PowerApps in allen 22000 Datensätzen erfolgreich,
        verändert auf zwei Spalten, wird aber nichts mehr gefunden…

        Desweitern kann man den Tabellennamen der Datenquelle ‚Beschaffung‘ mit den ‚‘ schreiben, aber auch ohne ‚‘ und genauso auch mit [@Beschaffung], aber egal wie,
        als Suche über zwei Spalten mit 22000 Datensätzen funktioniert das bei mir leider nicht, als kleine Tabelle mit nur 100 Datensätzen evt. schon

        Weitere Ideen, woran das liegen könnte?

        Vielen Dank Vorab & Viele Grüße, Arno

        Gefällt mir

      2. Hallo Arno,

        das ist des Rätzels Lösung. Siehe dazu auch den letzten Abschnitt im Beitrag oben, Stichwort Delegierung. Eine PowerApp zeigt maximal 2.000 Datensätze an. Mehr geht nicht. Wenn es die Datenquelle und der Konnektor erlauben, wird in der Datenquelle gesucht, aber eben nur maximal 2.000 Datensätze angezeigt. Bei einer Exceltabelle in der App gilt das nicht, aber ich vermute, da kommt das Framework einfach an seine Grenzen.
        Hier hilft nur, schon beim Laden der Daten einen Filter zu setzen. Also nicht alle 22.000 Datensätze laden, sondern den Benutzer schon eine Vorauswahl machen lassen.

        Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s