Die ForAll-Funktion

Abgeschlossen

Zuvor haben Sie gelernt, wie Sie Funktionen mit nur einem Zweck zum Ausführen mit einer Tabelle verwenden können. Diese eignen sich ideal und funktionieren gut, aber manchmal ist mehr Flexibilität notwendig, oder Sie müssen etwas durchführen, für das diese Funktionen nicht geeignet sind. Für diese Situationen gibt es die ForAll-Funktion.

Die ForAll-Funktion wertet eine Formel für alle Datensätze einer Tabelle aus. Die Formel kann einen Wert berechnen und/oder Aktionen ausführen, z. B. das Ändern von Daten oder das Arbeiten mit einer Verbindung.

Die Felder des aktuell verarbeiteten Datensatzes sind in der Formel verfügbar. Sie können, wie bei einem beliebigen anderen Wert, per Name auf sie verweisen. Sie können auch auf Steuerelementeigenschaften und andere Werte in Ihrer App verweisen.

Beispielsweise können Sie „ForAll(CustomerOrders, Office365.SendEmail(Email, "Thank you", " You are a great customer " & FirstName))“ verwenden, um eine separate E-Mail an alle E-Mail-Adressen in der „CustomerOrders“-Tabelle zu senden. Der Betreff der E-Mail lautet in diesem Beispiel „Danke“ und der E-Mail-Text „Sie sind ein großartiger Kunde“, gefolgt von dem im Feld „FirstName“ gespeicherten Wert.

Dieses Beispiel unterscheidet sich von dem Concat-Beispiel in zwei wesentlichen Punkten. Erstens: In diesem Beispiel wird für jeden Datensatz in der Tabelle eine E-Mail gesendet. Wenn also 50 Datensätze vorhanden sind, werden 50 verschiedene E-Mails gesendet. Im Concat-Beispiel wurde nur eine einzige E-Mail gleichzeitig an alle 50 E-Mail-Adressen in der Adresszeile (An:) gesendet. Zweitens: Diese E-Mail verweist auf das „FirstName“-Feld aus der „CustomerOrders“-Tabelle. Wenn Sie die ForAll-Funktion verwenden, können alle Felder für jeden Datensatz verwendet werden.

Wichtige Informationen zur Verwendung von „ForAll“

ForAll ist eine äußerst leistungsstarke Funktion, es gibt jedoch einige Punkte, die Sie berücksichtigen sollten, wenn Sie damit beginnen, Ihre Formel zu erstellen.

  • Die Formel kann Funktionen enthalten, die Aktionen ausführen, z. B. das Ändern der Datensätze einer Datenquelle mit den Funktionen Patch und Collect.

  • Sie können nicht die Tabelle ändern, die Gegenstand der ForAll-Funktion ist. Dazu gehört die Verwendung von Patch oder Collect in der Tabelle.

  • Die Formel kann Methoden für Verbindungen aufrufen.

  • Sie können mehrere Aktionen pro Datensatz ausführen, indem Sie den „;“-Operator verwenden.

  • Denken Sie beim Schreiben der Formel daran, dass Datensätze in beliebiger Reihenfolge (wenn möglich, parallel) verarbeitet werden können. Möglicherweise verarbeiten Sie den ersten Datensatz der Tabelle nach dem letzten Datensatz. Achten Sie darauf, Abhängigkeiten von der Reihenfolge zu vermeiden. Aus diesem Grund können Sie die Funktionen Set, UpdateContext, Clear, und ClearCollect innerhalb einer ForAll-Funktion nicht verwenden, da sie leicht mit Variablen verwendet werden könnten, die für diese Auswirkung anfällig wären. Sie können Collect verwenden, die Reihenfolge, in der Datensätze hinzugefügt werden, ist jedoch nicht definiert.

  • ForAll ist nicht delegierbar. Das bedeutet, dass bei Verwendung mit externen Daten möglicherweise nicht alle Ihre Datensätze durchsucht werden. Das Ergebnis, das Sie erhalten, stellt möglicherweise nicht alles dar. Wenn Sie Ihre Formel schreiben, erinnert möglicherweise eine Warnung an diese Einschränkung und schlägt den Wechsel zu delegierbaren Alternativen vor, sofern diese bestehen. ForAll kann gut mit Sammlungen verwendet werden, denken Sie dabei aber daran, dass es nicht delegiert werden kann. Weitere Informationen finden Sie unter Überblick über Delegation.

Die Funktion ForAll enthält viel mehr Regeln als die meisten Power Apps-Funktionen. Da Sie auch Funktionen wie „Set“ oder „UpdateContext“ nicht verwenden können, müssen Sie manchmal eine andere Herangehensweise für Ihre Formel finden. Häufig möchte man Set mit ForAll verwenden, um die Anzahl der geänderten Datensätze nachverfolgen zu können, oder um Informationen über diese Datensätze zu erfassen. Möglicherweise stellen Sie fest, dass Sie bei Verwendung von „Patch“ zum Aktualisieren einer Sammlung, in der Sie diese gleichen Daten nachverfolgen, das gleiche Ergebnis erhalten.

Weitere Informationen zur Verwendung und zu Regeln für die Funktion „ForAll“ finden Sie unter Funktion „ForAll“ in Power Apps.