Warnungen und Grenzwerte für Delegierungen sowie nicht delegierbare Funktionen
Power Apps unterstützt Sie als App-Ersteller durch visuelle Elemente, die darauf hinweisen, wann eine Delegierung stattfindet. Im Portal für App-Ersteller können Sie eine Einstellung anpassen, um die zurückgegebene Datenmenge zu erhöhen, wenn eine Delegierung nicht möglich ist.
Delegierungswarnungen
Wenn Sie eine nicht delegierbare Funktion verwenden, wird diese wie unten gezeigt von Power Apps blau unterstrichen. Zusätzlich wird ein gelbes Warndreieck angezeigt.
Durch dieses visuelle Element wird deutlich, dass keine Delegierung stattfindet. Möglicherweise werden Ihnen daher nicht alle Daten angezeigt. Folgende Punkte müssen im Zusammenhang mit diesem visuellen Element berücksichtigt werden.
Power Apps zeigt diese Warnung unabhängig von der Größe der Datenquelle an. Das ist auch dann der Fall, wenn sich in der Datenquelle nur wenige Elemente befinden und die Delegierung eigentlich kein Problem darstellt. Denken Sie daran, dass die ersten 500 Elemente standardmäßig zurückgesendet und lokal verarbeitet werden. Die Warnung wird immer dann angezeigt, wenn die Formel nicht delegiert werden kann.
Das Warnsymbol bezieht sich nur auf das erste Element, das eine Delegierung verursacht. Beachten Sie, dass im obigen Screenshot nur das Feld „FirstName“ blau unterstrichen wird. Der Grund dafür ist, dass dieses das erste Element ist, das eine Delegierung ausgelöst hat. Auch „LastName“ würde in diesem Szenario zu einer Delegierung führen. Wenn bei der Problembehandlung nicht das tatsächliche Problem, nämlich die Suchfunktion, sondern der Unterschied zwischen „FirstName“ und „LastName“ im Vordergrund steht, kann dies verwirrend sein. In diesem Fall können Sie die Elemente der Formel anders anordnen. Diese werden dann überprüft, und das Problem wird anhand des ersten Felds sichtbar.
Dieses visuelle Element ist nur vorhanden, wenn Sie sich im Portal für App-Ersteller befinden und dort Ihre App erstellen. Wenn Benutzer die App ausführen, werden sie nicht benachrichtigt, dass die Delegierung nicht stattfindet und sie möglicherweise nur Teilergebnisse sehen. Dies müssen Sie beim Entwerfen und Erstellen Ihrer App berücksichtigen.
Die zurückgegebene Datensatzanzahl bei nicht verfügbarer Delegierung ändern
Wenn eine Formel nicht an die Datenquelle delegiert werden kann, ruft Power Apps standardmäßig die ersten 500 Datensätze aus der Datenquelle ab und verarbeitet die Formel lokal. Diese Zahl lässt sich in Power Apps anpassen, wodurch Grenzwerte zwischen 1 und 2.000 festgelegt werden können. Sie können diese Grenze unter „Erweiterte Einstellungen“ anpassen.
Wählen Sie im Portal für App-Ersteller oben links Datei aus.
Wählen Sie im Menü links Einstellungen aus.
Wählen Sie unter App-Einstellungen die Option Erweiterte Einstellungen aus.
Legen Sie den Datenzeilengrenzwert für nicht delegierbare Abfragen auf einen Wert zwischen 1 und 2000 fest.
Klicken Sie anschließend oben links auf den Pfeil, um die Änderung zu speichern und wieder das Portal für App-Ersteller aufzurufen.
Es gibt zwei Hauptgründe für die Anpassung des Grenzwerts.
Der erste besteht darin, den Grenzwert zu erhöhen, wenn mehr als 500, aber weniger als 2000 Datensätze für Ihre Datenmengen ausreichend sind. Wenn beispielsweise eine Kundenliste nie mehr als 1000 Einträge enthalten wird, können Sie die App so entwerfen, dass keine Delegierung durchgeführt wird und immer alle 1000 Datensätze zurückgegeben werden.
Den Grenzwert zu Testzwecken auf 1 oder 10 zu verringern. Wenn Sie sich in bestimmten Szenarios nicht sicher sind, ob eine nicht delegierbare Funktion zu Problemen mit der App führt, können Sie den Grenzwert verringern und dann Tests ausführen. Wenn Sie als Grenzwert 1 festgelegt haben und in Ihrem Katalog nur ein Datensatz aufgeführt wird, wissen Sie, dass die Funktion nicht delegierbar ist. Mit dieser Einstellung wird die Problembehandlung beschleunigt.
Nicht delegierbare Funktionen
In der vorherigen Lerneinheit haben Sie erfahren, welche Funktionen delegierbar sind und wie sich diese zu verschiedenen Datenquellen verhalten. Diese anderen Funktionen, die nicht in dieser Lerneinheit behandelt wurden, sind nicht delegierbar. Folgende wichtige Funktionen unterstützen keine Delegierung.
First, FirstN, Last, LastN
Choices
Concat
Collect, ClearCollect (Keine dieser Funktionen gibt eine Delegierungswarnung zurück, sie sind jedoch nicht delegierbar)
„CountIf“, „RemoveIf“, „UpdateIf“
„GroupBy“, „Ungroup“
Alle diese Funktionen sind nicht delegierbar. Wenn Sie diese einer Formel hinzufügen, kann das dazu führen, dass eine zuvor delegierbare Funktion wie im vorherigen Beispiel gezeigt nicht mehr delegierbar ist.
Teilweise unterstützte delegierbare Funktionen
Die folgenden Tabellenformungsfunktionen werden als teilweise delegierbar angesehen. Dies bedeutet, dass Formeln in ihren Argumenten delegiert werden können. Die Ausgabe dieser Funktionen unterliegt jedoch dem Datensatzlimit für Nichtdelegierung.
AddColumns
DropColumns
ShowColumns
RenameColumns
Häufig werden „AddColumns“ und „LookUp“ verwendet, um Informationen aus einer Tabelle mit Informationen aus anderen Tabellen zusammenzuführen. Dieser Vorgang für Datenbanken wird auch als „Join“ bezeichnet. Zum Beispiel:
AddColumns( Products, "Supplier Name", LookUp( Suppliers,
Suppliers.ID = Product.SupplierID ).Name )
Obwohl „Products“ und „Suppliers“ möglicherweise delegierbare Datenquellen sind und die „LookUp“-Funktion delegierbar ist, bietet die Funktion „AddColumns“ keine Delegierbarkeit. Das Ergebnis der gesamten Formel bleibt begrenzt auf das ursprüngliche Segment der Produktdatenquelle.
Während die LookUp-Funktion und die zugehörige Datenquelle eine Delegierung ermöglichen und so die Suche nach Lieferanten in einem riesigen Datensatz erleichtern, gibt es eine Einschränkung. LookUp erfordert separate Abfragen der Datenquelle für jeden der anfänglichen Datensätze in Produkten, was zu einer steigenden Netzwerkaktivität führt. Wenn der Lieferantendatensatz jedoch relativ klein ist und stabil bleibt, ist es eine alternative Methode, die Datenquelle innerhalb der App zwischenzuspeichern. Die Verwendung eines Collect-Aufrufs während der App-Initialisierung (mit OnVisible auf dem Eröffnungsbildschirm) ermöglicht nachfolgende LookUp-Vorgänge direkt in der zwischengespeicherten Datenquelle und verringert so den Datenverkehr.