Daten abfragen
Der Dataverse-Konnektor verfügt über einige Aktionen zum Abrufen von Daten aus Ihren Tabellen. In dieser Lerneinheit behandeln wir zwei der häufigsten. Die Aktion Zeile nach ID abrufen ruft mit der von Ihnen angegebenen eindeutigen ID eine einzelne Zeile ab. Wenn Sie die eindeutige ID nicht kennen, können Sie die Aktion Zeilen auflisten verwenden, die für viele Zeilen, die Ihren Filterkriterien entsprechen, Null zurückgibt.
Wenn Sie die Optionen für diese Aktionen erweitern, haben Sie auch die Aktionen ... von ausgewählten Umgebung, die es Ihnen ermöglichen, die gleichen Aktionen mit einem anderen Umgebung als dem zu verwenden, in dem Sie es erstellen. Untersuchen wir einige der verfügbaren Optionen zum Abrufen von Daten.
Spalten auswählen
Die Option Spalten auswählen schränkt die Spalten ein, die von der Aktion zurückgegeben werden. Sie sollten die Liste der Spalten basierend auf den Daten einrichten, die Sie in Ihren nachfolgenden Flowschritten benötigen. Ihr Flow wird effizienter durch das Bereitstellen einer Liste von Spalten. Stellen Sie sicher, dass Sie den logischen Namen der Tabellenspalte verwenden, der sich im Abschnitt Erweiterte Optionen der Spalteneigenschaften befindet. Wenn Sie zum Beispiel die Spalten „Vorname“ und „Nachname“ der Kontakttabelle einschließen möchten, müssen Sie die folgende durch Kommas getrennte Spaltenliste bereitstellen:
firstname,lastname
Durch die Angabe einer Spaltenliste werden die Spalten begrenzt, die im dynamischen Inhalt angezeigt werden, wenn Sie im Flow die nachfolgenden Schritte einrichten. Aktivieren Sie auf der Aktion, die Daten abruft, die Option Spalten auswählen wenn die erwarteten Spalten nicht angezeigt werden.
Abfrage erweitern
Wenn die Datenabrufaktionen ausgeführt werden, rufen sie standardmäßig nur Daten von der Primärtabelle ab, die in der Aktion angegeben ist. Mit der Option Abfrage erweitern können Sie einen Ausdruck im OData-Stil bereitstellen, um Daten aus verwandten Tabellen einzuschließen. Diese Option finden Sie unter Erweiterte Parameter.
Zwischen den Tabellen „Konto“ und „Kontakt“ besteht zum Beispiel eine Beziehung, um für das Konto den Hauptkontakt anzugeben. Im folgenden Beispiel ist der OData-Ausdruck zum Einschließen der Spalte mit dem vollständigen Namen und der ID des primären Kontakts in die Ausgabe der Aktion zu sehen.
primarycontactid($select=contactid,fullname)
Während dieser Ausdruck Daten in die Ausgabe der Aktionen einschließt, schließt er nicht die Datenspalten im Bereich Dynamischer Inhalt zur Auswahl ein. Sie müssen einen Workflow-Ausdruck verwenden, um auf die Daten zuzugreifen und so die zugehörigen Daten verwenden zu können.
Die Aktion „Eine Zeile nach ID abrufen“ auswählen
Im Allgemeinen verwenden Sie die Aktion Zeile nach ID abrufen, um weitere Dataverse-Tabellendaten als Teil einer Ablauflogik abzurufen. Wenn beispielsweise das Hinzufügen einer neuen Tabelle Konto Ihren Flow auslöst, können Sie die Aktion Zeile nach ID abrufen verwenden, um die E-Mail für den zugehörigen primären Kontakt abzurufen. In diesem Beispiel ist es nicht erforderlich, die Aktion Eine Zeile nach ID abrufen zum Abrufen des Kontos zu verwenden, da die Daten für die Zeile als Ausgabe des Triggers bereitgestellt werden.
Gelegentlich möchten Sie möglicherweise die Aktion Zeile nach ID abrufen erneut in Ihrer Ablauflogik verwenden, um sicherzustellen, dass Sie die neuesten Daten verwenden. Wenn Ihr Flow zum Beispiel für einen Genehmigungsschritt angehalten wurde, können seit dem letzten Datenabruf einige Tage vergehen. Möglicherweise möchten Sie die Aktion Zeile nach ID abrufen verwenden, um nach der Genehmigung die neuesten Daten abzurufen. Dieser Ansatz würde verhindern, dass Ihr Flow auf Grundlage veralteter Daten Maßnahmen ergreift.
Wenn die ID der Zeile, die Sie für den Schritt erstellen möchten, möglicherweise Null ist, ist Ihre beste Maßnahme, eine bedingte Prüfung des Werts durchzuführen, bevor Sie den Schritt Zeile nach ID abrufen durchführen. Wenn die Zeilen-ID Null ist, schlägt dieser Schritt fehl. Ein weiterer häufiger Fehler ist, dass Sie keine Berechtigung zum Lesen der Daten für die Zeile haben.
Die Aktion Zeilen auflisten verwenden
Die Aktion Zeilen auflisten ist leistungsstark, da Sie einfache oder komplexe Kriterien angeben können, um festzulegen, welche Datenzeilen zurückgegeben werden. Die Aktion unterstützt zwei Stile für die Angabe dieses Kriteriums: OData-Stilausdrücke oder Dataverse FetchXML. Zum Erstellen einfacher und komplexer Kriterien zu erstellen, können Sie beide Kriterienstile verwenden. Welchen Stil Sie verwenden, ist meistens von Ihren Präferenzen abhängig. FetchXML verfügt jedoch über einige Community-Tool-Unterstützung, die es Ihnen möglicherweise erleichtern kann, komplexere Kriterien zu erstellen.
Mehr als 5.000 Zeilen abrufen
Die Aktion gibt standardmäßig nicht mehr als 5.000 Zeilen zurück. Wenn Sie mehr Daten zurückgeben müssen, können Sie die Funktion Paginierung auf der Registerkarte Einstellungen aktivieren. Durch Aktivierung der Paginierung können Sie eine Seitengröße von bis zu 100.000 Zeilen angeben. Wenn mehr als eine Seite mit Daten möglich ist, müssen Sie die Seiten in Ihrem Flow manuell verwalten, indem Sie das Paging-Token abrufen und den Abruf der nachfolgenden Seiten weitergeben. Weitere Informationen finden Sie in der Paginierung aktivieren.
Stellen Sie sicher, dass Sie Ihre zukünftigen Anforderungen berücksichtigen, da durch das Erreichen von 5.000 Zeilen kein Fehler erzeugt wird. Zudem erhalten Sie nicht alle Daten. Wenn möglich, stellen Sie Ihre Kriterien so zusammen, dass für die Verarbeitung Ihres Flows die kleinstmöglichen Ergebnisse erzielt werden.
OData-Stilkriterien verwenden
In der Eigenschaft Zeilen filtern von der Aktion können Sie einen Filter im OData-Stil bereitstellen, um die zurückgegebenen Zeilen auf die Zeilen zu beschränken, die den Kriterien entsprechen. Wenn Sie den Ausdruck für die Eigenschaft Zeilen filtern verfassen, müssen Sie den logischen Namen der Spalte verwenden, den Sie im Abschnitt Erweiterte Optionen der Spalteneigenschaft finden. Die folgende Logik stellt ein einfaches Beispiel dafür dar, wie Kontakte gefiltert werden, damit alle Zeilen mit dem Vornamen John zurückgegeben werden.
firstname eq 'John'
Sie können zudem die Standard-Abfragefilteroperatoren und Abfragefunktionen verwenden. Die folgende Logik würde beispielsweise den Filter so ändern, dass er die Funktion contain nutzt.
contains(firstname,'John')
In den Beispielen unter Standard-Filteroperatoren und Abfragefunktionen finden Sie dazu weitere Informationen.
Sie können logische Operatoren verwenden, beispielsweise und, or und not. Die folgende Logik prüft zum Beispiel, ob die Umsatzspalte im Bereich 2001-99999 liegt.
revenue lt 100000 and revenue gt 2000
Sie können Klammern () mit logischen Operatoren verwenden, um die Priorität anzugeben, sodass Sie einen komplexen Ausdruck folgendermaßen auswerten können:
(contains(name,'sample') or contains(name,'test')) and revenue gt 5000
Zudem können Sie nach verwandten Daten filtern. Der folgende Ausdruck würde beispielsweise Kontotabellenzeilen zurückgeben, die einen Hauptkontakt mit dem Namen Susanna haben.
primarycontactid/fullname eq 'Susanna (sample)'
Zusammen mit dem Ausdruck Zeilen filtern hilft die Eigenschaft Sortieren nach dabei, die Reihenfolge der Zeilenausgabe der Aktion festzulegen. Die Namen sollten eine durch Kommas getrennte Liste von logischen Spaltennamen sein. Wird nur der Spaltenname angegeben, wird die Spalte in aufsteigender Reihenfolge sortiert. Legen Sie das Suffix asc oder desc fest, um eine auf‑ oder absteigende Reihenfolge anzugeben.
Die Eigenschaft Row count kann angeben, wie viele Zeilen zurückgegeben werden sollen. Wenn Sie zum Beispiel überprüfen möchten, ob übereinstimmende Zeilen vorhanden sind, müssen Sie nicht mehr als eine einzelne Zeile zurückgeben.
Tipp
Beim Testen Ihres Flows können Sie Folgendes festlegen: Zeilenanzahl auf 1 (oder eine andere kleine Zahl), um die Testzeit zu verringern. Wenn Ihre Tabelle Tausende von Datenzeilen umfasst, kann die Verwendung dieses Parameters Ihnen wirklich dabei helfen, Fehler in Ihrem Flow schnell zu beheben, während Sie ihn entwickeln.
FetchXML-Stilkriterien verwenden
FetchXML ist eine proprietäre XML-basierte Abfragesprache von Dataverse, mit der Sie Daten abfragen können. Sie können FetchXML erstellen und es als Filterkriterium für die Zeilenausgabe der Aktion Zeilen auflisten verwenden. Sie können das XML manuell erstellen oder Erweiterte Suche von einer modellgesteuerten Power Apps-Anwendung zum Erstellen Ihres Filters und anschließendes Herunterladen von FetchXML verwenden.
FetchXML enthält das Äquivalent der Funktionen Spalten auswählen, Sortieren nach, Abfrage erweitern und Zeilen filtern für die OData-Stilkriterien.
Der folgende Ausdruck ist ein Beispiel für FetchXML zum Filtern der Kontotabelle nach Zeilen mit einem aktiven Status und einem Namen, der Contoso enthält. In diesem Beispiel wird auch die E-Mail-Adresse des primären Kontakts zurückgegeben, der mit der Kontozeile verbunden ist.
<fetch>
<entity name="account">
<attribute name="name"/>
<attribute name="address1_city"/>
<attribute name="primarycontactid"/>
<attribute name="telephone1"/>
<attribute name="accountid"/>
<order attribute="name" descending="false"/>
<filter type="and">
<condition attribute="statecode" operator="eq" value="0"/>
<condition attribute="name" operator="like" value="%Contoso%"/>
</filter>
<link-entity alias="accountprimarycontactidcontactcontactid" name="contact" from="contactid" to="primarycontactid" link-type="outer" visible="false">
<attribute name="emailaddress1"/>
</link-entity>
</entity>
</fetch>
Weitere Informationen finden Sie unter FetchXML zum Erstellen einer Abfrage verwenden.
Derzeit werden Aggregationsabfragen nicht unterstützt, wenn Sie die Aktion Zeilen auflisten mit FetchXML-Kriterien verwenden.