Partilhar via


Executar operações de dados adicionais usando o ponto de extremidade OData

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

Além das operações dos dados, use o ponto de extremidade REST para o Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 executar mais algumas operações de dados especializadas.

Neste tópico

Definindo tipos complexos como null

Usando a inserção profunda

Atualizando propriedades individuais

Associando e dissociando registros

Definindo tipos complexos como null

Para configurar Tipos complexos do Microsoft Dynamics CRM como nulos, você deve definir explicitamente cada tipo primitivo dentro deles como nulo.

Por exemplo, para definir um tipo de EntityReference como nulo,você deve definir as propriedades Id, LogicalName e Name como nulas. O mesmo vale para OptionSetValue, Dinheiro, e BooleanManagedProperty.

Usando a inserção profunda

Inserção profunda é uma técnica em que você pode criar vários novos registros relacionados na mesma operação.

O seguinte exemplo mostra o código JavaScriptusando o jQuery definir uma conta e duas tarefas relacionadas. Para obter mais informações, consulte Use jQuery. Quando as tarefas são atribuídas à propriedade Account_Tasks que representa tarefas relacionadas e enviadas usando uma solicitação POST para a URI /AccountSet, a conta e as duas tarefas relacionadas são criadas em uma única operação:

var account = new Object();
account.Name = "Sample Account";

var task1 = new Object();
task1.Subject = "Sample Task 1";

var task2 = new Object();
task2.Subject = "Sample Task 2";

var tasks = new Array();
tasks.push(task1);
tasks.push(task2);

account.Account_Tasks = tasks;

var jsonAccount = window.JSON.stringify(account);

$.ajax({ type: "POST",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    url: ODataPath + "/AccountSet",
    data: jsonAccount,
    beforeSend: function (XMLHttpRequest) {
        //Specifying this header ensures that the results will be returned as JSON.
        XMLHttpRequest.setRequestHeader("Accept", "application/json");
    },
    success: function (data, textStatus, XmlHttpRequest) {},
    error: function (XMLHttpRequest, textStatus, errorThrown) {}
});

A inserção profunda funciona a partir de qualquer um dos lados de um relacionamento de entidade. O exemplo anterior criou novas tarefas no contexto de um novo registro de conta. Você poderá reverter isso para criar um novo registro de conta no contexto de criar uma nova tarefa relacionada, enviando uma solicitação POST para a URI /TaskSet.

Atualizando propriedades individuais

Você pode atualizar valores de atributo individuais para um registro usando uma solicitação HTTP PUT usando uma URI que trate de um atributo específico e passe o novo valor no corpo da solicitação.

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/Name

Usar essa URI em uma solicitação HTTP PUT com um novo nome para a conta no corpo atualizará apenas o valor dessa propriedade.

Associando e dissociando registros

Há duas maneiras de associar ou desassociar registros: atualizando os dados das propriedades de referência da entidade como se fossem qualquer outro tipo de propriedade ou através da URL do recurso do link.

Ao associar ou dissociar registros nos vários lados de um relacionamento de entidade N:1, use a URI $links. Para relacionamentos de entidade N:N e 1:N, use a URI sem $links.

O exemplo a seguir mostra que a URI retornará uma URI para todos os registros de oportunidade associados ao registro da conta especificado na URI:

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/opportunity_customer_accounts

Se você quiser associar um registro de oportunidade existente a essa conta, deve usar essa URI em uma solicitação HTTP POST que inclua a URI para essa oportunidade no corpo.

Observação

Ao associar um registro nos vários lados de um relacionamento de entidade N:1, qualquer valor existente será substituído quando a referência suportar apenas um único valor.

De modo semelhante, para desassociar uma oportunidade, você deve usar uma solicitação HTTP DELETE que inclua uma referência a um recurso de link específico. O exemplo a seguir mostra que a URI representa um registro da conta específico e associado a outra conta, usando a propriedade de referência da entidade ParentAccountId:

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/Referencedaccount_parent_account(guid'b0e5a4a6-8996-df11-a7c2-00155dba380d')

Uma solicitação HTTP DELETE contra essa URI removerá a associação.

Observação

Alguns relacionamentos de entidade são necessários. Você receberá uma mensagem de erro se tentar excluir os dados de um relacionamento necessário.

Confira Também

Executar operações de dados básicas usando o ponto de extremidade OData
Usar o ponto de extremidade do OData com os recursos da Web
Usar o ponto de extremidade do OData com os recursos da Web JScript e Ajax
Exemplo: Associar e desassociar registros usando o ponto de extremidade OData com JavaScript

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais