Saltar al contenido principal
Versión: v20 BETA

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ó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.

.exposed

Histórico
VersiónModificaciones
v19 R3Añadidos

.exposed : Boolean

Descripción

La propiedad .exposed es true si el atributo está expuesto en REST.

Ver también

DataClass.getInfo()

.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
v19 R4Soporta atributos alias
v19 R3Soporta atributos calculados

.fieldType : Integer

Descripción

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

Valores posibles:

dataClassAttribute.kindfieldType
storageTipo de campo 4D correspondiente, ver Value type
relatedEntity38 (Is object)
relatedEntities42 (Is collection)
calculated
  • escalar: tipo de campo 4D correspondiente, ver Value type
  • entity: 38 (Is object)
  • entity selection: 42 (Is collection)
  • alias
  • escalar: tipo de campo 4D correspondiente, ver Value type
  • entity: 38 (Is object)
  • entity selection: 42 (Is collection)
  • Ver también

    .type

    .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
    v19 R4Adición de "alias"
    v19 R3Adició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ó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"

    .path

    Histórico
    VersiónModificaciones
    v19 R4Añ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ónModificaciones
    v19 R3Añ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ó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
    v19 R3Soporta 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.kindtypeComentario
    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.
    relatedEntityrelated dataClass nameEj.: "Companies"
    relatedEntitiesrelated dataClass name + "Selection" suffixEj.: "EmployeeSelection"
    calculated
  • storage: type ("blob", "number", etc.)
  • entity: dataClass name
  • entity selection: dataClass name + "Selection"
  • Ver también

    .fieldType

    .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.