Freigeben über


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