Partager via


Exemple d'opérations de base de l'API Web

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Ce groupe des exemples montre comment exécuter des opérations de création, d'extraction, de mise à jour et de suppression et des opérations associatives de base à l'aide de l'API Web Microsoft Dynamics 365. Cet exemple est mis en œuvre comme un projet distinct pour les langues suivantes :

Cette rubrique décrit un ensemble commun d'opérations mises en œuvre par chaque exemple de ce groupe. Cette rubrique décrit les demandes et les réponses HTTP et la sortie texte que chaque exemple de ce groupe effectuera sans détails spécifiques à la langue. Affichez les descriptions spécifiques à la langue et les exemples individuels pour plus d'informations sur la façon dont ces opérations sont effectuées.

Montre ce qui suit

Cet exemple est composé des principales sections suivantes, qui contiennent les opérations de données de requête de l'API Web Dynamics 365 qui sont décrites plus en détail dans les rubriques conceptuelles associées spécifiées.

Section Code

Rubriques conceptuelles associées

Section 1 : Opérations de création et de mise à jour de base

Création de base
Créer une entité avec les données retournées
Mise à jour de base
Mettre à jour une entité avec les données retournées

Section 2 : Créer avec association

Associer des entités lors de la création

Section 3 : Créer des entités associées (insertion profonde)

Créer des entités associées en une opération

Section 4 : Associer et dissocier des entités existantes

Associer et dissocier les entités à l'aide de l'API Web

Section 5 : Supprimer des entités (exemple de nettoyage)

Suppression de base

Notes

Par souci de concision, des en-têtes HTTP moins pertinents ont été omis. Les URL des enregistrements peuvent varier de l'adresse de base de l'organisation et de l'ID d'enregistrement attribué par votre serveur Dynamics 365.

Section 1 : Opérations de création et de mise à jour de base

Cette section crée un contact unique puis effectue une série de mises à jour sur cette instance. Notez que l'en-tête de réponse OData-EntityId contient l'URL de cet enregistrement créé récemment (instance d'entité), qui comprend entre parenthèses l'ID unique de cet enregistrement.

  1. Créez un contact, appelé Peter Cambel.

    Demande HTTP

    POST http://cc_WebAPI_ServiceURI/contacts HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "firstname": "Peter",
      "lastname": "Cambel"
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)
    

    Sortie de la console

    Contact 'Peter Cambel' created.
    

    Les propriétés disponibles pour chaque type sont définies dans le document des métadonnées et sont également documentées pour chaque type dans la section Web API EntityType Reference. Pour plus d’informations générales, voir Types d'API Web et opérations.

  2. Mettez le contact à jour avec les valeurs de chiffre d'affaires annuel ($80,000) et la fonction (Junior Developer).

    Demande HTTP

    PATCH http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "annualincome": 80000,
      "jobtitle": "Junior Developer"
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    

    Sortie de la console

    Contact 'Peter Cambel' updated with job title and annual income.
    
  3. Récupérez le contact avec son ensemble de propriétés explicitement initialisées. Le fullname est une propriété en lecture seule qui est calculée avec les propriétés firstname et lastname, qui ont été explicitement initialisées lorsque l'instance a été créée. En revanche, la propriété description n'a pas été explicitement lancée, elle conserve sa valeur par défaut, une chaîne null.

    Notez que la réponse, en plus des valeurs demandées et des en-têtes courants, renvoie également automatiquement les types suivants d'informations supplémentaires :

    • ID principal pour le type d'entité actuel, ici contactid.

    • Une valeur de l'ETAG, dénotée par la clé de @odata.etag, qui identifie la version spécifique de la ressource demandée. Pour plus d'informations, voir Effectuer les opérations conditionnelles à l'aide de l'API Web.

    • Le contexte des métadonnées, dénoté par la clé @odata.context, permet de comparer les résultats des requêtes afin de déterminer s'ils provenaient de la même requête.

    • _transactioncurrencyid_value qui indique la devise locale de la transaction monétaire.

    Demande HTTP

    GET http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)?$select=fullname,annualincome,jobtitle,description HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(fullname,annualincome,jobtitle,description)/$entity",
       "@odata.etag":"W/\"628883\"",
       "fullname":"Peter Cambel",
       "annualincome":80000.0000,
       "jobtitle":"Junior Developer",
       "description":null,
       "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03",
       "contactid":"60f77a42-5f0e-e611-80e0-00155da84c03"
    }
    

    Sortie de la console

    Contact 'Peter Cambel' retrieved:
            Income: 80000
            Job title: Junior Developer
            Description: .
    

    Important

    Vous devez toujours utiliser la sélection et le filtrage dans les opérations de récupération pour optimiser les performances. Pour plus d'informations, voir Interroger les données à l'aide de l'API Web.

  4. Mettez à jour l'instance de l'entité Contact en fournissant de nouvelles valeurs à ces mêmes propriétés.

    Demande HTTP

    PATCH http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "jobtitle": "Senior Developer",
      "annualincome": 95000,
      "description": "Assignment to-be-determined"
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    

    Sortie de la console

    Contact 'Peter Cambel' updated:
            Job title: Senior Developer
            Annual income: 95000
            Description: Assignment to-be-determined
    

    Important

    Envoyez uniquement les propriétés modifiées dans les demandes de mise à jour. Pour plus d'informations, voir Mise à jour de base.

  5. Définissez explicitement une propriété unique, le numéro de téléphone principal. Notez qu'il s'agit d'une demande PUT et que la clé JSON appelée value est utilisée lors de l'exécution d'opérations sur différentes propriétés.

    Demande HTTP

    PUT http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1 HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "value": "555-0105"
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    

    Sortie de la console

    Contact 'Peter Cambel' phone number updated.
    
  6. Récupérez la même propriété unique, le numéro de téléphone principal. Notez de nouveau l'utilisation d'une clé nommée value.

    Demande HTTP

    GET http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1 HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1",
       "value":"555-0105"
    }
    

    Sortie de la console

    Contact's telephone# is: 555-0105.
    
  7. Créez un contact similaire mais retournez également les informations sur l'instance dans la même opération. Cette dernière fonctionnalité est activée par l'en-tête Prefer: return=representation. Cette fonctionnalité a été introduite avec la Mise à jour de décembre 2016 pour Dynamics 365 (en ligne et local) et requiert la version 8.2 ou plus.

    Demande HTTP

    POST http://cc_WebAPI_ServiceURI/contacts?$select=fullname,annualincome,jobtitle,contactid HTTP/1.1
    OData-Version: 4.0
    Content-Type: application/json; charset=utf-8
    Prefer: return=representation
    {
      "firstname": "Peter_Alt",
      "lastname": "Cambel",
      "jobtitle": "Junior Developer",
      "annualincome": 80000,
      "telephone1": "555-0110"
    }
    

    Réponse HTTP

    HTTP/1.1 201 Created
    Content-Type: application/json; odata.metadata=minimal
    Preference-Applied: return=representation
    OData-Version: 4.0
    {
      "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts/$entity","@odata.etag":"W/\"758870\"","_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03","annualincome":80000.0000,"contactid":"199250b7-6cbe-e611-80f7-00155da84c08","jobtitle":"Junior Developer","fullname":"Peter_Alt Cambel"
    }
    

    Sortie de la console

    Contact 'Peter_Alt Cambel' created:
            Annual income: 80000
            Job title: Junior Developer
    Contact URI: http://cc_WebAPI_ServiceURI/contacts(199250b7-6cbe-e611-80f7-00155da84c08)
    
  8. Mettez à jour ce contact similaire et retournez également les informations sur l'instance dans la même opération. Ici aussi, cette fonctionnalité est activée par l'en-tête Prefer: return=representation. Cette fonctionnalité a été introduite avec la Mise à jour de décembre 2016 pour Dynamics 365 (en ligne et local) et requiert la version 8.2 ou plus.

    Demande HTTP

    POST http://cc_WebAPI_ServiceURI/contacts?$select=fullname,annualincome,jobtitle,contactid HTTP/1.1
    OData-Version: 4.0
    Content-Type: application/json; charset=utf-8
    Prefer: return=representation
    {
      "firstname": "Peter_Alt",
      "lastname": "Cambel",
      "jobtitle": "Junior Developer",
      "annualincome": 80000,
      "telephone1": "555-0110"
    }
    

    Réponse HTTP

    HTTP/1.1 201 Created
    Content-Type: application/json; odata.metadata=minimal
    Preference-Applied: return=representation
    OData-Version: 4.0
    {
      "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts/$entity","@odata.etag":"W/\"758870\"","_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03","annualincome":80000.0000,"contactid":"199250b7-6cbe-e611-80f7-00155da84c08","jobtitle":"Junior Developer","fullname":"Peter_Alt Cambel"
    }
    

    Sortie de la console

    Contact 'Peter_Alt Cambel' updated:
            Annual income: 95000
            Job title: Senior Developer
    

Section 2 : Créer avec association

Cette section crée une nouvelle instance de compte nommée Contoso, Ltd. et l'associe à un contact existant, Peter Cambel, qui a été créé dans Section 1 : Opérations de création et de mise à jour de base. Cette création et cette association sont effectuées en une seule opération POST.

  1. Créez le compte Contoso, Ltd. et définissez son attribut de contact principal sur le contact existant Peter Cambel. L'annotation @odata.bind indique qu'une association est créée, associant ici la propriété de navigation à valeur unique primarycontactid à un contact existant, Peter Cambel.

    Demande HTTP

    POST http://cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "name": "Contoso Inc",
      "telephone1": "555-5555",
      "primarycontactid@odata.bind": "http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)"
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)
    

    Sortie de la console

    Account 'Contoso Inc' created.
    
  2. Récupérez le contact principal du compte Contoso, Ltd., de nouveau à l'aide de $expand avec la propriété de navigation à valeur unique primarycontactid pour accéder à l'enregistrement contact EntityType associé.

    Demande HTTP

    GET http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=primarycontactid($select=fullname,jobtitle,annualincome) HTTP/1.1
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#accounts(name,primarycontactid,primarycontactid(fullname,jobtitle,annualincome))/$entity",
       "@odata.etag":"W/\"628886\"",
       "name":"Contoso Inc",
       "accountid":"65f77a42-5f0e-e611-80e0-00155da84c03",
       "primarycontactid":{ 
          "@odata.etag":"W/\"628885\"",
          "fullname":"Peter Cambel",
          "jobtitle":"Senior Developer",
          "annualincome":95000.0000,
          "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03",
          "contactid":"60f77a42-5f0e-e611-80e0-00155da84c03"
       }
    }
    

    Sortie de la console

    Account 'Contoso Inc' has primary contact 'Peter Cambel':
         Job title: Senior Developer
         Income: 95000
    

Section 3 : Créer des entités associées (insertion profonde)

Cette section montre comment créer une instance d'entité et des instances d'entité associées, une demande POST unique. Avec cette méthode, toutes les instances sont créées ; il n'y a aucune instance existante à associer. Cette approche a deux avantages. Elle est plus efficace, en remplaçant plusieurs opérations de création et d'association plus simples par une opération combinée. En outre, elle est atomique, car soit l'opération entière aboutit et tous les objets associés sont créés, soit l'opération échoue et aucun n'est créé.

Cette section crée un compte, son contact principal, et un ensemble de tâches pour ce contact en une requête.

  1. Créez le compte Fourth Coffee et son contact principal Susie Curtis et ses trois tâches associées en une opération. Notez l'utilisation de la propriété à valeur unique primarycontactid et la propriété de navigation à valeur de collection Contact_Tasks pour définir cette relation, respectivement. Les propriétés de navigation à valeur unique prennent la valeur d'un objet, alors que les propriétés de navigation à valeur de collection prennent la valeur d'un tableau.

    Demande HTTP

    POST http://cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "name": "Fourth Coffee",
      "primarycontactid": {
        "firstname": "Susie",
        "lastname": "Curtis",
        "jobtitle": "Coffee Master",
        "annualincome": 48000,
        "Contact_Tasks": [
          {
            "subject": "Sign invoice",
            "description": "Invoice #12321",
            "scheduledend": "2016-04-19T00:00:00-07:00"
          },
          {
            "subject": "Setup new display",
            "description": "Theme is - Spring is in the air",
            "scheduledstart": "2016-04-20T00:00:00-07:00"
          },
          {
            "subject": "Conduct training",
            "description": "Train team on making our new blended coffee",
            "scheduledstart": "2016-06-01T00:00:00-07:00"
          }
        ]
      }
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)
    

    Sortie de la console

    Account 'Fourth Coffee' created.
    
  2. Récupérez de manière sélective le compte nouvellement créé Fourth Coffee et son contact principal. Une extension est exécutée sur la propriété de navigation à valeur unique primarycontactid.

    Demande HTTP

    GET http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=primarycontactid($select=fullname,jobtitle,annualincome) HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0 
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#accounts(name,primarycontactid,primarycontactid(fullname,jobtitle,annualincome))/$entity",
       "@odata.etag":"W/\"628902\"",
       "name":"Fourth Coffee",
       "accountid":"6af77a42-5f0e-e611-80e0-00155da84c03",
       "primarycontactid":{ 
          "@odata.etag":"W/\"628892\"",
          "fullname":"Susie Curtis",
          "jobtitle":"Coffee Master",
          "annualincome":48000.0000,
          "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03",
          "contactid":"6bf77a42-5f0e-e611-80e0-00155da84c03"
       }
    }
    

    Sortie de la console

    Account 'Fourth Coffee' has primary contact 'Susie Curtis':
            Job title: Coffee Master
            Income: 48000
    
  3. Extrayez de manière sélective les tâches associées au contact principal récupéré dans l'opération précédente. Une extension est exécutée sur la propriété de navigation à valeur de collection Contact_Tasks.

    Demande HTTP

    GET http://cc_WebAPI_ServiceURI/contacts(6bf77a42-5f0e-e611-80e0-00155da84c03)?$select=fullname,&$expand=Contact_Tasks($select=subject,description,scheduledstart,scheduledend) HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0 
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(fullname,Contact_Tasks,Contact_Tasks(subject,description,scheduledstart,scheduledend))/$entity",
       "@odata.etag":"W/\"628892\"",
       "fullname":"Susie Curtis",
       "contactid":"6bf77a42-5f0e-e611-80e0-00155da84c03",
       "Contact_Tasks":[ 
          { 
             "@odata.etag":"W/\"628903\"",
             "subject":"Sign invoice",
             "description":"Invoice #12321",
             "scheduledstart":"2016-04-19T00:00:00Z",
             "scheduledend":"2016-04-19T00:00:00Z",
             "activityid":"6cf77a42-5f0e-e611-80e0-00155da84c03"
          },
          { 
             "@odata.etag":"W/\"628905\"",
             "subject":"Setup new display",
             "description":"Theme is - Spring is in the air",
             "scheduledstart":"2016-04-20T00:00:00Z",
             "scheduledend":"2016-04-20T00:00:00Z",
             "activityid":"6df77a42-5f0e-e611-80e0-00155da84c03"
          },
          { 
             "@odata.etag":"W/\"628907\"",
             "subject":"Conduct training",
             "description":"Train team on making our new blended coffee",
             "scheduledstart":"2016-06-01T00:00:00Z",
             "scheduledend":"2016-06-01T00:00:00Z",
             "activityid":"6ef77a42-5f0e-e611-80e0-00155da84c03"
          }
       ]
    }
    

    Sortie de la console

    Contact 'Susie Curtis' has the following assigned tasks:
    Subject: Sign invoice,
            Description: Invoice #12321
            Start: 4/19/2016
            End: 4/19/2016
    
    Subject: Setup new display,
            Description: Theme is - Spring is in the air
            Start: 4/20/2016
            End: 4/20/2016
    
    Subject: Conduct training
            Description: Train team on making our new blended coffee,
            Start: 6/1/2016
            End: 6/1/2016
    

Section 4 : Associer et dissocier des entités existantes

Cette section vous montre comment associer ou dissocier des instances d'entité existantes. Former une association nécessite l'utilisation d'une URI de référence et d'un objet de relation, qui sont ensuite envoyés dans une demande POST. Dissocier nécessite d'envoyer une demande DELETE à l'URI de référence pour cette association. Une association un-à-plusieurs est d'abord formée entre un contact et un compte. Puis une association plusieurs à plusieurs est formée entre un concurrent et une ou plusieurs opportunités.

  1. Ajoutez Peter Cambel en tant que contact du compte Fourth Coffee à l'aide de la propriété de navigation à valeur de collection contact_customer_accounts. Notez l'utilisation d'une clé spéciale @odata.id pour spécifier l'enregistrement associé.

    Demande HTTP

    POST http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts/$ref HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "@odata.id": "http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)"
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    

    Sortie de la console

    Contact 'Peter Cambel' associated to account 'Fourth Coffee'.
    
  2. Confirmez l'opération précédente en récupérant la collection de contacts pour le compte Fourth Coffee. La réponse contient le tableau avec un élément unique, le contact récemment affecté Peter Cambel.

    Demande HTTP

    GET http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts?$select=fullname,jobtitle HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0 
    {
      "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(fullname,jobtitle)","value":[
        {
          "@odata.etag":"W/\"632481\"","fullname":"Peter Cambel","jobtitle":"Senior Developer","contactid":"00b6e0e2-b010-e611-80e1-00155da84c03"
        }
      ]
    }
    

    Sortie de la console

    Contact list for account 'Fourth Coffee':
            Name: Peter Cambel, Job title: Senior Developer
    
  3. Supprimez l'association qui vient d'être créée entre le compte Fourth Coffee et le contact Peter Cambel.

    Demande HTTP

    DELETE http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts/$ref?$id=http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    

    Sortie de la console

    Contact 'Peter Cambel' dissociated from account 'Fourth Coffee'.
    
  4. Créez un concurrent appelé Adventure Works.

    Demande HTTP

    POST http://cc_WebAPI_ServiceURI/competitors HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "name": "Adventure Works",
      "strengths": "Strong promoter of private tours for multi-day outdoor adventures"
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(77f77a42-5f0e-e611-80e0-00155da84c03) 
    

    Sortie de la console

    Competitor 'Adventure Works' created.
    
  5. Créez une opportunité appelée River rafting adventure.

    Demande HTTP

    POST http://cc_WebAPI_ServiceURI/opportunities HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "name": "River rafting adventure",
      "description": "Sales team on a river-rafting offsite and team building"
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03) 
    

    Sortie de la console

    Opportunity 'River rafting adventure' created.
    
  6. Associez cette nouvelle opportunité à ce nouveau concurrent. Notez que la syntaxe générale utilisée dans cette association plusieurs à plusieurs est la même que celle qui a été utilisée dans l'association un-à-plusieurs précédente.

    Demande HTTP

    POST http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)/opportunitycompetitors_association/$ref HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "@odata.id": "http://cc_WebAPI_ServiceURI/competitors(77f77a42-5f0e-e611-80e0-00155da84c03)"
    }
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    

    Sortie de la console

    Opportunity 'River rafting adventure' associated with competitor 'Adventure Works'.
    
  7. Extrayez sélectivement toutes les opportunités associées au concurrent Adventure Works. Un tableau est renvoyé contenant une seule opportunité.

    Demande HTTP

    GET http://cc_WebAPI_ServiceURI/competitors(77f77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=opportunitycompetitors_association($select=name,description) HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 200 OK
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#competitors(name,opportunitycompetitors_association,opportunitycompetitors_association(name,description))/$entity",
       "@odata.etag":"W/\"628913\"",
       "name":"Adventure Works",
       "competitorid":"77f77a42-5f0e-e611-80e0-00155da84c03",
       "opportunitycompetitors_association":[ 
          { 
             "@odata.etag":"W/\"628917\"",
             "name":"River rafting adventure",
             "description":"Sales team on a river-rafting offsite and team building",
             "opportunityid":"7cf77a42-5f0e-e611-80e0-00155da84c03"
          }
       ]
    }
    

    Sortie de la console

    Competitor 'Adventure Works' has the following opportunities:
            Name: River rafting adventure,
            Description: Sales team on a river-rafting offsite and team building
    
  8. Dissociez l'opportunité du concurrent. Notez à nouveau, qu'il s'agit de la même syntaxe générale que pour supprimer une association un-à-plusieurs.

    Demande HTTP

    DELETE http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)/opportunitycompetitors_association/$ref?$id=http://[Token-CRM-Org-Name]/Contoso/api/data/v8.1/competitors(77f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    

    Sortie de la console

    Opportunity 'River rafting adventure' disassociated from competitor 'Adventure Works'.
    

Section 5 : Supprimer des entités (exemple de nettoyage)

Cette section vous montre comment supprimer des instances d'entité. Le message correspondant est une application DELETE simple qui utilise l'URI de l'instance d'entité à supprimer. Si l'entité cible a une relation parent-enfant avec d'autres entités, alors la suppression du parent, par défaut, provoquera automatiquement la suppression en cascade des instances enfants. Par exemple, dans cet exemple, les tâches ont le contact comme parent. Pour plus d'informations, voir Comportement des relations d’entité.

  1. Chaque élément de la collection d'URL d'entités est supprimé. Le premier est un enregistrement de contact pour Peter Cambel.

    Demande HTTP

    DELETE http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    Réponse HTTP

    HTTP/1.1 204 No Content
    
  2. Les itérations suivantes dans la collection suppriment les enregistrements restants.

    Demande HTTP

    DELETE http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    
    DELETE http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    
    DELETE http://cc_WebAPI_ServiceURI/contacts(6bf77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    
    DELETE http://cc_WebAPI_ServiceURI/competitors(77f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    
    DELETE http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    

Voir aussi

Utilisez l'API Web Microsoft Dynamics 365
Créer une entité à l'aide de l'API Web
Récupérer une entité à l'aide de l'API Web
Mettre à jour et supprimer des entités à l'aide de l'API Web
Associer et dissocier les entités à l'aide de l'API Web
Exemple d'opérations de base de l'API Web (C#)
Exemple d'opérations de base de l'API Web (Javascript côté client)

Microsoft Dynamics 365

© 2017 Microsoft. Tous droits réservés. Copyright