> Tech > Transférer automatiquement de multiples fichiers de données

Transférer automatiquement de multiples fichiers de données

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par Michael Otey - Mis en ligne le 9/03/2005 - Publié en Avril 2004

Retrouvez une sélection d'astuces techniques...

Transférer automatiquement de multiples fichiers de données
Installer des composants d'acces à  iSeries spécifiques
Dépasser le nombre maximum d'enregistrements de sous-fichier
Spécifier un numéro de port
Déterminer la valeur des bifs

Q : Je travaille sur un prototype
de site Web qui prend des données
d’une application iSeries.
Pour construire les pages HTML
basiques, j’utilise iSeries Access
Data Transfer. Comment puis-je
automatiser la création d’une requête
de transfert de données
pour chacun de mes 50 fichiers ?
Tous les fichiers de données proviennent
d’une bibliothèque et
toutes les pages HTML seront
nommées d’après le fichier
iSeries d’origine.

R : Vous pouvez faire cela aisément au
moyen de deux simples fichiers batch,
avec le mécanisme de transfert de fichiers
ligne de commande RTOPC
d’iSeries Access. La figure 1 montre le
script shell de la commande CRTDFR.
CMD qui crée dynamiquement le fichier
de spécification de transfert de fichiers
iSeries Access puis, éventuellement,
exécute le programme de
transfert du fichier ligne de commande
RTOPCB.EXE. Ce fichier batch permet
de transmettre dynamiquement les
noms de fichiers au programme de
transfert de fichiers iSeries Access
Express et de transférer le fichier de
l’iSeries sur le PC en format HTML.
Le second fichier batch lit un fichier
délimité par des virgules (CSV,
comma-separated value) qui contient
les noms des fichiers à  transférer, puis
appelle le premier fichier batch pour
effectuer le transfert pour chaque nom
de fichier dans la liste. Pour ajouter et
soustraire des fichiers, il suffit d’ajouter
des noms de fichiers au fichier CSV
en utilisant soit Notepad, soit un programme
du genre Excel.
Ce script shell de commande de la
figure 1 accepte quatre paramètres
obligatoires et un paramètre facultatif.
Le premier paramètre (%1) est le nom
de l’iSeries auquel on doit se connecter.
Le deuxième paramètre (%2) fournit
le nom de bibliothèque de fichiers
et de membres du fichier iSeries à 
transférer. Le troisième paramètre
(%3) donne le chemin et le nom du fichier
PC à  créer. Le quatrième paramètre
(%4) est le nom et le chemin du
fichier .DFR (fichier de spécification de
transfert de fichiers iSeries Access) à 
créer. Le cinquième paramètre facultatif
(%5) accepte une valeur de RUN
pour indiquer que le transfert de fichiers
doit être exécuté. Si l’on omet
ce paramètre, le script créera le fichier
.DFR mais n’exécutera pas le transfert.
La première partie du script vérifie
que les quatre paramètres requis sont
fournis puis vérifie que le cinquième
paramètre a la valeur RUN. Si ces
conditions ne sont pas remplies, le
script affiche une invite d’usage et se
termine. Si les valeurs des paramètres
requis sont fournies, la section de
script suivant le label :DFR entreprend
de créer le fichier de spécification de
transfert du fichier .DFR. Dans cette
section, la commande écho est utilisée
en même temps que la redirection
pour écrire le contenu du fichier .DFR
dans le chemin et le nom de fichier indiqués
dans le quatrième paramètre.
Vous devez noter où sont utilisés le
nom hôte iSeries dans le paramètre un,
le nom de fichier iSeries dans le paramètre
deux, et le nom de fichier PC
dans le paramètre trois, pour fournir
dynamiquement les valeurs au fichier
.DFR qui est écrit à  l’aide de la commande
écho.
Une fois que la chaîne des commandes
écho a créé le fichier .DFR, le
script appelle la commande RTOPCB
pour exécuter la requête de transfert
de fichier. Là , il faut noter où, le
nom du fichier .DFR contenu dans le
paramètre quatre, est transmis comme
argument au programme RTOPCB.
Cela conduit le programme RTOPCB à 
exécuter le fichier .DFR nouvellement
créé. Pour finir, on vérifie la variable errorlevel
pour s’assurer que le transfert
s’est bien effectué.
Par lui-même, le script CRTDFR.
CMD peut exécuter un transfert de fichier
à  la fois. Il est un moyen simple
d’utiliser ce script avec des fichiers multiples : en écrivant un fichier batch
et en exécutant le script une fois pour
chaque fichier que l’on souhaite transférer.
Cependant, une approche plus
souple et réutilisable consiste à  créer
un script de driver simple qui appelle
le script CRTDFR.CMD avec différentes
valeurs d’après le contenu d’un fichier
qui donne la liste de tous les noms de
fichiers à  transférer. Cela vous permet
de taper les noms du fichier à  transférer
dans un fichier .EXT ; le script du
driver appelle alors dynamiquement le
script CRTDFR.CMD, en substituant les
valeurs provenant du fichier.
La figure 2 montre le fichier
MASSXFER.CMD qui joue le rôle de fichier
driver pour cette application. La
commande FOR lit un fichier CSV
nommé filelist.txt et place les noms de
fichiers qu’elle lit dans trois variables
(%%i, %%j et %%k). Le script CRTDFR.
CMD est ensuite appelé une fois pour
chaque entrée dans le fichier texte et
les noms de fichiers iSeries sont fournis
aux deuxième, troisième et quatrième
paramètres d’après le contenu
du fichier filelist.txt. La figure 3 contient
une liste des fichiers à  transférer.
Cet exemple ne présente que deux entrées,
mais vous pouvez en utiliser davantage.

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par iTPro.fr - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT