Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las definiciones de tabla de Microsoft Dataverse describen la estructura y el comportamiento de cada tabla que almacena datos estructurados. En este artículo se explica cómo trabajar con definiciones de tabla mediante programación, incluidos los nombres de tabla, las claves, la propiedad y los estados. Para los desarrolladores, las tablas corresponden a las clases que se usan al trabajar con datos en Microsoft Dataverse.
La clase EntityMetadata del SDK para .NET y el tipo de entidad EntityMetadata de la API web contienen las propiedades que definen las tablas.
Nota:
Al recuperar definiciones de tabla mediante la API web, los datos de la respuesta usan el tipo complejo ComplexEntityMetadata. La diferencia es que Attributes, Keys, ManyToManyRelationships, ManyToOneRelationships y OneToManyRelationships son colecciones (arrays) en lugar de propiedades de navegación con valores de colección. Use el tipo de entidad EntityMetadata al crear o actualizar tablas mediante web API.
Nombres de tabla
Cada tabla tiene un nombre único que se define al crearla. Verá este nombre de varias maneras:
| Nombre de propiedad | Descripción | Example |
|---|---|---|
SchemaName |
Normalmente, una versión en PascalCase del nombre lógico. | Account |
CollectionSchemaName |
Forma plural del nombre del esquema. | Accounts |
LogicalName |
Todas las versiones en minúscula del nombre de esquema. | account |
LogicalCollectionName |
Todas las versiones en minúscula del nombre de esquema de la colección. | accounts |
EntitySetName |
Se usa para identificar colecciones con la API web. De forma predeterminada, es igual que el nombre de la colección lógica. Puede cambiar el nombre del conjunto de entidades actualizando mediante programación la definición de la tabla. Realice este cambio solo antes de escribir cualquier código de API web para la tabla. Para obtener más información, consulte Nombre del conjunto de entidades. |
accounts |
Nota:
Al crear una tabla personalizada con código, debe anteponer el prefijo de personalización del publicador de la solución al nombre SchemaName. Dataverse no comprueba que es el prefijo de personalización correcto, solo que tiene un prefijo de personalización. Asegúrese de usar el prefijo correcto porque no puede cambiarlo más adelante.
CollectionSchemaName, LogicalName, LogicalCollectionName y EntitySetName valores se generan utilizando el valor SchemaName.
Cada tabla también tiene tres propiedades que pueden mostrar valores localizados:
| Name | Descripción | Example |
|---|---|---|
DisplayName |
Normalmente, es igual al nombre de esquema, pero puede incluir espacios. | Cuenta |
DisplayCollectionName |
Versión plural del nombre para mostrar. | Cuentas |
Description |
Frase corta que describe la tabla. | Empresa que representa a un cliente o cliente potencial. La empresa a la que se factura en las transacciones comerciales. |
Use estos valores localizables para hacer referencia a las tablas de una aplicación. Puede cambiar estos valores cuando lo desee. Para agregar o editar valores localizados, vea Traducir texto personalizado de tabla, formulario y columna en otros idiomas.
Clave principal
El PrimaryIdAttribute valor de la propiedad es el nombre lógico de la columna que actúa como clave principal para la tabla.
De forma predeterminada, todas las tablas incluyen una sola columna de identificador único GUID denominada <table logical name>Id.
Nombre principal
El PrimaryNameAttribute valor de propiedad es el nombre lógico de la columna que almacena el valor de cadena que identifica el registro de tabla. Este valor aparece en vínculos que abren el registro en una interfaz de usuario.
Ejemplo: La tabla Contact usa la columna FullName como columna de nombre principal.
Nota:
No todas las tablas tienen un valor para la propiedad PrimaryNameAttribute. Algunas tablas no están diseñadas para mostrarse en una interfaz de usuario.
Imágenes de la tabla
El valor de la propiedad PrimaryImageAttribute es el nombre lógico de la columna de imagen que eliges para representar el registro de entidad. Una aplicación puede mostrar esta imagen.
Ejemplo: la columna EntityImagede la tabla Contact puede almacenar una imagen del contacto.
Nota:
Esta imagen es diferente del icono que muestran las aplicaciones basadas en modelos para una tabla. La IconVectorName propiedad contiene el nombre del recurso web SVG que establece el icono.
Para más información, consulte:
- Trabajar con definiciones de columna de imagen mediante código
- Utilizar datos de la columna de imagen
- Ejemplo: Operaciones de imagen usando la SDK de Dataverse para .NET
- Ejemplo: Operaciones de imagen usando la API web de Dataverse
Tipos de tablas
Las funcionalidades y el comportamiento de las tablas dependen de varias propiedades de tabla. La mayoría de estas propiedades son relativamente simples y tienen nombres descriptivos. Cuatro propiedades que requieren algo más de explicación son: propiedad de las tablas, tablas de actividad, tabla ActivityParty y tablas hijas.
Propiedad de la tabla
Puede clasificar las tablas por el modo en que los datos de ellos son propiedad. Este concepto es importante para comprender cómo aplicar la seguridad a las tablas. La OwnershipType propiedad contiene esta información. En la tabla siguiente se describen los distintos tipos de propiedad:
| Tipo de propiedad | Descripción |
|---|---|
BusinessOwned |
Los datos pertenecen a la unidad de negocio. Puede controlar el acceso a los datos en el nivel de unidad de negocio. |
None |
Los datos no pertenecen a otra tabla. |
OrganizationOwned |
Los datos pertenecen a la organización. Puede controlar el acceso a los datos en el nivel de organización. |
UserOwned |
Los datos pertenecen a un usuario o a un equipo. Puede controlar las acciones que se pueden realizar en estos registros en el nivel de usuario. |
Filtered (versión preliminar) |
Los registros no tienen propietario. Puede controlar el acceso a través de privilegios de rol de seguridad en función de los filtros que evalúen los valores de columna. |
Al crear nuevas tablas, las únicas opciones de propiedad son: OrganizationOwned, UserOwnedo Filtered (versión preliminar). No se puede cambiar esta opción después de realizar una elección.
Elija UserOwned cuando los registros necesitan la propiedad de usuario o equipo, la asignación y el uso compartido. Elija OrganizationOwned cuando el acceso de nivel de organización sea suficiente. Elija Filtered (versión preliminar) cuando necesite acceso de nivel de fila en función de los valores de columna, con permisos concedidos a través de filtros de rol de seguridad. Los registros de las tablas Filtered no tienen propietario y no se pueden asignar ni compartir.
También puede aplicar filtros de registro a las tablas UserOwned y OrganizationOwned para controlar el acceso de nivel de fila en función de los valores de columna sin cambiar su OwnershipType. Estas tablas conservan su modelo de propiedad existente.
Más información sobre la propiedad de los registros filtrados:
- Propiedad de los registros filtrados (versión preliminar)
- Titularidad filtrada de registros mediante código (versión preliminar)
Tablas de actividades
Una actividad es una tarea que un usuario realiza o planea realizar. Una actividad es cualquier acción para la que puede realizar una entrada en un calendario.
Las actividades se modelan de forma diferente a otros tipos de tablas que almacenan datos empresariales. Los datos sobre las actividades se muestran con frecuencia en una lista, pero cada tipo de actividad requiere propiedades únicas. En lugar de usar una sola tabla activity con todas las propiedades posibles, use tipos independientes de tablas de actividad.
Cada una de estas tablas hereda las propiedades de una tabla ActivityPointer base ( tipo de entidad activitypointer de API web). Estas tablas tienen la IsActivity propiedad establecida en true.
| Tabla / Tipo de entidad |
Nombre para mostrar | Descripción |
|---|---|---|
|
adx_inviteredemption / adx_inviteredemption |
Canje de invitación | Contiene información sobre el canje de una invitación. |
|
adx_portalcomment / adx_portalcomment |
Comentario del portal | Una actividad que se utiliza para compartir información entre el usuario y el cliente en el portal. |
|
Motor de / Cita |
Appointment | Commitment que representa un intervalo de tiempo con horas de inicio/finalización y duración. |
|
chat / chat |
Chat de Teams | Para uso interno. Entidad que almacena datos de asociación de registros de Dynamics 365 con Microsoft Teams chat. |
|
Correo electrónico / |
Correo electrónico | Actividad entregada con protocolos de correo electrónico. |
|
Fax / fax |
Fax | Actividad que mantiene un seguimiento del resultado de llamadas y el número de páginas de un fax y que, opcionalmente, almacena una copia electrónica del documento. |
|
Carta / letter |
Carta | Actividad que realiza un seguimiento de la entrega de una carta. Actividad que puede contener la copia electrónica de la carta. |
|
Llamada telefónica / llamada |
Llamada de teléfono | Actividad para mantener un seguimiento de una llamada de teléfono. |
|
RecurringAppointmentMaster / recurringappointmentmaster |
Cita periódica | Cita principal de una serie de citas periódicas. |
|
SocialActivity / socialactivity |
Actividad social | Para uso interno. |
|
Tarea / tarea: |
Tarea | Actividad genérica que representa el trabajo que se debe realizar. |
Cuando un usuario crea uno de estos tipos de registros de tabla de actividad, el sistema crea un registro de tabla correspondiente ActivityPointer con el mismo ActivityId valor de columna de identificador único. No puede crear, actualizar ni eliminar instancias de la ActivityPointer tabla, pero puede recuperarlas. Este diseño le permite presentar todos los tipos de actividades juntas en una lista.
Puede crear tablas de actividad personalizadas que se comporten de la misma manera.
Tabla ActivityParty
Use la tabla ActivityParty (tipo de entidad activityparty de API web) para agregar estructura a las columnas de la tabla PartyListType de actividad que incluyen referencias a otras tablas. Use esta tabla al establecer valores para columnas de tabla de actividad como Email.to o PhoneCall.from. Configure la columna participationtypemask para definir el papel que desempeña la referencia. Los roles incluyen Sender, ToRecipient, Organizery mucho más.
Se puede consultar la tabla ActivityParty, pero no se puede crear, recuperar, actualizar o eliminar una parte de actividad fuera de la actividad con la que está relacionada.
Tablas secundarias
Las tablas en las que la IsChildEntity propiedad es true nunca tienen ningún privilegio definido y nunca son propiedad de usuario o equipo. Las operaciones que se pueden realizar en una tabla secundaria están enlazadas a una tabla a la que están asociadas a través de una relación de varios a uno. Los usuarios solo pueden realizar operaciones en tablas secundarias si pueden realizar la misma operación en la tabla relacionada. Las tablas secundarias se eliminan automáticamente cuando se elimina el registro de tabla del que dependen.
Por ejemplo, Comment (PostComment) y Like (PostLike) son elementos secundarios de la tabla Post .
Claves alternativas
Cada definición de clave alternativa describe una o varias columnas en combinación que identifican de forma única un registro. Normalmente, solo se aplican claves alternativas para la integración con sistemas externos. Esta característica es valiosa si va a integrar datos con un sistema que no admite claves de identificador único GUID. Puede definir un valor de columna único o una combinación de valores de columna para identificar de forma única una tabla. Al agregar una clave alternativa, se aplica una restricción de unicidad en estas columnas. No puede crear ni actualizar otro registro en la misma tabla con los mismos valores.
Para más información, consulte:
Estados de tabla
La mayoría de las tablas tienen dos propiedades para realizar un seguimiento del estado de un registro. Estas propiedades son StateCode, que aparecen como Estado en aplicaciones controladas por modelos y StatusCode, que aparece como Motivo de estado en aplicaciones controladas por modelos.
Ambas propiedades contienen un conjunto de opciones que muestran los valores válidos. Los StateCode valores y StatusCode están vinculados para que solo ciertas StatusCode opciones sean válidas para un determinado StateCode.
Este vínculo puede variar según la tabla, pero el patrón común para muchas tablas y el valor predeterminado para las tablas personalizadas es este patrón:
| Opciones de StateCode | Elecciones de StatusCode |
|---|---|
| 0: Activo | 1: Activo |
| 1: Inactivo | 2: Inactivo |
Algunas tablas tienen diferentes conjuntos de opciones.
Ejemplo: PhoneCall tabla StateCode y StatusCode opciones
| StateCode | Código de estado |
|---|---|
| 0: Abrir | 1: Abrir |
| 1: Completado | 2: Hecho 4: Recibido |
| 2: Cancelado | 3: Cancelado |
No puede personalizar el conjunto de códigos de estado válidos para una tabla, pero puede personalizar los códigos de estado. Puede agregar más StatusCode opciones para un StateCode correspondiente.
En el caso de las tablas personalizadas, puede definir más criterios para las transiciones válidas entre estados.
Para más información, consulte: