Opdatere og slette objekter ved hjælp af web-API'et
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Handlinger til at ændre data er en vigtig del af web-API'et. Ud over en enkel opdatering og sletning kan du udføre handlinger på enkeltattributter og oprette upsert-anmodninger, der enten opdaterer eller indsætter et objekt, afhængigt af om det eksistererer.
Bemærk
De metadata, der definerer objekter, opdateres på en anden måde.Flere oplysninger:Oprette og opdatere objektdefinitioner med Web API
Dette emne indeholder
Grundlæggende opdatering
Opdatere med data, der er returneret
Opdater en enkelt egenskabsværdi
Slet en enkelt egenskabsværdi
Brug af upsert på et objekt
Grundlæggende sletning
Grundlæggende opdatering
Opdateringer bruger verbet HTTP PATCH. Overfør et JSON-objekt, der indeholder de egenskaber, du vil opdatere til den URI , der repræsenterer objektet. Et svar med statussen på 204 returneres, hvis opdateringen lykkedes.
I dette eksempel opdateres en eksisterende firmapost med accountid-værdien i 00000000-0000-0000-0000-000000000001.
Vigtigt
Når du opdaterer et objekt, skal du kun medtage de egenskaber, du ændrer i anmodningsteksten. Ved blot at opdatere egenskaberne for et objekt, du tidligere har hentet, og medtage den JSON i anmodningen, opdateres hver egenskab, selvom værdien er den samme. Dette kan medføre, at egenskaber virker til at være opdateret under overvågning af data, hvor de faktisk ikke er blevet ændret.
Anmodning
PATCH cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "name": "Updated Sample Account ", "creditonhold": true, "address1_latitude": 47.639583, "description": "This is the updated description of the sample account", "revenue": 6000000, "accountcategorycode": 2 }
Svar
HTTP/1.1 204 No Content OData-Version: 4.0
Bemærk
Se Tilknyt objekter ved opdatering for at få oplysninger om tilknytning af objekter ved opdatering.
Opdatere med data, der er returneret
Bemærk
Denne funktion blev tilføjet med December 2016 – opdatering til Dynamics 365 (online og det lokale miljø).
Hvis du vil hente data fra et objekt, som du er ved at opdatere, kan du sammensætte din PATCH-anmodning, så dataene fra den oprettede post bliver returneret med statussen 200 (OK). For at få sit resultat, skal du bruge return=representation-indstillingen i anmodningshovederne.
Du kan styre, hvilke egenskaber der returneres, ved at tilføje $select-forespørgselsindstillingen til URL-adressen til det angivne objekt. Forespørgselsindstillingen $expand bliver ignoreret, hvis den anvendes.
I dette eksempel opdateres et kontoobjekt, og de ønskede data i svaret returneres.
Anmodning
PATCH cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)?$select=name,creditonhold,address1_latitude,description,revenue,accountcategorycode,createdon HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 Accept: application/json Content-Type: application/json; charset=utf-8 Prefer: return=representation {"name":"Updated Sample Account"}
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal Preference-Applied: return=representation OData-Version: 4.0 { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts/$entity", "@odata.etag": "W/\"536537\"", "accountid": "00000000-0000-0000-0000-000000000001", "accountcategorycode": 1, "description": "This is the description of the sample account", "address1_latitude": 47.63958, "creditonhold": false, "name": "Updated Sample Account", "createdon": "2016-09-28T23:14:00Z", "revenue": 5000000.0000, "_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6" }
Opdater en enkelt egenskabsværdi
Hvis du kun vil opdatere bruge en enkelt egenskabsværdi, skal du bruge en PUT-anmodning med det egenskabsnavn, der er føjet til objektets Uri.
Følgende eksempel opdaterer name-egenskaben for et eksisterende firmaobjekt med den accountid-værdien 00000000-0000-0000-0000-000000000001.
Anmodning
PUT cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)/name HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 {"value": "Updated Sample Account Name"}
Svar
HTTP/1.1 204 No Content OData-Version: 4.0
Slet en enkelt egenskabsværdi
Hvis du vil slette værdien af en enkelt egenskab, skal du bruge en DELETE-anmodning med det egenskabsnavn, der er føjet til objektets Uri.
Følgende eksempel sletter værdien af description-egenskaben for et kontoobjekt med accountid-værdien 00000000-0000-0000-0000-000000000001.
Anmodning
DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)/description HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 204 No Content OData-Version: 4.0
Bemærk
Dette kan ikke bruges med en navigationsegenskab med enkeltværdi til at adskille to objekter. Se Fjern en reference til et objekt for at få en alternativ tilgang.
Brug af upsert på et objekt
En upsert-handling er præcis som en opdatering. Den bruger en PATCH-anmodning og en URI til at henvise til et bestemt objekt. Forskellen er, at hvis objektet ikke findes, bliver det oprettet. Hvis det allerede findes, vil det blive opdateret. Når du opretter et nyt objekt, kan du normalt lade systemet tildele et entydigt id. Dette er den bedste fremgangsmåde. Men hvis du har brug for at oprette en post med bestemt id-værdi, giver upsert-handlingen en måde at gøre dette på. Dette kan være praktisk i situationer, hvor du synkroniserer data i forskellige systemer.
Der kan være situationer, hvor du vil udføre en upsert, men du vil forhindre en af de mulige standardhandlinger: opret eller opdater. Du kan opnå dette ved at tilføje If-Match- eller If-None-Match-headere. Du kan finde flere oplysninger under Begræns upsert-handlinger.
Grundlæggende sletning
En slettehandling er ganske enkel. Brug verbet DELETE med URI for den enhed, du vil slette. Denne eksempelmeddelelse sletter et firmaobjekt med den primære accountid-nøgleværdi lig med 00000000-0000-0000-0000-000000000001.
Anmodning
DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
Hvis objektet findes, får du et normalt svar med status 204 for at angive, at sletningen blev udført. Hvis objektet ikke blev fundet, får du et svar med status 404.HTTP/1.1 204 No Content OData-Version: 4.0
Se også
Eksempel på Web API Basic-operationer (C#)
Eksempel på Web API Basic operationer (JavaScript på klientsiden)
Udføre operationer ved hjælp af web-API
Skrive HTTP-anmodninger og håndtere fejl
Forespørg på data ved hjælp af Web-API'en
Oprette et objekt ved hjælp af Web-API
Hente et objekt ved hjælp af web-API'et
Tilknytte og fjerne tilknytningen af objekter ved hjælp af web-API'et
Bruge Web-API-funktioner
Brug Web API-handlinger
Udføre batchhandlinger ved hjælp af Web-API
Efterligne en anden bruger ved hjælp af Web-API'en
Udfør betingede operationer ved hjælp af web-API
Microsoft Dynamics 365
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret