Comportamiento de relación de entidades

Cuando existe una relación entre entidades de uno a varios, hay comportamientos en cascada que se pueden configurar para preservar la integridad de los datos y automatizar los procesos de negocio. En este tema se explicarán algunos conceptos clave y se describirá cómo configurar estos comportamientos en cascada.

Antes de describir cómo configurar los comportamientos de relaciones entre entidades, es útil analizar cómo se aplican a su negocio. Los tres conceptos clave son:

Preservación de la integridad de los datos

Cada entidad puede tener reglas que definen un registro válido. Por ejemplo, un registro de oportunidad de Dynamics 365 Customer Engagement (on-premises) debe incluir una referencia a un cliente potencial. Los usuarios no pueden crear un nuevo registro de oportunidad sin agregar un cliente existente o crear un nuevo registro de cliente.

Pero, ¿qué sucede si se elimina la cuenta o el contacto que representa al cliente? En un caso como este, las alternativas posibles son:

  • Limitar los intentos de eliminar un registro de cliente con una oportunidad asociada.

  • Poner en cascada la acción de eliminación cuando se elimina un registro de cliente correspondiente de modo que los registros de oportunidad relacionados se eliminen automáticamente.

    En Dynamics 365 Customer Engagement (on-premises), para las relaciones de uno a varios que relacionan oportunidades con clientes, como Opportunity.opportunity_customer_accounts y Contact.opportunity_customer_contacts, el comportamiento consiste en poner en cascada la acción de eliminación.

    Cuando se modelan los datos para usar en Dynamics 365 Customer Engagement (on-premises), tendrá que tomar decisiones similares en cuanto a cómo desea preservar la integridad de los datos.

Automatización de los procesos de negocio

Los procesos de negocio pueden exigirle que realice acciones en registros que cuentan con registros relacionados. Por ejemplo, es posible que deba asignar una cuenta a un nuevo comercial. Si ese registro de cuenta tiene registros de oportunidad, algunas opciones incluyen:

  • No hacer nada. Las oportunidades deben seguir perteneciendo a los individuos que trabajan con ellas.

  • Asignar todas las oportunidades al nuevo comercial. Como el nuevo propietario de este registro de cuenta, el comercial es ahora el responsable de todas las oportunidades relacionadas con dicha cuenta.

  • Asignar únicamente las oportunidades activas al nuevo comercial. Mantener al propietario para cualquier registro de oportunidad inactivo para fines de generación de informes.

  • Asignar únicamente las oportunidades que pertenecen al propietario anterior de la cuenta al nuevo comercial. Esto permite que el nuevo comercial reemplace al propietario anterior.

    Estas son las opciones comunes que se pueden configurar con el comportamiento de relaciones entre entidades en Dynamics 365 Customer Engagement (on-premises). Si necesita comportamientos diferentes, analice la posibilidad de adquirir una solución que contenga el comportamiento que necesita o de desarrollar un complemento que proporcione opciones adicionales.

Comportamiento en cascada

Estas opciones de configuración se denominan comportamientos en cascada ya que despliegan en cascada la jerarquía de entidades relacionadas. Por ejemplo, si el hecho de eliminar una cuenta provoca la eliminación de oportunidades relacionadas, ¿qué sucede con las actividades asociadas con las oportunidades? En Dynamics 365 Customer Engagement (on-premises), el comportamiento definido en cada una de las relaciones entre entidades para las entidades del tipo de actividad es que también se eliminan.

Sin embargo, no todas las entidades se tratan de esta forma. Por ejemplo, los pedidos y las facturas contienen datos empresariales importantes que no se deberían eliminar de modo accidental. Tienen configurado el comportamiento de relaciones entre entidades para limitar la eliminación de los registros de cliente o de oportunidad que están asociados con ellos. Para poder eliminar el cliente o la oportunidad que tiene un registro de pedido o factura relacionado, primero debe eliminar el pedido o la factura.

