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ón | Modificaciones |
---|---|
v17 R5 | Añ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ón | Modificaciones |
---|---|
v17 R5 | Añ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ón | Modificaciones |
---|---|
v17 R5 | Añadidos |
.fieldType : Integer
Descripción
La propiedad .fieldType
contiene el tipo de base de datos 4D del atributo. .
Valores posibles:
dataClassAttribute.kind | fieldType | Comentario |
---|---|---|
storage | Tipo de campo 4D correspondiente | Ver el comando Type |
relatedEntity | 38 (Is object) | |
relatedEntities | 42 (Is collection) |
.indexed
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añ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ón | Modificaciones |
---|---|
v17 R5 | Añ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ón | Modificaciones |
---|---|
v17 R5 | Añ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ón | Modificaciones |
---|---|
v17 R5 | Añ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ón | Modificaciones |
---|---|
v17 R5 | Añ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ón | Modificaciones |
---|---|
v17 R5 | Añ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ón | Modificaciones |
---|---|
v17 R5 | Añ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ón | Modificaciones |
---|---|
v17 R5 | Añ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.kind | type | Comentario |
---|---|---|
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 |
relatedEntity | related dataClass name | Ej.: "Companies" |
relatedEntities | related dataClass name + "Selection" suffix | Ej.: "EmployeeSelection" |
.unique
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añ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
.