ForAll
Aug 06, 2024Power Apps Tutorial: Effiziente Massenaktionen mit der ForAll Funktion
Mit der ForAll Funktion in Power Apps kannst du Aktionen für mehrere Datensätze in einer Tabelle gleichzeitig ausführen. So kannst du beispielsweise Spaltenwerte in mehreren Datensätzen gleichzeitig bearbeiten oder eine E-Mail an die verantwortliche Person für jeden Datensatz versenden. Ich zeige dir Schritt für Schritt, wie du die ForAll Funktion in deinem Projekt nutzen kannst.
Vorbereitung
Starte mit einer App, in der Daten aus einer SharePoint Liste in einer Galerie eingelesen sind. In diesem Beispiel habe ich Projektdaten mit einem Start- und Enddatum, einem Status und einer verantwortlichen Person. Zu diesen Daten haben ich auch schonmal ein eigenes Gantt Chart erstellt. Wenn du das selbst testen möchtest, dann lade es dir hier kostenlos herunter.
Schritt 1: Mehrere Datensätze gleichzeitig auswählen
Zunächst musst du den BenutzerInnen deiner App die Möglichkeit geben, mehrere Datensätze gleichzeitig auszuwählen. Gehe dazu in deine Galerie (bei mir heißt diese gal_Projekte) und bearbeite den ersten Datensatz. Füge ein Kontrollkästchen aus der Gruppe "Eingabe" hinzu, entferne den Text und positioniere das Kontrollkästchen. Über die Kontrollkästchen kannst du jetzt mehrere Datensätze auswählen.
Schritt 2: Ausgewählte Datensätze auslesen
Um die ausgewählten Datensätze auszulesen, kannst du mit der Filter Funktion alle angehakten Datensätze ansprechen. Um das besser zu verstehen, kannst du dir eine Hilfsgalerie einfügen, wo nur die ausgewählten Datensätze angezeigt werden sollen.
Hilfsgalerie
Items = Filter(gal_Projekte.AllItems; Checkbox1.Value = true)
Schritt 3: ForAll Schleife
Lösche die Hilfsgalerie und füge eine Schaltfläche mit dem Text "Abschließen" ein. In der OnSelect Eigenschaft der Schaltfläche fügst du jetzt die ForAll Schleife ein. Als Datenquelle nutzt du die in Schritt 2 erarbeitete Filter Funktion und fügst der ForAll Schleife die gewünschte Aktion hinzu. In diesem Beispiel möchte ich den Status aller ausgewählten Datensätze über die Patch Funktion auf „Abgeschlossen“ setzen.
Button "Abschließen"
OnSelect = ForAll(
Filter(gal_Projekte.AllItems;Checkbox1.Value) As PROJEKT;
Patch('Gantt Chart';PROJEKT;{Status:{Value:"Abgeschlossen"}})
)
Hinweis:
Solltest du einen Fehler erhalten (...stimmt nicht mit dem erwarteten Typ "Record" überein.), dann achte darauf, dass du in der Patch Funktion für Auswahlfelder immer ein Record übergeben musst.
Fehlerhafte Codezeile
Patch('Gantt Chart';PROJEKT;{Status:"Abgeschlossen"})
Korrekte Codezeile
Patch('Gantt Chart';PROJEKT;{Status:{Value:"Abgeschlossen"}})
Schritt 4: E-Mail an die verantwortliche Person senden
Zusätzlich zum Status Update kannst du auch eine E-Mail an die verantwortliche Person senden. Dazu musst du dein Office 365 Outlook verbinden und die ForAll Schleife entsprechend erweitern.
Button "Abschließen"
OnSelect = ForAll(
Filter(gal_Projekte.AllItems;Checkbox1.Value) As PROJEKT;
Patch('Gantt Chart';PROJEKT;{Status:{Value:"Abgeschlossen"}});;
Office365Outlook.SendEmailV2(PROJEKT.Verantwortliche.Email;PROJEKT.Titel & " ist abgeschlossen";"Projekt ist abgeschlossen")
)
Ich hoffe, dieses Tutorial hilft dir dabei, deine Business Apps effizienter und benutzerfreundlicher zu gestalten.
Melde dich gerne für meinen Newsletter an, in dem ich dir Tipps und Tricks rund um Power Apps & Power Automate zusende.
Hier gehts zum Detailvideo: