Delen via


Basisgegevensbewerkingen uitvoeren met behulp van het OData-eindpunt

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

Er zijn allerlei bibliotheken of technologieën die u kunt gebruiken om de HTTP-verzoeken uit te voeren om gegevensbewerkingen met het OData-eindpunt uit te voeren met Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update. Dit onderwerp beschrijft de indeling van de HTTP-aanvragen van laag niveau. Ongeacht de gebruikte bibliotheek of technologie kunt u met een proxyhulpprogramma voor webfoutopsporing, zoals Fiddler, het HTTP-verkeer onderzoeken en de resultaten die u ziet, vergelijken met de vereisten van het OData-eindpunt. Dit onderwerp biedt voorbeelden van de HTTP-verzoeken en -reacties die met Fiddler zijn vastgelegd. Sommige inhoud in deze voorbeelden is ingekort en <placeholders> zijn opgenomen waar de inhoud zou variëren afhankelijk van omgevingsvariabelen.

Voor meer informatie over toepassingen die een bepaalde technologie gebruiken, raadpleegt u: Het OData-eindpunt gebruiken met Ajax- en JScript-webresources

In dit onderwerp

Records maken

  • ATOM gebruiken

  • JSON gebruiken

Records ophalen

  • ATOM gebruiken

  • JSON gebruiken

Records bijwerken

  • Bijwerken met PUT

  • Bijwerken met MERGE

    • ATOM gebruiken

    • JSON gebruiken

Records verwijderen

  • ATOM gebruiken

  • JSON gebruiken

HTTP-statuscodes

Records maken

Nieuwe records of vermeldingen worden gemaakt door een HTTP POST-aanvraag uit te voeren voor URI van de verzameling waar de vermelding moet worden gemaakt. De POST-aanvraag omvat de nieuwe vermelding in ATOM- of JSON-notatie.

De server wijst standaardwaarden toe aan eigenschappen die niet in het verzoek zijn opgegeven, en geeft het resultaat terug met een "Location"-koptekst die de URL bevat van de record die is gemaakt. Het titelelement van de vermelding reflecteert het primaire kenmerk van de entiteit. Voor de entiteit account is het kenmerk name bijvoorbeeld het primaire kenmerk. HTTP-statuscode 201 geeft aan dat de record met succes is gemaakt.

Voor meer informatie over een andere manier om nieuwe records in de context van een gerelateerde record te maken raadpleegt u Diep invoegen gebruiken.

ATOM gebruiken

Bijvoorbeeld wanneer een nieuwe account-record wordt gemaakt met de System.Data.Services.Client-bibliotheek in beheerde code

HTTP-verzoek

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-reactie

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 dit onderwerp

JSON gebruiken

Bijvoorbeeld als een nieuwe accountrecord wordt gemaakt met het object XMLHttpRequest vanuit de browser.

HTTP-verzoek

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-reactie

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 dit onderwerp

Records ophalen

HTTP GET wordt gebruikt als u records ophaalt. Wanneer een unieke id voor een specifieke record wordt opgegeven, wordt alleen deze record opgehaald. Anders worden systeemqueryopties die worden gedefinieerd, toegepast en worden tot 50 records opgehaald die overeenkomen met de filters voor systeemqueryopties.

In dit onderwerp

ATOM gebruiken

Bijvoorbeeld wanneer u één accountrecord ophaalt met de System.Data.Services.Client-bibliotheek in beheerde code.

HTTP-verzoek

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-reactie

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 dit onderwerp

JSON gebruiken

Bijvoorbeeld als een accountrecord ophaalt met het XMLHttpRequest-object vanuit de browser.

HTTP-verzoek

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-reactie

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 dit onderwerp

Records bijwerken

In OData kunt u de methode PUT of de methode MERGE gebruiken om records bij te werken.MERGE wordt gebruikt om de betekenis van PUT niet te overbelasten.

Een geslaagde bijwerkreactie bevat HTTP-statuscode 204 en geeft geen inhoud als resultaat.

Notitie

Als u complexe Microsoft Dynamics 365-typewaarden wilt instellen op null, stelt u alle eigenschappen van het complexe type in op null. Zie Complexe types instellen op null voor meer informatie.

Notitie

