Del via


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