Share via


Introducción a los atributos de entidad

Las entidades incluyen un conjunto de atributos que representan los datos que se pueden incluir en cada registro. Los programadores deben comprender los diferentes tipos de atributos y cómo trabajar con ellos. Los metadatos para los atributos describen las operaciones y los comportamientos válidos de diferentes tipos de atributos. Varios tipos de atributos se pueden agrupar por comportamientos comunes.

La experiencia específica que tendrán los programadores depende de su estilo de desarrollo. Más información: Programación de entidades (comparación de enlace en tiempo de compilación, enlace en tiempo de ejecución y extensiones para desarrolladores).

Nota

En este tema se incluyen referencias a muchas propiedades de metadatos. Para ver los metadatos de las entidades de su organización, instale la solución Explorador de metadatos que se describe en Exploración de los metadatos de su organización. También puede examinar la documentación de referencia para las entidades en la Referencia de entidad.

Operaciones válida en atributos

Cada atributo tiene metadatos que describen las operaciones que admite. Debe conocer las operaciones que son válidas para los atributos con los que trabaja.

Propiedad AttributeMetadata Descripción
IsValidForCreate True si este valor de atributo es válido para establecer cuando se crea un registro; si no, false.
IsValidForRead True si este valor de atributo se puede recuperar; si no, false.
IsValidForUpdate True si este valor de atributo es válido para establecer cuando se actualiza un registro; si no, false.

Tipos de atributos

Los atributos se definen en los metadatos y la propiedad AttributeMetadata .AttributeTypeName contiene el valor que describe el tipo. Los integrantes estáticos de AttributeTypeDisplayName proporcionan la lista de tipos posibles.

Nota

La antigua propiedad AttributeType contiene datos que están fundamentalmente alineados con AttributeTypeName, pero muestran atributos ImageType como Virtual. Debe usar la propiedad AttributeTypeName en lugar de la propiedad AttributeType.

La siguiente sección agrupa los tipos de atributos en las siguientes categorías para poder compararlas más fácilmente:

Atributos de datos de categorización

Cada uno de los cinco atributos en este grupo se heredan de una clase base común de EnumAttributeMetadata y usan un conjunto predefinido de valores válidos para agrupar los registros en categorías.

Establezca atributos de lista desplegable, situación y estado mediante OptionSetValue con una propiedad de Value establecida en un entero que represente una opción válida en los metadatos.

Establezca atributos booleanos mediante un valor booleano, pero reconozca que se trata de una categorización limitada a solamente dos opciones.

Los atributos EntityName usan un valor de cadena que está limitado a un nombre lógico de entidad válido de la organización.

Los atributos de lista desplegable y booleanos personalizados se pueden definir como atributos calculados. Más información: Atributos calculados.

Tipo de metadatos Valor de AttributeTypeName Descripción
PicklistAttributeMetadata PicklistType Los valores válidos se definen en OptionMetadata.Value para el atributo definido en OptionSetMetadata.Options.

En las herramientas de personalización de la aplicación estos atributos se denominan campos de Conjunto de opciones.
StatusAttributeMetadata StatusType Estos atributos del sistema normalmente se denominan StatusCode. Los valores válidos se definen en StatusOptionMetadata.Value para el atributo definido en OptionSetMetadata.Options.

La propiedad StatusOptionMetadata.State para cada opción describe el valor válido para el correspondiente valor de StateCode. Antes de configurar StatusCode debe comprobar que sea válido para el valor actual de StateCode. Use el mensaje de SetStateRequest para establecer los valores de atributo de StatusCode y de StateCode si necesita cambiar el estado del registro.

Estos atributos pueden tener otras restricciones en las que se pueden establecer valores. La propiedad StatusOptionMetadata.TransitionData puede contener información sobre qué opciones se admiten cuando EntityMetadata.EnforceTransitions es verdadero. Más información: Definir transiciones de modelo de estado personalizadas.
StateAttributeMetadata StateType Estos atributos del sistema normalmente se denominan StatusCode. Los valores válidos se definen en StateOptionMetadata.Value para el atributo definido en OptionSetMetadata.Options.

StateCode no es válido para actualizar. Una vez creado el registro, StateCode solo se puede establecer usando el mensaje de SetStateRequest.

La propiedad StateOptionMetadata.DefaultStatus para cada opción describe el StatusCode predeterminado que se usará si no se establece como parámetro en la SetStateRequest.
BooleanAttributeMetadata BooleanType Los atributos booleanos se pueden configurar directamente con un valor booleano, pero como los otros también tienen una propiedad OptionSet con propiedades FalseOption y TrueOption que correspondan a las opciones booleanas. Cada una de esas propiedades define un conjunto de etiquetas localizadas que representa lo que suponen true y false para el atributo. Dentro de las herramientas de personalización en la aplicación estos atributos se denominan campos Dos opciones porque el significado de cada opción puede ser cualquier par mutuamente exclusivo de opciones, no sólo true y false. Por ejemplo, las opciones podrían ser grande y pequeño.
EntityNameAttributeMetadata EntityNameType Estos atributos del sistema suelen emparejarse con un atributo de referencia o identificador único que es válido para varios tipos. El valor de este atributo es un valor de cadena que representa el nombre lógico de una entidad. Si el atributo de referencia correspondiente es un EntityReference, el valor de este atributo es el mismo que el valor de propiedad de EntityReference.Name.

Atributos de datos de colección

Estos atributos del sistema devuelven colecciones de valores.

Valor de AttributeTypeName Descripción
CalendarRulesType No hay atributos reales que usan CalendarRulesType. Cuando se usa el estilo de enlace anticipado, la herramienta de generación de código creará los dos atributos simulados siguientes que no están presentes en los metadatos. Estos atributos representan realmente una vista de registros de reglas de calendario asociados en una relación de uno a varios a la instancia de entidad.

- Calendar.CalendarRules relación: calendar_calendar_rules
- Service.CalendarRules relación: service_calendar_rules
PartyListType Los siguientes atributos permiten establecer varios EntityReference para varios tipos de actividades.

ActivityPointer.allparties
Appointment.OptionalAttendees
Appointment.Organizer
Appointment.requiredattendees
CampaignActivity.from
CampaignActivity.Partners
CampaignResponse.Customer
CampaignResponse.from
CampaignResponse.Partner
Email.bcc
Email.cc
Email.from
Email.to
Fax.from
Fax.to
Letter.bcc
Letter.cc
Letter.from
Letter.to
PhoneCall.from
PhoneCall.to
RecurringAppointmentMaster.OptionalAttendees
RecurringAppointmentMaster.Organizer
RecurringAppointmentMaster.RequiredAttendees
ServiceAppointment.Customers
ServiceAppointment.Resources
SocialActivity.From
SocialActivity.Resources
SocialActivity.To

Atributo de datos de fecha y hora

Atributos con el valor de AttributeTypeName de metadatos de DateTimeType. Establezca estos atributos mediante System.DateTime.

La propiedad DateTimeAttributeMetadata.Format puede ser uno de los siguientes valores DateTimeFormat:

  • DateAndTime: Mostrar la fecha y hora.

  • DateOnly: Mostrar solo la fecha

    Los atributos de fecha y hora personalizados se pueden definir como atributos calculados o consolidados. Más información: Atributos calculados y consolidados.

Atributos de datos de imagen

Para las entidades que admitan atributos de imagen, el atributo SchemaName de la entidad de imagen siempre es EntityImage.

Más información: Atributos de imagen, Imágenes de entidad y Ejemplo: establecer y recuperar imágenes de entidad.

Atributos de datos de cantidad

Los atributos en esta categoría usan datos numéricos. Cada uno de estos atributos tiene una propiedad de metadatos MaxValue y MinValue para establecer un intervalo de valores válidos.

Los atributos de decimal, entero o dinero personalizados se pueden definir como atributos calculados o consolidados. Más información: Atributos calculados y consolidados.

Tipo de metadatos Valor de AttributeTypeName Descripción
BigIntAttributeMetadata BigIntType Los atributos BigInt solo para uso interno.
DecimalAttributeMetadata DecimalType Use valores decimales.

La propiedad de metadatos Precision define la precisión que se usará para el atributo.
DoubleAttributeMetadata DoubleType Use valores dobles.

La propiedad de metadatos Precision define la precisión que se usará para el atributo.
IntegerAttributeMetadata IntegerType Use valores int.
MoneyAttributeMetadata MoneyType Use el Money que tiene una propiedad decimal``Value.

Cada atributo monetario tiene un correspondiente atributo monetario de divisa base calculado por el sistema que se usa para calcular el valor de la divisa base de la organización cuando varias divisas se han habilitado para la organización. La propiedad IsBaseCurrency identifica si un atributo monetario representa la divisa base. Más información: Entidad de divisa de transacciones (divisa).

Los atributos monetarios también tienen una propiedad de metadatos PrecisionSource que puede especificar el nivel de precisión que deben usarse. El valor de entero en esta propiedad determina si:

- 0: la precisión está determinada por la propiedad de metadatos Precision.
- 1: El valor Organization.PricingDecimalPrecision.
- 2: El TransactionCurrency.CurrencyPrecision asociado con el registro actual.

Atributos de datos de referencia

Estos atributos se llaman habitualmente atributos de búsqueda y cada uno de ellos contiene un valor de EntityReference. La diferencia entre estos atributos es la clase de entidades con la que pueden asociarse. La propiedad de metadatos Targets contiene una String[] de nombres lógicos de entidad válida que representa destinos válidos para la búsqueda. Los atributos de búsqueda personalizados sólo pueden tener un tipo en la propiedad Targets.

PartyListType también representa un tipo de atributo de datos de referencia, pero dado que contiene una colección de referencias, se incluye en los Atributos de datos de colección.

Tipo de metadatos Valor de AttributeTypeName Descripción
LookupAttributeMetadata CustomerType Estos atributos de búsqueda del sistema pueden vincularse con los registros de entidad de cuenta o de contacto.

Contact.ParentCustomerId
Contract.BillingCustomerId
Contract.CustomerId
ContractDetail.CustomerId
CustomerOpportunityRole.CustomerId
CustomerRelationship.CustomerId
CustomerRelationship.PartnerId
Entitlement.CustomerId
Incident.CustomerId
Invoice.CustomerId
Lead.CustomerId
Opportunity.CustomerId
Quote.CustomerId
SalesOrder.CustomerId
SocialActivity.PostAuthor
SocialActivity.PostAuthorAccount
SocialProfile.CustomerId
LookupAttributeMetadata LookupType Estos atributos de búsqueda se pueden usar para establecer referencias a un registro del tipo indicado mediante la propiedad de metadatos Targets.

Algunas búsquedas del sistema no tienen un valor establecido para la propiedad Targets, pero la entidad prevista debe estar aparentemente basada en la relación de entidad que está asociada a la búsqueda.
LookupAttributeMetadata OwnerType Estas búsquedas del sistema siempre se llaman OwnerId y cada entidad propiedad del usuario tendrá una. Pueden hacer referencia a registros SystemUser o del equipo.

Atributos de datos de cadena

Existen dos tipos de atributos que usan datos de cadena.

Tipo de metadatos Valor de AttributeTypeName Descripción
StringAttributeMetadata StringType Un atributo para un valor de cadena al que se puede aplicar un formato. Más información: Formatos de StringAttributeMetadata.

Los atributos de cadena personalizados se pueden definir como atributos calculados. Más información: Atributos calculados.
MemoAttributeMetadata MemoType Un atributo para un valor de cadena pensado para notas. Estos atributos son equivalentes a los atributos de cadena con el valor de propiedad FormatName establecido en TextArea.

Identificador único de atributos de datos.

Los atributos con el valor de AttributeTypeName de metadatos de UniqueidentifierType contienen valores System.Guid que acepta valores nulos.

Cada instancia de entidad incluye un atributo que representa el identificador único del registro. Este atributo tiene un nombre de esquema que sigue la convención nombre de <esquema de entidad>+ id. Por ejemplo, el nombre de esquema de la entidad Cuenta para el atributo que representa el identificador único es AccountId. Este valor también está disponible directamente utilizando la propiedad Entity.Id. Este atributo se devuelve siempre cuando se recupera una entidad, incluso si no se incluye en la ColumnSet de una consulta. Este valor es nulo para una entidad recién instanciada. Aunque es válido configurar un valor de Guid para definir el identificador único cuando se crea un nuevo registro, para conseguir el máximo rendimiento se recomienda dejarlo nulo y permitir que el sistema asigne un valor al crear el registro. Tras guardar un registro este valor se convierte en de solo lectura.

Las entidades pueden incluir otros atributos de identificador único en función de las capacidades de la entidad. Por ejemplo, las entidades que se habilitan para procesos de negocio contendrán atributos de identificador único para que ProcessId y StageId realice un seguimiento del proceso de negocio actual asociada al registro. Determinadas relaciones del sistema que normalmente usaría un valor de EntityReference usarán un identificador único en su lugar. Por ejemplo, las entidades de cuenta y contacto tienen dos atributos de identificador único (Address1_AddressId y Address2_AddressId) que corresponden a los registros de CustomerAddress creados cuando se crea una cuenta o un contacto.

Atributos virtuales

Los metadatos para una entidad incluirán algunos atributos con el valor de AttributeTypeName de metadatos de VirtualType. Estos atributos no se pueden usar en código.

Atributos lógicos

Los atributos lógicos contienen valores que se almacenan en tablas de base de datos diferentes que otros atributos de la entidad. En la mayoría de los casos esta implementación interna no es relevantes para trabajar con Dynamics 365 Customer Engagement (on-premises). Cuando usa atributos lógicos como orígenes de un campo calculado los valores del campo calculado no se pueden ordenar. Use la propiedad AttributeMetadata.IsLogical para detectar si un atributo es un atributo lógico.

Los atributos lógicos más habituales son los que almacenan la información de dirección en varias entidades especiales: CompetitorAddress, CustomerAddress, InternalAddress, LeadAddress y PublisherAddress. Existen 8 entidades del sistema que incluyen un conjunto completo de atributos para dos direcciones mediante atributos lógicos. Cada uno de estos atributos comienzan con “Address*”, por ejemplo, Address1_City o Address2_Latitude.

Vea también

Introducción a entidades en Dynamics 365 Customer Engagement (on-premises)
Atributos de imagen
Atributos calculados y consolidados
Ejemplo: recuperar transiciones de estado válidas
Ejemplo: establecer y recuperar imágenes de entidad