Skip to main content
Version: v20 BETA

DataClassAttribute

Les attributs Dataclass sont disponibles en tant que propriétés de leurs classes respectives. Par exemple :

 nameAttribute:=ds.Company.name //référence à un attribut de classe
revenuesAttribute:=ds.Company["revenues"] //méthode alternative

Ce code attribue à nameAttribute et revenuesAttribute des références aux attributs name et revenues de la classe Company. Cette syntaxe ne retourne PAS les valeurs contenues dans l'attribut, mais retourne plutôt des références aux attributs eux-mêmes. Pour gérer les valeurs, vous devez passer par les Entités.

Les objets DataClassAttribut ont des propriétés que vous pouvez lire pour obtenir des informations sur les attributs de votre dataclass.

Les objets de l'attribut Dataclass peuvent être modifiés, mais la structure sous-jacente de la base de données ne sera pas altérée.

Sommaire

.autoFilled : Booléen    contient Vrai si la valeur de l'attribut est automatiquement renseignée par 4D
.exposed : Boolean    vrai si la dataclass est exposée en REST
.fieldNumber : Integer    contient le numéro interne du champ 4D de l'attribut
.fieldType : Integer    contient le type de l'attribut dans la base de données 4D
.indexed : Booléen    contient Trues'il existe un index B-tree ou Cluster B-tree dans l'attribut
.inverseName : Text    retourne le nom de l'attribut qui est à l'autre extrémité du lien
.keywordIndexed : Boolean    contient True s'il existe un index de mots-clés sur l'attribut
.kind : Text    retourne la catégorie de l'attribut
.mandatory : Boolean    contient Vrai si la saisie de la valeur Null pour l'attribut est rejetée
.name : Text    renvoie le nom de l'objet dataClassAttribute
.path : Text    retourne le chemin d'un attribut alias basé sur une relation
.readOnly : Boolean    est mise à "true" si l'attribut est en lecture seule
.relatedDataClass : Text    retourne le nom de la dataclass liée à l'attribut
.type : Texte    contient le type de valeur conceptuelle de l'attribut
.unique : Booléen    contient Vrai si la valeur de l'attribut doit être unique

.autoFilled

Historique
VersionModifications
v17 R5Ajout

.autoFilled : Booléen

Description

La propriété .autoFilled contient Vrai si la valeur de l'attribut est automatiquement renseignée par 4D. Cette propriété correspond aux propriétés de champ 4D suivantes :

  • "Autoincrement", for les champs de type numérique
  • "Auto UUID", pour les champs UUID (de type alpha).

Cette propriété n'est pas retournée si .kind = "relatedEntity" ou "relatedEntities".

Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.autoFilled) pour obtenir une valeur valide (false) même si .autoFilled n'est pas retourné.

.exposed

Historique
VersionModifications
v19 R3Ajout

.exposed : Boolean

Description

La propriété .exposed vrai si la dataclass est exposée en REST.

Voir également

DataClass.getInfo()

.fieldNumber

Historique
VersionModifications
v17 R5Ajout

.fieldNumber : Integer

Description

La propriété .fieldNumber contient le numéro interne du champ 4D de l'attribut.

Cette propriété n'est pas retournée si .kind = "relatedEntity" ou "relatedEntities".

Pour la programmation générique, vous pouvez utiliser Num (dataClassAttribute.fieldNumber) pour obtenir une valeur valide (0) même si .fieldNumber n'est pas retourné.

.fieldType

Historique
VersionModifications
v19 R4Prise en charge des attributs alias
v19 R3Prise en charge des champs calculés

.fieldType : Integer

Description

La propriété .fieldType contient le type de l'attribut dans la base de données 4D. Elle dépend de l'attribut kind (voir .kind).

Valeurs possibles :

