Asociar y anular la asociación de entidades mediante la API web

 

Publicado: enero de 2017

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Hay varios métodos que puede usar para asociar y anular la asociación de entidades. El método que aplique depende de si está creando o actualizando las entidades y si está trabajando en el contexto de la entidad a la que se hace referencia o la entidad de referencia.

En este tema

Agregue una referencia a una propiedad de navegación valorada como colección

Quite una referencia a una entidad

Cambie la referencia en una propiedad de navegación de un solo valor

Asociar entidades en la creación

Asociar entidades en la actualización

Agregue una referencia a una propiedad de navegación valorada como colección

En el siguiente ejemplo se muestra cómo asociar una entidad de oportunidad existente con el valor de opportunityid de 00000000-0000-0000-0000-000000000001 a la propiedad de navegación valorada como colección de opportunity_customer_accounts para una entidad de cuenta con el valor de accountid de 00000000-0000-0000-0000-000000000002. Esta es una relación 1:N pero puede realizar la misma operación para una relación N:N.

  • Solicitud

    POST cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref HTTP/1.1 
    Content-Type: application/json 
    Accept: application/json 
    OData-MaxVersion: 4.0 
    OData-Version: 4.0
    
    {
    "@odata.id":"cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001)"
    }
    
  • Respuesta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Quite una referencia a una entidad

Use una solicitud DELETE para quitar una referencia a una entidad. La forma en que se realiza es diferente en función de si se hace referencia a una propiedad de navegación valorada como colección o una propiedad de navegación de un solo valor.

  • Solicitud
    Para una propiedad de navegación valorada como colección, use lo siguiente.

    DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001) HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    O use esto.

    DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts(00000000-0000-0000-0000-000000000001)/$ref HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • Solicitud
    Para una propiedad de navegación de un solo valor, quite el parámetro de cadena de consulta $id.

    DELETE cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • Respuesta
    En cualquier caso, una respuesta correcta tiene el estado 204.

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Cambie la referencia en una propiedad de navegación de un solo valor

Puede asociar entidades estableciendo el valor de una propiedad de navegación de un solo valor utilizando la solicitud PUT con el patrón siguiente.

  • Solicitud

    PUT cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
     "@odata.id":"cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)"
    }
    
  • Respuesta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Asociar entidades en la creación

Como se describe en Crear entidades relacionadas en una operación, las entidades nuevas se pueden crear con relaciones utilizando inserción profunda.

Asociar entidades en la actualización

Puede asociar entidades en la actualización usando el mismo mensaje descrito en Actualización básica pero debe usar la anotación @odata.bind para establecer el valor de una propiedad de navegación de un solo valor. El siguiente ejemplo cambia la cuenta asociada a una oportunidad utilizando la propiedad de navegación de un solo valor customerid_account.

  • Solicitud

    PATCH cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001) HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
     "customerid_account@odata.bind":"cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)"
    }
    
  • Respuesta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Ver también

Ejemplo de operaciones básicas de la API web (C#)
Ejemplo de operaciones básicas de la API web (JavaScript del lado del cliente)
Realizar operaciones mediante la API web
Componer solicitudes HTTP y administrar errores
Consultar datos utilizando la API web
Cree una entidad usando API web
Recuperar una entidad usando API web
Actualizar y eliminar entidades mediante la API web
Usar funciones de la API web
Usar acciones de la API web
Ejecute las operaciones por lotes mediante API web
Suplantar a otro usuario utilizando la API web
Realizar operaciones condicionales mediante la API web

Microsoft Dynamics 365

© 2017 Microsoft. Todos los derechos reservados. Copyright