← Toutes les astuces

Créer une clé composée propre avec AutoNumberHash128()

Quand l’unicité dépend de plusieurs champs, une clé technique évite de propager partout une longue concaténation.

Exemple concret

Une facture peut être identifiée par Société + Année + Numéro. Ces trois champs forment la clé métier ; AutoNumberHash128() permet d’en produire une clé technique compacte pour les associations, sans bricoler une chaîne ambiguë.

Le problème

Concaténer des valeurs sans séparateur fiable peut créer des collisions logiques : 12 & 34 et 1 & 234 donnent tous deux 1234.

À surveiller
LOAD
    Societe & Annee & Numero AS %CleFacture,
    *
RESIDENT Factures;
Écriture conseillée
LOAD
    AutoNumberHash128(
        Societe,
        Annee,
        Numero
    ) AS %CleFacture,
    *
RESIDENT Factures;

AutoNumberHash128() attribue des entiers propres au rechargement : ne stockez pas ces clés dans des QVD destinés à être associés après des rechargements indépendants. Pour une clé persistante entre chargements, utilisez Hash128(), Hash160() ou Hash256(). Conservez les champs métier utiles aux contrôles.