Definiciones de columnas

Las tablas incluyen una colección de columnas que representan los datos que se pueden incluir en cada registro. Los programadores deben comprender los diferentes tipos de columnas y cómo trabajar con ellos.

Nombres de columnas

Al igual que las tablas, cada columna tiene un nombre único definido cuando se crea. Este nombre aparece de diversas formas:

Name Descripción
SchemaName Normalmente, una versión con estilo de mayúsculas y minúsculas Pascal del nombre lógico. Por ejemplo: AccountNumber
LogicalName Un nombre todo en minúsculas. Por ejemplo: accountnumber

Al crear una columna personalizada, el nombre que elija se antepone con el valor del prefijo de personalización del editor de soluciones asociado con la solución donde se creó la columna.

No puede cambiar los nombres de una columna después de haberla creado.

Cada columna también tiene dos propiedades que pueden mostrar valores localizados. Los valores de estas propiedades se usan para referirse a las columnas en una aplicación.

Name Descripción
DisplayName Normalmente, es igual al nombre de esquema, pero puede incluir espacios. Por ejemplo: Número de cuenta
Description Una breve frase que describe la columna o que proporciona instrucciones al usuario. Por ejemplo: Escriba un número o un código de identificación de la cuenta para buscar e identificar rápidamente la cuenta en las vistas del sistema.
En aplicaciones basadas en modelos, esta información aparece cuando los usuarios pasen el ratón sobre la columna en un formulario.

Estos son los valores localizables que se usan para referirse a las columnas en una aplicación. Estos valores se puede cambiar en cualquier momento. Para agregar o editar valores localizados, consulte Traducir texto de tabla, formulario y de columna personalizados a otros idiomas.

Tipos de columna

AttributeTypeName property describe el tipo de una columna. Esta propiedad contiene un valor de tipo AttributeTypeDisplayName, que proporciona una etiqueta para cada uno de los diferentes tipos de columnas que existan.

Nota

No se confunda con AttributeType property. Los valores en esta propiedad antigua están fundamental alineados con AttributeTypeName , pero muestra ImageAttributeMetadata y MultiSelectPicklistAttributeMetadata como Virtual. Consulte AttributeTypeName property en lugar de AttributeType property.

En la siguiente tabla:

  • Estos tipos de agrupan por categoría para su comparación.
  • Por cada AttributeTypeDisplayName value, se incluye la correspondiente clase AttributeMetadata derivada del ensamblado .NET si está disponible. No hay una relación de 1:1 entre estos tipos y la etiqueta AttributeTypeDisplayName.
  • Esos tipos de columnas que se pueden crear como columnas personalizadas incluyen la etiqueta correspondiente que se muestra en la interfaz de usuario.
Categoría AttributeTypeDisplayName/
Tipo de AttributeMetadata
Puede crear/
Etiqueta
Descripción
Categorización BooleanType
BooleanAttributeMetadata

Dos opciones
Contiene el valor de opción seleccionado entre Sí/No, que indican normalmente un valor verdadero o falso.
Más información: Elección
Categorización EntityNameType
EntityNameAttributeMetadata
No Contiene un valor que se corresponde con una tabla del sistema. Para uso interno.
Categorización MultiSelectPicklistType
MultiSelectPicklistAttributeMetadata

Conjunto de opciones multiselección
Contiene varios valores seleccionados donde se pueden seleccionar varios valores.
Más información:
Opción
Columnas de elecciones
Categorización PicklistType
PicklistAttributeMetadata

Conjunto de opciones
Contiene el valor seleccionado donde se puede seleccionar una opción.
Más información: Elección
Categorización StateType
StateAttributeMetadata
No Contiene el valor que describe el estado de un registro de tablas.
Más información: Elección
Categorización StatusType
StatusAttributeMetadata
No Contiene el valor que describe la razón para el estado de un registro de tablas.
Más información: Elección
Recogida CalendarRulesType No Contiene una colección de registros de tabla CalendarRules.
No hay columnas que usen este tipo. Cuando se genera un proxy, la herramienta de generación de código crea dos columnas simuladas que no están presentes en la definición. Estas columnas representan una vista de registros de reglas de calendario asociados en una relación de uno a varios al registro de tablas.
Recogida PartyListType No Contiene una colección de registros de tabla ActivityParty.
Más información: Tabla ActivityParty
Fecha y hora DateTimeType
DateTimeAttributeMetadata

Fecha y hora
Contiene un valor de fecha y hora.
Todas las columnas de fecha y hora admiten valores de hasta 1/1/1753 12:00 a. m.
Archivo FileType
FileAttributeMetadata

Archivo
Contiene datos para admitir la recuperación de datos binarios para un registro de tabla.
Más información: Trabajar con definiciones de columna de archivo mediante código
Imagen ImageType
ImageAttributeMetadata

Image
Contiene datos para admitir la recuperación de datos de imagen para un registro de tabla.
Más información: Imágenes de entidad
Propiedad administrada ManagedPropertyType
ManagedPropertyAttributeMetadata
No Contiene datos que describen si el componente de la solución almacenado en el registro de la tabla se puede personalizar cuando está incluido en una solución administrada.
Más información: Propiedades administradas
Cantidad BigIntType
BigIntAttributeMetadata
Contiene un BigInt value.
Cantidad DecimalType
DecimalAttributeMetadata

Número decimal
Contiene un Decimal value. Precision property establece el nivel de precisión.
Cantidad DoubleType
DoubleAttributeMetadata

Número de punto flotante
Contiene un Double value. Precision property establece el nivel de precisión.
Cantidad IntegerType
IntegerAttributeMetadata

Número entero
Contiene un Int value
Cantidad MoneyType
MoneyAttributeMetadata

Moneda
Contiene un Decimal value. PrecisionSource property determina dónde se establece el nivel de precisión.
0: Precision property
1: columna Organization.PricingDecimalPrecision
2: columna TransactionCurrency.CurrencyPrecision en el registro de tabla
Referencia CustomerType
LookupAttributeMetadata

Cliente
Contiene una referencia a una cuenta o al registro de tabla de contacto.
Referencia LookupType
LookupAttributeMetadata

Búsqueda
Contiene una referencia a un registro de tabla. Los nombres lógicos de los registros válidos se almacenan normalmente en Targets property de la columna.
Referencia OwnerType
LookupAttributeMetadata
No Contiene una referencia a un registro de tabla de usuario o equipo.
Cadena MemoType
MemoAttributeMetadata

Varias líneas de texto
Contiene un valor de cadena pensado para mostrarse en un cuadro de texto de varias líneas.
Cadena StringType
StringAttributeMetadata

Línea de texto única
Contiene un valor de cadena pensado para mostrarse en un cuadro de texto de una línea.
Identificador único UniqueidentifierType
UniqueIdentifierAttributeMetadata
No Contiene un valor de identificador único de GUID.
Virtual VirtualType No Estas columnas no se pueden usar en código y pueden ser ignorados por lo general.

Operaciones admitidas y el uso de formulario para las columnas

Cada columna incluye las propiedades booleanas que describen las clases de operaciones en las que puede participar y cómo puede estar en un formulario.

Property Descripción
IsRequiredForForm Si la columna debe incluirse en un formulario
IsValidForCreate Si el valor de columna se puede establecer en una operación de crear
IsValidForForm Si la columna se puede incluir como una columna en un formulario
IsValidForRead Si el valor de la columna se puede recuperar
IsValidForUpdate Si el valor de columna se puede establecer en una operación de actualizar

Si intenta establecer un valor en una operación de crear o actualizar para una columna que no sea válida para esa operación, el valor se omite. Si intenta recuperar una columna que no es válida para la lectura, se devuelve un valor NULL.

Nivel de requisito de columna

La propiedad RequiredLevel es una propiedad booleana administrada que describe si es necesario un valor de columna.

Esta propiedad puede tener los valores siguientes establecidos:

Nombre Value UI Etiqueta Descripción
None 0 Opcional No se especifican requisitos.
SystemRequired 1 Necesario para el sistema Dataverse requiere que la columna tenga un valor.
ApplicationRequired 2 Necesario para la empresa La aplicación requiere que la columna tenga un valor.
Recommended 3 Recomendado por la empresa Se recomienda que la columna tenga un valor.

Dataverse solo aplica la opción SystemRequired para las columnas creados por el sistema. Las columnas personalizadas no se pueden configurar para que utilicen la opción SystemRequired. Dataverse no devuelve un error cuando una columna con ApplicationRequired aplicado no tiene un valor.

Las aplicaciones basadas en modelos aplican la opción ApplicationRequired y utilizan una presentación diferente para la opción Recommended. Los autores de clientes personalizados pueden usar esta información para requerir una validación similar u opciones de presentación.

Como RequiredLevel es una propiedad administrada, como editor de una solución administrada puede decidir si los consumidores de la solución pueden modificar esos valores de columnas en la solución.

Más información: Propiedades administradas

Columnas de fórmula, consolidadas y calculadas

Las columnas de fórmulas, consolidadas y calculadas liberan al usuario de tener que realizar cálculos manualmente y le permiten centrarse en su trabajo. Los administradores del sistema pueden definir una columna para que contenga el valor de muchos cálculos comunes sin necesidad de trabajar con un desarrollador. Los programadores también pueden usar las capacidades de la plataforma para realizar estos cálculos en vez de en su propio código.

Más información:

Formato de columna

Los valores de formato para columnas controla cómo se muestran en aplicaciones basadas en modelos. El desarrollador de aplicaciones personalizadas puede usar esta información para crear experiencias similares.

Formatos de entero

Use la propiedad Format con columnas enteras para mostrar las experiencias alternativas de usuario para este tipo.

Opción Descripción
None Muestra un cuadro de texto para editar un valor numérico
Duration Muestra una lista desplegable que contiene intervalos de tiempo. El usuario puede seleccionar un valor de la lista o escribir un valor entero que represente el número de minutos.
TimeZone Muestra una lista desplegable que contiene una lista de zonas horarias.
Language Muestra una lista desplegable con los idiomas que se hayan habilitado para la organización. Si no se han habilitado idiomas adicionales, el idioma base es la única opción. El valor guardado es el valor del LCID del idioma.

Formatos de cadena

Use FormatName property con columnas de cadena para establecer valores desde StringFormatName para controlar el formato de la columna de la cadena.

Name Descripción
Email La columna de formulario valida el valor de texto como dirección de correo electrónico y crea un vínculo mailto en la columna.
PhoneNumber La columna de formulario contiene un vínculo para iniciar una llamada de teléfono mediante Skype.
PhoneticGuide Para uso interno.
Text El formulario muestra un cuadro de texto.
TextArea El formulario muestra una columna de área de texto.
TickerSymbol El formulario muestra un vínculo que se abre para mostrar la cotización del valor bursátil correspondiente al símbolo.
URL El formulario muestra un vínculo para abrir la dirección URL.
VersionNumber Para uso interno.

Formatos de fecha y hora

La propiedad DateTimeBehavior controla el comportamiento de las columnas de fecha y hora. Hay tres opciones:

Opción Descripción breve
UserLocal Almacena el valor de fecha y hora como valor UTC en el sistema.
DateOnly Almacena el valor de fecha real con el valor de hora como 12:00 AM (00:00:00) en el sistema.
TimeZoneIndependent Almacena los valores reales de fecha y hora en el sistema independientemente de la zona horaria del usuario.

Use la propiedad Format para controlar cómo se muestra el valor en una aplicación basada en modelos independientemente de DateTimeBehavior.

Opción Descripción
DateAndTime Mostrar la fecha y hora completas
DateOnly Mostrar solo la fecha.

Más información: Comportamiento y formato de la columna de fecha y hora

Columnas de autonumeración

Puede agregar una columna de autonumeración para cualquier tabla. Actualmente, puede agregar la columna mediante programación. No hay ninguna interfaz de usuario para agregar este tipo de columna. Más información: Crear columnas de autonumeración

Opción

Las columnas que muestran un conjunto de opciones pueden hacer referencia a un conjunto de opciones definidas por la columna o pueden hacer referencia a una serie de opciones que se pueden compartir con más de una columna. Esto resulta útil cuando los valores de una columna también se aplican a otras columnas. Al hacer referencia a un conjunto de opciones común, las opciones se pueden mantener en un solo lugar. Las opciones que se pueden compartir son de elección global. Los definidos dentro de la columna son elección local.

Recuperar datos de las opciones

El SDK para .NET proporciona clases de solicitud que puede usar para recuperar las opciones usadas por una columna.

Usar SDK para .NET para recuperar opciones

Cada una de las columnas con opciones heredan de EnumAttributeMetadata incluyen una propiedad OptionSet. Esta propiedad contiene OptionSetMetadata que incluye las opciones en la propiedad Options.

Con el SDK para .NET puede usar las siguientes clases de solicitud para recuperar información sobre elecciones:

Clase Request Descripción
RetrieveAllOptionSetsRequest Recupera datos sobre todas las elecciones globales
RetrieveAttributeRequest Recupera datos sobre una columna, incluida cualquier opción
RetrieveMetadataChangesRequest Recupera los metadatos en función de una consulta que puede incluir una opción
Más información: Definiciones de esquema de consulta
RetrieveOptionSetRequest Recupera datos sobre una elección global.

Más información:

Usar la API web para recuperar valores de elecciones

La API web proporciona un estilo RESTful para consultar valores de elección. Puede recuperar opciones locales o globales recuperando la columna dentro de una tabla. El siguiente ejemplo devuelve OptionSetMetadata para la opción incluida en la Account.AccountCategoryCode property.

GET <organization url>/api/data/v9.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='accountcategorycode')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet

Con la API web, también puede usar la función RetrieveMetadataChanges.

Más información: Consultar definiciones de tabla con la API web > Recuperar atributos

Asignación de columnas

Al crear un nuevo registro de tablas en el contexto de un registro de tabla existente, puede automáticamente transferir algunos valores desde el registro de tablas existente como valores predeterminados para el nuevo registro de tabla. Esto simplifica la entrada de datos para las personas que usan aplicaciones basadas en modelos. Los usuarios de la aplicación ven los valores asignados y los pueden editar antes de guardar la entidad.

Para los programadores que crean clientes personalizados, se puede conseguir el mismo comportamiento si se utiliza el mensaje InitializeFrom (SDK Clase InitializeFromRequest o la API web InitializeFrom Function) para recopilar los datos de la entidad con los valores predeterminados configurados establecidos.

Más información

Columnas lógicas

Las columnas lógicas contienen valores que se almacenan en tablas de base de datos diferentes que otras columnas en la tabla. En la mayoría de los casos esta implementación interna no es relevantes para trabajar con Dataverse. Cuando usa columnas lógicas como orígenes de un campo calculado, los valores del campo calculado no se pueden ordenar. Utilice la propiedad AttributeMetadata.IsLogical para detectar si un atributo es un atributo lógico.

Consulte también

Tablas de Dataverse

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).