Numéros de document : OUT-2026-00001 et la fin de 00NaN
Pourquoi chaque numéro d’order vient désormais d’un seul compteur en base, et pourquoi deux collègues ne peuvent jamais recevoir le même.
Un numéro d’order est la poignée que tout le monde utilise en dehors de votre bâtiment. Le client le cite au téléphone, le transporteur l’imprime sur le CMR, le comptable y rattache la facture. Il doit être unique, lisible, et émis à l’instant où l’order existe. Pendant un temps, il l’était deux fois sur trois.
Un compteur, par tenant, par année
Chaque numéro de document opérationnel — outbound OUT-, inbound INB-, collection COL-, receiving session RECEIV- et demanufacturing job DMF- — vient d’une seule fonction en base qui tient un compteur par organisation, par type de document et par année, et l’incrémente sous verrou. Le format est préfixe, année, cinq chiffres : OUT-2026-00001. Une série vide démarre à 00001. En janvier le compteur repart, et l’année dans le numéro vous dit quelle série vous avez sous les yeux.
Deux utilisateurs, une seconde, deux numéros
Parce que le compteur est verrouillé pendant qu’il distribue un numéro, deux collègues créant des outbound orders au même moment obtiennent deux numéros différents, à chaque fois. Et si jamais quelque chose passait à côté du compteur, la base de données elle-même refuse un doublon dans la même organisation et la même année. Le numéro est une row que la base a écrite et qu’elle n’écrira pas deux fois.
Pas de porte dérobée
Les orders créés par un import ou par l’API publique utilisent la même allocation que le bouton de l’interface. Pas de second schéma de numérotation pour l’ERP, pas d’override produisant un numéro que le compteur n’a jamais vu. Une série, une fonction, une règle.
Pourquoi 00NaN méritait des funérailles
L’ancienne approche lisait dans le navigateur le plus grand numéro existant et lui ajoutait un. Sur une série vide, il n’y avait rien à quoi ajouter un, et le résultat était un document fièrement intitulé OUT-2026-00NaN — ce qu’un ordinateur répond quand on lui demande de compter quelque chose qui n’est pas un nombre. Deux utilisateurs simultanés pouvaient aussi lire le même « plus grand » et ajouter un chacun. Ni l’un ni l’autre n’est encore possible. Ce n’est pas une chaîne de caractères. C’est une séquence.