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 |
.exposed : Boolean true si el atributo está expuesto en REST |
.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 |
.path : Text devuelve la ruta de un atributo alias basado en una relación |
.readOnly : Boolean true si el atributo es de sólo lectura |
.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
.
.exposed
Histórico
Versión | Modificaciones |
---|---|
v19 R3 | Añadidos |
.exposed : Boolean
Descripción
La propiedad .exposed
es true si el atributo está expuesto en REST.
Ver también
.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 |
---|---|
v19 R4 | Soporta atributos alias |
v19 R3 | Soporta atributos calculados |
.fieldType : Integer
Descripción
La propiedad .fieldType
contiene el tipo de base de datos 4D del atributo. .
Valores posibles:
dataClassAttribute.kind | fieldType |
---|---|
storage | Tipo de campo 4D correspondiente, ver Value type |
relatedEntity | 38 (Is object ) |
relatedEntities | 42 (Is collection ) |
calculated | Value type Is object )Is collection ) |
alias | Value type Is object )Is collection) |
Ver también
.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 |
---|---|
v19 R4 | Adición de "alias" |
v19 R3 | Adición de "calculated" |
.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
- "calculated": atributo calculado, es decir definido por la función
get
- "alias": atributo basado en 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"
.path
Histórico
Versión | Modificaciones |
---|---|
v19 R4 | Añadidos |
.path : Text
Descripción
La propiedad .path
devuelve la ruta de un atributo alias basado en una relación.
Ejemplo
var $path : Text
$path:=ds.Teacher.students.path //$path="courses.student"
.readOnly
Histórico
Versión | Modificaciones |
---|---|
v19 R3 | Añadidos |
.readOnly : Boolean
Descripción
La propiedad .readOnly
es true si el atributo es de sólo lectura.
Por ejemplo, los atributos calculados sin función set
son solo lectura.
.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 |
---|---|
v19 R3 | Soporta atributos calculados |
.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 | "blob", "bool", "date", "image", "number", "object", 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. Los atributos "blob" son objetos blob, se gestionan utilizando la clase Blob. |
relatedEntity | related dataClass name | Ej.: "Companies" |
relatedEntities | related dataClass name + "Selection" suffix | Ej.: "EmployeeSelection" |
calculated |
Ver también
.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
.