Détection de doublons dans Sage X3 - YDUPMAT
juillet 13, 2025
YDUPMAT : Détection des matricules en double dans Sage X3
Dans ce billet, nous allons explorer une fonction L4G personnalisée nommée YDUPMAT, développée pour détecter les matricules dupliqués dans la table XSAL
du système Sage X3.
🎯 Objectif
Identifier tous les enregistrements de la table XSAL
où le champ XMAT_0
(matricule) apparaît plus d'une fois, puis enregistrer un journal de ces doublons via le module LECFIC
.
💡 Fonction complète YDUPMAT
######################################################################################
# Fonction : YDUPMAT
# Sous-programme de détection des matricules en double dans la table XSAL
Funprog YDUPMAT()
# Déclaration des variables locales
Local Char XMAT(50)
Local Integer NBRE, trouver
Local Char SQLREQ(250)
Local Char MESSAGE(200)
SQLREQ = ""
# Ouvrir le fichier de trace
Call OUVRE_TRACE("YDUPMAT") From LECFIC
Call ECR_TRACE("=== Début détection des matricules en double ===", -1) From GESECRAN
# Requête SQL pour récupérer les matricules en double
SQLREQ = "SELECT XMAT_0, COUNT(*) AS NBRE FROM jbelrh.JBELRH.XSAL XSAL GROUP BY XMAT_0 HAVING COUNT(*) > 1"
# Traitement SQL (connexion SQL Server = "5")
For (Char XMAT(50), Integer NBRE) From "5" Sql SQLREQ As [RS]
MESSAGE = "Matricule '" + [F:RS]XMAT + "' apparaît " + num$([F:RS]NBRE) + " fois"
Call ECR_TRACE(MESSAGE, 1) From GESECRAN
If [F:RS]XMAT <> "" Then
trouver += 1
Endif
Next
Call ECR_TRACE("=== Fin de détection : " + num$(trouver) + " doublons trouvés ===", -1) From GESECRAN
# Fermer et lire le journal
Call FERME_TRACE From LECFIC
Call LEC_TRACE From LECFIC
End trouver
🛠️ Modules utilisés
- LECFIC : ouverture, écriture et fermeture du journal de trace
- GESECRAN : écriture formatée dans la trace utilisateur
✅ Résultat
Un fichier de trace contenant tous les matricules en double, leur nombre d'occurrences, et le total des doublons détectés à la fin.
📦 Conclusion
Ce traitement est un excellent exemple d'audit automatique dans Sage X3, utile pour garantir l'unicité des données RH et éviter les incohérences dans les matricules salariés.