Sommige bibliotheken nemen mogelijk niet het hoofdgedeelte van het verzoek op wanneer een PUT- of MERGE-verzoek wordt ingediend bij de server. Als oplossing ondersteunt OData Method Tunneling through Post met behulp van de HTTP-operator POST. Als u methodetunneling wilt gebruiken, dient u een POST HTTP-bewerking in en stelt u de X-HTTP-Method-koptekst in op de HTTP-bewerking die u wilt uitvoeren. Als u bijvoorbeeld een MERGE-verzoek wilt indienen, moet de HTTP-bewerking POST zijn en moet de X-HTTP-Method HTTP-koptekst MERGE zijn.

Bijwerken met PUT

Belangrijk

Als u een record bijwerkt met PUT, wordt de bestaande record vervangen door de opgegeven gegevens. Alle eigenschapswaarden in de record krijgen de waarden die in het verzoek worden opgegeven of worden op hun standaardwaarden ingesteld als ze niet in het verzoek zijn opgenomen. Koppelingen worden niet vervangen.

Gebruik PUT als u afzonderlijke eigenschappen bijwerkt. Zie Afzonderlijke eigenschappen bijwerken voor meer informatie

Bijwerken met MERGE

De gebruikelijke bijwerklogica in Microsoft Dynamics 365 komt overeen met de werking die meestal wordt gedefinieerd met MERGE. Eigenschapswaarden die in het verzoek worden opgenomen, worden alleen op die eigenschappen toegepast. Andere eigenschapgegevens worden niet gewijzigd.

Belangrijk

Wanneer de proxyklassen in beheerde code worden gebruikt om opgehaalde entiteitsrecords bij te werken, wordt MERGE gebruikt en worden alle eigenschappen bijgewerkt, tenzij u stappen onderneemt om dit tegen te gaan. Dit geldt ook als de waarde van de eigenschappen niet wordt gewijzigd. Dit kan ongewenste bijwerkingen hebben wanneer andere op gebeurtenissen gebaseerde functies, zoals werkstromen of invoegtoepassingen, detecteren dat de eigenschap is bijgewerkt. Bovendien wordt tijdens controles opgemerkt dat de eigenschap is bijgewerkt.

Als van een entiteitinstantie een instantie wordt gemaakt in plaats van dat deze wordt opgehaald, worden alle eigenschappen van de entiteit bovendien als resultaat gegeven met het MERGE-verzoek. Alle eigenschappen die niet in de code zijn ingesteld, worden null. Deze null-waarden kunnen eventueel bestaande waarden van de record overschrijven.

U kunt dit gedrag beperken door een gebeurtenismanager te implementeren voor de gebeurtenis DataServiceContextReadingEntity en WritingEntity.

In dit onderwerp

ATOM gebruiken

Bijvoorbeeld wanneer een accountrecord wordt bijgewerkt met de System.Data.Services.Client-bibliotheek in beheerde code:

HTTP-verzoek

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-reactie

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 dit onderwerp

JSON gebruiken

Bijvoorbeeld als een accountrecord wordt bijgewerkt met het XMLHttpRequest-object vanuit de browser.

HTTP-verzoek

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-reactie

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

Records verwijderen

Gebruik een POST-verzoek met de X-HTTP-METHOD-koptekst ingesteld op DELETE, met een URI-verwijzing naar de record die moet worden verwijderd.

Notitie

Hoewel de OData-specificatie aangeeft dat een succesvolle verwijdering HTTP-statuscode 200 (OK) als resultaat moet geven, geeft de Microsoft Dynamics 365-implementatie 204 (geen inhoud) als resultaat.

Zie Records koppelen en ontkoppelen voor meer informatie.

In dit onderwerp

ATOM gebruiken

Bijvoorbeeld wanneer u een accountrecord verwijdert met de System.Data.Services.Client-bibliotheek in beheerde code.

HTTP-verzoek

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-reactie

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 dit onderwerp

JSON gebruiken

Bijvoorbeeld als u een accountrecord verwijdert met het XMLHttpRequest-object vanuit de browser.

HTTP-verzoek

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-reactie

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 dit onderwerp

HTTP-statuscodes

Details over als resultaat gegeven HTTP-statuscodes zijn beschikbaar in OData endpoint Http status codes.

Zie ook

Het OData-eindpunt gebruiken met webresources
Aanvullende gegevensbewerkingen uitvoeren met behulp van het OData-eindpunt
Het OData-eindpunt gebruiken met Ajax- en JScript-webresources
OData endpoint Http status codes

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht