Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Dieser Artikel ist die Vorabveröffentlichungsdokumentation und unterliegt Änderungen.]
FetchXML ist die systemeigene Abfragesprache von Dataverse, mit der Entwickler Datenfilter als XML-Code schreiben können, ähnlich wie das Schreiben einer Formel, aber leistungsstärker. Verwenden Sie den FetchXML-Editor, um komplexe Profile für eine bessere Leistung zu optimieren und Synchronisierungstimeouts in großen Tabellen (100K+ Datensätze) zu vermeiden.
Dieses Feature eignet sich am besten für fortgeschrittene Entwickler und Entwickler, die mit XML arbeiten und mehr Kontrolle benötigen als der visuelle Filter-Generator.
Wichtig
- Dies ist eine Vorschaufunktion.
- Funktionen in der Vorschauversion sind nicht für den Produktionseinsatz gedacht und können eine eingeschränkte Funktionalität aufweisen. Für diese Features gelten ergänzende Nutzungsbedingungen. Die Features werden vor einer offiziellen Veröffentlichung zur Verfügung gestellt, sodass die Kundschaft frühzeitig Zugriff erhält und Feedback geben kann.
- Diese Funktion wird schrittweise in allen Regionen eingeführt und ist möglicherweise in Ihrer Region noch nicht verfügbar.
Vorteile des FetchXML-Editors
Der FetchXML-Editor bietet gegenüber dem visuellen Ausdrucks-Generator mehrere Vorteile zum Definieren von Offlinedatenfiltern.
Unterstützung für hierarchische Bedingungen:
Der FetchXML-Editor unterstützt das Erstellen komplexer, hierarchischer Bedingungen wie
under,eq-or-under,aboveundeq-or-aboveauf hierarchiefähigen Suchvorgängen. Weitere Informationen zum Abfragen hierarchischer Daten<fetch> <entity name="account"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> </filter> <link-entity name="businessunit" from="businessunitid" to="owningbusinessunit" link-type="any"> <filter type="and"> <condition attribute="businessunitid" operator="eq-or-under" value="{YOUR-PARENT-BU-GUID}" /> </filter> </link-entity> </entity> </fetch>Unterstützung für Überprüfungen auf nicht verknüpfte Tabellen:
Mit dem FetchXML-Editor können Sie eine Verknüpfung mit anderen Tabellen herstellen, auch wenn sie keine direkte Beziehung mit der Primärtabelle haben, vorausgesetzt, Sie geben gültige Von und zu Attributen an. Diese Funktion ist besonders in komplexen Offlineszenarien hilfreich, in denen mehrere Entitäten einen gemeinsamen Fremdschlüssel gemeinsam nutzen, aber nicht direkt miteinander verknüpft sind.
<fetch distinct="false" latematerialize="true" options="DisableRowGoal, EnableOptimizerHotfixes"> <entity name="cr57f_producttranslation"> <filter type="and"> <link-entity name="cr57f_userlanguagepreference" from="cr57f_language_id" to="cr57f_language_id" link-type="any"> <filter type="and"> <condition attribute="cr57f_user_id" operator="eq" value="user_002" /> </filter> </link-entity> </filter> </entity> </fetch>Unterstützung der Optimierung von Abfragen mithilfe von späten Materialisierungs- und Abfragehinweisen:
Der Editor macht erweiterte Optimierungssteuerelemente direkt auf dem
<fetch>Element verfügbar, darunter:latematerialize="true": Durch die Verwendunglatematerialize="true"optimieren Sie die Abfrageleistung, indem Sie übereinstimmende Datensätze eingrenzen, bevor Sie alle spaltendaten abrufen. Dieses Attribut reduziert die Last beim Synchronisieren großer Tabellen während der Offlinesynchronisierung. Weitere Informationen zur Verwendung von verzögerter Materialisierung<fetch distinct="false" latematerialize="true" options="OptimizeForUnknown,ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS"> <entity name="msdyn_workorder"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> <condition attribute="msdyn_systemstatus" operator="in"> <value>690970000</value> <value>690970001</value> </condition> </filter> <!-- Booking chain --> <link-entity name="bookableresourcebooking" from="msdyn_workorder" to="msdyn_workorderid" link-type="any"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> <filter type="or"> <condition attribute="starttime" operator="today" /> <condition attribute="starttime" operator="next-seven-days" /> </filter> </filter> <link-entity name="bookingstatus" from="bookingstatusid" to="bookingstatus" link-type="any"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> </filter> </link-entity> <link-entity name="bookableresource" from="bookableresourceid" to="resource" link-type="any"> <filter type="and"> <condition attribute="userid" operator="eq-userid" /> </filter> </link-entity> </link-entity> <!-- Customer asset --> <link-entity name="msdyn_customerasset" from="msdyn_customerassetid" to="msdyn_customerasset" link-type="any"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> </filter> <!-- Account --> <link-entity name="account" from="accountid" to="msdyn_account" link-type="any"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> </filter> </link-entity> </link-entity> </entity> </fetch>Das attribut
optionsübergibt SQL Server Abfragehinweise. Weitere Informationen zur Verwendung dieser Optionen
Funktionsweise des FetchXML-Editors
Sie greifen über die Offlineprofilkonfiguration in Power Apps auf den FetchXML-Editor zu. Sie schreiben oder fügen eine FetchXML-Abfrage ein, und der Editor überprüft sie in Echtzeit, bevor Sie speichern.
Wechseln Sie in Power Apps zu den Einstellungen Ihrer Umgebung, und öffnen Sie die Seite Offlineprofile. Wählen Sie ein vorhandenes Offlineprofil aus, oder erstellen Sie ein neues Profil, und wählen Sie dann "Profil bearbeiten" aus.
Fügen Sie im Offlineprofil-Editor die Tabelle hinzu, deren Daten Sie für die Offlineverwendung filtern möchten, oder wählen Sie sie aus.
Wählen Sie unter "Filter" die Option "Benutzerdefiniert" oder " Verwandte Zeilen" aus, und wählen Sie dann " Filter bearbeiten" aus.
Scrollen Sie im Filter-Editor nach unten, und wählen Sie "FetchXML anzeigen/bearbeiten" aus, um den FetchXML-Code-Editor zu öffnen.
Ändern Sie die vorhandene FetchXML-Abfrage, oder fügen Sie eine neue ein. Der Editor überprüft während der Bearbeitung automatisch die Syntax und Struktur und überprüft folgendes:
- Ein erforderliches
<fetch>Stammelement mit mindestens einem<entity>Element - Nur unterstützte FetchXML-Tags
- Elemente, die in den richtigen übergeordneten Elementen platziert werden
- Maximal 500 Filterklauseln
Wenn der Editor ein Problem erkennt, z. B. ein fehlendes erforderliches Element oder eine nicht unterstützte
<link-entity>Verwendung, wird eine eindeutige Fehlermeldung angezeigt, damit Sie es vor dem Speichern beheben können.- Ein erforderliches
Nachdem die FetchXML-Abfrage gültig ist, wählen Sie Übernehmen aus, um den Filter zu konvertieren, und Speichern Sie dann das Offline-Profil.
Wichtig
Wählen Sie nach der Bearbeitung von FetchXML immer "Übernehmen" und dann "Speichern" aus. Wenn Sie nicht speichern, werden Ihre Änderungen verworfen.
Nach dem Speichern verwendet das Offlineprofil Ihren benutzerdefinierten FetchXML-Filter für die Datensynchronisierung. Wenn Ihre Abfrage nur Features verwendet, die vom visuellen Generator unterstützt werden, werden diese Filter weiterhin in der Benutzeroberfläche des Ausdrucks-Generators angezeigt. Wenn Sie erweiterte FetchXML-only-Funktionen verwenden, werden sie möglicherweise nicht in der visuellen Filter-Benutzeroberfläche dargestellt. Verwenden Sie den FetchXML-Editor für zukünftige Bearbeitungen für diesen Filter.
Optimale Verfahren
- Wenden Sie Leistungshinweise wie
latematerialize="true"oderhint="union"für große Datasets an. - Überprüfen Sie Ihre FetchXML mithilfe der integrierten Editorüberprüfungen vor dem Speichern.
- Speichern Sie Ihr Offlineprofil unmittelbar nach dem Anwenden von FetchXML-Änderungen.
- Verwenden Sie nur unterstützte FetchXML-Konstrukte für Offlineprofile, wie
link-type="any"oderlink-type="not any". - Vermeiden Sie nicht unterstützte Verknüpfungstypen wie
inneroderouterin Offlinefiltern. - Behalten Sie Filterklauseln unter dem Grenzwert von 500 Klauseln pro Abfrage bei.
- Ignorieren Sie Überprüfungsfehler nicht. Abfragen müssen wohlgeformt und vollständig sein.
Einschränkungen
- Abfragen müssen mit einem
<fetch>Stammelement beginnen und mindestens ein<entity>Element enthalten. - Es sind nur unterstützte FetchXML-Elemente zulässig. Unbekannte oder nicht unterstützte Tags lösen Validierungsfehler aus.
- Elemente müssen den richtigen Eltern-Kind-Schachtelungsregeln folgen.
-
<link-entity>innerhalb von<filter>musslink-type="any"oderlink-type="not any"verwenden. Innere und äußere Verknüpfungen werden nicht unterstützt. - FetchXML-Tags
<attribute>werden nicht für die Spaltenauswahl in der Offlinesynchronisierung verwendet. Verwenden Sie stattdessen die Option " Spalten filtern ". - Explizite Paginierungsattribute wie
pageundcountwerden in Offlineprofilen ignoriert. - Abfragen sind auf maximal 500 Filterklauseln beschränkt.