Saltar para o conteúdo principal
Version: v19

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
.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    The .name property
.name : Text    A propriedade .relatedDataClass
.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".

Para programação genérica, pode utilizar Bool(dataClassAttribute.autoFilled) para obter um valor válido (false) mesmo que .autoFilled não seja devolvido.

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

.fieldType : Integer

Descrição

A propriedade .fieldType contém o tipo de base de dados 4D do atributo. .

Valores possíveis:

dataClassAttribute.kindfieldTypeComentário
storageCorresponding 4D field typeSee Type command
relatedEntity38 (Is object)
relatedEntities42 (Is collection)

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

.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
  • "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 .name The .name property.

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

Para programação genérica, pode utilizar Bool(dataClassAttribute.mandatory) para obter um valor válido (false) mesmo que .mandatory não seja devolvido. .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 A propriedade .relatedDataClass.

Exemplo

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

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

.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"number", "date", "object", "bool", "image", or "string""number" se devolve para qualquer tipo numérico, incluindo a duração. "string" is returned for uuid, alpha and text field types
relatedEntityrelated dataClass nameEx: "Companies"
relatedEntitiesrelated dataClass name + "Selection" suffixEx: "EmployeeSelection"

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