Udfør grundlæggende datahandlinger, der bruger OData-slutpunkt
Udgivet: november 2016
Gælder for: Dynamics CRM 2015
Der er en række biblioteker eller teknologier, som du kan bruge til at køre HTTP-anmodningerne for at udføre datahandlinger ved hjælp af OData-slutpunktet i Microsoft Dynamics CRM 2015 og opdatering til Microsoft Dynamics CRM Online 2015. I dette emne beskrives formatet for HTTP-anmodninger på lavt niveau. Uanset, hvilket bibliotek eller hvilken teknologi du bruger, kan du med et fejlfindingsværktøj til webproxyer, f.eks. Fiddler, undersøge HTTP-trafikken og sammenligne de viste resultater med kravene til OData-slutpunktet. Dette emne indeholder eksempler på HTTP-anmodninger og -svar, som er fanget ved hjælp af Fiddler. Noget af indholdet i disse eksempler er blevet redigeret af pladshensyn, og <placeholders> er medtaget, hvor indholdet kan variere baseret på miljøvariabler.
Du kan finde flere oplysninger om programmer, der bruger en bestemt teknologi: Brug OData-slutpunktet med Ajax og JScript-webressourcer
Dette emne indeholder
Oprettelse af poster
Brug af ATOM
Brug af JSON
Hentning af poster
Brug af ATOM
Brug af JSON
Opdatering af poster
Opdater ved hjælp af PUT
Opdater ved hjælp af MERGE
Brug af ATOM
Brug af JSON
Sletning af poster
Brug af ATOM
Brug af JSON
HTTP-statuskoder
Oprettelse af poster
Nye poster oprettes ved at udføre en HTTP POST-anmodning mod URI'en for den samling, hvor posten skal oprettes. POST-anmodningen indeholder den nye post i brødteksten og bruger enten formatet ATOM eller formatet JSON.
Serveren tildeler standardværdierne til de egenskaber, der ikke er angivet i anmodningen, og returnerer resultatet med headeren 'Location', der indeholder URL-adressen for den post, der blev oprettet. Posttitelelementet afspejler den primære attribut for objektet. For objektet account er attributten name den primære attribut. HTTP-statuskode 201 angiver, at posten er blevet oprettet.
Du kan finde flere oplysninger om en anden måde at oprette nye poster i forbindelse med en relateret post, under Bruge dyb indsætning.
Brug af ATOM
For eksempel, når en ny account-post oprettes ved hjælp af System.Data.Services.Client-biblioteket i administreret kode
HTTP-anmodning
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-svar
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>
Dette emne indeholder
Brug af JSON
For eksempel, når en ny firmapost oprettes ved hjælp af objektet XMLHttpRequest fra browseren.
HTTP-anmodning
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-svar
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]
}
}
Dette emne indeholder
Hentning af poster
HTTP GET bruges, når du henter poster. Når der angives et entydigt id for en bestemt post, hentes kun denne post. Ellers anvendes de indstillinger for systemforespørgsler, der er defineret, og op til 50 poster, der svarer til filtre for en hvilken som helst systemforespørgselsindstilling, vil blive hentet.
Dette emne indeholder
Brug af ATOM
For eksempel, når du henter en enkelt firmapost ved hjælp af System.Data.Services.Client-biblioteket i administreret kode.
HTTP-anmodning
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-svar
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>
Dette emne indeholder
Brug af JSON
For eksempel, når du henter en firmapost ved hjælp af objektet XMLHttpRequest fra browseren.
HTTP-anmodning
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-svar
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>
Dette emne indeholder
Opdatering af poster
I OData, kan du enten bruge metoden PUT eller metoden MERGE til at opdatere poster.MERGE bruges til at undgå overbelastning af betydningen af PUT.
Et vellykket opdateringssvar indeholder HTTP-statuskoden 204 og returnerer ikke noget indhold.
Bemærk
Når du vil angive komplekse typeværdier i Microsoft Dynamics 365 til null, skal du indstille alle egenskaber for den komplekse type til null. Du kan finde flere oplysninger under Angive komplekse typer til null.
Bemærk
Nogle biblioteker indeholder muligvis ikke brødteksten i anmodningen, når du sender en PUT- eller MERGE-anmodning til serveren. Som en løsning understøtter OData Metodetunnelføring via POST ved hjælp af HTTP-operatoren for POST. Du kan bruge metodetunnelføring ved at sende en HTTP-handling for POST og indstille X-HTTP-Method-headeren til den HTTP-handling, du vil udføre. Når du vil sende en MERGE-anmodning, skal HTTP-handlingen være POST, og HTTP-headeren for X-HTTP-Method skal være MERGE.
Opdater ved hjælp af PUT
Vigtigt
Opdatering af poster ved hjælp af PUT erstatter den eksisterende post med de angivne data. Alle egenskabsværdier i posten tager enten de værdier, der er indeholdt i anmodningen, eller indstilles til deres standardværdier, hvis de ikke er medtaget i anmodningen. Links bliver ikke udskiftet.
Brug PUT, når du opdaterer individuelle egenskaber. Du kan finde flere oplysninger under Opdatere individuelle egenskaber
Opdater ved hjælp af MERGE
Den typiske opdateringslogik i Microsoft Dynamics 365 svarer til den funktionsmåde, der normalt defineres ved hjælp af MERGE. Egenskabsværdier, der er inkluderet i anmodningen, anvendes kun til disse egenskaber. Andre egenskabsdata ændres ikke.
Vigtigt
Medmindre du tager skridt til at afhjælpe dette problem, når proxyklasser i administreret kode bruges til at opdatere hentede objektposter, bruges MERGE, og alle egenskaber opdateres. Dette er tilfældet, selvom værdien af egenskaberne ikke ændres. Dette kan medføre uønskede bivirkninger, når andre hændelsesbaserede funktioner som arbejdsprocesser eller plug-ins registrerer, at egenskaben er blevet opdateret. Desuden registrerer overvågning, at egenskaben er blevet opdateret.
Endvidere, hvis en forekomst af et objekt instantieres i stedet for at blive hentet, returneres alle egenskaberne for objektet med MERGE-anmodningen. Alle egenskaber, der ikke er indstillet i koden, får værdien null. Disse null-værdier overskriver eventuelle eksisterende værdier for posten.
Du kan afhjælpe dette problem ved at implementere en hændelseshandler for hændelserne DataServiceContextReadingEntity og WritingEntity.
Dette emne indeholder
Brug af ATOM
For eksempel, når en firmapost opdateres ved hjælp af System.Data.Services.Client-biblioteket i administreret kode:
HTTP-anmodning
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-svar
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
Dette emne indeholder
Brug af JSON
For eksempel, når en firmapost opdateres ved hjælp af objektet XMLHttpRequest fra browseren.
HTTP-anmodning
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-svar
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
Sletning af poster
Brug en POST-anmodning med X-HTTP-METHOD-headeren indstillet til DELETE og en URI-reference til posten, der skal slettes.
Bemærk
Selvom OData-specifikationen angiver, at en vellykket sletning skal returnere HTTP-statuskoden 200 (OK), returnerer Microsoft Dynamics 365-implementeringen 204 (intet indhold).
Du kan finde flere oplysninger under Tilknytte og fjerne tilknytningen af poster.
Dette emne indeholder
Brug af ATOM
For eksempel, når du sletter en firmapost ved hjælp af System.Data.Services.Client-biblioteket i administreret kode.
HTTP-anmodning
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-svar
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
Dette emne indeholder
Brug af JSON
For eksempel, når du sletter en firmapost ved hjælp af objektet XMLHttpRequest fra browseren.
HTTP-anmodning
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-svar
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
Dette emne indeholder
HTTP-statuskoder
Oplysninger om returnerede HTTP-statuskoder findes i OData endpoint Http status codes.
Se også
Brug OData-slutpunktet med webressourcer
Udføre yderligere datahandlinger, der bruger OData-slutpunkt
Brug OData-slutpunktet med Ajax og JScript-webressourcer
OData endpoint Http status codes
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret