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 Maker Portal 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 mit einer Wellenlinie 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 das Delegierungsproblem verursacht. Beachten Sie im obigen Screenshot, dass nur das Feld, das mit einer wellenförmigen Unterstreichung unterstrichen ist, „FirstName“ ist. Der Grund dafür ist, dass dieses das erste Element ist, das eine Delegierung ausgelöst hat. "LastName“ würde in diesem Szenario ebenfalls zu einer Delegierung führen, wird jedoch nicht unterstrichen. 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. Wenn diese Verwirrung auftritt, ordnen Sie Ihre Formel neu an, um zu prüfen, ob das Feld, das an erster Stelle steht, das Problem anzeigt.
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 vom Maker Portal Einstellungen aus dem Menü oben auf dem Bildschirm aus. Wenn Einstellungen nicht angezeigt wird, klicken Sie auf die drei Punkte.
Lassen Sie unter App-Einstellungen die Registerkarte Allgemein ausgewählt und scrollen Sie nach unten bis zum Grenzwert für Datenzeilen.
Legen Sie den Datenzeilengrenzwert für nicht delegierbare Abfragen auf einen Wert zwischen 1 und 2000 fest.
Klicken Sie anschließend oben links auf die Option Schließen, um die Änderung unten rechts zu speichern und wieder das Maker Portal 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 sind teilweise delegierbar. 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 teilweise 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.