Mit Beziehungen in Power Apps arbeiten

Abgeschlossen

Power Apps Indeed bietet zahlreiche Funktionen und Steuerelemente, die speziell auf den Aufbau und die Verwendungen von Beziehungen innerhalb Ihrer Apps zugeschnitten sind. Beziehungen finden in den meisten Apps in der Regel zwei Hauptanwendungen.

Wie bereits erwähnt, geht es zunächst darum, Daten über mehrere Tabellen hinweg zu speichern und dann Beziehungen zu verwenden, um diese Daten nahtlos zu verbinden. In dieser Lerneinheit werden Sie durch das Verbinden von Tabellen wie Debitoren und Rechnungen geführt, und es wird gezeigt, wie Sie sinnvolle Verknüpfungen zwischen ihnen herstellen können.

Zweitens werden Beziehungen häufig genutzt, um Informationen aus dem übergeordneten Datensatz abzurufen, wenn direkt auf den untergeordneten Datensatz zugegriffen wird. Sie lernen in diesem Fall, wie Sie während der Arbeit im Kontext eines Rechnungsdatensatzes den Kundennamen abrufen. Sie können mithilfe dieser Funktion effizient auf relevante Informationen aus zugehörigen Datensätzen zugreifen und diese anzeigen. So wird die Benutzerfreundlichkeit und Verständlichkeit Ihrer App verbessert.

Eine Verbindung zwischen einer übergeordneten und einer untergeordneten Tabelle in Power Apps herstellen

In diesem Beispiel wird die exemplarische Vorgehensweise zum Referenzieren einer Beziehung zwischen einem übergeordneten und einem untergeordneten Datensatz mithilfe der Filter‑ und LookUp-Funktionen von Power Apps veranschaulicht.

Die Kundentabelle ist das übergeordnete Element in dieser Beziehung, d. h. ein Kunde kann viele Rechnungen haben. Beachten Sie, dass die Kundentabelle keinen Verweis auf die Rechnungstabelle enthält. Für dieses Beispiel lautet der Datenquellenname für diese Tabelle „CustomerTable“. Die Tabelle sieht wie folgt aus.

ID CustomerName Kundentelefonnummer
1 Contoso 513-555-1212
2 Fabrikam 206-555-1313
3 Tailspin Toys 404-555-1414

In dieser Beziehung ist die Rechnungstabelle der untergeordnete Datensatz. Für dieses Beispiel lautet der Datenquellenname für diese Tabelle „InvoiceTable“. Die Tabelle sieht wie folgt aus.

ID Rechnungsdatum Rechnungsbeschreibung Rechnungsbetrag Debitoren-ID
1 16.05.2020 Teile 412,33 1
2 01.05.2020 Dienstleistung 205,44 3
3 06.05.2020 Reisen 132,98 1
4 31.05.2020 Teile 75,55 2

Wenn Sie diese Tabellen in Power Apps als Datenquellen erstellt haben, können Sie ein Katalog-Steuerelement verwenden, um den Inhalt der Kundentabelle anzuzeigen. Verwenden Sie das Katalog-Steuerelement mit den folgenden Schritten:

  1. Fügen Sie ein Katalog-Steuerelement in Ihre Canvas ein.

  2. Legen Sie die Eigenschaft Items auf Ihre Tabelle CustomerTable fest.

Der Katalog zeigt eine Liste aller Kundendatensätze in der Tabelle an. Dies ist Gallery1.

Führen Sie die folgenden Schritte aus, um den gesamten Inhalt von „InvoiceTable“ anzuzeigen:

  1. Fügen Sie ein Katalog-Steuerelement in Ihre Canvas ein.

  2. Sie können die Eigenschaft Items auf Ihre Tabelle InvoiceTable festlegen.

Der Katalog zeigt eine Liste aller Rechnungsdatensätze in der Tabelle an. Dies ist Gallery2.

Sie müssen die Eigenschaft „Items“ von „Gallery2“ etwa folgendermaßen anpassen, um nun nur die Rechnungen für den in „Gallery1“ ausgewählten Kunden anzuzeigen:

Filter(InvoiceTable, CustomerID = Gallery1.Selected.ID)

Die Formel bewirkt Folgendes.

Formelargument Formeleingabe Hinweise
Quelle InvoiceTable
logical_test CustomerID = Gallery1.Selected.ID „Kunden-ID“ entspricht dem Spaltennamen aus „InvoiceTable“. Gallery1.Selected. Die ID entspricht dem Wert der ID-Spalte für den im Katalog ausgewählten Datensatz.

Die Formel bewirkt, dass Gallery2 nur die Rechnungsdatensätze für den in Gallery1 ausgewählten Kunden anzeigt.

In der übergeordneten Tabelle gespeicherte Informationen über die untergeordnete Tabelle suchen

Manchmal besteht die Notwendigkeit, von einem untergeordneten Datensatz nach oben oder „von unten nach oben“ zum zugehörigen übergeordneten Datensatz zu wechseln. In dem Szenario, in dem Sie die Details eines Rechnungsdatensatzes untersuchen, z. B. mit der ID 2, und Ihnen die Zuordnung zum Kunden mit der ID 3 bekannt ist, möchten Sie möglicherweise weitere Details aus der übergeordneten Tabelle extrahieren.

