Grundlegendes zu Datenquellen für Canvas-Apps

In Power Apps verwenden die meisten Canvas-Apps externe Informationen, die in Clouddiensten als Datenquellen gespeichert sind. Ein gängiges Beispiel ist eine Tabelle in einer Excel-Datei, die in OneDrive gespeichert ist. Apps greifen auf diese Datenquellen mithilfe von Verbindungen zu.

In diesem Artikel werden die verschiedenen Arten von Datenquellen und die Verwendung von Tabellendatenquellen erläutert, einschließlich der Behandlung von Delegierung, Fehlerbehandlung und häufig auftretenden Problemen.

Es ist einfach, eine App zu erstellen, die grundlegendes Lesen und Schreiben in eine Datenquelle durchführt. Manchmal möchten Sie jedoch mehr Kontrolle darüber haben, wie Daten in und aus Ihrer App fließen. In diesem Artikel wird beschrieben, wie die Funktionen Patch, DataSourceInfo, Validate und Errors mehr Kontrolle bieten.

Arten von Datenquellen

Datenquellen können mit einem Clouddienst verbunden werden, oder sie können lokal für eine App sein.

Verbundene Datenquellen

Die am häufigsten verwendeten Datenquellen sind Tabellen, mit denen Sie Informationen abrufen und speichern können. Sie können Verbindungen mit Datenquellen verwenden, um Daten in Microsoft Excel-Arbeitsmappen zu lesen und zu schreiben, Listen, die mit Microsoft Lists, SharePoint-Bibliotheken, SQL-Tabellen und vielen anderen Formaten erstellt wurden, die in Clouddiensten wie OneDrive, DropBox und SQL Server gespeichert werden können.

Andere Datenquellen als Tabellen umfassen E-Mail, Kalender, Twitter und Benachrichtigungen, aber in diesem Artikel werden diese anderen Arten von Datenquellen nicht behandelt.

Lokale Datenquellen

Mit Katalog, Anzeigeformular und Bearbeitungsformular-Steuerelementen können Sie eine App erstellen, die Daten aus einer Datenquelle liest und schreibt. Informationen zu den ersten Schritten finden Sie unter "Grundlegendes zu Datenformularen".

Wenn Sie Power Apps bitten, eine App aus Daten zu erstellen, werden diese Steuerelemente verwendet. Im Hintergrund verwendet die App eine interne Tabelle zum Speichern und Bearbeiten der Daten, die aus der Datenquelle stammen.

Eine spezielle Art von Datenquelle ist die Sammlung, die lokal für die App ist und nicht durch eine Verbindung mit einem Dienst in der Cloud gesichert wird. Daher können die Informationen nicht geräteübergreifend für denselben Benutzer oder zwischen Benutzern freigegeben werden. Sammlungen können lokal geladen und gespeichert werden.

Arten von Tabellen

Tabellen, die in einer App intern sind, sind feste Werte, ebenso wie eine Zahl oder eine Zeichenfolge ein Wert. Interne Tabellen werden nicht an einer beliebigen Stelle gespeichert, sondern im Speicher Ihrer App vorhanden. Sie können die Struktur und die Daten einer Tabelle nicht direkt ändern. Stattdessen können Sie eine neue Tabelle über eine Formel erstellen: Sie verwenden diese Formel, um eine geänderte Kopie der ursprünglichen Tabelle zu erstellen.

Externe Tabellen werden in einer Datenquelle für spätere Abfragen und das Teilen gespeichert. Power Apps stellt "Verbindungen" zum Lesen und Schreiben gespeicherter Daten bereit. Innerhalb einer Verbindung können Sie auf mehrere Informationstabellen zugreifen. Sie können auswählen, welche Tabellen in Ihrer App verwendet werden sollen, und jede wird zu einer separaten Datenquelle.

Weitere Informationen finden Sie unter Arbeiten mit Tabellen zu internen Tabellen, aber auch externen Tabellen, die sich in einem Clouddienst befinden.

Arbeiten mit Tabellen

Sie können Tabellendatenquellen auf die gleiche Weise wie eine interne Power Apps-Tabelle verwenden. Genau wie eine interne Tabelle verfügt jede Datenquelle über Datensätze, Spalten und Eigenschaften, die Sie in Formeln verwenden können. Außerdem:

  • Die Datenquelle hat dieselben Spaltennamen und Datentypen wie die zugrunde liegende Tabelle in der Verbindung.

    Note

    Bei SharePoint- und Excel-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, ersetzt Power Apps die Leerzeichen durch "_x0020_". Beispielsweise wird "Spaltenname" in SharePoint oder Excel in Power Apps als "Column_x0020_Name" angezeigt, wenn sie im Datenlayout angezeigt oder in einer Formel verwendet wird.

  • Die Datenquelle wird automatisch vom Dienst geladen, wenn die App geladen wird. Sie können erzwingen, dass die Daten mit der Aktualisierungsfunktion aktualisiert werden.

  • Wenn Benutzer eine App ausführen, können sie Datensätze erstellen, ändern und löschen und diese Änderungen zurück an die zugrunde liegende Tabelle im Dienst übertragen.

  • Die Funktionen "DataSourceInfo", "Standardwerte" und " Validate " enthalten Informationen zur Datenquelle, die Sie verwenden können, um die Benutzererfahrung zu optimieren.

Erstellen von Datenquellen

Power Apps können nicht verwendet werden, um eine verbundene Datenquelle zu erstellen oder ihre Struktur zu ändern. Die Datenquelle muss bereits in einem Dienst vorhanden sein. Wenn Sie beispielsweise eine Tabelle in einer excel-Arbeitsmappe erstellen möchten, die auf OneDrive gespeichert ist, verwenden Sie zuerst Excel Online auf OneDrive, um eine Arbeitsmappe zu erstellen. Als Nächstes erstellen Sie eine Verbindung mit ihr aus Ihrer App.

Sammlungsdatenquellen können jedoch innerhalb einer App erstellt und geändert werden, sind jedoch nur temporär.

Anzeigen eines oder mehrerer Datensätze

Informationsfluss, wenn eine App die Informationen in einer Datenquelle liest.

Dieses Diagramm zeigt den Informationsfluss, wenn eine App die Informationen in einer Datenquelle liest:

  • Die Informationen werden über einen Speicherdienst gespeichert und freigegeben (in diesem Fall Microsoft Lists oder SharePoint Online).
  • Eine Verbindung stellt diese Informationen der App zur Verfügung. Die Verbindung kümmert sich um die Authentifizierung des Benutzers für den Zugriff auf die Informationen.
  • Wenn die App gestartet oder die Aktualisieren-Funktion gedrückt wird, werden Informationen aus der Verbindung abgerufen und für die lokale Verwendung in der App gespeichert.
  • Formeln werden verwendet, um die Informationen zu lesen und in Steuerelementen verfügbar zu machen, die der Benutzer sehen kann. Sie können die Datensätze einer Datenquelle mithilfe einer Galerie auf einem Bildschirm anzeigen und die Items-Eigenschaft an die Datenquelle binden: Gallery.Items = DataSource. Sie verdrahten Steuerelemente innerhalb der Galerie und zur Galerie mithilfe der Standardeigenschaft der Steuerelemente.
  • Die Datenquelle ist auch eine Tabelle. Sie können also Filter, Sortierung, AddColumns und andere Funktionen verwenden, um die Datenquelle zu verfeinern und zu erweitern, bevor Sie sie als Ganzes verwenden. Sie können auch die Funktionen "Nachschlagen", " Zuerst", " Zuletzt" und andere Funktionen verwenden, um mit einzelnen Datensätzen zu arbeiten.

Ändern eines Datensatzes

Die Pfeile im vorherigen Diagramm sind eine Möglichkeit. Änderungen an einer Datenquelle werden nicht durch dieselben Formeln zurückgesendet, in denen die Daten abgerufen wurden. Stattdessen werden neue Formeln verwendet. Häufig wird ein anderer Bildschirm zum Bearbeiten eines Datensatzes als zum Durchsuchen von Datensätzen verwendet, insbesondere auf einem mobilen Gerät.

Um einen vorhandenen Datensatz einer Datenquelle zu ändern, muss der Datensatz ursprünglich aus der Datenquelle stammen. Der Datensatz kann in einem Katalog, einer Kontextvariable und einer beliebigen Anzahl von Formeln angezeigt werden, aber sein Ursprung sollte wieder auf die Datenquelle zurückverfolgt werden. Zusätzliche Informationen reisen mit dem Datensatz, der ihn eindeutig identifiziert, und stellt sicher, dass Sie den richtigen Datensatz ändern.

Informationsfluss zum Aktualisieren einer Datenquelle. Dieses Diagramm zeigt den Informationsfluss zum Aktualisieren einer Datenquelle:

  • Ein Bearbeitungsformular-Steuerelement stellt einen Container für Eingabekarten bereit, die aus Benutzereingabesteuerelementen wie einem Texteingabesteuerelement oder einem Schieberegler bestehen. Die Eigenschaften DataSource und Item werden verwendet, um den zu bearbeitenden Datensatz zu identifizieren.
  • Jede Eingabekarte verfügt über eine Default-Eigenschaft , die auf das Feld des ThisItem-Datensatzes des Formulars festgelegt ist. Die Steuerelemente auf der Eingabekarte übernehmen ihre Eingabewerte aus "Standard". Normalerweise müssen Sie diese Standardeinstellung nicht ändern.
  • Jede Eingabekarte macht eine Update-Eigenschaft verfügbar. Diese Eigenschaft ordnet die Eingabe des Benutzers einem bestimmten Feld des Datensatzes zum Zurückschreiben in die Datenquelle zu. Normalerweise müssen Sie diese Eigenschaft nicht ändern.
  • Eine Schaltfläche oder ein Bildsteuerelement auf dem Bildschirm ermöglicht es dem Benutzer, Änderungen am Datensatz zu speichern. Die OnSelect-Formel des Steuerelements ruft die SubmitForm-Funktion auf, um dies zu erledigen. SubmitForm liest alle Update-Eigenschaften der Karten und schreibt zurück in die Datenquelle.
  • Manchmal gibt es Probleme. Möglicherweise ist eine Netzwerkverbindung ausgefallen, oder eine Überprüfung wird vom Dienst vorgenommen, über den die App nicht informiert wurde. Die Fehler- und ErrorKind-Eigenschaften des Formularsteuerelements stellen diese Informationen zur Verfügung, sodass Sie sie dem Benutzer anzeigen können.

Für eine genauere Kontrolle über den Prozess können Sie auch die Funktion "Patch " und "Errors " verwenden. Das Bearbeitungsformular-Steuerelement macht eine Aktualisierungseigenschaft verfügbar, sodass Sie die Werte der Felder innerhalb des Formulars lesen können. Sie können diese Eigenschaft auch verwenden, um einen benutzerdefinierten Connector für eine Verbindung aufzurufen und die Funktionen Patch und SubmitForm vollständig zu umgehen.

Überprüfen

Bevor Sie eine Änderung an einem Datensatz vornehmen, sollte die App tun, was sie tun kann, um sicherzustellen, dass die Änderung akzeptabel ist. Es gibt zwei Gründe für die Überprüfung:

  • Sofortiges Feedback an den Benutzer. Die beste Zeit, ein Problem zu beheben, ist genau, wenn es passiert, wenn es noch frisch im Kopf des Benutzers ist. Bei jeder Berührung oder Tastatureingabe kann roter Text angezeigt werden, der ein Problem mit ihrem Eintrag identifiziert.
  • Weniger Netzwerkdatenverkehr und weniger Benutzerlatenz. Mehr Probleme, die in der App erkannt wurden, bedeuten weniger Unterhaltungen über das Netzwerk, um Probleme zu erkennen und zu beheben. Jede Unterhaltung dauert Zeit, während der der Benutzer warten muss, bevor er fortfahren kann.

Power Apps bietet zwei Tools für die Validierung:

  • Die Datenquelle kann Informationen darüber bereitstellen, was gültig ist und was nicht gültig ist. Zahlen können z. B. Mindest- und Maximalwerte aufweisen, und mindestens ein Eintrag kann erforderlich sein. Sie können mit der DataSourceInfo-Funktion auf diese Informationen zugreifen.
  • Die Validate-Funktion verwendet diese Informationen, um den Wert einer einzelnen Spalte oder eines gesamten Datensatzes zu überprüfen.

Fehlerbehandlung

Nachdem Sie ihren Datensatz überprüft haben, aktualisieren Sie diesen Eintrag mit Patch.

Aber es könnte noch ein Problem geben. Das Netzwerk ist ausgefallen, die Überprüfung des Diensts ist fehlgeschlagen, oder der Benutzer verfügt nicht über die richtigen Berechtigungen, um nur einige der möglichen Fehler zu benennen, auf die Ihre App möglicherweise stoßen kann. Ihre App muss entsprechend auf Fehlersituationen reagieren, dem Benutzer Feedback geben und ihnen ein Mittel geben, es richtig zu machen.

Wenn Fehler mit einer Datenquelle auftreten, zeichnet Ihre App automatisch die Fehlerinformationen auf und stellt sie über die Fehlerfunktion zur Verfügung. Fehler sind mit den Datensätzen verknüpft, bei denen die Probleme aufgetreten sind. Wenn das Problem vom Benutzer behoben werden kann, z. B. ein Überprüfungsproblem, kann er den Datensatz erneut übermitteln und die Fehler werden gelöscht.

Wenn ein Fehler auftritt, wenn ein Datensatz mit Patch oder Collect erstellt wird, gibt es keinen Datensatz, dem Fehler zugeordnet werden sollen. In diesem Fall wird leer von Patch zurückgegeben und kann als Datensatzargument für Fehler verwendet werden. Erstellungsfehler werden mit dem nächsten Vorgang gelöscht.

Die Fehlerfunktion gibt eine Tabelle mit Fehlerinformationen zurück. Diese Informationen können die Spalteninformationen enthalten, wenn der Fehler einer bestimmten Spalte zugeordnet werden kann. Verwenden Sie Fehlermeldungen auf Spaltenebene in Bezeichnungssteuerelementen, die sich in der Nähe der Platzierung der Spalte in der Bearbeitungsansicht befinden. Verwenden Sie Fehlermeldungen auf Datensatzebene, bei denen die Spalte in der Fehlertabelle leer ist, an einem Ort in der Nähe der Schaltfläche " Speichern " für den gesamten Datensatz.

Arbeiten mit großen Datenquellen

Wenn Sie Berichte aus großen Datenquellen (z. B. Millionen von Datensätzen) erstellen, möchten Sie den Netzwerkdatenverkehr minimieren. Angenommen, Sie möchten über alle Kunden berichten, die einen StatusCode von Platinum in New York City haben. Die Tabelle " Kunden " enthält Millionen von Datensätzen.

Sie möchten diese Millionen von Kunden nicht in Ihre App bringen, und wählen Sie dann die gewünschten Kunden aus. Die Auswahl sollte innerhalb des Clouddiensts erfolgen, in dem Ihre Tabelle gespeichert ist, wo Sie die ausgewählten Datensätze über das Netzwerk senden.

Viele, aber nicht alle Funktionen, die Sie zum Auswählen von Datensätzen verwenden können, können delegiert werden, was bedeutet, dass sie innerhalb des Clouddiensts ausgeführt werden. Weitere Informationen finden Sie in "Delegierung".

Wichtig

Standardmäßig ruft Power Apps nur die ersten 500-Datensätze aus einer Datenquelle ab. Sie können diesen Grenzwert auf maximal 2.000 Datensätze in den App-Einstellungen erhöhen. Wenn Ihre Datenquelle mehr Datensätze enthält und Ihre Formel nicht vollständig delegierbar ist, wird in Power Apps Studio ein gelbes Delegierungswarndreieck angezeigt. Wenn diese Warnung angezeigt wird, gibt Ihre App möglicherweise nicht alle übereinstimmenden Datensätze zur Laufzeit zurück. Verwenden Sie delegierbare Funktionen wie Filter und Sort mit unterstützten Datenquellen, oder erwägen Sie die Verwendung von Microsoft Dataverse, das umfassendere Unterstützung für Delegierung bietet.

Identifizieren und Beheben von Delegierungswarnungen

Eine Delegierungswarnung wird häufig in der Bearbeitungsleiste als gelbes Dreieck angezeigt, wenn Power Apps einen Formelvorgang nicht an die Datenquelle übertragen können, aber nicht jeder nicht delegierbare Fall zeigt diese Warnung an. So überprüfen Sie, ob eine Formel delegierbar ist:

  1. Wählen Sie das Steuerelement oder die Formel aus, das Die Datenquelle verarbeitet.
  2. Suchen Sie in Power Apps Studio nach einem gelben Dreieckssymbol.
  3. Zeigen Sie mit der Maus auf das Dreieck, um die Warnmeldung der Delegierung zu lesen.

So beheben Sie Delegierungsprobleme:

  • Ersetzen Sie nicht delegierbare Funktionen (z. B. Search für Textspalten in SharePoint) durch delegierbare Alternativen.
  • Wechseln Sie zur Microsoft Dataverse als Datenquelle für die umfassendste Delegierungsunterstützung.
  • Verwenden Sie serverseitige Ansichten (für SharePoint) oder gespeicherte Prozeduren (für SQL), um Daten vorab zu filtern.
  • Um Delegierungsprobleme zu beheben, die nicht gekennzeichnet sind, verwenden Sie den Live Monitor unter Advanced Tools, um die von Power Apps gesendeten Abfragen und die von jeder Datenquelle zurückgegebenen Daten zu prüfen. Weitere Informationen finden Sie unter Debuggen von Canvas-Apps mit Live-Monitor.

Sammlungen

Sammlungen sind eine spezielle Art von Datenquelle. Sie sind in der App lokal gespeichert und werden nicht durch eine Verbindung mit einem Dienst in der Cloud unterstützt. Daher können die Informationen nicht geräteübergreifend für denselben Benutzer oder zwischen Benutzern freigegeben werden.

Sammlungen funktionieren wie jede andere Datenquelle mit wenigen Ausnahmen:

  • Sammlungen können dynamisch mit der Collect-Funktion erstellt werden. Sie müssen nicht im Voraus eingerichtet werden, wie dies bei verbindungsbasierten Datenquellen nötig ist.
  • Die Spalten einer Auflistung können jederzeit mithilfe der Funktion "Sammeln" geändert werden.
  • Sammlungen lassen doppelte Datensätze zu. Mehrere Kopien desselben Datensatzes können in einer Auflistung vorhanden sein. Funktionen wie "Entfernen" werden mit der ersten Übereinstimmung ausgeführt, die sie finden, es sei denn, das Argument "Alle " wird angegeben.
  • Sie können die Funktionen SaveData und LoadData verwenden, um eine Kopie der Auflistung zu speichern und neu zu laden. Die Informationen werden an einem privaten Speicherort gespeichert, auf den andere Benutzer, Apps oder Geräte nicht zugreifen können.
  • Sie können die Steuerelemente " Exportieren " und "Importieren " verwenden, um eine Kopie der Sammlung in eine Datei zu speichern und neu zu laden, mit der der Benutzer interagieren kann.

Weitere Informationen zum Arbeiten mit einer Sammlung als Datenquelle finden Sie unter Erstellen und Aktualisieren einer Sammlung.

Sammlungen werden häufig verwendet, um den globalen Zustand der App zu bewahren. Sehen Sie sich die Arbeit mit Variablen für die Optionen an, die für die Verwaltung des Zustands verfügbar sind.

Behandeln allgemeiner Datenquellenprobleme

Standardmäßig ruft Power Apps nur die ersten 500 Datensätze aus einer Datenquelle ab. Wenn in Ihrer Galerie Datensätze fehlen, liegt wahrscheinlich ein Delegierungsproblem vor. Überprüfen Sie eine gelbe Dreieckswarnung in der Elementformel Ihres Katalogs, und stellen Sie sicher, dass die verwendete Filterformel für Ihre Datenquelle delegierbar ist. Informationen zu Auflösungsschritten finden Sie unter Arbeiten mit großen Datenquellen .

Spaltennamen zeigen x0020 in meinen Formeln an

Wenn ihre SharePoint-Liste oder Excel-Tabelle Spaltennamen mit Leerzeichen enthält (z. B. My Column), ersetzt Power Apps Leerzeichen durch _x0020_ in Formeln (z. B. MyTable.My_x0020_Column). Dieses Verhalten wird erwartet. Benennen Sie die Spalte in den Quelldaten um, um Leerzeichen zu entfernen, oder setzen Sie den codierten Namen in Ihren Formeln fort.

Datenquellenänderungen werden in meiner App nicht angezeigt

Wenn die zugrunde liegenden Daten extern geändert wurden (z. B. wurde ein Datensatz in SharePoint hinzugefügt), erkennt Ihre App während der Ausführung keine Änderungen automatisch. Verwenden Sie die Aktualisierungsfunktion , um zu erzwingen, dass die App die aktuellen Daten neu lädt. Fügen Sie z. B. eine Schaltfläche mit OnSelect = Refresh(MyDataSource).

Wann sollte ich Patch anstelle von SubmitForm verwenden?

Verwenden Sie SubmitForm , wenn Sie über ein Bearbeitungsformular-Steuerelement verfügen – es behandelt die Überprüfung, Feldzuordnung und Fehleranzeige automatisch. Verwenden Sie Patch , wenn Sie Folgendes benötigen:

  • Aktualisieren eines Datensatzes ohne Formularsteuerelement.
  • Aktualisieren Sie nur bestimmte Felder, ohne dass sich dies auf andere auswirkt.
  • Schreiben in mehrere Datenquellen in einem Vorgang.
  • Erstellen Sie ein vollständig benutzerdefiniertes Speichererlebnis.