OData zur Abfrage von Daten verwenden
Jede Abfrage beginnt mit einer Sammlung von Entitäten. Entitätssammlungen können sein:
- EntitySet-Ressourcen: Eine der Web-API-
EntitySet
Sammlungen. - Gefilterte Sammlungen: Eine Reihe von Entitäten, die von einer Navigationseigenschaft mit Sammlungswert für einen bestimmten Datensatz zurückgegeben werden.
- Eine erweiterte sammlungswertige Navigationseigenschaft.
- Eine von einer Funktion zurückgegebene Sammlung.
EntitySet
Ressourcen
Um alle EntitySet
in Ihrem Umgebung verfügbaren Ressourcen zu finden, senden Sie eine GET
Anfrage an das Web-API- Servicedokument:
Anforderung:
GET [Organization URI]/api/data/v9.2/
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Antwort:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata",
"value": [
{
"name": "aadusers",
"kind": "EntitySet",
"url": "aadusers"
},
{
"name": "accountleadscollection",
"kind": "EntitySet",
"url": "accountleadscollection"
},
{
"name": "accounts",
"kind": "EntitySet",
"url": "accounts"
},
... <Truncated for brevity>
[
}
Tipp
Diese Werte sind in der Regel der Pluralname der Tabelle, aber sie können auch anders lauten. Verwenden Sie die Ergebnisse dieser Anfrage, um zu bestätigen, dass Sie den richtigen EntitySet
Ressourcennamen verwenden.
Beginnen Sie beispielsweise mit der accounts
EntitySet-Ressource, um Daten vom Konto-Entitätstyp abzurufen.
GET [Organization URI]/api/data/v9.2/accounts
Gefilterte Sammlungen
Sie können jede Sammlung von Entitäten abfragen, die durch eine Navigationseigenschaft mit Sammlungswert eines angegebenen Datensatzes dargestellt werden. Wenn Sie beispielsweise Daten vom Kontoentitätstyp abrufen möchten, bei dem ein bestimmter Benutzer der Besitzer ist, können Sie die user_accounts
sammlungswertige Navigationseigenschaft aus dem angegebenen Systembenutzer Datensatz verwenden.
GET [Organization URI]/api/data/v9.2/systemusers(<systemuserid value>)/user_accounts?$select=name
Um den Namen der Navigationseigenschaft mit dem Wert einer Sammlung zu finden:
- Für alle Dataverse-Tabellen und -Beziehungen können Sie den Web API Entity Type Reference überprüfen
- Suchen Sie für alle benutzerdefinierten Tabellen oder Beziehungen nach den sammlungswertigen Navigationseigenschaften im $metadata-Dienstdokument.
Daten abrufen
Um Daten aus einer Sammlung abzurufen, senden Sie eine GET
Anfrage an die Sammlungsressource. Das folgende Beispiel zeigt das Abrufen von Daten vom Konto-Entitätstyp.
Dieses Beispiel zeigt auch:
- Begrenzung der zurückgegebenen Spalten mit
$select
. Weitere Informationen zur Auswahl von Spalten - Sortieren der Ergebnisse mit
$orderby
. Weitere Informationen zum Sortieren von Spalten - Begrenzung der zurückgegebenen Zeilen mit
$top
. Erfahren Sie mehr über die Begrenzung der Zeilenanzahl - Anzeige formatierter Werte mithilfe des Anforderungsheaders:
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
. Erfahren Sie mehr über formatierte Werte
Anforderung:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,statecode,statuscode&$orderby=name&$top=1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
Antwort:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
Preference-Applied: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,statecode,statuscode)",
"value": [
{
"@odata.etag": "W/\"112430907\"",
"name": "A. Datum Corporation (sample)",
"statecode@OData.Community.Display.V1.FormattedValue": "Active",
"statecode": 0,
"statuscode@OData.Community.Display.V1.FormattedValue": "Active",
"statuscode": 1,
"accountid": "4b757ff7-9c85-ee11-8179-000d3a9933c9"
}
]
}
Abfrage verfeinern
Nachdem Sie die Tabelle ausgewählt haben, mit der Ihre Abfrage beginnen soll, verfeinern Sie die Abfrage, um die benötigten Daten zu erhalten. In den folgenden Artikeln wird erläutert, wie Sie Ihre Abfrage vervollständigen.
Artikel | Aufgabe |
---|---|
Spalten auswählen | Geben Sie an, welche Datenspalten zurückgegeben werden sollen. |
Tabellen verbinden | Geben Sie an, welche zugehörigen Tabellen in den Ergebnissen zurückgegeben werden sollen. |
Bestellzeilen | Geben Sie die Sortierreihenfolge der Zeilen an, die zurückgegeben werden sollen. |
Filterzeilen | Geben Sie an, welche Datenzeilen zurückgegeben werden sollen. |
Seitenergebnisse | Geben Sie an, wie viele Datenzeilen mit jeder Anforderung zurückgegeben werden sollen. |
Aggregatdaten | So gruppieren und aggregieren Sie die zurückgegebenen Daten. |
Anzahl der Zeilen | So ermitteln Sie die Anzahl der zurückgegebenen Zeilen. |
Leistungsoptimierungen | So optimieren Sie die Leistung |
OData-Abfrageobtionen
Verwenden Sie diese Optionen, um die von einer Sammlung zurückgegebenen Ergebnisse zu ändern. Die folgende Tabelle beschreibt die OData Abfrageoptionen, die die Dataverse Web-API unterstützt.
Option | Verwendet um | Weitere Informationen |
---|---|---|
$select |
Fordern Sie einen bestimmten Satz von Eigenschaften für jede Entität oder jeden komplexen Typ an. | Spalten auswählen |
$expand |
Geben Sie die zugehörigen Ressourcen an, die in Übereinstimmung mit den abgerufenen Ressourcen eingeschlossen werden sollen. | Tabellen verbinden |
$orderby |
Fordern Sie Ressourcen in einer bestimmten Reihenfolge an. | Bestellzeilen |
$filter |
Eine Sammlung von Ressourcen filtern. | Filterzeilen |
$apply |
Daten gruppieren und aggregieren. | Aggregatdaten |
$top |
Die Anzahl der Elemente in der abgefragten Sammlung, die in das Ergebnis einbezogen werden sollen definieren. | Begrenzen Sie die Anzahl der Zeilen |
$count |
Fordern Sie eine Anzahl der übereinstimmenden Ressourcen an, die in den Ressourcen in der Antwort enthalten sind. | Anzahl der Zeilen |
Um mehrere Optionen anzuwenden, trennen Sie die Abfrageoptionen durch ein Fragezeichen (?
) vom Ressourcenpfad. Trennen Sie die einzelnen Optionen nach der ersten durch ein Et-Zeichen (&
). Bei Optionsnamen wird zwischen Groß- und Kleinschreibung unterschieden.
Verwendung von Parameteraliasen mit Systemabfrageoptionen
Sie können Parameteraliase für $filter
- und $orderby
-Systemabfrageoptionen verwenden, aber derzeit nicht innerhalb der $expand
-Option. Parameter-Aliase lassen es zu, dass Sie denselben Wert mehrfach in einer Anfrage verwenden. Wenn dem Alias kein Wert zugeordnet wurde, wird angenommen, dass er NULL ist.
Ohne Parameteraliase:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,revenue
&$orderby=revenue asc,name desc
&$filter=revenue ne null
Mit Parameteraliassen:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,revenue
&$orderby=@p1 asc,@p2 desc
&$filter=@p1 ne @p3&@p1=revenue&@p2=name
Sie können auch Parameteraliase verwenden, wenn Sie Funktionen verwenden. Erfahren Sie, wie Sie Web-API-Funktionen verwenden
Nicht unterstützte OData-Abfrageoptionen
Die Dataverse Web-API unterstützt die folgenden OData-Abfrageoptionen nicht: $skip
,$search
,$format
.
URL-Längenbeschränkungen
Die Länge einer URL in einer GET
Anfrage ist auf 32 KB (32.768 Zeichen) begrenzt. Das Einbinden vieler komplexer OData-Abfrageoptionen als Parameter in die URL kann das Limit erreichen. Sie können einen $batch
Vorgang mithilfe einer POST
Anfrage ausführen, um die OData-Abfrageoptionen aus der URL in den Textkörper der Anfrage zu verschieben, wo das Limit doppelt so lang ist. Das Senden einer GET
-Anfrage innerhalb eines $batch
lässt URLs mit einer Länge von bis zu 64 KB (65.536 Zeichen) zu. Erfahren Sie mehr über Batchvorgänge mit der Web-API.
Beschränken der Anzahl von Zeilen
Um die Anzahl der zurückgegebenen Zeilen zu begrenzen, verwenden Sie die $top
OData-Abfrageoption. Ohne diese Begrenzung Dataverse werden bis zu 5.000 Zeilen zurückgegeben.
Alternativ können Sie mithilfe von Auslagerung eine Anzahl von Datensätzen angeben, die zurückgegeben werden sollen. Verwenden Sie $top
nicht, wenn Sie Datenseiten anfordern. Erfahren Sie, wie Sie ausgelagerte Ergebnisse anfordern
Einschränkungen
Es gibt einige Dinge, die Sie mit FetchXml tun können, die von OData nicht unterstützt werden.
Sie können keine Tabellen ohne Beziehung verknüpfen. OData erlaubt nur die Verwendung der Abfrageoption
$expand
zum Verknüpfen von Tabellen mithilfe von Navigationseigenschaften, die Teil von Beziehungen im Datenmodell sind.Unter Aggregationsbeschränkungen werden die folgenden Beschränkungen für Aggregationen mit OData aufgeführt:
Tabellenübergreifende Spaltenvergleiche durchführen. OData unterstützt das Filtern von Spaltenwerten in derselben Zeile, diese müssen sich jedoch in derselben Tabelle befinden.
Sie müssen die Standardsortierreihenfolge für Auswahlspalten nicht überschreiben. Das Standardverhalten beim Sortieren von Auswahlspalten besteht darin, die ganzzahligen Werte anstelle des lokalisierten Beschriftungswerts zu verwenden.
Sie können die Leistungsoptimierung „Late Materialize“-Abfrage nicht verwenden.
Community-Tools
Hinweis
Von der Community erstellte Tools werden von Microsoft nicht unterstützt. Wenn Sie Fragen oder Probleme mit Community-Tools haben, wenden Sie sich an den Herausgeber des Tools.
Der Dataverse REST Builder ist ein Open-Source-Projekt, das eine Benutzeroberfläche bereitstellt, die Sie bei der Verwendung der Dataverse Web-API bei vielen Aufgaben unterstützt, einschließlich der Erstellung von Abfragen.
Die XrmToolBox FetchXMLBuilder ist ein kostenloses Tool zum Erstellen und Testen von FetchXml-Anfragen, generiert aber auch Code für OData-Abfragen mit derselben Designer-Erfahrung.
Funktionen von OData Version 4.0
Die Dataverse Web-API ist ein OData-Dienst der Version 4.0. In den folgenden Abschnitten der OData 4.0-Spezifikation wird das Abrufen von Daten beschrieben:
- OData Version 4.0. Teil 1: Protocol Plus Errata 03 11.2 Daten anfordern
- OData Version 4.0. Teil 2: URL Konventionen Plus Errata 03 5 Abfrageoptionen
Dieser Artikel und die anderen Artikel in diesem Abschnitt beschreiben die Teile der 4.0 OData-Spezifikation, die von der Dataverse Web-API implementiert werden, und wie Sie diese zum Abrufen von Geschäftsdaten verwenden können Dataverse.
Hinweis
Die OData-Version 4.01 ist die neuste Version. Es enthält Verbesserungen und zusätzliche Funktionen, die in Version 4.0 nicht verfügbar sind und daher derzeit nicht in der Dataverse Web-API verfügbar sind.
Nächste Schritte,
Lernen Sie, wie man Spalten auswählt.
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).