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