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