Aktualisieren eines verschachtelten Datensatzes in Power Apps Canvas mit der Patch-Funktion

Beschreibung

Das Aktualisieren von verschachtelten Datensätzen (nested records) in Power Apps Canvas kann mit der Patch-Funktion effizient durchgeführt werden. Diese Funktion ermöglicht es, gezielt Felder eines Datensatzes zu ändern, ohne die gesamte Datenstruktur zu überschreiben.


Anleitung

Problemstellung

Beim Arbeiten mit verschachtelten Datensätzen in Power Apps Canvas besteht die Herausforderung darin, nur bestimmte Felder innerhalb eines verschachtelten Objekts zu aktualisieren, ohne die gesamte Struktur zu überschreiben. Dies ist besonders wichtig, um Datenintegrität zu gewährleisten und unnötige Änderungen zu vermeiden.

Lösungsschritte

Schritt 1: Erstellen eines initialen Datensatzes
Zuerst wird ein Datensatz mit einer verschachtelten Struktur erstellt. Dies kann mit der Set-Funktion erfolgen:

Set(
    varExample,
    {
        Name: "Name1",
        Alter: 33,
        Adresse: {
            Ort: "aktueller Ort",
            Straße: "die Straße",
            Hausnummer: "11a",
            Aktiv: false
        }
    }
)

Schritt 2: Aktualisieren eines verschachtelten Objekts
Um ein bestimmtes Feld innerhalb des verschachtelten Objekts Adresse zu aktualisieren, wird die Patch-Funktion verwendet. Hier ein Beispiel, um das Feld Ort zu ändern:

Set(
    varExample,
    Patch(
        varExample,
        {
            Adresse: Patch(
                varExample.Adresse,
                {Ort: "neuer Ort"}
            )
        }
    )
)

Schritt 3: Überprüfen des Ergebnisses
Nach der Ausführung des obigen Codes sieht der Datensatz varExample wie folgt aus:

{
    Name: "Name1",
    Alter: 33,
    Adresse: {
        Ort: "neuer Ort",
        Straße: "die Straße",
        Hausnummer: "11",
        Aktiv: false
    }
}

Code

Hier ist der vollständige Code für die Erstellung und Aktualisierung eines verschachtelten Datensatzes:

// Initialer Datensatz
Set(
    varExample,
    {
        Name: "Name1",
        Alter: 33,
        Adresse: {
            Ort: "aktueller Ort",
            Straße: "die Straße",
            Hausnummer: "11a",
            Aktiv: false
        }
    }
);
// Aktualisieren des Feldes 'Ort' im verschachtelten Objekt 'Adresse'
Set(
    varExample,
    Patch(
        varExample,
        {
            Adresse: Patch(
                varExample.Adresse,
                {Ort: "neuer Ort"}
            )
        }
    )
)

Vorteile & Nachteile

Vorteile:

  • Ermöglicht gezielte Aktualisierungen von Feldern innerhalb verschachtelter Objekte.
  • Verhindert das Überschreiben der gesamten Datenstruktur.
  • Flexibel und einfach anzuwenden, auch bei komplexen Datenstrukturen.

Nachteile:

  • Bei tief verschachtelten Strukturen kann der Code unübersichtlich werden.
  • Erfordert ein gutes Verständnis der Datenstruktur, um gezielt die richtigen Felder zu aktualisieren.

Links