Atualizar e excluir entidades que usam a API Web
Publicado: janeiro de 2017
Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
As operações de modificação de dados são uma parte principal da API Web. Além de uma atualização e exclusão simples, você pode executar operações em atributos simples e compor solicitações de upsert que atualizarão ou inserirão uma entidade dependendo de sua existência.
Observação
Os metadados que definem entidades são atualizados de uma maneira diferente.Para obter mais informações:Criar e atualizar definições de entidade usando API da Web
Neste tópico
Atualização básica
Atualização com dados retornados
Atualizar o valor de uma única propriedade
Excluir o valor de uma única propriedade
Upsert de uma entidade
Exclusão básica
Atualização básica
As operações de atualização usam o verbo HTTP PATCH. Passe um objeto JSON contendo as propriedades que você deseja atualizar para o URI que representa a entidade. Uma resposta com um status de 204 será retornada se a atualização for bem-sucedida.
Esse exemplo atualiza um registro de conta existente com o valor accountid de 00000000-0000-0000-0000-000000000001.
Importante
Ao atualizar uma entidade, inclua somente as propriedades que você está alterando no corpo da solicitação. A simples atualização das propriedades de uma entidade que você recuperou anteriormente e a inclusão desse JSON em sua solicitação atualizarão cada propriedade embora o valor seja o mesmo. Isso pode fazer com que as propriedades pareçam ter sido atualizadas nos dados de auditoria quando, na verdade, elas não foram realmente alteradas.
Solicitação
PATCH cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "name": "Updated Sample Account ", "creditonhold": true, "address1_latitude": 47.639583, "description": "This is the updated description of the sample account", "revenue": 6000000, "accountcategorycode": 2 }
Resposta
HTTP/1.1 204 No Content OData-Version: 4.0
Observação
Confira Associar entidades na atualização para obter informações sobre como associar propriedades na atualização.
Atualização com dados retornados
Observação
Esse recurso foi adicionado no Atualização de dezembro de 2016 para Dynamics 365 (online e local).
Para recuperar dados de uma entidade que você esteja atualizando, redija sua solicitação PATCH de modo que os dados do registro criado sejam retornados com um status 200 (OK). 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.
Este exemplo atualiza uma entidade de conta e retorna os dados solicitados na resposta.
Solicitação
PATCH cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)?$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":"Updated Sample Account"}
Resposta
HTTP/1.1 200 OK 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/\"536537\"", "accountid": "00000000-0000-0000-0000-000000000001", "accountcategorycode": 1, "description": "This is the description of the sample account", "address1_latitude": 47.63958, "creditonhold": false, "name": "Updated Sample Account", "createdon": "2016-09-28T23:14:00Z", "revenue": 5000000.0000, "_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6" }
Atualizar o valor de uma única propriedade
Quando desejar atualizar o valor de uma única propriedade, use uma solicitação PUT com o nome da propriedade acrescentado ao Uri da entidade.
O exemplo a seguir atualiza a propriedade name de uma entidade conta existente com o valor de accountid de 00000000-0000-0000-0000-000000000001.
Solicitação
PUT cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)/name HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 {"value": "Updated Sample Account Name"}
Resposta
HTTP/1.1 204 No Content OData-Version: 4.0
Excluir o valor de uma única propriedade
Para excluir o valor de uma única propriedade, use uma solicitação DELETE com o nome da propriedade acrescentado ao Uri da entidade.
O exemplo a seguir exclui o valor da propriedade description de uma entidade conta com o valor de accountid de 00000000-0000-0000-0000-000000000001.
Solicitação
DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)/description HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Resposta
HTTP/1.1 204 No Content OData-Version: 4.0
Observação
Isso não pode ser usado com uma propriedade de navegação com valor único para desassociar duas entidades. Para ver uma abordagem alternativa, consulte Remover uma referência a uma entidade.
Upsert de uma entidade
Uma operação de upsert é exatamente igual a uma atualização. Ela usa uma solicitação de PATCH e usa um URI para fazer referência a uma entidade específica. A diferença é que, se a entidade não existir, ela será criada. Se já existir, ela será atualizada. Geralmente, ao criar uma nova entidade, você deixa que o sistema atribua um identificador exclusivo. Essa é uma prática recomendada. Mas se for necessário criar um registro com um valor de id específico, uma operação de upsert fornecerá uma maneira para fazer isso. Isso pode ser útil em situações em que você está sincronizando dados em outros sistemas.
Mas há situações em que você quer usar upsert, mas quer evitar uma das ações potenciais padrão: criar ou atualizar. Você pode atingir isso por meio da adição de cabeçalhos If-Match ou If-None-Match. Para obter mais informações, consulte Limite de operações de upsert.
Exclusão básica
Uma operação de exclusão é muito simples. Use o verbo DELETE com o URI da entidade que você quer excluir. Esta mensagem de exemplo exclui uma entidade conta com o valor de chave primária de accountid igual a 00000000-0000-0000-0000-000000000001.
Solicitação
DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Resposta
Se a entidade já existir, você receberá uma resposta normal com o status 204 para indicar que a exclusão foi bem-sucedida. Se a entidade não for encontrada, você receberá uma resposta normal com o status 404.HTTP/1.1 204 No Content OData-Version: 4.0
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
Criar uma entidade usando a API da Web
Recuperar uma entidade usando 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