Oprette et objekt ved hjælp af Web-API
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Brug en POST-anmodning til at sende data for at oprette et objekt. Du kan oprette flere relaterede objekter med en enkelt handling ved at bruge "dyb indsætning". Du skal også vide, hvordan du definerer værdier til at knytte et nyt objekt til eksisterende objekter ved hjælp af @odata.bind-anmærkning.
Bemærk
Du kan finde oplysninger om, hvordan du opretter og opdaterer objektmetadataene ved hjælp af web-API'en, under Oprette og opdatere objektdefinitioner med Web API.
Dette emne indeholder
Grundlæggende oprettelse
Oprette relaterede objekter på én gang
Tilknyt objekter ved oprettelse
Oprette med data, der er returneret
Grundlæggende oprettelse
I dette eksempel oprettes et nyt firmaobjekt.OData-EntityId-svarheader indeholder URI'en for det oprettede objekt.
Anmodning
POST cc_WebAPI_ServiceURI/accounts HTTP/1.1 Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 Accept: application/json { "name": "Sample Account", "creditonhold": false, "address1_latitude": 47.639583, "description": "This is the description of the sample account", "revenue": 5000000, "accountcategorycode": 1 }
Svar
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(7eb682f1-ca75-e511-80d4-00155d2a68d1)
Hvis du vil oprette et nyt objekt, skal du identificere gyldige egenskabsnavne og -typer. For alle systemobjekter og attributter kan du finde disse oplysninger i emnet for det pågældende objekt i Web API EntityType Reference. For brugerdefinerede objekter eller attributter refererer du til definitionen af det pågældende objekt i d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_csdl.Flere oplysninger:d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_entityTypes
Oprette relaterede objekter på én gang
Du kan oprette objekter, der er relateret til hinanden, ved at definere dem som navigationegenskabsværdier. Dette kaldes dyb indsætning.
Som med en grundlæggende oprettelse indeholder OData-EntityId-svarheaderen Uri for det oprettede objekt. URI'er for de relaterede objekter returneres ikke.
For eksempel vil følgende anmodningstekst udgivet til Account-objektsættet oprette i alt fire nye objekter i forbindelse med oprettelse af et firma.
En kontakt er oprettet, fordi den er defineret som en objektegenskab i navigationsegenskaben primarycontactid med enkeltværdi.
En salgsmulighed oprettes, fordi den defineres som et objekt i en matrix, der er angivet til værdien af navigationsegenskaben opportunity_customer_accounts med gruppeværdi.
Der oprettes en opgave, fordi den er defineret som et objekt i en matrix, der er angivet til værdien af navigationsegenskaben Opportunity_Tasks med gruppeværdi.
Anmodning
POST cc_WebAPI_ServiceURI/accounts HTTP/1.1 Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 Accept: application/json { "name": "Sample Account", "primarycontactid": { "firstname": "John", "lastname": "Smith" }, "opportunity_customer_accounts": [ { "name": "Opportunity associated to Sample Account", "Opportunity_Tasks": [ { "subject": "Task associated to opportunity" } ] } ] }
Svar
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(3c6e4b5f-86f6-e411-80dd-00155d2a68cb)
Tilknyt objekter ved oprettelse
Hvis du vil knytte nye objekter til eksisterende objekter, når de oprettes, skal du angive værdien for navigationsegenskaber med enkeltværdi ved hjælp af @odata.bind-anmærkningen.
Følgende anmodningstekst udgivet til firmaobjektsættet vil oprette et nyt firma, der er knyttet til en eksisterende kontakt med contactid-værdien 00000000-0000-0000-0000-000000000001.
Anmodning
POST cc_WebAPI_ServiceURI/accounts HTTP/1.1 Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 Accept: application/json { "name":"Sample Account", "primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)" }
Svar
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)
Bemærk
Tilknytning af objekter på denne måde ved hjælp af en navigationsegenskab med gruppeværdi, understøttes ikke af Web-API.
Oprette med data, der er returneret
Bemærk
Denne funktion blev tilføjet med December 2016 – opdatering til Dynamics 365 (online og det lokale miljø).
Du kan sammensætte din POST-anmodning, så data fra den oprettede post returneres med status som 201 (Created). 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.
Når der oprettes et objekt på denne måde, returneres OData-EntityId-hovedet, som indeholder URI'en til den oprettede post, ikke.
I dette eksempel oprettes et nyt kontoobjekt og de ønskede data i svaret returneres.
Anmodning
POST cc_WebAPI_ServiceURI/accounts?$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": "Sample Account", "creditonhold": false, "address1_latitude": 47.639583, "description": "This is the description of the sample account", "revenue": 5000000, "accountcategorycode": 1 }
Svar
HTTP/1.1 201 Created 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/\"536530\"", "accountid": "d6f193fc-ce85-e611-80d8-00155d2a68de", "accountcategorycode": 1, "description": "This is the description of the sample account", "address1_latitude": 47.63958, "creditonhold": false, "name": "Sample Account", "createdon": "2016-09-28T22:57:53Z", "revenue": 5000000.0000, "_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6" }
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
Hente et objekt ved hjælp af web-API'et
Opdatere og slette objekter 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