Vous conaissez tous la commande CPYTOIMPF qui va vous permettre de générer un fichier d’exportation, que vous pourrez fournir à un partenaire .
Voici quelques informations complémentaires qui pourront vous aider
1) C’est un moyen simple de centraliser sur L’IBMi des conversions de fichier base de données vers du CSV ou du EXCEL.
Ça vous évitera les .TTO dispatchés partout sur vos environnements Windows et difficiles à maintenir.
L’utilisateur retrouvera ses fichiers dans l’IFS, les bonnes pratiques poussent vers le répertoire /home/votreuser/
L’utilisateur pourra également se faire envoyer son fichier par mail, la commande IBMi native SNDSMTPEMM permettant de joindre une pièce jointe.
Si vous utiliser un outil complémentaire vous pouvez même faire des envois FTP vers des serveurs annexes.
2) Gestion du CCSID
Vous allez avoir à gérer celui du fichier source est celui du fichier cible
Pour le fichier source, il est conseillé si ce n’est pas le cas de forcer un ccsid
Par la commande en début de programme
CHGJOB CCSID(1147) ou 297 pour la France, vous éviterez ainsi les problèmes d’extractions intermédiaires.
L’ennemi c’est le CCSID(65535) qui d’ailleurs va vous poser de plus en plus de problèmes notamment avec les produits Open source.
Pour le fichier cible il vous suffit d’indiquer le paramètre STMFCCSID(*PCASCII) ou 1252 qui est le CCSID de windows par défaut, sur la commande CPYTOIMPF.
Oui on pourrait faire de l’unicode …
3) CSV ou XLS
il y a peu de différence entre un CSV et un XLS que sait produire votre IBMi.
La vérité, elle se joue quand votre utilisateur double clique sur le fichier et qu’il ne s’ouvre pas directement par excel.
voici les paramètres pour un CSV
CPYTOIMPF
TOSTMF(‘xxxx.csv’) +
RCDDLM(CRLF) STRDLM(NONE)
FLDDLM(‘;’)
le fichier s’ouvrira directement dans EXCEL
voici les paramètres pour un EXCEL
CPYTOIMPF
TOSTMF(‘xxxx.XLS’)
RCDDLM(CRLF) STRDLM(NONE)
FLDDLM(‘*TAB’)
Vous pouvez avoir malgrè tout un message à l’ouverture, mais aucune manipulation à faire.
4) Tri du fichier
Vous avez un paramètre qui va vous permettre de trier votre fichier comme un order by SQL
c’est le paramètre ORDERBY , exemple ORDERBY(‘Datecreat desc’) qui triera par ordre de création
5) Entête de colonne
Si vous désirez un entête de colonne, le meilleur compromis c’est de mettre le paramètre ADDCOLNAM(*SQL)
Si vous avez un nom long SQL provenant de votre table, vous aurez ceci
;nom_utilisateur;prenom_utilisateur;dat_naissance
;Berthoin;Pierre-Louis;28-08-1964
Vous aurez ceci, si vous avez un PF
;nomuti;preuti;datnai
;Berthoin;Pierre-Louis;28-08-1964
Il y a toujours la solution de passer par une requête intermédiaire sur les zones vous pourrez indiquer la clause AS .
Par exemple
select numcli as ‘Numero_client’ ….
Conclusion :
La commande CPYTOIMPF est une commande simple pour convertir vos fichiers Base de données.
Elle vous permet de garder la main, un batch de nuit peut générer des extractions, les utilisateurs n’ont pas besoin d’ ODBC, ni de droit sur le fichier d’origine.