Cuando modela los datos empresariales mediante la creación de entidades personalizadas o cuando utiliza las entidades existentes del sistema de Dynamics 365 Customer Engagement (on-premises), analice el comportamiento que necesita y las consecuencias para la jerarquía completa de entidades relacionadas.

Relaciones jerárquicas entre entidades

Cada par de entidades que pueden tener una relación de 1:N pueden tener varias relaciones de 1:N entre ellas. Sin embargo, solo una de esas relaciones se puede considerar como una relación jerárquica entre entidades. Consulte Relaciones jerárquicas personalizables entre entidades para obtener una lista de todas las relaciones jerárquicas personalizables entre entidades.

Una relación jerárquica entre entidades es cualquier relación de 1:N en la que una de las opciones en cascada (definidas en CascadeType) en la columna Jerárquica de la siguiente tabla es verdadera.

Acción Jerárquica No jerárquica
Eliminar Cascada RemoveLink
Restringir
Compartir Cascada
UserOwned
Active
NoCascade
Dejar de compartir Cascada
UserOwned
Active
NoCascade
Asignar Cascada
UserOwned
Active
NoCascade
Cambiar primario Cascada
UserOwned
Active
NoCascade

Cada entidad de referencia en una relación de 1:N entre entidades tiene un atributo de referencia en el que la relación se puede considerar jerárquica.

Por ejemplo, si crea una nueva entidad personalizada y agrega una relación de 1:N entre entidades con la entidad de cuenta en la que la entidad personalizada es la entidad de referencia, puede configurar las acciones para que dicha relación entre entidades use las opciones de la columna Jerárquica. Si más adelante agrega otra relación de 1:N entre entidades con la entidad personalizada como la entidad de referencia, solo puede configurar las acciones para que usen las opciones de la columna No jerárquica.

Normalmente, esto significa que para cada par de entidad solo hay una relación jerárquica. Hay algunos casos en los que el atributo de referencia en la referencia puede incluir una referencia a más de un tipo de entidad.

Por ejemplo, la entidad de Opportunity tiene un atributo de referencia llamado customerid donde se puede guardar una referencia a un contacto o registro de cuenta. En este caso, hay dos relaciones jerárquicas de 1:N diferentes entre entidades.

Cualquier entidad de actividad, por ejemplo, una tarea, fax, llamada de teléfono, etc., tiene un conjunto similar de relaciones jerárquicas entre entidades para las entidades que se pueden asociar con el atributo de referencia regardingobjectid.

Configurar el comportamiento de relaciones entre entidades

Uso de la API web

Si trabaja con la API web, puede definir una a varias relaciones de uno a varios usando OneToManyRelationshipMetadata EntityType. Esta definición incluye el nombre de la entidad de intersección que se creará así como la forma en que la relación debería mostrarse en la aplicación utilizando AssociatedMenuConfiguration ComplexType, Label ComplexType y LocalizedLabel ComplexType. Más información: Creación de una relación de uno a varios.

Uso del servicio de organización

Cuando se usa CreateOneToManyRequest o UpdateRelationshipRequest, se incluye una instancia de una clase OneToManyRelationshipMetadata en el cuerpo de la solicitud. En la propiedad CascadeConfiguration de esa clase, se usa la clase CascadeConfiguration.

La clase CascadeConfiguration (CascadeConfiguration o CascadeConfiguration ComplexType) contiene las propiedades que representan las acciones que se pueden realizar en la entidad a la que se hace referencia en la relación de uno a varios entre entidades. A cada propiedad se le puede asignar uno de los valores de .CascadeType EnumType

valor Etiqueta de aplicación Description
Activas Poner los elementos activos en cascada Realizar la acción en todos los registros de entidad de referencia activos asociados con el registro de entidad al que se hace referencia.
Cascada Poner todas en cascada Realizar la acción en todos los registros de entidad de referencia asociados con el registro de entidad al que se hace referencia.
NoCascade No poner ninguna en cascada No hacer nada.
RemoveLink Quitar vínculo Quitar el valor del atributo de referencia de todos los registros de entidad de referencia asociados con el registro de entidad al que se hace referencia.
Restringir Restringir Impedir que el registro de entidad de referencia se elimine cuando existen entidades de referencia.
UserOwned Poner en cascada las que pertenecen al usuario Realizar la acción en todos los registros de entidad de referencia que pertenecen al mismo usuario que el registro de entidad de referencia.

La clase CascadeConfiguration (CascadeConfiguration o CascadeConfiguration ComplexType) contiene las propiedades siguientes que representan las acciones que se pueden realizar en la entidad a la que se hace referencia en la relación de uno a varios entre entidades.

Acción Descripción Opciones válidas
Asignar Se cambia el propietario del registro de entidad al que se hace referencia. Active
Cascada
NoCascade
UserOwned
Eliminar Se elimina el registro de entidad al que se hace referencia. Nota: Las opciones para esta acción son limitadas. Cascada
RemoveLink
Restringir
Combinar El registro se combina con otro registro. Nota: Para las entidades a las que se referencia que se pueden combinar, la única opción válida es Cascade. En otros casos, use NoCascade. Cascada
NoCascade
Cambiar primario Consulte Acerca de la acción de cambiar primario más adelante. Active
Cascada
NoCascade
UserOwned
Compartir Cuando el registro de entidad al que se hace referencia se comparte con otro usuario. Active
Cascada
NoCascade
UserOwned
Dejar de compartir Cuando se quita el uso compartido del registro de entidad al que se hace referencia. Active
Cascada
NoCascade
UserOwned

Acerca de la acción de cambiar primario

La acción de cambiar primario es muy similar a la acción de compartir, pero se ocupa de los derechos de acceso de lectura heredados en lugar de los derechos de acceso de lectura explícitos.

Nota

Para obtener más información acerca de los derechos de acceso heredados, vea Usar seguridad basada en registros para controlar el acceso a registros, en especial la sección Uso compartido y herencia.

La acción de cambiar primario es cuando se cambia el valor del atributo de referencia en una relación jerárquica. Cuando se produce una acción de cambiar primario, es posible que el ámbito deseado de los derechos de acceso de lectura heredados para las entidades relacionadas cambie. Las acciones en cascada relacionadas con la acción de cambiar primario hacen referencia a los cambios realizados en los derechos de acceso de lectura para el registro de entidad y cualquier registro de entidad relacionado con él. Para obtener más información sobre cómo se configura una relación entre entidades para que sea jerárquica, consulte Relaciones jerárquicas entre entidades.

Por ejemplo, hay una relación jerárquica entre Oportunidad y Cuenta que se basa en el atributo de referencia CustomerId. Si es el propietario de una cuenta y hay una oportunidad asociada con dicha cuenta, hereda los derechos de acceso de lectura a esa oportunidad y a cualquier registro asociado con ella. Si el valor del atributo de referencia CustomerId de la oportunidad se cambia para referirse a otra cuenta, el propietario de dicha cuenta hereda los derechos de acceso de lectura a la oportunidad si la acción de cambiar primario es Cascade. Puede deshabilitar esta herencia automática de los derechos de acceso de lectura si establece la acción de cambiar primario en NoCascade. Puede usar las opciones Active o UserOwned para especificar los filtros en los que los registros se ven afectados por el cambio en los derechos de acceso. Para cualquier registro relacionado con la oportunidad mediante una relación jerárquica, la acción de cambiar primario pone en cascada esas relaciones entre entidades y los derechos de acceso de lectura se heredan en función de los filtros establecidos para la acción de cambiar primario.

Vea también

Relaciones de uno a varios
Crear y actualizar relaciones entre entidades mediante la API web
Ampliar el modelo de metadatos para Dynamics 365 Customer Engagement (on-premises)
Personalizar metadatos de entidad
Personalizar metadatos de atributos de entidad
Metadatos de relación entre entidades
Asignaciones de entidades y atributos
Admitir varios idiomas con etiquetas
Usar seguridad basada en registros para controlar el acceso a registros
Ejemplo: Crear y recuperar las relaciones entre entidades