
Comment générer un identifiant unique en xlsform ?
La génération d’un identifiant unique est source de nombreux soucis lors de la réalisation des enquêtes. Actuellement pour générer un identifiant unique, il existe plusieurs méthodes pour y parvenir mais qui ont des limites. Dans cet article, nous allons faire le tour de ces méthodes de génération d’identifiant et a la fin nous allons vous proposer notre solution.
On peut utiliser la date du jour avec cette formule (format-date(${start},’%y%m%d%H%M’). On obtient avec ce procède un code en 12 ou 14 chiffres.
Exemple : code = format-date(${start},’%y%m%d%H%M’) => code : 210726093512
2.Utilisation des variables dans le formulaire
Dans ce cas de figure, on utilise des données saisies dans le formulaire pour extraire certaines parties des données et ensuite les concaténer pour former le code.
Formule : concat (substr (question1, 0, n), substr (question2, 0, n), …) avec n >=1
Exemple : question1 : « Données test », question2 : « 5639458 »,
Identifiant = concat (substr (question1, 0, 2), substr (question2, 0, 2)) => identifiant : « Do56 »
NB : La taille de l’identifiant dépende du nombre de caractères que vous voulez extraire dans les données.
3.La fonction uuid
La fonction uuid() est une méthode interne au formulaire qui permet de générer de façon aléatoire un code alphanumérique sur 32 caractères. Il est simple d’utilisation il vous suffit juste d’écrire uuid() dans un champ de calculate.
Exemple : code = uuid() => code : 3c4d0953-4c22-4570-a972-12332dd54256
L’inconvénient de cette méthode est que le code est très long et difficile à retenir.
4.La fonction random
Random est une fonction qui génère un nombre aléatoire comprise entre 0 et 1 exclu. Cette fonction peut être personnaliser pour générer un nombre contenant autant de chiffre que l’on désire.
Exemple : code = once(int(999999*random()) + 10000) => code: 484873
Son inconvénient est qu’elle génère uniquement que des chiffres
5.Notre solution
Par palier a tous ces insuffisances, nous avons trouver le moyen de générer un code alphanumérique selon la taille que nous voulons. Le principe est seul, il faut juste suivre les étapes suivantes :
Etape 1 : déclarer une liste des caractères à utiliser dans un champ calculate
Exemple :
tab = « ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 »
Etape 2 : utiliser la fonction random pour un nombre aléatoire entre 0 et la taille compris (taille des caractères à utiliser)
Exemple : position = once(int(61*random()))
Etape 3 : reprendre l’étape 2 autant de fois que vous voulez de caractères dans l’identifiant qui sera généré
Etape 4 : utiliser les nombres générer pour récupérer un caractère correspondant à la position dans la liste des caractères avec cette formule : substr(données, début, fin)
Exemple : caractere1 = substr (tab, ${position}, ${position} +1)
Etape 5 : cette étape consiste à concaténer les caractères récupérer pour former l’identifiant avec la formule : concat(valeur1, valeur2, …)
Exemple : pour un identifiant sur 8 caractères, on aura :
identifiant : concat(caractere1, caractere2, caractere3, caractere4, caractere4, caractere5, caractere6, caractere7, caractere8) => identifiant : j0KLNJwc
NB : Pour utiliser cette méthode, toutes les étapes doivent utiliser « un champ calculate »
Télécharger gratuitement le document
contact@cloudlyyours.com
Zone d’activités, 6 Rue du Dr Albert Schweitzer,
91420, Morangis, France