Del via


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