Le web de Dominique Guebey – Bazar informatique

Page : 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      Bazar informatique

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 :

  CRTJRNRCV  JRNRCV(*CURLIB/TRFJRNRCV) THRESHOLD(100000)  
    MONMSG CPF0000                                        
  CRTJRN     JRN(TRFJRN) JRNRCV(*CURLIB/TRFJRNRCV)        
    MONMSG CPF0000                                        
  STRJRNPF   FILE(BIBLIO/DGFTP) JRN(*CURLIB/TRFJRN) +        
             OMTJRNE(*OPNCLO)                             
    MONMSG CPF0000                                        
/* ************************************* */               

  OVRDBF     FILE(OUTPUT) TOFILE(BIBLIO/DGFTP)               
  RUNSQLSTM  SRCFILE(QCLSRC) SRCMBR(TRFSQL1)              

/* ************************************* */               
ENDJRNPF FILE(BIBLIO/DGFTP)                                  
    MONMSG CPF0000                                        
DLTJRN TRFJRN                                             
    MONMSG CPF0000                                        
DLTJRNRCV TRFJRNRCV                                       
    MONMSG CPF0000                                        

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)




Cre : 22 oct 2006 - Maj : 07 nov 2006

À propos de ces pages / about these pages : http://www.dg77.net/about.htm