Verwenden Sie in diesem Fall die Beziehung zwischen den Tabellen, indem Sie durch Verweisen auf die zugehörigen Datensätze in der übergeordneten Tabelle Kundeninformationen abrufen, wie beispielsweise Name und Telefonnummer. Diese Methode ermöglicht es Ihnen, relevante Informationen aus verknüpften Datensätzen in der übergeordneten Tabelle auf Grundlage der im untergeordneten Datensatz verfügbaren Informationen zu sammeln. Dadurch wird es einfacher, eine umfassende Ansicht und Querverweise zwischen verwandten Daten bereitzustellen. Sie können hierzu in Power Apps die Funktion LookUp verwenden.

Mit der Funktion LookUp können Sie einen einzelnen Datensatz aus einer Datenquelle abfragen, der mit den Auswertungskriterien übereinstimmt. Im folgenden Beispiel verwenden wir die gleichen Tabellen wie im vorherigen, jedoch beginnen wir mit einem leeren Bildschirm, um Verwechslungen zu vermeiden.

Mit den folgenden Schritten zeigen Sie den gesamten Inhalt von „InvoiceTable“ an:

  1. Fügen Sie ein Katalog-Steuerelement in Ihre Canvas ein.

  2. Legen Sie die Eigenschaft Items auf InvoiceTable fest.

  3. Legen Sie Titel, Untertitel und Text für das Layout fest.

  4. Legen Sie im Bereich Daten den Titel auf InvoiceDate, den Untertitel auf InvoiceAmount und den Text auf CustomerID fest.

Der Katalog zeigt eine Liste aller Rechnungsdatensätze in der Tabelle an. Wenn Sie möchten, dass Ihre Datumsfelder wie das Bild unten aussehen, ändern Sie das Feld Titel in: „Text(ThisItem.InvoiceDate,DateTimeFormat.ShortDate)“. Dies ist Gallery3.

Screenshot des Katalogs mit einer Liste aller Rechnungsdatensätze

Das Anzeigen der ID für jeden Kunden liefert Benutzern der App nur wenige Informationen. Wir können also folgendermaßen vorgehen, um den Kundennamen anstelle der ID anzuzeigen:

Klicken Sie in Gallery3 auf die Beschreibung für den Text, und legen Sie Folgendes für die Eigenschaft Text fest:

LookUp(CustomerTable, ID = ThisItem.CustomerID, CustomerName)

Die Formel bewirkt Folgendes:

Formelargument Formeleingabe Hinweise
Quelle CustomerTable
logical_test ID = ThisItem.CustomerID Die ID entspricht dem Spaltennamen aus „CustomerTable“. ThisItem.CustomerID entspricht dem Wert der Spalte „CustomerID“ für den aktuellen Datensatz im Katalog.
Ergebnis CustomerName Diese Spalte wird für die Datensätze zurückgegeben, die mit logical_test übereinstimmen.

Nach dieser Änderung stellt Gallery3 jetzt den Kreditorennamen bereit.

Screenshot des benutzerfreundlichen Katalogs mit einer Liste aller Rechnungsdatensätze

Hinweise zur Leistung

Es kann deutliche Auswirkungen auf die Leistung haben, wenn in einem Katalog Suchvorgänge von einem untergeordneten Datensatz zu seinem übergeordneten Datensatz durchgeführt werden. Würde im Demonstrationsszenario die LookUp-Funktion in einem Katalog verwendet, würde dies mehrmals Datenquellenabfragen auslösen – einmal für jeden Datensatz in der InvoiceTable.

Denken Sie an Folgendes: Wenn Ihre InvoiceTable Hunderte von Datensätzen umfasst, würde die LookUp-Funktion genauso oft ausgeführt. Dies bedeutet, dass möglicherweise Hunderte separater Datenquellenaufrufe durchgeführt würden. Das Resultat dessen könnte sein, dass es zu einem erhöhten Netzwerkverkehr und längeren Verarbeitungszeiten führt, was sich dann letztendlich auf Ihre App-Leistung auswirkt.

Es ist wichtig, vor der Implementierung von Datenquellenaufrufen, insbesondere in einem Katalog, in dem mehrere Datensätze verarbeitet werden, die Leistungseinbußen abzuwägen. Es ist für die Aufrechterhaltung einer optimalen Leistung Ihrer App entscheidend, diese Abfragen zu optimieren, möglicherweise mithilfe der Zwischenspeicherung von Daten oder mit der Umstrukturierung der Logik, um sich wiederholende Aufrufe zu minimieren. Berücksichtigen Sie bei der Implementierung von Vorgängen in einem Katalogkontext immer den Umfang Ihrer Daten und die möglichen Auswirkungen auf die Leistung.

In diesem Szenario wäre es besser, eine Sammlung oder einen anderen Ansatz zum Abfragen und Speichern aller Kundendatensätze zu verwenden und den Suchvorgang dann in der Sammlung auszuführen. Weitere Informationen zur Leistung von Daten finden Sie im Blogbeitrag Überlegungen zur Leistung bei Power Apps.

In der nächsten Lerneinheit erfahren Sie, wie Microsoft Dataverse alle Probleme im Bezug zu verwandten Daten beseitigt, indem Drilldowns automatisch für Sie durchgeführt werden.