Le web de Dominique Guebey – IBM AS/400 iSeries

Page web  : http://www.dg77.net/tekno/as400/ftpsql.htm


   D o m i n i q u e   G u e b e y    J u n g l e      IBM AS/400 iSeries

SQL à la rescousse pour alimenter un log FTP

Exemple

Un CL permet d’envoyer automatiquement le fichier BIBLIO/SAUVE vers la machine SYSTEME. Le log FTP est conservé mais il ne contient pas d’information d’horodatage. Comment ajouter cette information ?

En effet, FTP ne donne pas plus que ce qui est prévu dans sa conception : une série d’invites, de messages d’information ou d’erreurs.

La méthode

Insérer dans le log une info supplémentaire, à l’aide d’une simple commande SQL.

Le CL

PGM              
                 
DLTOVR    INPUT  
MONMSG    CPF0000
DLTOVR    OUTPUT 
MONMSG    CPF0000
CRTSRCPF  BIBLIO/DGFTP 240              /* CREE LOG FTP            */
MONMSG    CPF0000         
                          
OVRDBF    INPUT  BIBLIO/QCLSRC DGFTP01  /* NOM DU SCRIPT FTP       */
OVRDBF    OUTPUT BIBLIO/DGFTP  FTPLOG   /* REDIRIGE SORTIE LOG     */
RUNSQLSTM BIBLIO/QCLSRC FTPSQL1         /* INSERE DATE-HEURE DEBUT */
MONMSG    CPF0000         
DLTSPLF   FTPSQL1  SPLNBR(*LAST)        /* MENAGE SPOOL            */
MONMSG    CPF0000         
FTP       SYSTEME                       /* LANCE LE TRANSFERT FTP  */
RUNSQLSTM BIBLIO/QCLSRC FTPSQL2         /* INSERE DATE-HEURE FIN   */
MONMSG    CPF0000         
DLTSPLF   FTPSQL2  SPLNBR(*LAST)        /* MENAGE SPOOL            */
MONMSG    CPF0000         
                          
DLTOVR    INPUT           
MONMSG    CPF0000         
DLTOVR    OUTPUT          
MONMSG    CPF0000         
                          
ENDPGM                    

Le script FTP DGFTP01

Les commandes lancées par QUOTE RCMD peuvent nécessiter une adaptation à chaque lancement.

USERID PASSWORD est à remplacer par le code utilisateur et le mot-de-passe.


Modules SQL FTPSQL1 et FTPSQL2

Appelé par la commande RUNSQLSTM, il s’agit d’un membre source, de type TXT. CHAR permet de récupérer en texte simple les données numériques date et heure.



Remarque

Si la commande INSERT ne comporte pas la clause WITH NC, va falloir faire quelque chose comme :


Exemple de "log" résultant


Autre exemple où le fichier est expédié vers un système non OS400. D’où l’utilisation de NAMEFMT = 1 et d’un chemin de type IFS (/u04/INFOCENT/bddbo)