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
Version | Modifications |
---|---|
v17 R5 | Ajout |
.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
Version | Modifications |
---|---|
v19 R3 | Ajout |
.exposed : Boolean
Description
La propriété .exposed
vrai si la dataclass est exposée en REST.
Voir également
.fieldNumber
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.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
Version | Modifications |
---|---|
v19 R4 | Prise en charge des attributs alias |
v19 R3 | Prise 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.kind | fieldType |
---|---|
storage | Type de champ 4D correspondant, voir Value type |
relatedEntity | 38 (Is object ) |
relatedEntities | 42 (Is collection ) |
calculated | Value type Is object )Is collection ) |
alias | Value type Is object )Is collection ) |
Voir également
.indexed
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.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
Version | Modifications |
---|---|
v17 R5 | Ajout |
.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
Version | Modifications |
---|---|
v17 R5 | Ajout |
.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
Version | Modifications |
---|---|
v19 R4 | Ajout de "alias" |
v19 R3 | Ajout 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
Version | Modifications |
---|---|
v17 R5 | Ajout |
.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
Version | Modifications |
---|---|
v17 R5 | Ajout |
.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
Version | Modifications |
---|---|
v19 R4 | Ajout |
.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
Version | Modifications |
---|---|
v19 R3 | Ajout |
.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
Version | Modifications |
---|---|
v17 R5 | Ajout |
.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
Version | Modifications |
---|---|
v19 R3 | Prise 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.kind | type | Commentaire |
---|---|---|
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. |
relatedEntity | related dataClass name | Ex : "Companies" |
relatedEntities | related dataClass name + "Selection" suffix | Ex : "EmployeeSelection" |
calculated |
Voir également
.unique
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.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é.