Introducción a las entidades
Las entidades se utilizan para modelar y administrar datos profesionales en Dynamics 365 Customer Engagement (on-premises). Por ejemplo, las entidades como cuenta, campaña, e incidente (caso) se pueden usar para realizar el seguimiento y el soporte de actividades de ventas, marketing y servicio. Una entidad tiene un conjunto de atributos, cada uno de los cuales representa un elemento de datos de un tipo determinado. Por ejemplo, la entidad cuenta tiene los atributos Name
, Address
y OwnerId
. Conceptualmente, una entidad es como una tabla de base de datos, y los atributos de entidad se corresponden con las columnas de la tabla. Crear un registro de entidad (o registro) en Dynamics 365 Customer Engagement (on-premises) es como agregar una fila a una tabla de base de datos. Las entidades se dividen en tres categorías: sistema, negocios y personalizadas. Como desarrollador que trabaja con datos profesionales, usará entidades de negocios y personalizadas. Dynamics 365 Customer Engagement (on-premises) usa las entidades del sistema para administrar todos los procesos internos, como los flujos de trabajo y los trabajos asincrónicos. No puede eliminar ni personalizar las entidades del sistema.
Las entidades de negocios forman parte de la instalación predeterminada de Dynamics 365 Customer Engagement (on-premises) y aparecen en la interfaz de usuario de personalización. Cuenta, contacto y carta son ejemplos de entidades de negocios. Después de la instalación, puede agregar entidades personalizadas a Dynamics 365 Customer Engagement (on-premises) para satisfacer necesidades de negocio específicas de la organización. En una solución de Dynamics 365 Customer Engagement (on-premises), puede establecer entidades y atributos de negocios y personalizados para que sean personalizables o no personalizables. Puede modificar una entidad personalizable cambiando su nombre, agregando nuevos atributos o modificando distintos valores, como la detección de duplicados o la configuración del soporte de la cola. No puede modificar una entidad no personalizable. Para obtener más información acerca de personalización, las soluciones administradas y no administradas, y las propiedades administradas, consulte Empaquetar y distribuir extensiones con soluciones de Dynamics 365 Customer Engagement (on-premises).
Si está usando el modelo de programación enlazada en tiempo de compilación, una entidad se representa mediante una clase, como la clase Account
, que representa la entidad cuenta. Los atributos de entidad se representan mediante las propiedades de clase. Esta clase se genera mediante la herramienta CrmSvcUtil. Para obtener más información, consulte Programación de tiempo de compilación de WCF (con establecimiento inflexible de tipos). También puede escribir programas que trabajen con los datos de entidad mediante un enfoque dinámico. Para obtener más información, consulte Programación de tiempo de ejecución de WCF (con establecimiento flexible de tipos).
Nota
En los servicios web de Dynamics 365 Customer Engagement (on-premises), el término “atributo de entidad” se usa indistintamente con el término “atributo” y el término “propiedad” (propiedad de clase).
Metadatos de la entidad
Los metadatos de una organización de Dynamics 365 Customer Engagement (on-premises) contienen las definiciones de las entidades y atributos, y las relaciones entre las entidades. Para obtener más información, consulte Los modelos de datos y metadatos en Dynamics 365 Customer Engagement (on-premises). Para un desarrollador, existen muchas situaciones en las que es útil poder encontrar todos los metadatos de una organización. Existen varias formas de encontrar y hacer referencia a los metadatos:
Use el Explorador de metadatos de la entidad para ver las entidades y sus propiedades en Dynamics 365 Customer Engagement (on-premises). Para obtener información detallada, consulte Examinar los metadatos de la organización.
Puede generar los metadatos para su organización mediante estos ejemplos:
Ejemplo: volcar la información de privilegios de entidad en un archivo
Ejemplo: volcar la información de relaciones de entidad en un archivo
Ejemplo: volcar la información del conjunto de opciones globales en un archivo
Puede crear los siguientes tipos de relaciones entre entidades: de uno a varios, de varios a uno y de varios a varios. Los registros de una relación de varios a varios se almacenan en una entidad de intersección. Tras definir una relación, use el mensaje AssociateRequest o el método Associate para crear un vínculo entre los registros especificados, y use el mensaje DisassociateRequest o el método Disassociate para quitar un vínculo entre los registros especificados.
En las relaciones de uno a varios o de varios a uno, algunas acciones del registro de la entidad primaria afectan a los registros de la entidad secundaria. Las acciones que tienen un comportamiento en cascada son: Asignar, Eliminar, Combinar, Compartir, Dejar de compartir y Cambiar primario. Para obtener más información, consulte Comportamiento de las relaciones de entidad.
Nombres usados en los metadatos de la entidad
Las entidades, los atributos y sus relaciones tienen varios nombres distintos. La siguiente tabla muestra los distintos nombres que se usan en los metadatos.
Nombre | Descripción |
---|---|
Nombre para mostrar | El nombre que se muestra al usuario. |
Nombre de recopilación para mostrar | Versión plural del nombre para mostrar. Solo se aplica a las entidades. |
Nombre lógico | El nombre único de la entidad o el atributo. Este nombre está totalmente en minúsculas. |
Nombre de esquema | El nombre de esquema se especifica durante la creación. Debe ser único. Se usa para crear el nombre lógico. Este nombre debe usar el estilo de mayúsculas y minúsculas Pascal. El nombre de esquema se usa para crear la clase de la entidad cuando se usa la programación enlazada en tiempo de compilación. |
Nota
Para una relación, atributo y entidad personalizados creados en el contexto de una solución, el prefijo de personalización en los nombres lógico y de esquema se define en el atributo Publisher.CustomizationPrefix
. Para una entidad personalizada creada mediante programación, establezca el prefijo de personalización en una cadena que tenga entre dos y ocho caracteres de longitud, todos caracteres alfanuméricos y que empiece por una letra. No puede comenzar por “mscrm”. Para obtener más información acerca de la personalización y las convenciones de nomenclatura de los metadatos de entidad, consulte Personalizar los metadatos de entidad.
Acciones en los registros de la entidad
Cada entidad admite varias acciones, como crear o eliminar un registro, o asignar un registro a otro usuario o equipo. No se permiten todas las acciones en todos los tipos o atributos de entidad. Para cada atributo, los metadatos definen si se admite una acción determinada. Por ejemplo, las propiedades de un atributo, como IsValidForCreate
, IsValidForRead
e IsValidForUpdate
le indican si puede crear, recuperar o actualizar el atributo. Más información: Operaciones válidas en atributos.
Para realizar una acción, llame uno de los métodos de IOrganizationService. Por ejemplo, para crear un registro en Dynamics 365 Customer Engagement (on-premises), puede usar el método IOrganizationService .Create o el método IOrganizationService .Execute con el correspondiente mensaje CreateRequest. Debe tener los privilegios y los derechos de acceso necesarios para realizar estas acciones. Para obtener más información, consulte El modelo de seguridad de Dynamics 365 Customer Engagement (on-premises).
En la siguiente tabla se enumeran las acciones que se permiten en los registros de las entidades de negocio y personalizadas, y los métodos y mensajes que puede usar para realizar estas acciones.
Acción | Descripción | Método y/o mensaje |
---|---|---|
Crear | Crea un registro de un tipo de entidad específico, incluidas las entidades personalizadas. | IOrganizationService.Create CreateRequest |
Actualización | Modifica el contenido de un registro. | IOrganizationService.Update UpdateRequest |
Delete | Elimina un registro. | IOrganizationService.Delete DeleteRequest |
Recuperar | Recupera un registro. | IOrganizationService.Retrieve RetrieveRequest |
Recuperar varios | Recupera una recopilación de registros. | IOrganizationService.RetrieveMultiple RetrieveMultipleRequest |
Asignar | Cambios propiedad de un registro. Es válido para las entidades que pertenecen a un usuario o que pertenecen a un equipo. | AssignRequest |
Compartir | Concede, modifica o revoca el acceso a un registro a otro usuario o equipo. Es válido para las entidades que pertenecen a un usuario o que pertenecen a un equipo. | GrantAccessRequest ModifyAccessRequest RevokeAccessRequest |
Asociar | Crea vínculos entre un registro y una recopilación de registros donde existe una relación entre las entidades. | AssociateRequest |
Desasociar | Elimina vínculos entre un registro y una recopilación de registros donde existe una relación entre las entidades. | DisassociateRequest |
Establecer estado | Establece el estado de un registro. | SetStateRequest |
Crear
Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios Crear. Los derechos de acceso no se aplican a la acción Crear, pero sí se aplican al registro vez que se ha creado.
Para ser el propietario de un registro o recuperar un registro recién creado, un usuario o equipo también debe tener derechos de acceso y privilegios de lectura en el nuevo registro. Por ejemplo, si tiene privilegios de creación para las cuentas, puede crear un registro de cuenta y asignárselo a otro usuario o equipo. Sin embargo, a menos que también tenga el privilegio de lectura para las cuentas y derechos de acceso al nuevo registro, no puede crear una cuenta y ser el propietario de esa nueva cuenta.
Actualizar
Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios Actualizar y derechos de acceso a los registros de entidad que se van a actualizar.
Cuando se actualiza un registro, solo se actualizan los atributos para los que se especifican datos o para los que se especifica null. Los demás valores permanecen como estaban. Además, si especifica datos para los atributos que no son válidos para la actualización, se omiten.
Eliminar
Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios Eliminar y derechos de acceso a los registros de entidad que se van a eliminar.
Las reglas en cascada determinan si los registros relacionados se eliminan al mismo tiempo. Para obtener más información, consulte Comportamiento de las relaciones de entidad.
Normalmente solo es necesario eliminar los registros que se han creado por error. Para algunos tipos de registros, es posible desactivar o cerrar el registro en lugar de eliminarlo. No todos los tipos de registro se pueden eliminar.
Recuperar
Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios Recuperar y derechos de acceso a los registros de entidad recuperados.
Recuperar varios
Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios Recuperar y derechos de acceso a los registros de entidad recuperados.
Para recuperar una recopilación de registros en función de los parámetros de consulta, puede usar una expresión de consulta o el lenguaje de consultas FetchXML. Las expresiones de consulta permiten crear un árbol de consultas usando una jerarquía de clases. Los métodos que usan una expresión de consulta devuelven una recopilación de registros con establecimiento inflexible de tipos. FetchXML permite crear consultas mediante un idioma XML. FetchXML devuelve una cadena XML. Por lo tanto, para usar los resultados de la consulta se necesita una mayor manipulación de datos. Para obtener más información, consulte Crear consultas para recuperar datos.
Asignar
Para las entidades que pertenecen a un usuario o equipo, se asigna un registro a un nuevo propietario. Para obtener más información, consulte Propiedad de entidad. Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios Asignar y derechos de acceso a los registros de entidad.
Las reglas en cascada determinan si los registros relacionados se asignan a otro usuario al mismo tiempo. Para obtener más información, consulte Comportamiento de las relaciones de entidad.
Cuando un registro se asigna a otro usuario o equipo, el propietario anterior sigue teniendo acceso a este registro si el atributo ShareToPreviousOwnerOnAssign
está establecido en true
. Sin embargo, el propietario anterior ya tendrá la propiedad del registro.
Nota
Después de cambiar la propiedad de un registro a otro usuario, un usuario recibirá un error “Acceso denegado” al intentar acceder a ese registro si el usuario tiene sólo un privilegio de registro de nivel de "usuario“ para ese registro.
Compartir
Para las entidades que pertenecen a un usuario o a un equipo, puede compartir un registro con otros usuarios o equipos. Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios GrantAccess, ModifyAccess y RevokeAccess, y derechos de acceso a los registros de entidad.
Las reglas en cascada determinan si los registros relacionados se comparten al mismo tiempo. Para obtener más información, consulte Comportamiento de las relaciones de entidad.
El uso compartido es la forma en que los usuarios de Dynamics 365 Customer Engagement (on-premises) pueden conceder acceso a los demás usuarios a la información del cliente cuando sea necesario. Por ejemplo, un comercial puede decidir compartir una oportunidad con otro comercial de forma que ambos puedan realizar un seguimiento del progreso de una venta importante.
Para compartir un registro, use la clase GrantAccessRequest. Use la clase ModifyAccessRequest para cambiar la forma en que se comparte un registro. Para eliminar el uso compartido de un registro, use la clase RevokeAccessRequest.
Un usuario debe tener derechos de uso compartido para poder compartir registros relacionados con los clientes, como contactos, cuentas, oportunidades, casos y pedidos, con cualquier otro usuario de Dynamics 365 Customer Engagement (on-premises). Cuando se comparte un registro, se pueden especificar los derechos que se van a conceder para el registro compartido.
En la siguiente lista se describen las reglas para compartir registros:
Cualquier usuario con privilegios para compartir un registro puede compartirlo con otros usuarios o equipos.
Cualquier usuario con privilegios para compartir un registro puede establecer los derechos de acceso del registro. Estos derechos de acceso controlan el acceso que un usuario que comparte un registro puede tener a ese registro.
El acceso de un registro compartido se puede establecer en cualquier derecho de acceso, como por ejemplo, lectura o escritura.
Los derechos de acceso de un registro compartido pueden ser distintos para cada usuario con el que se comparte el registro.
Un registro solo se puede compartir una vez con la misma entidad de seguridad. Un usuario puede compartir un registro si tiene privilegios de compartir ese registro.
Cualquier usuario con privilegios para compartir un registro empresarial puede modificar los derechos de acceso de los usuarios que han compartido el registro.
Cualquier usuario con privilegios para compartir un registro empresarial puede quitar el uso compartido para un usuario determinado con el que ha compartido el registro.
Cualquier usuario con privilegios para compartir un registro empresarial puede quitar el uso compartido para todos los usuarios con los que ha compartido el registro previamente.
Asociar
Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios Asociar y derechos de acceso a los registros de entidad que se van a actualizar.
La asociación crea varias asociaciones en una transacción entre el registro especificado y cada registro de la recopilación especificada para la relación especificada.
Para una relación de uno a varios, este método establece la propiedad ReferencingAttribute del registro relacionado en el identificador del registro especificado.
Para una relación de varios a varios, este método crea un registro en la tabla de intersección de la relación, que contiene los identificadores de los registros a los que se hace referencia y que hacen referencia. El nombre de la tabla de intersección se define en la propiedad IntersectEntityName de la relación.
Desasociar
Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios Desasociar y derechos de acceso a los registros de entidad que se van a actualizar.
La desasociación anula la operación de asociación actualizando los registros a los que se hace referencia y que hacen referencia y eliminando el registro de intersección cuando sea necesario. Para obtener más información, consulte Asociar.
Establecer estado
Para llevar a cabo esta acción, el autor de la llamada debe tener privilegios SetState y derechos de acceso a los registros de entidad que se van a actualizar. El mensaje SetStateRequest actualiza los atributos StateCode
y StatusCode
del registro de entidad.
Propiedad de la entidad
Existen varios tipos de propiedad de la entidad. La mayoría de las entidades, incluidas las entidades personalizadas, pertenecen a la organización, a un usuario o a un equipo. Hay algunas entidades de negocios que no tienen un propietario, como el tipo de descuento (lista de descuentos), donde la propiedad se define mediante la entidad de descuento primaria. El tipo de propiedad se configura en el momento de la creación de la entidad (tabla) y no se admite cambiar el tipo de propiedad más tarde. El tipo de propiedad define algunas de las operaciones que se pueden realizar en un registro. La propiedad de una entidad se define en la propiedad de metadatos OwnershipType. La tabla siguiente enumera las propiedades relacionadas con la propiedad.
Tipo de propiedad | Descripción |
---|---|
Propiedad de la organización | Contiene datos relacionados con algo que pertenece o que puede ver toda la organización. Las entidades que pertenecen a la organización no se pueden asignar ni compartir. Por ejemplo, los productos pertenecen a la organización. Estas entidades tienen un atributo denominado organizationid . |
Propiedad del negocio | Son las entidades que pertenecen a una unidad de negocio. Estas entidades tienen un atributo denominado owningbusinessunit . |
Propiedad del usuario o el equipo | Asignadas a un usuario o un equipo. Estas entidades contienen datos relacionados con los clientes, como las cuentas o los contactos. La seguridad se puede definir según la unidad de negocio del usuario o el equipo. Estas entidades tienen atributos denominados owningteam y owninguser . |
Ninguna | Estas entidades no son propiedad de otra entidad. |
Información adicional sobre la propiedad del usuario o del equipo
Puede usar el mensaje AssignRequest para cambiar la propiedad de un registro. Para obtener más información, consulte Asignar. Puede usar el mensaje ReassignObjectsOwnerRequest o ReassignObjectsSystemUserRequest para realizar la reasignación masiva de todos los registros de un propietario.
Nota
Al limitar la propiedad a los usuarios o equipos, se limita el acceso a los datos a los usuarios autorizados de la organización. Sin embargo, puede ampliar el acceso a los datos a usuarios y equipos adicionales compartiendo un registro de entidad con ellos. También puede asignar un registro a otro usuario o equipo. La configuración de la seguridad de las entidades que pertenecen a un usuario o equipo proporciona más niveles de acceso a los roles de seguridad que a las entidades que pertenecen a la organización. Los roles de seguridad de las entidades que pertenecen a la organización tienen dos niveles de acceso: Ninguno y Global. Las entidades que pertenecen a un usuario o a un equipo tienen cinco niveles de acceso: Global, Profundo, Local, Básico y Ninguno.
Estado y razón para el estado de los registros
La mayoría de las entidades de negocios tienen dos propiedades para realizar un seguimiento del estado de un registro. Son StateCode
, que se denomina Estado en la aplicación web y StatusCode
, que se denomina Razón para el estado en la aplicación web. Los valores de los atributos StateCode
y StatusCode
están vinculados. El atributo StateCode
se usa internamente para representar el estado de la entidad. El atributo StatusCode
se usa para mostrar este valor al usuario final. El conjunto de los códigos de estado válidos para una entidad no se puede personalizar, pero los códigos de la razón para el estado sí se pueden personalizar. Para la entidad de caso y las entidades personalizadas, puede definir criterios adicionales para transiciones válidas entre estados. Para obtener más información, consulte Personalizar metadatos de atributos de entidad y Definir transiciones de modelo de estado personalizadas.
Imágenes de entidad
Determinadas entidades del sistema tienen atributos de imagen. Puede agregar atributos de imagen a las entidades personalizadas. Cuando una entidad tiene un atributo de imagen, puede establecer la propiedad PrimaryImageAttribute para controlar si la imagen se mostrará en la aplicación. Cuando la imagen se muestra en la aplicación, los usuarios de la aplicación web pueden cargar imágenes para el registro de entidad. Las siguientes entidades del sistema tienen atributos de imagen. Las que están marcadas con un asterisco están activadas de forma predeterminada para mostrarlas en la aplicación.
- Cuenta \*
- KbArticle
- Campaña
- Incidente
- Competidor \*
- Conexión
- Contacto \*
- Contrato
- TransactionCurrency
- EmailServerProfile
- Objetivo
- Factura
- Cliente potencial \*
- Buzón
- Producto de oportunidad
- Pedido de venta
- Organización
- Producto \*
- Editor \*
- Cola
- Recurso \*
- SalesLiterature
- Zona de ventas
- SystemUser \*
Más información Atributos de datos de imagen.
Consulte también
Entidades de administración y seguridad
Generar diagramas de relación entre entidades
Definir transiciones de modelo de estado personalizadas
Modelar los datos profesionales con Dynamics 365 Customer Engagement (on-premises)
Metadatos de relación entre entidades
Comportamiento de las relaciones de entidad
Los modelos de datos y metadatos en Dynamics 365 Customer Engagement (on-premises)
Ampliar el modelo de metadatos para Dynamics 365 Customer Engagement (on-premises)
Empaquetar y distribuir las extensiones con soluciones de Dynamics 365 Customer Engagement (on-premises)
Entidades IOrganizationService
El modelo de seguridad de Dynamics 365 Customer Engagement (on-premises)
Ejemplo: establecer y recuperar imágenes de entidad
Ejemplo: asignar un registro a un equipo
Ejemplo: compartir registros utilizando los mensajes GrantAccess, ModifyAccess y RevokeAccess
Ejemplo: combinar dos registros
Ejemplo: validar el estado del registro y establecer el estado del registro
Ejemplo: registros consolidados relacionados con un registro específico