, 5 conseils pour utiliser CPYTOIMPF efficacement

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.