Sage X3 – Comment lister les fichiers d’un répertoire avec une fonction personnalisée
2 minute read
💡 Sage X3 – Lister les fichiers d’un répertoire via une fonction personnalisée
Voici une fonction Sage X3 très utile pour extraire la liste des fichiers dans un répertoire selon des critères personnalisés. Elle est parfaite pour automatiser des imports ou traitements par lot.
📌 Objectif : Générer une commande
dir
compatible avec SYSTEME2
pour obtenir les fichiers ciblés.
🔧 Fonction GET_FILE_IN_DIRECTORY
Funprog GET_FILE_IN_DIRECTORY(PATH, PREFISSO, ESTENSIONE, FILE_ONLY, SUBDIRECTORIES, SORT)
Variable Char PATH()
Value Char PREFISSO()
Value Char ESTENSIONE()
Value Integer FILE_ONLY
Value Integer SUBDIRECTORIES
Value Integer SORT
Local Char COMANDO(250)
PATH = filpath(PATH,"","")
COMANDO = "dir"
If (PATH<> "") : COMANDO -= PATH : Endif
COMANDO += "\\"
If (PREFISSO<>"") : COMANDO += PREFISSO : Endif
COMANDO += "*."
If (ESTENSIONE<>"") : COMANDO += ESTENSIONE : Else : COMANDO += "*" : Endif
Case FILE_ONLY
When 1 : COMANDO -= "/a-d"
When 2 : COMANDO -= "/ad"
Endcase
If (SUBDIRECTORIES) : COMANDO -= "/s" : Endif
COMANDO -= "/b 2>nul"
If (SORT) : COMANDO -= "| sort" : Endif
End COMANDO
📄 Paramètres
Paramètre | Type | Description |
---|---|---|
PATH | Char | Chemin du répertoire |
PREFISSO | Char | Préfixe des fichiers |
ESTENSIONE | Char | Extension ciblée (ex: csv ) |
FILE_ONLY | Integer | 0: Tous, 1: Fichiers, 2: Dossiers |
SUBDIRECTORIES | Integer | 0: courant, 2: avec sous-dossiers |
SORT | Integer | 0: sans tri, 1: tri alphabétique |
✅ Exemple d’utilisation
Local Char COM(250)
Local Char IMPORT_DIRECTORY (250)
[L]IMPORT_DIRECTORY = filpath("IMPORT\\Directory", "", "")
Local Char IMPORT_PATH (250)
Local Char FILESLIST ([V]GDIMFIC)(0..1000)
Local Integer FC, FILESCOUNT, J
[L]COM = func GET_FILE_IN_DIRECTORY([L]IMPORT_DIRECTORY, "", "csv", 1, 0, 0)
Call SYSTEME2(adxmac(-1), [L]COM, "", [L]FC, [L]FILESLIST) From ORDSYS
[L]FILESCOUNT = min([L]FC, dim([L]FILESLIST))
For J = 0 To [L]FILESCOUNT - 1
[L]FILNAM = left$([L]FILESLIST(J), instr(0, [L]FILESLIST(J), ".") -1)
[L]IMPORTPATH = filpath([L]IMPORT_DIRECTORY, [L]FILNAM, "csv")
Next J
🚀 Astuce
Cette méthode est idéale pour automatiser les flux de données Sage X3 : traitement des imports, analyse de fichiers entrants, etc.
🎯 Conclusion
Grâce à cette fonction simple et puissante, la gestion des fichiers devient plus fluide dans Sage X3. Elle peut s’intégrer à tous vos développements métiers personnalisés.
🔽 N’hésitez pas à commenter si vous souhaitez d’autres fonctions utiles sur Sage X3.