Auparavant, pour savoir quels index existaient sur une table et comment ils étaient configurés, il fallait procéder à une vérification manuelle via l’éditeur de structure. Grâce à la nouvelle fonction getIndexes(), les développeurs 4D peuvent désormais analyser les index directement depuis le code, ce qui facilite la vérification de la configuration lors de l’exécution, la création d’outils de diagnostic ou la validation automatique des déploiements.
4D ajoute une nouvelle fonction permettant d’analyser les index directement depuis le code :
var $indexes := ds.MyTable.getIndexes()
L’appel de getIndexes() sur une table renvoie une collection décrivant chaque index défini sur cette table, qu’il ait été créé via l’éditeur de structure ou par code à l’aide de CREATE INDEX.
Détails des entrées d’index
Chaque entrée de la collection renvoyée décrit un index avec les attributs suivants :
| Attribut | Type | Description |
|---|---|---|
type |
entier | Type d’algorithme d’indexation (pertinent lorsque « Automatique » est sélectionné) |
automatic |
booléen | Vrai si l’index « Automatique » est sélectionné |
name |
texte | Nom de l’index, s’il est disponible |
kind |
texte | « mots-clés » ou « standard » |
attributes |
collection | Champs couverts par l’index |
UUID |
texte | Identifiant unique de l’index |
uniqueKey |
booléen | Indique si l’index impose l’unicité |
Cela permet de vérifier l’état de l’index d’un champ lors de l’exécution, ce qui est particulièrement utile pour les diagnostics et les scripts de déploiement automatisés.

var $indexes:=ds.Discuss.getIndexes()

Les avantages
Avant la fonction getIndexes(), pour vérifier qu’un index critique existait ou qu’il était configuré avec le bon algorithme, il fallait ouvrir l’éditeur de structure et effectuer une vérification manuelle. Cette approche n’est pas évolutive pour les workflows automatisés. Grâce à cette fonction, vous pouvez :
- Valider les déploiements: vérifier que tous les index attendus sont bien présents juste après une mise à jour de la structure ou une migration de base de données.
- Créer des outils de diagnostic: afficher la configuration des index dans un panneau d’administration ou un point de terminaison de vérification de l’état de santé.
- Vérifier les contraintes d’unicité: identifier rapidement les champs protégés par un index uniqueKey.
- Identifier le type d’index: distinguer les index standard, par mot-clé et vectoriels (cosinus, point, euclidien) en inspectant les attributs « type » et « kind ».
Conclusion
getIndexes() comble une lacune dans l’API de gestion des index de 4D : les développeurs n’ont plus besoin de se fier à l’interface utilisateur pour savoir quels index existent sur une table. Associé à CREATE INDEX, SET INDEX et DELETE INDEX, cela permet de mettre en place un workflow entièrement programmatique pour la gestion des index.
Les commentaires ne sont pas disponibles pour cet article pour le moment.