Skip to main content
Version: v19 R8 BETA

DataClassAttribute

Os atributos Dataclass estão disponíveis como propriedades de suas respectivas classes. Por exemplo:

 nameAttribute:=ds. Company.name //reference to class attribute
revenuesAttribute:=ds. Company["revenues"] //alternate way

Este código assigna a nameAttribute e revenuesAttribute referências aos atributos name e revenues da classe Company. Essa sintaxe NAO devolve valores mantidos dentro do atributo, mas sim devolve referências aos próprios atributos. Para manejar os valores, é necessário passar por Entidades.

Os objetos DataClassAttribute têm propriedades que pode ler para obter informação sobre os atributos de sua classe de dados.

Os objetos do atributo Dataclass podem ser modificados, mas a estrutura subjacente do banco de dados não será alterada.

Resumo

.autoFilled : Boolean    contém True se o valor do atributo for automaticamente preenchido por 4D
.exposed : Boolean    true se o atributo for exposto em REST
.size : Integer    contém o número do campo 4D interno do atributo
.fieldType : Integer    contém o tipo de base de dados 4D do atributo
.indexed : Boolean    contém True se houver uma árvore B ou um índice de árvore B cluster no atributo
.inverseName : Text    devolve o nome do atributo que se encontra no outro lado da relação
.keywordIndexed : Boolean    contém True se houver um índice de palavras-chave no atributo
.kind : Text    devolve a categoria do atributo
.mandatory : Boolean    contém True se o valor Null input for rejeitado para o atributo
.name : Text    The .name property
.path : Text    devolve o caminho de um atributo alias baseado numa relação
.readOnly : Boolean    true se o atributo for apenas de leitura
.relatedDataClass : Text    devolve o nome da classe de dados relacionada com o atributo
.type : Text    contém o tipo de valor conceptual do atributo
.unique : Boolean    contém True se o valor do atributo deve ser único

.autoFilled

Histórico
VersãoMudanças
v17 R5Adicionado

.autoFilled : Boolean

Descrição

A propriedade .autoFilled contém True se o valor do atributo for automaticamente preenchido por 4D. Esta propriedade corresponde às seguintes propriedades de campo 4D:

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

Esta propriedade não é devolvida se .kind = "relatedEntity" ou "relatedEntities".

For generic programming, you can use Bool(dataClassAttribute.mandatory) to get a valid value (false) even if .mandatory is not returned.

.exposed

Histórico
VersãoMudanças
v19 R3Adicionado

.exposed : Boolean

Descrição

O .exposed propriedade é true se o atributo for exposto em REST.

Veja também

DataClass.getInfo()

.fieldNumber

Histórico
VersãoMudanças
v17 R5Adicionado

.size : Integer

Descrição

A propriedade .fieldNumber contém o número do campo 4D interno do atributo.

Esta propriedade não é devolvida se .kind = "relatedEntity" ou "relatedEntities".

Para a programação genérica, se pode utilizar Num(dataClassAttribute.fieldNumber) para obter um valor válido (0) mesmo que não se devolva .fieldNumber.

.fieldType

Histórico
VersãoMudanças
v19 R4Compatibilidade de atributos de alias
v19 R3Compatibilidade de atributos computados

.fieldType : Integer

Descrição

A propriedade .fieldType contém o tipo de base de dados 4D do atributo. Depende do tipo de atributo (ver .kind).

Valores possíveis:

dataClassAttribute.kindfieldType
storageTipo de campo 4D correspondente, ver Value type
relatedEntity38 (Is object)
relatedEntities42 (Is collection)
calculated
  • escalar: tipo de campo 4D correspondente, ver Value type
  • entity: 38 (Is object)
  • entity selection: 42 (Is collection)
  • alias
  • escalar: tipo de campo 4D correspondente, ver Value type
  • entity: 38 (Is object)
  • entity selection: 42 (Is collection)
  • Veja também

    .type

    .indexed

    Histórico
    VersãoMudanças
    v17 R5Adicionado

    .indexed : Boolean

    Descrição

    A propriedade .indexed contém True se houver uma árvore B ou um índice de árvore B cluster no atributo.

    Esta propriedade não é devolvida se .kind = "relatedEntity" ou "relatedEntities".

    Para programação genérica é possível usar Bool(dataClassAttribute.indexed) para obter um valor válido (false) mesmo se .indexed não for retornado.

    .inverseName

    Histórico
    VersãoMudanças
    v17 R5Adicionado

    .inverseName : Text

    Descrição

    A propriedade .inverseName devolve o nome do atributo que se encontra no outro lado da relação.

    Esta propriedade não se devolve si .kind = "storage". Deve ser do tipo "relatedEntity" ou "relatedEntities".

    Para programação genérica é possível usar String(dataClassAttribute.inverseName) para obter um valor válido ("") mesmo se .inverseName não for retornado.

    .keywordIndexed

    Histórico
    VersãoMudanças
    v17 R5Adicionado

    .keywordIndexed : Boolean

    Descrição

    A propriedade .keywordIndexed contém True se houver um índice de palavras-chave no atributo.

    Esta propriedade não é retornada se .kind = "relatedEntity" ou "relatedEntities".

    Para a programação gene´rica pode usar Bool(dataClassAttribute.keywordIndexed) para obter um valor válido (false) mesmo se .keywordIndexed não for retornado.

    .kind

    Histórico
    VersãoMudanças
    v19 R4"alias" adicionado
    v19 R3"calculated" adicionado

    .kind : Text

    Descrição

    A propriedade .kind devolve a categoria do atributo. O valor retornado pode ser um dos abaixo:

    • Atributo "storage": storage (ou escalar) ou seja, atributo que armazena um valor, não uma referência a outro atributo
    • "calculado": atributo computado, ou seja, definido através de uma obter função
    • "alias": atributo construído sobre outro atributo
    • "relatedEntity": N -> 1 atributo de relação (referência a uma entidade)
    • "relatedEntities": 1 -> N atributo de relação (referência a uma seleção de entidades)

    Exemplo

    Dada a seguinte tabela e relação:

     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
    VersãoMudanças
    v17 R5Adicionado

    .mandatory : Boolean

    Descrição

    A propriedade .mandatory contém True se o valor Null input for rejeitado para o atributo.

    Esta propriedade não é retornada se .kind = "relatedEntity" ou "relatedEntities".

    .size : Integer Aviso: Essas propriedade corresponde à propriedade de campo "Reject NULL value input" ao nível do banco de dados 4D. Não tem relação com a propriedade existente "Mandatory"/obrigatório que é uma opção de controle de entrada de dados para uma tabela.

    .name

    Histórico
    VersãoMudanças
    v17 R5Adicionado

    .name : Text

    Descrição

    A propriedade .name The .name property.

    Exemplo

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

    .path

    Histórico
    VersãoMudanças
    v19 R4Adicionado

    .path : Text

    Descrição

    A propriedade .path devolve o caminho de um atributo alias baseado numa relação.

    Exemplo

     var $path : Text
    $path:=ds. Teacher.students.path //$path="courses.student"

    .readOnly

    Histórico
    VersãoMudanças
    v19 R3Adicionado

    .readOnly : Boolean

    Descrição

    O .readOnly propriedade é true se o atributo for apenas de leitura.

    Por exemplo, os atributos computados sem o conjunto `` função são apenas de leitura.

    .relatedDataClass

    Histórico
    VersãoMudanças
    v17 R5Adicionado

    .relatedDataClass : Text

    Descrição

    Esta propriedade só está disponível com atributos da propriedade "relatedEntity" ou "relatedEntities" .kind.

    A propriedade .relatedDataClass devolve o nome da classe de dados relacionada com o atributo.

    Exemplo

    Dada a seguinte tabela e relação:

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

    .type

    Histórico
    VersãoMudanças
    v19 R3Compatibilidade de atributos computados

    .type : Text

    Descrição

    A propriedade .type contém o tipo de valor conceptual do atributo, útil para a programação genérica.

    O tipo de valor conceitual depende do atributo .kind.

    Valores possíveis:

    dataClassAttribute.kindtypeComentário
    storage"blob", "bool", "date", "image", "number", "object", ou "string""number" se devolve para qualquer tipo numérico, incluindo a duração. "string" se devolve para os tipos de campo uuid, alfa e texto. Os atributos "blob" são objectos blob, que são tratados utilizando a classe Blob.
    relatedEntityrelated dataClass nameEx: "Companies"
    relatedEntitiesrelated dataClass name + "Selection" suffixEx: "EmployeeSelection"
    calculated
  • storage: type ("blob", "number", etc.)
  • entity: dataClass name
  • entity selection: dataClass name + "Selection"
  • Veja também

    .fieldType

    .unique

    Histórico
    VersãoMudanças
    v17 R5Adicionado

    .unique : Boolean

    Descrição

    A propriedade .unique contém True se o valor do atributo deve ser único. Essa propriedade corresponde a propriedade de campo 4D "Unique".

    Esta propriedade não é retornada se .kind = "relatedEntity" ou "relatedEntities".

    Para programação genérica pode usar Bool(dataClassAttribute.unique) pra obter um valor válido (false) mesmo se .unique não for retornado.