dataClassAttribute.kindfieldType
storageType de champ 4D correspondant, voir Value type
relatedEntity38 (Is object)
relatedEntities42 (Is collection)
calculated
  • scalaire : type de champ 4D correspondant, voir Value type
  • entity: 38 (Is object)
  • entity selection: 42 (Is collection)
  • alias
  • scalaire : type de champ 4D correspondant, voir Value type
  • entity: 38 (Is object)
  • entity selection: 42 (Is collection)
  • Voir également

    .type

    .indexed

    Historique
    VersionModifications
    v17 R5Ajout

    .indexed : Booléen

    Description

    La propriété .indexed contient Trues'il existe un index B-tree ou Cluster B-tree dans l'attribut.

    Cette propriété n'est pas retournée si .kind = "relatedEntity" ou "relatedEntities".

    Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.indexed) pour obtenir une valeur valide (false) même si .indexed n'est pas retourné.

    .inverseName

    Historique
    VersionModifications
    v17 R5Ajout

    .inverseName : Text

    Description

    La propriété .inverseName retourne le nom de l'attribut qui est à l'autre extrémité du lien.

    Cette propriété n'est pas retournée si .kind = "storage". Elle doit être du type "relatedEntities" ou "relatedEntities".

    Pour la programmation générique, vous pouvez utiliser String (dataClassAttribute.inverseName) pour obtenir une valeur valide ("") même si .inverseName n'est pas retourné.

    .keywordIndexed

    Historique
    VersionModifications
    v17 R5Ajout

    .keywordIndexed : Boolean

    Description

    La propriété .keywordIndexed contient True s'il existe un index de mots-clés sur l'attribut.

    Cette propriété n'est pas retournée si .kind = "relatedEntity" ou "relatedEntities".

    Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.keywordIndexed) pour obtenir une valeur valide (false) même si .keywordIndexed n'est pas retourné.

    .kind

    Historique
    VersionModifications
    v19 R4Ajout de "alias"
    v19 R3Ajout de "calculated"

    .kind : Text

    Description

    La propriété .kind retourne la catégorie de l'attribut. La valeur retournée peut être l'une des chaînes suivantes :

    • "storage" : attribut de stockage (ou scalaire), c'est-à-dire un attribut stockant une valeur, et non une référence à un autre attribut
    • "calculated" : attribut calculé, c'est-à-dire défini par la fonction get
    • "alias": attribut basé sur un autre attribut
    • "relatedEntity" : attribut relationnel N -> (référence vers une entité)
    • "relatedEntities" : attribut relationnel 1 -> N (référence vers une entity selection)

    Exemple

    Considérons les tables et relations suivantes :

     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

    Historique
    VersionModifications
    v17 R5Ajout

    .mandatory : Boolean

    Description

    La propriété .mandatory contient Vrai si la saisie de la valeur Null pour l'attribut est rejetée.

    Cette propriété n'est pas retournée si .kind = "relatedEntity" ou "relatedEntities".

    Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.mandatory) pour obtenir une valeur valide (false) même si .mandatory n'est pas retourné. Attention : Cette propriété correspond à la propriété du champ "Reject NULL value input" au niveau de la base de données 4D. Elle n'est pas liée à la propriété "Mandatory" existante qui est une option de contrôle de la saisie de données pour une table.

    .name

    Historique
    VersionModifications
    v17 R5Ajout

    .name : Text

    Description

    La propriété .name renvoie le nom de l'objet dataClassAttribute.

    Exemple

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

    .path

    Historique
    VersionModifications
    v19 R4Ajout

    .path : Text

    Description

    La propriété .path retourne le chemin d'un attribut alias basé sur une relation.

    Exemple

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

    .readOnly

    Historique
    VersionModifications
    v19 R3Ajout

    .readOnly : Boolean

    Description

    La propriété .readOnly est mise à "true" si l'attribut est en lecture seule.

    Par exemple, les champs calculés sans fonction set sont en lecture seule.

    .relatedDataClass

    Historique
    VersionModifications
    v17 R5Ajout

    .relatedDataClass : Text

    Description

    Cette propriété est uniquement disponible pour les attributs dont la propriété .kind est "relatedEntity" ou "relatedEntities".

    La propriété .relatedDataClass retourne le nom de la dataclass liée à l'attribut.

    Exemple

    Considérons les tables et relations suivantes :

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

    .type

    Historique
    VersionModifications
    v19 R3Prise en charge des champs calculés

    .type : Texte

    Description

    La propriété .type contient le type de valeur conceptuelle de l'attribut, utile pour la programmation générique.

    Le type de valeur conceptuelle dépend de l'attribut .kind.

    Valeurs possibles :

    dataClassAttribute.kindtypeCommentaire
    storage"blob", "bool", "date", "image", "number", "object", ou "string""number" est rertourné pour tous les types numériques, y compris la durée. "string" est retourné pour les types de champs uuid, alpha et text. Les attributs "blob" sont des objets blob, ils sont gérés à l'aide de la 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"
  • Voir également

    .fieldType

    .unique

    Historique
    VersionModifications
    v17 R5Ajout

    .unique : Booléen

    Description

    La propriété .unique contient Vrai si la valeur de l'attribut doit être unique. Cette propriété correspond à la propriété de champ 4D "Unique".

    Cette propriété n'est pas retournée si .kind = "relatedEntity" ou "relatedEntities".

    Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.unique) pour obtenir une valeur valide (false) même si .unique n'est pas retourné.