Compartir a través de


Realice las operaciones adicionales de datos mediante el extremo de OData

 

Publicado: noviembre de 2016

Se aplica a: Dynamics CRM 2015

Además de para realizar las operaciones básicas de datos, puede usar el extremo de REST para que Microsoft Dynamics CRM 2015 y actualización de Microsoft Dynamics CRM Online 2015 efectúe algunas operaciones de datos más especializadas.

En este tema

Establecer tipos complejos en null

Uso de la inserción en profundidad

Actualizar las propiedades individuales

Asociar y anular la asociación de registros

Establecer tipos complejos en null

Para establecer los Tipos complejos de Microsoft Dynamics CRM en null, debe establecer explícitamente cada tipo primitivo dentro de ellos en null.

Por ejemplo, para establecer un tipo EntityReference en null, debe establecer las propiedades Id, LogicalName y Name en null. Lo mismo sucede con OptionSetValue, Dinero y BooleanManagedProperty.

Uso de la inserción en profundidad

Inserción en profundidad es una técnica en la que puede crear varios registros nuevos relacionados en la misma operación.

El siguiente ejemplo muestra el código de JavaScript que usa jQuery para definir una cuenta y dos tareas relacionadas. Para obtener más información, vea Utilice jQuery. Cuando las tareas se asignan a la propiedad Account_Tasks que representa las tareas relacionadas y enviadas mediante una solicitud POST al URI /AccountSet, la cuenta y las dos tareas relacionadas se crean en una sola operación:

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) {}
});

La inserción en profundidad funciona desde cualquier lado de una relación entre entidades. En el ejemplo anterior se han creado tareas nuevas en el contexto de un nuevo registro de cuenta. Puede revertir esto para crear un nuevo registro de cuenta en el contexto de crear una nueva tarea relacionada enviando una solicitud POST al URI /TaskSet.

Actualizar las propiedades individuales

Puede actualizar los valores de atributo individuales para un registro usando una solicitud PUT HTTP mediante un URI que solucione un atributo específico y pasar el nuevo valor en el cuerpo de la solicitud.

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

Mediante este URI de una solicitud PUT HTTP con un nuevo nombre de la cuenta en el cuerpo actualizará el valor solo de la propiedad.

Asociar y anular la asociación de registros

Hay dos formas de asociar o anular la asociación de registros: actualizando los datos de las propiedades de referencia de la entidad como si fueran cualquier otro tipo de propiedad o a través de la dirección URL del recurso de vínculo.

Al relacionar o anular la asociación de registros en el lado de varios de una relación entre entidades N:1, use el URI $links. Para las relaciones entre entidades N:N y 1:N use el URI sin $links.

El siguiente ejemplo muestra que un URI devolverá un URI para cualquier registro de oportunidad asociado al registro de cuenta especificado en un URI:

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

Si desea asociar un registro de oportunidad existente a esta cuenta, debe usar este URI en una solicitud POST HTTP que incluya un URI de esa oportunidad en el cuerpo.

Nota

Al relacionar un registro en el lado de varios de una relación entre entidades N:1, cualquier valor existente se sobrescribirá si la referencia admite únicamente un solo valor.

De forma similar, para anular la asociación de una oportunidad, debe usar una solicitud DELETE HTTP que incluye una referencia a un recurso específico de vínculo. El siguiente ejemplo muestra que el URI representa un registro de cuenta específico asociado a otra cuenta mediante la propiedad de referencia de entidad ParentAccountId:

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

Una solicitud DELETE HTTP para este URI quitará la asociación.

Nota

Se requieren algunas relaciones entre entidades. Se mostrará el error si intenta eliminar los datos de una relación necesaria.

Ver también

Realizar las operaciones básicas de datos mediante el extremo de OData
Usar el extremo de OData con recursos web
Usar el extremo de OData con recursos web Ajax y JScript
Ejemplo: asociar y anular asociación de registros mediante el extremo de OData con JavaScript

© 2017 Microsoft. Todos los derechos reservados. Copyright