Criar uma entidade usando a API da Web
Publicado: janeiro de 2017
Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Use uma solicitação POST para enviar dados para criar uma entidade. É possível criar várias entidades relacionadas em uma única operação usando “inserção profunda”. Também é necessário saber como definir valores para associar uma nova entidade a entidades existentes usando a anotação de @odata.bind.
Observação
Para obter informações sobre como criar e atualizar os metadados da entidade usando A API, consulte Criar e atualizar definições de entidade usando API da Web.
Neste tópico
Criar básico
Criar entidades relacionadas em uma operação
Associar entidades ao criar
Criar com dados retornados
Criar básico
Esse exemplo cria uma entidade de conta. O cabeçalho de OData-EntityId de resposta contém o URI da entidade criada.
Solicitação
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 }
Resposta
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(7eb682f1-ca75-e511-80d4-00155d2a68d1)
Para criar uma entidade, você deve identificar os nomes e tipos válidos da propriedade. Para todas as entidades e atributos do sistema, você pode encontrar essas informações no tópico dessa entidade na Web API EntityType Reference. Para entidades ou atributos personalizados, consulte a definição dessa entidade no d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_csdl.Para obter mais informações:d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_entityTypes
Criar entidades relacionadas em uma operação
Você pode criar entidades relacionadas umas às outras definindo-as como valores de propriedades de navegação. Isso é conhecido como inserção profunda.
Assim como um criar básico, o cabeçalho de OData-EntityId de resposta contém o Uri da entidade criada. Os URIs das entidades relacionadas criadas não são retornados.
Por exemplo, o corpo da seguinte solicitação publicada no conjunto de entidades da Account criará um total de quatro novas entidades no contexto de criação de uma conta.
Um contato é criado porque ele é definido como uma propriedade de objeto da primarycontactid de propriedade de navegação de valor único.
Uma oportunidade é criada porque ela é definida como um objeto em uma matriz que é definida como o valor de uma opportunity_customer_accounts de propriedade de navegação de valor de conjunto.
Uma tarefa é criada porque ela é definida como um objeto em uma matriz que é definida como o valor de uma Opportunity_Tasks de propriedade de navegação de valor de conjunto.
Solicitação
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" } ] } ] }
Resposta
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(3c6e4b5f-86f6-e411-80dd-00155d2a68cb)
Associar entidades ao criar
Para associar novas entidades a entidades existentes quando elas são criadas, você deve definir o valor das propriedades de navegação de valor único usando a anotação de @odata.bind.
O corpo da seguinte solicitação publicada no conjunto de entidades das contas criará uma conta associada a um contato existente com o valor da contactid de 00000000-0000-0000-0000-000000000001.
Solicitação
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)" }
Resposta
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)
Observação
Associar entidades dessa forma com uma propriedade de navegação de valor de conjunto não é compatível com a API da Web.
Criar com dados retornados
Observação
Esse recurso foi adicionado no Atualização de dezembro de 2016 para Dynamics 365 (online e local).
É possível redigir sua solicitação POST de modo que os dados do registro criado seja retornados com um status 201 (Created). Para atingir seu resultado, você precisa usar a preferência return=representation nos cabeçalhos da solicitação.
Para controlar quais propriedades serão retornadas, acrescente a opção de consulta $select à URL para o conjunto de entidades. A opção de consulta $expand será ignorada se for usada.
Quando uma entidade é criada dessa maneira, o cabeçalho OData-EntityId com o URI para o registro criado não será retornado.
Este exemplo cria uma nova entidade de conta e retorna os dados solicitados na resposta.
Solicitação
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 }
Resposta
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" }
Confira Também
Amostra de operações básicas API da Web (C#)
Exemplo de operações básicas da API Web (JavaScript do lado do cliente)
Executar operações usando A API
Compor solicitações de HTTP e lidar com erros
Consultar dados 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
Usar funções da API Web
Use ações API da Web
Executar operações em lote usando a API da WEB
Representar outro usuário usando API da Web
Executar operações condicionais usando A API
Microsoft Dynamics 365
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais