Amostra de operações básicas API da Web
Publicado: janeiro de 2017
Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Este grupo de exemplos demonstram como executar operações associativas e CRUD (Criar, Recuperar, Atualizar e Excluir) usando a API Web do Microsoft Dynamics 365. Este exemplo foi implementado como um projeto separado para as seguintes linguagens:
Este tópico descreve um conjunto comum de operações implementadas para cada exemplo neste grupo. Este tópico descreve as solicitações HTTP e respostas e saída de texto que cada exemplo neste grupo deverá executar sem os detalhes específicos ao idioma. Veja as descrições específicas do idioma e os exemplos individuais para obter detalhes sobre como essas operações são executadas.
Demonstrações
Este exemplo é dividido nas seções principais a seguir, contendo operações de dados de consulta da API da Web do Dynamics 365 que são abordadas detalhadamente nos tópicos conceituais associados especificados.
Seção de código |
Tópicos conceituais associados |
---|---|
Seção 1: Criar e atualizar operações básicas |
Criar básico |
Seção 2: Crie uma associação |
|
Seção 3: Criar entidades relacionadas (inserção profunda) |
|
Seção 4: Associar e desassociar as entidades existentes |
|
Seção 5: Excluir entidades (limpeza de exemplos) |
Observação
Para facilitar, os cabeçalhos HTTP pertinentes foram omitidos. As URLs dos registros podem variar com base no endereço da organização e na ID do registro atribuído pelo servidor do Dynamics 365.
Seção 1: Criar e atualizar operações básicas
Essa seção cria um único contato e executa uma série de atualizações no uso dessa instância. Observe que o cabeçalho de reposta OData-EntityId contém a URL para esse registro recém-criado (instância de entidade), que inclui de forma parentética a ID exclusiva do registro.
Crie um novo contato chamado Peter Cambel.
Solicitação 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" }
Resposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)
Saída do console
Contact 'Peter Cambel' created.
As propriedades disponíveis para cada tipo são definidas no documento de metadados e também são documentadas para cada tipo na seção Web API EntityType Reference. Para obter informações gerais, consulte Tipos de API da Web e operações.
Atualize o contato com os valores da receita anual ($80,000) e o cargo (Junior Developer).
Solicitação 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" }
Resposta HTTP
HTTP/1.1 204 No Content
Saída do console
Contact 'Peter Cambel' updated with job title and annual income.
Recupere o contato com seu conjunto de propriedades inicializadas de forma explícita.fullname é uma propriedade somente leitura que é calculada a partir das propriedades firstname e lastname, que foram inicializadas de forma explícita quando a instância foi criada. Diferentemente, a propriedade description não foi inicializada de forma explícita. Portanto, ela retém seu valor padrão, uma cadeia de caracteres null.
Observe que a resposta, bem como os valores e os cabeçalhos comuns solicitados, também retornam automaticamente os tipos a seguir de informações adicionais:
O ID principal do tipo de entidade atual, aqui contactid.
Um valor ETag, denotado pela chave @odata.etag, que identifica a versão específica do recurso solicitado. Para obter mais informações, consulte Executar operações condicionais usando A API.
O contexto dos metadados, denotado pela chave @odata.context, fornece uma forma de comparar os resultados das consultas para determinar se vieram da mesma consulta.
_transactioncurrencyid_value que indica a moeda local da transação monetária.
Solicitação 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
Resposta 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" }
Saída do console
Contact 'Peter Cambel' retrieved: Income: 80000 Job title: Junior Developer Description: .
Importante
Você deve sempre usar a filtragem e a seleção em operações de recuperação para otimizar o desempenho. Para obter mais informações, consulte Consultar dados usando a API da Web.
Atualize uma instância da entidade de contato pelo fornecimento de novos valores às mesmas propriedades.
Solicitação 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" }
Resposta HTTP
HTTP/1.1 204 No Content
Saída do console
Contact 'Peter Cambel' updated: Job title: Senior Developer Annual income: 95000 Description: Assignment to-be-determined
Importante
Envie apenas propriedades alteradas apenas nas solicitações da atualização. Para obter mais informações, consulte Atualização básica.
Defina explicitamente uma propriedade única, um número de telefone principal. Note que a solicitação PUT e que a chave JSON chamada value são usadas para executar operações em propriedades individuais.
Solicitação 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" }
Resposta HTTP
HTTP/1.1 204 No Content
Saída do console
Contact 'Peter Cambel' phone number updated.
Recupere a mesma de propriedade única, o número de telefone principal. Observe novamente o uso da chave value.
Solicitação 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
Resposta 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" }
Saída do console
Contact's telephone# is: 555-0105.
Crie um contato semelhante, mas também retorne informações da instância na mesma operação. Esse último recurso é habilitado pelo cabeçalho do Prefer: return=representation. Esse recurso foi apresentado à Atualização de dezembro de 2016 para Dynamics 365 (online e local) e requer a versão 8.2 ou superior.
Solicitação 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" }
Resposta 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" }
Saída do 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)
Atualize este contato semelhante e também retorne informações da instância na mesma operação. Mais uma vez, esse último recurso é habilitado pelo cabeçalho do Prefer: return=representation. Esse recurso foi apresentado à Atualização de dezembro de 2016 para Dynamics 365 (online e local) e requer a versão 8.2 ou superior.
Solicitação 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" }
Resposta 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" }
Saída do console
Contact 'Peter_Alt Cambel' updated: Annual income: 95000 Job title: Senior Developer
Seção 2: Crie uma associação
Essa seção cria uma nova instância de conta chamada Contoso, Ltd. e a associa a um contato existente, Peter Cambel, criado na Seção 1: Criar e atualizar operações básicas. Essa criação e associação são executadas em uma única operação POST.
Crie uma conta Contoso, Ltd. e defina o atributo do contato principal como o contato Peter Cambel. A anotação da @odata.bind indica que uma associação está sendo criada por meio da associação da propriedade de navegação de valor único primarycontactid a um contato existente, Peter Cambel.
Solicitação 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)" }
Resposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)
Saída do console
Account 'Contoso Inc' created.
Recupere o contato principal da conta Contoso, Ltd. novamente usando $expand com a a propriedade de navegação de valor único primarycontactid para acessar o registro associado contact EntityType.
Solicitação 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
Resposta 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" } }
Saída do console
Account 'Contoso Inc' has primary contact 'Peter Cambel': Job title: Senior Developer Income: 95000
Seção 3: Criar entidades relacionadas (inserção profunda)
Essa seção demonstra como criar uma instância de entidade e instâncias de entidade relacionadas, em uma única solicitação POST. Com esse método, todas as instâncias são recém-criadas; não há nenhuma instância a qual se associar. Esta abordagem tem duas vantagens. É mais eficiente, substituindo diversas operações de criação e associação mais simples por uma operação combinada. Além disso, é atômica, onde a operação inteira tem êxito e todos os objetos relacionados são criados ou ocorre falha na operação e nada é criado.
Esta seção cria uma conta, o contato principal e um conjunto de tarefas para o contato em uma solicitação.
Crie uma conta Fourth Coffee e o contato principal Susie Curtis e suas três tarefas relacionadas em uma operação. Observe o uso de uma propriedade de navegação primarycontactid de valor único e da propriedade de navegação de valor de coleção Contact_Tasks para definir esses relacionamentos, respectivamente. As propriedades de navegação de valor único usam um valor de objeto, enquanto as propriedades de navegação de valor de coleção usam um valor de matriz.
Solicitação 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" } ] } }
Resposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)
Saída do console
Account 'Fourth Coffee' created.
Recupere seletivamente a conta do Fourth Coffee recém-criada e seu contato principal. É feita uma expansão da propriedade de navegação de valor único primarycontactid.
Solicitação 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
Resposta 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" } }
Saída do console
Account 'Fourth Coffee' has primary contact 'Susie Curtis': Job title: Coffee Master Income: 48000
Recupere seletivamente as tarefas associadas ao contato principal recuperado na operação anterior. É feita uma expansão da propriedade de navegação de valor de coleção Contact_Tasks.
Solicitação 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
Resposta 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" } ] }
Saída do 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
Seção 4: Associar e desassociar as entidades existentes
Esta seção mostra como associar e desassociar instâncias de entidade existentes. Formar uma associação existe o uso de um URI de referência e de um objeto de relacionamento, que são enviados na solicitação POST. A desassociação requer o envio de uma solicitação DELETE para o URI de referência daquela associação. Primeiro, uma associação de um-para-muitos é formada entre o contato e uma conta. Depois, uma associação de muitos-para-muitos é formada entre um concorrente e uma ou mais oportunidades.
Adicione Peter Cambel como um contato da conta do Fourth Coffee usando a propriedade de navegação de valor de coleção contact_customer_accounts. Observação o uso da chave especial @odata.id para especificar o registro associado.
Solicitação 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)" }
Resposta HTTP
HTTP/1.1 204 No Content
Saída do console
Contact 'Peter Cambel' associated to account 'Fourth Coffee'.
Confirme a operação anterior por meio da recuperação da coleção de contatos da conta do Fourth Coffee. A resposta contém a matriz com um único elemento, o contato recém-atribuído Peter Cambel.
Solicitação 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
Resposta 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" } ] }
Saída do console
Contact list for account 'Fourth Coffee': Name: Peter Cambel, Job title: Senior Developer
Remova a associação que tinha acabado de ser criada entre a conta do Fourth Coffee e o contato Peter Cambel.
Solicitação 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
Resposta HTTP
HTTP/1.1 204 No Content
Saída do console
Contact 'Peter Cambel' dissociated from account 'Fourth Coffee'.
Crie um concorrente chamado Adventure Works.
Solicitação 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" }
Resposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(77f77a42-5f0e-e611-80e0-00155da84c03)
Saída do console
Competitor 'Adventure Works' created.
Crie uma oportunidade chamada River rafting adventure.
Solicitação 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" }
Resposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)
Saída do console
Opportunity 'River rafting adventure' created.
Associe essa nova oportunidade ao concorrente novo. Observe que a mesma sintaxe geral é usada nessa associação muitos-para-muitos da mesma forma que foi usada na associação um-para-muitos anterior.
Solicitação 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)" }
Resposta HTTP
HTTP/1.1 204 No Content
Saída do console
Opportunity 'River rafting adventure' associated with competitor 'Adventure Works'.
Recupere de forma seletiva as oportunidades associadas ao concorrente Adventure Works. É retornada uma matriz que contém uma oportunidade única.
Solicitação 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
Resposta 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" } ] }
Saída do console
Competitor 'Adventure Works' has the following opportunities: Name: River rafting adventure, Description: Sales team on a river-rafting offsite and team building
Desassocie a oportunidade do concorrente. Novamente, observe que esse processo apresenta a mesma sintaxe geral usada para remover a associação de um-para-muitos.
Solicitação 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
Resposta HTTP
HTTP/1.1 204 No Content
Saída do console
Opportunity 'River rafting adventure' disassociated from competitor 'Adventure Works'.
Seção 5: Excluir entidades (limpeza de exemplos)
Esta seção demonstra como excluir instâncias de entidade. A mensagem correspondente é uma simples solicitação DELETE que usa o URI da instância de entidade a ser excluída. Se a entidade de destino tem um relacionamento pai-filho com outras entidades, então excluir o pai, por padrão, propagará automaticamente a exclusão das instâncias filho. Por exemplo, neste exemplo, as tarefas têm contato com pai. Para obter mais informações, consulte Comportamento do relacionamento entre entidades.
Cada elemento das URLs da coleção de entidades é excluído. O primeiro é um registro de contato para Peter Cambel.
Solicitação 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
Resposta HTTP
HTTP/1.1 204 No Content
As iterações subsequentes por meio da coleção excluem os registros restantes.
Solicitação 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 . . .
Confira Também
Use a API da Web do Microsoft Dynamics 365
Criar uma entidade usando a API da Web
Recuperar uma entidade usando a API Web
Atualizar e excluir entidades que usam a API Web
Associar e desassociar entidades usando a API Web
Amostra de operações básicas API da Web (C#)
Exemplo de operações básicas da API Web (JavaScript do lado do cliente)
Microsoft Dynamics 365
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais