Ausführen grundlegender Datenvorgänge mithilfe des OData-Endpunkts
Veröffentlicht: November 2016
Gilt für: Dynamics CRM 2015
Es gibt zahlreiche Bibliotheken und Technologien, die Sie verwenden können, um HTTP-Anforderungen ausführen, um Datenvorgänge mithilfe des OData-Endpunkts mit Microsoft Dynamics CRM 2015 und Microsoft Dynamics CRM Online 2015-Update auszuführen. In diesem Thema wird das Format der grundlegenden HTTP-Anforderungen beschrieben. Unabhängig von der Bibliothek oder Technologie, die Sie verwenden, mit einem Internet-Debugging-Proxytool, beispielsweise Fiddler, den HTTP-Datenverkehr überprüfen und die Ergebnisse vergleichen, die Sie mit den Anforderungen des OData-Endpunkts finden. In diesem Thema werden Beispiele der HTTP-Anforderungen der Antworten dazu, die mit Fiddlers erfasst wurden, dargestellt. Einige Inhalte in diesen Beispielen wurdfen der Kürze halber bearbeitet und <placeholders> wurden einbezogen, wo der Inhalt je nach den Umgebungsvariablen variieren würde.
Weitere Informationen zu Anwendungen, die eine bestimmte Technologie verwenden, finden Sie unter: Verwenden des OData-Endpunkts mit Ajax- und JScript-Webressourcen
In diesem Thema
Erstellen von Datensätzen
Verwenden von ATOM
Verwenden von JSON
Abrufen von Datensätzen
Verwenden von ATOM
Verwenden von JSON
Aktualisieren von Datensätzen
Aktualisieren unter Verwendung von PUT
Aktualiseren unter Verwendung von MERGE
Verwenden von ATOM
Verwenden von JSON
Löschen von Datensätzen
Verwenden von ATOM
Verwenden von JSON
HTTP-Statuscodes
Erstellen von Datensätzen
Neue Datensätze, oder Einträge, werden erstellt, indem eine HTTP-POST-Anforderung im Vergleich zur URI der Sammlung ausgeführt wird, in der der Eintrag erstellt werden soll. Die neue POST-Anforderung enthält den neuen Eintrag im Textkörper unter Verwendung des ATOM oder JSON-Formats.
Der Server weist Standardwerte alen Eigenschaften zu, die nicht in der Anforderung angegebenen wurden und gibt die Ergebnisse mit einer "Speicherort"-Kopfzeile zurück, die die URL für den Datensatz, der erstellt wurde, enthält. Das Eintragstitelelement gibt das primäre Attribut der Entität wieder. Beispielsweise ist für die account-Entität das name-Attribut das primäre Attribut. HTTP-Statuscode 201 gibt an, dass der Datensatz erfolgreich erstellt wurde.
Weitere Informationen über ene alternativ Methode, neue Datensätze im Kontext eines verknüpften Datensatzes zu erstellen, finden Sie unter Verwenden von tiefer Einfügung.
Verwenden von ATOM
Beispielsweise, wenn ein neuer account-Datensatz erstellt wird, indem System.Data.Services.Client-Bibliothek in verwaltetem Code verwendet wird.
HTTP-Anforderung
POST <organization root>/xrmservices/2011/organizationdata.svc/AccountSet HTTP/1.1
Accept-Charset: UTF-8
Accept-Language: en-us
dataserviceversion: 1.0;NetFx
Accept: application/atom+xml,application/xml
Content-Type: application/atom+xml
maxdataserviceversion: 2.0;NetFx
Referer: <The URL to the HTML page >
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1)
Host: <CRM Server>
Content-Length: 26629
Connection: Keep-Alive
Pragma: no-cache
Cookie: <cookie data>
Authorization: Negotiate <authentication token>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<category
scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme"
term="Microsoft.Crm.Sdk.Data.Services.Account"
/>
<title type="text">New Account Created</title>
<author>
<name />
</author>
<updated>2010-07-22T22:51:50.0051481Z</updated>
<id />
<content type="application/xml">
<m:properties>
[ Properties removed for brevity]
</m:properties>
</content>
</entry>
HTTP-Antwort
HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 26756
Content-Type: application/atom+xml;charset=utf-8
Location: <organization root>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'732b64b6-e395-df11-a492-00155dba380c')
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
DataServiceVersion: 1.0;
X-Powered-By: ASP.NET
WWW-Authenticate: Negotiate <authentication token>
Date: Thu, 22 Jul 2010 22:51:49 GMT
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xml:base="<organization root>/XRMServices/2011/OrganizationData.svc/"
xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<id><organization root>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'732b64b6-e395-df11-a492-00155dba380c')</id>
<title type="text">New Account Created</title>
<updated>2010-07-22T22:51:50Z</updated>
<author>
<name />
</author>
<link rel="edit" title="Account" href="AccountSet(guid'732b64b6-e395-df11-a492-00155dba380c')" />
[Links removed for brevity]
<category
term="Microsoft.Crm.Sdk.Data.Services.Account"
scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme"
/>
<content type="application/xml">
<m:properties>
[Properties removed for brevity]
</m:properties>
</content>
</entry>
In diesem Thema
Verwenden von JSON
Beispielsweise, wenn ein neuer Datensatz erstellt wird, indem das XMLHttpRequest-Objekt vom Browser verwendet wird.
HTTP-Anforderung
POST <organization root>/XRMServices/2011/OrganizationData.svc/AccountSet HTTP/1.1
Content-Type: application/json; charset=utf-8
Accept-Language: en-us
Referer: <The URL to the HTML page sending the request>
Accept: application/json
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1)
Host: <CRM Server>
Content-Length: 25
Connection: Keep-Alive
Pragma: no-cache
Cookie: <cookie data>
Authorization: Negotiate <authentication token>
{"Name":"Sample Account"}
HTTP-Antwort
HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 17720
Content-Type: application/json;charset=utf-8
Location: <organization root>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'5784bd4a-f595-df11-a492-00155dba380c')
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
DataServiceVersion: 1.0;
X-Powered-By: ASP.NET
WWW-Authenticate: Negotiate <authentication token>
Date: Fri, 23 Jul 2010 00:57:40 GMT
{
"d" : {
"__metadata": {
"uri": "<organization root>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'5784bd4a-f595-df11-a492-00155dba380c')",
"type": "Microsoft.Crm.Sdk.Data.Services.Account"
},
[Properties removed for brevity]
}
}
In diesem Thema
Abrufen von Datensätzen
HTTP GET wird verwendet, wenn Sie Datensätze abrufen. Wenn ein eindeutiger Bezeichner für einen bestimmten Datensatz bereitgestellt ist, wird nur dieser Datensatz abgerufen. Andernfalls werden alle Systemabfrageoptionen, die definiert sind, angewendet, und bis zu 50 Datensätze werden abgerufen, die mit Systemabfrageoptionsfiltern übereinstimmen.
In diesem Thema
Verwenden von ATOM
Beispielsweise, wenn Sie einen einzelnen Datensatz abrufen, indem System.Data.Services.Client-Bibliothek in verwaltetem Code verwendet wird.
HTTP-Anforderung
GET <organization root>/xrmservices/2011/organizationdata.svc/AccountSet(guid'732b64b6-e395-df11-a492-00155dba380c') HTTP/1.1
Accept-Charset: UTF-8
Accept-Language: en-us
dataserviceversion: 1.0;NetFx
Accept: application/atom+xml,application/xml
maxdataserviceversion: 2.0;NetFx
Referer: <The URL to the HTML page >
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1)
Host: <CRM Server>
Connection: Keep-Alive
Cookie: <cookie data>
Authorization: Negotiate <authentication token>
HTTP-Antwort
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 28231
Content-Type: application/atom+xml;charset=utf-8
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
DataServiceVersion: 1.0;
X-Powered-By: ASP.NET
WWW-Authenticate: Negotiate <authentication token>
Date: Thu, 22 Jul 2010 22:51:51 GMT
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xml:base="<organization root>/XRMServices/2011/OrganizationData.svc/"
xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<id><organization root>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'732b64b6-e395-df11-a492-00155dba380c')</id>
<title type="text">New Account Created </title>
<updated>2010-07-22T22:51:51Z</updated>
<author>
<name />
</author>
<link rel="edit" title="Account" href="AccountSet(guid'732b64b6-e395-df11-a492-00155dba380c')" />
[Links removed for brevity]
<category
term="Microsoft.Crm.Sdk.Data.Services.Account"
scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme"
/>
<content type="application/xml">
<m:properties>
[Properties removed for brevity]
</m:properties>
</content>
</entry>
In diesem Thema
Verwenden von JSON
Beispielsweise, wenn Sie einen Firmendatensatz abrufen, indem Sie das XMLHttpRequest-Objekt vom Browser verwenden.
HTTP-Anforderung
GET <organization root>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'5784bd4a-f595-df11-a492-00155dba380c') HTTP/1.1
Content-Type: application/json; charset=utf-8
Accept-Language: en-us
Referer: <The URL to the HTML page sending the request>
Accept: application/json
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1)
Host: <CRM Server>
Connection: Keep-Alive
Cookie: <cookie data>
Authorization: Negotiate <authentication token>
HTTP-Antwort
GET <organization root>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'5784bd4a-f595-df11-a492-00155dba380c') HTTP/1.1
Content-Type: application/json; charset=utf-8
Accept-Language: en-us
Referer: <The URL to the HTML page sending the request>
Accept: application/json
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1)
Host: <CRM Server>
Connection: Keep-Alive
Cookie: <cookie data>
Authorization: Negotiate <authentication token>
In diesem Thema
Aktualisieren von Datensätzen
Mithilfe von OData In können Sie die Methode PUT oder MERGE die Methoden verwenden, um Datensätze zu aktualisieren.MERGE wird verwendet, um zu verhindern, dass die Bedeutung PUT von überladen wird.
Eine erfolgreiche Updateantwort enthält den HTTP-Statuscode 204 und gibt keine Inhalte zurück.
Hinweis
Um komplexe Microsoft Dynamics 365 Typwerte auf Null zu setzen. Setzt alle Eigenschaften des komplexenTyps auf Null. Weitere Informationen finden Sie unter Komplexe Typen auf Null festlegen.
Hinweis
Einige Bibliotheken schließen möglicherweise nicht den Textkörper der Anfrage ein, wenn ein PUT- oder MERGE-Anfrage an den Server gesendet wird. Als Problemumgehung unterstützt OData Methoden-Tunneling durch POST unter Verwendung des POST-HTTP-Operators. Um das Methoden-Tunneling zu nutzen, senden Sie einen POST-HTTP-Vorgang und legen Sie die X-HTTP-Method-Kopfzeile auf den HTTP-Vorgang fest, den Sie ausführen möchten. Um beispielsweise eine MERGE-Anforderung zu senden, sollte der HTTP-Vorgang POST sein, und die X-HTTP-Method-HTTP-Kopfzeile sollte MERGE sein.
Aktualisieren unter Verwendung von PUT
Wichtig
Beim Aktualisieren von Datensätzen mit PUT wird der vorhandene Datensatz durch die bereitgestellten Daten ersetzt. Alle Eigenschaftswerte im Datensatz nehmen entweder die Werte an, die in der Anforderung bereitgestellt werden,oder werden zu den Standardwerten festgelegt, wenn sie nicht in der Anforderung enthalten sind. Links werden nicht ersetzt.
Verwenden Sie PUT, wenn Sie einzelne Eigenschaften aktualisieren. Weitere Informationen finden Sie unter Aktualisieren einzelner Eigenschaften.
Aktualiseren unter Verwendung von MERGE
Die typische Updatelogik in Microsoft Dynamics 365 entspricht dem Verhalten, das üblicherweise unter Verwendung von MERGE definiert wird. Eigenschaftswerte, die in der Anforderung enthalten sind, werden nur auf diese Eigenschaften angewendet. Andere Eigenschaftendaten werden nicht geändert.
Wichtig
Wenn Sie Schritte unternehmen, um dieses Verhalten abzuschwächen, wenn Sie Proxyklassen im verwalteten Code verwenden, um abgerufene Datensätze zu aktualisieren, wird MERGE verwendet und alle Eigenschaften werden aktualisiert. Dies ist selbst dann der Fall, wenn der Wert der Eigenschaften nicht geändert wird. Dadurch werden möglicherweise unerwünschte Nebenwirkungen hervorgerufen, wenn andere ereignisgesteuerte Funktionen, wie Workflows oder Plug-Ins, feststellen, dass die Eigenschaft aktualisiert wurde. Außerdem zeichnet die Überwachung auf, dass die Eigenschaft aktualisiert wurde.
Außerdem werden, wenn eine Entitätsinstanz instanziiert wird, anstatt abgerufen zu werden, alle Eigenschaften für die Entität mit der MERGE-Anforderung zurückgegeben. Alle Eigenschaften, die nicht im Code festgelgt sind, sinx Null. Diese Null Werte überschreiben bestehende Datensätze für den Datensatz
Sie können dieses Verhalten umgehen, indem Sie einen Ereignishandler für die DataServiceContextReadingEntity- und WritingEntity-Ereignisse implementieren.
In diesem Thema
Verwenden von ATOM
Beispielsweise, wenn ein Datensatz unter Verwendung der System.Data.Services.Client-Bibliothek in verwaltetem Code aktualisiert wird:
HTTP-Anforderung
POST <organization root>/xrmservices/2011/organizationdata.svc/AccountSet(guid'732b64b6-e395-df11-a492-00155dba380c') HTTP/1.1
Accept: application/atom+xml,application/xml
Accept-Language: en-us
dataserviceversion: 1.0;NetFx
x-http-method: MERGE
Accept-Charset: UTF-8
Content-Type: application/atom+xml
maxdataserviceversion: 2.0;NetFx
Referer: <The URL to the HTML page >
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1)
Host: <CRM Server>
Content-Length: 26753
Connection: Keep-Alive
Pragma: no-cache
Cookie: <cookie data>
Authorization: Negotiate <authentication token>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry
xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<category
scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme"
term="Microsoft.Crm.Sdk.Data.Services.Account"
/>
<title type="text">Account updated </title>
<author>
<name />
</author>
<updated>2010-07-22T22:51:51.0053481Z</updated>
<id><organization root>/xrmservices/2011/organizationdata.svc/AccountSet(guid'732b64b6-e395-df11-a492-00155dba380c')</id>
<content type="application/xml">
<m:properties>
[Properties removed for brevity]
</m:properties>
</content>
</entry>
HTTP-Antwort
HTTP/1.1 204 No Content
Cache-Control: no-cache
Content-Length: 0
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
DataServiceVersion: 1.0;
X-Powered-By: ASP.NET
WWW-Authenticate: Negotiate <authentication token>
Date: Thu, 22 Jul 2010 22:51:51 GMT
In diesem Thema
Verwenden von JSON
Beispielsweise, wenn Sie einen Firmendatensatz aktualisieren, indem Sie das XMLHttpRequest-Objekt vom Browser verwenden.
HTTP-Anforderung
POST <organization root>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'5784bd4a-f595-df11-a492-00155dba380c') HTTP/1.1
Accept: application/json
Accept-Language: en-us
Referer: <The URL to the HTML page sending the request>
x-http-method: MERGE
Content-Type: application/json; charset=utf-8
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1)
Host: <CRM Server>
Content-Length: 117
Connection: Keep-Alive
Pragma: no-cache
Cookie: <cookie data>
Authorization: Negotiate <authentication token>
{"Name":"Updated Sample","Telephone1":"555-0123","AccountNumber":"ABCDEFGHIJ","EMailAddress1":"someone1@example.com"}
HTTP-Antwort
HTTP/1.1 204 No Content
Cache-Control: no-cache
Content-Length: 0
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
DataServiceVersion: 1.0;
X-Powered-By: ASP.NET
WWW-Authenticate: Negotiate <authentication token>
Date: Fri, 23 Jul 2010 00:57:41 GMT
Löschen von Datensätzen
Verwenden Sie eine POST-Anforderung, bei der die X-HTTP-METHOD-Kopfzeile zu DELETE mit einem URI-Verweis zu dem Datensatz, der gelöscht werden soll, festgelegt ist.
Hinweis
Auch wenn die OData-Spezifikation angibt, dass ein erfolgreicher Löschvorgang den HTTP-Statuscode 200 (OK) zurückgeben sollte, gibt die Microsoft Dynamics 365-Implementierung 204 (Kein Inhalt) zurück.
Weitere Informationen finden Sie unter Datensätze zuordnen und ihre Zuordnung aufheben.
In diesem Thema
Verwenden von ATOM
Beispielsweise, wenn Sie einen Datensatz unter Verwendung der System.Data.Services.Client-Bibliothek in verwaltetem Code löschen.
HTTP-Anforderung
POST <organization root>/xrmservices/2011/organizationdata.svc/AccountSet(guid'732b64b6-e395-df11-a492-00155dba380c') HTTP/1.1
Accept: application/atom+xml,application/xml
Accept-Language: en-us
dataserviceversion: 1.0;NetFx
x-http-method: DELETE
Accept-Charset: UTF-8
Content-Type: application/atom+xml
maxdataserviceversion: 2.0;NetFx
Referer: <The URL to the HTML page >
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1)
Host: <CRM Server>
Content-Length: 0
Connection: Keep-Alive
Pragma: no-cache
Cookie: <cookie data>
Authorization: Negotiate <authentication token>
HTTP-Antwort
HTTP/1.1 204 No Content
Cache-Control: no-cache
Content-Length: 0
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
DataServiceVersion: 1.0;
X-Powered-By: ASP.NET
WWW-Authenticate: Negotiate <authentication token>
Date: Thu, 22 Jul 2010 22:51:54 GMT
In diesem Thema
Verwenden von JSON
Beispielsweise, wenn Sie einen Firmendatensatz löschen, indem Sie das XMLHttpRequest-Objekt vom Browser verwenden.
HTTP-Anforderung
POST <organization root>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'5784bd4a-f595-df11-a492-00155dba380c') HTTP/1.1
Accept: application/json
Accept-Language: en-us
Referer: <The URL to the HTML page sending the request>
x-http-method: DELETE
Content-Type: application/json; charset=utf-8
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1)
Host: <CRM Server>
Content-Length: 0
Connection: Keep-Alive
Pragma: no-cache
Cookie: <cookie data>
Authorization: Negotiate <authentication token>
HTTP-Antwort
HTTP/1.1 204 No Content
Cache-Control: no-cache
Content-Length: 0
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
DataServiceVersion: 1.0;
X-Powered-By: ASP.NET
WWW-Authenticate: Negotiate <authentication token>
Date: Fri, 23 Jul 2010 00:57:57 GMT
In diesem Thema
HTTP-Statuscodes
Details zu HTTP-Statuscodes, die zurückgegeben werden, sind in OData endpoint Http status codes verfügbar.
Siehe auch
Verwenden des OData-Endpunkts mit Webressourcen
Ausführen zusätzlicher Datenvorgänge mithilfe des OData-Endpunkts
Verwenden des OData-Endpunkts mit Ajax- und JScript-Webressourcen
OData endpoint Http status codes
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright