Saltar al contenido principal
Versión: v19

DataClassAttribute

Los atributos Dataclass están disponibles como propiedades de sus respectivas clases. Por ejemplo:

 nameAttribute:=ds.Company.name //referencia a un atributo de clase
revenuesAttribute:=ds.Company["revenues"] //método alternativo

Este código asigna a nameAttribute y revenuesAttribute referencias a los atributos name y revenues de la clase Company. Esta sintaxis NO devuelve los valores mantenidos dentro del atributo, sino que devuelve referencias a los propios atributos. Para manejar los valores, es necesario pasar por Entidades.

Los objetos DataClassAttribute tienen propiedades que puede leer para obtener información sobre los atributos de su clase de datos.

Los objetos del atributo Dataclass pueden ser modificados, pero la estructura subyacente de la base de datos no será alterada.

Resumen

.autoFilled : Boolean    contiene True si el valor del atributo es rellenado automáticamente por 4D
.fieldNumber : Integer    contiene el número de campo 4D interno del atributo
.fieldType : Integer    contiene el tipo de base de datos 4D del atributo
.indexed: Booleano    contiene True si hay un índice B-tree o un Cluster B-tree en el atributo
.inverseName: Texto    devuelve el nombre del atributo que está al otro lado de la relación
.keywordIndexed: Boolean    contiene True si hay un índice de palabras clave en el atributo
.kind : Text    devuelve la categoría del atributo
.mandatory: Booleano    contiene True si se rechaza la entrada de valores nulos para el atributo
.name : Text    The .name property
.relatedDataClass: Text    devuelve el nombre de la clase de datos relacionada con el atributo
.type : Text    contiene el tipo de valor conceptual del atributo
.unique : Boolean    contiene True si el valor del atributo debe ser único

.autoFilled

Histórico
VersiónModificaciones
v17 R5Añadidos

.autoFilled : Boolean

Descripción

La propiedad .autoFilled contiene True si el valor del atributo es rellenado automáticamente por 4D. Esta propiedad corresponde a las siguientes propiedades de campo 4D:

  • "Autoincremento", para campos de tipo numérico
  • "Auto UUID", para los campos UUID (tipo alfa).

Esta propiedad no se devuelve si .kind = "relatedEntity" o "relatedEntities".

Para la programación genérica, se puede utilizar Bool(dataClassAttribute.autoFilled) para obtener un valor válido (false) aunque no se devuelva .autoFilled.

.fieldNumber

Histórico
VersiónModificaciones
v17 R5Añadidos

.fieldNumber : Integer

Descripción

La propiedad .fieldNumber contiene el número de campo 4D interno del atributo.

Esta propiedad no se devuelve si .kind = "relatedEntity" o "relatedEntities".

Para la programación genérica, puede utilizar Num(dataClassAttribute.fieldNumber) para obtener un valor válido (0) aunque no se devuelva .fieldNumber.

.fieldType

Histórico
VersiónModificaciones
v17 R5Añadidos

.fieldType : Integer

Descripción

La propiedad .fieldType contiene el tipo de base de datos 4D del atributo. .

Valores posibles:

dataClassAttribute.kindfieldTypeComentario
storageTipo de campo 4D correspondienteVer el comando Type
relatedEntity38 (Is object)
relatedEntities42 (Is collection)

.indexed

Histórico
VersiónModificaciones
v17 R5Añadidos

.indexed: Booleano

Descripción

La propiedad .indexed contiene True si hay un índice B-tree o un Cluster B-tree en el atributo.

Esta propiedad no se devuelve si .kind = "relatedEntity" o "relatedEntities".

Para la programación genérica, se puede utilizar Bool(dataClassAttribute.indexed) para obtener un valor válido (false) aunque no se devuelva .indexed.

.inverseName

Histórico
VersiónModificaciones
v17 R5Añadidos

.inverseName: Texto

Descripción

La propiedad .inverseName devuelve el nombre del atributo que está al otro lado de la relación.

Esta propiedad no se devuelve si .kind = "storage". Debe ser del tipo "relatedEntity" o "relatedEntities".

Para la programación genérica, puede utilizar String(dataClassAttribute.inverseName) para obtener un valor válido ("") aunque no se devuelva .inverseName.

.keywordIndexed

Histórico
VersiónModificaciones
v17 R5Añadidos

.keywordIndexed: Boolean

Descripción

La propiedad .keywordIndexed contiene True si hay un índice de palabras clave en el atributo.

Esta propiedad no se devuelve si .kind = "relatedEntity" o "relatedEntities".

Para la programación genérica, se puede utilizar Bool(dataClassAttribute.keywordIndexed) para obtener un valor válido (false) aunque no se devuelva .keywordIndexed.

.kind

Histórico
VersiónModificaciones
v17 R5Añadidos

.kind : Text

Descripción

La propiedad .kind devuelve la categoría del atributo. El valor devuelto puede ser uno de los siguientes:

  • "storage": atributo de almacenamiento (o escalar), es decir, atributo que almacena un valor, no una referencia a otro atributo
  • "relatedEntity": N -> 1 atributo de relación (referencia a una entidad)
  • "relatedEntities": 1 -> N atributo de relación (referencia a una selección de entidades)

Ejemplo

Dada la siguiente tabla y relación:

 var $attKind : Text
$attKind:=ds.Employee.lastname.kind //$attKind="storage"
$attKind:=ds.Employee.manager.kind //$attKind="relatedEntity"
$attKind:=ds.Employee.directReports.kind //$attKind="relatedEntities"

.mandatory

Histórico
VersiónModificaciones
v17 R5Añadidos

.mandatory: Booleano

Descripción

La propiedad .mandatory contiene True si se rechaza la entrada de valores nulos para el atributo.

Esta propiedad no se devuelve si .kind = "relatedEntity" o "relatedEntities".

Para la programación genérica, se puede utilizar Bool(dataClassAttribute.mandatory) para obtener un valor válido (false) aunque no se devuelva .mandatory. Atención: esta propiedad corresponde a la propiedad del campo "Reject NULL value input" a nivel de la base de datos 4D. No tiene relación con la propiedad "Obligatorio" existente, que es una opción de control de entrada de datos para una tabla.

.name

Histórico
VersiónModificaciones
v17 R5Añadidos

.name : Text

Descripción

La propiedad .name The .name property.

Ejemplo

 var $attName : Text
$attName:=ds.Employee.lastname.name //$attName="lastname"

.relatedDataClass

Histórico
VersiónModificaciones
v17 R5Añadidos

.relatedDataClass: Text

Descripción

Esta propiedad sólo está disponible con atributos de la propiedad "relatedEntity" o "relatedEntities" .kind.

La propiedad .relatedDataClass devuelve el nombre de la clase de datos relacionada con el atributo.

Ejemplo

Dadas las siguientes tablas y relaciones:

 var $relClass1; $relClassN : Text
$relClass1:=ds.Employee.employer.relatedDataClass //$relClass1="Company"
$relClassN:=ds.Employee.directReports.relatedDataClass //$relClassN="Employee"

.type

Histórico
VersiónModificaciones
v17 R5Añadidos

.type : Text

Descripción

La propiedad .type contiene el tipo de valor conceptual del atributoútil para programación genérica.

El tipo de valor conceptual depende del atributo .kind.

Valores posibles:

dataClassAttribute.kindtypeComentario
storage"number", "date", "object", "bool", "image", o "string""number" se devuelve para cualquier tipo numérico, incluyendo la duración. "string" se devuelve para los tipos de campo uuid, alfa y texto
relatedEntityrelated dataClass nameEj.: "Companies"
relatedEntitiesrelated dataClass name + "Selection" suffixEj.: "EmployeeSelection"

.unique

Histórico
VersiónModificaciones
v17 R5Añadidos

.unique : Boolean

Descripción

La propiedad .unique contiene True si el valor del atributo debe ser único. Esta propiedad corresponde a la propiedad de campo 4D "Unique".

Esta propiedad no se devuelve si .kind = "relatedEntity" o "relatedEntities".

Para la programación genérica, se puede utilizarBool(dataClassAttribute.unique) para obtener un valor válido (false) aunque no se devuelva .unique.