Page 1 sur 1

Code Retour sur appel pgm Pase

Posté : lun. 16 juil. 2012, 15:19:18
par claude.mahe
Bonjour,

Depuis notre passage en V7R1 ce week-end, nous rencontrons un problème sur le test du code retour renvoyé par l'API QUSRJOBI (cf exemple ci-dessous).
Nous utilisons Pase pour faire du sftp avec un partenaire. Depuis la V7R1, le "mget" utilisé dans le sftp renvoie le code 00001 s'il n'y a pas de fichiers à récupérer alors qu'en V5R4 on obtenait 00000
Quelqu'un a-t'il déjà eu ce problème ou y-a-t'il une autre façon de faire ?
Merci

Code : Tout sélectionner

.../...
CHGVAR &SHELL '/QOpensys/usr/bin/sh'
CHGVAR &SHELL (&SHELL *TCAT &NULL) 

CHGVAR &CMDSH ('/QOpensys/usr/bin/sftp -v' *BCAT 
    *BCAT '-b' *TCAT &FICCMD +                     
    *BCAT &USER *TCAT '@' *TCAT &SERVEUR +         
    *BCAT '-oPasswordAuthentication=' *TCAT &PASSW 
                                                   
CALL PGM(QP2SHELL) PARM(&SHELL '-c' &CMDSH) 
 
CHGVAR VAR(%BIN(&RCVVARLG)) VALUE(200)   /* taille de RCVVAR */
CALL PGM(QUSRJOBI) PARM(&RCVVAR    +
                             &RCVVARLEN +
                             'JOBI0600' +
                             '*'        +
                             ' '        )
     IF (%BIN(&RCVVAR 109 4) *NE 0) THEN(DO)
        SNDPGMMSG MSGID(CPF9898) MSGTYPE(*ESCAPE) MSGF(QCPFMSG) +
                  MSGDTA('Erreur dans commande sftp')
     ENDDO
.../...
[/code]

sftp et code retour

Posté : lun. 16 juil. 2012, 16:00:41
par cmasse
Je pense qu'il s'agit d'une nouveauté V7, déjà disponible en v6.1 via PTF
However, sFTP can return a return code when the sFTP command is completed. I believe this capability is part of i 6.1, and PTFs in version V5R3 (SI25208) and V5R4 (SI25209) for 5733-SC1 provide this capability
http://www.ibmsystemsmag.com/ibmi/admin ... ps/?page=4

(sans texte)

Posté : mar. 17 juil. 2012, 08:34:52
par claude.mahe
Merci, l'utilisation de la commande QSH se révèle nettement plus rapide et plus facile d'utilisation que le CALL Q2SHELL et la gestion de l'erreur beaucoup plus simple qu'avec l'API QUSRJOBI...
Malheureusement si la commande mget du sftp ne trouve aucun fichier, la commande retourne aussi le code erreur 1 !

Par contre un peu bizarre les messages "debug1" non ?

Code : Tout sélectionner

debug1: Entering interactive session.                                
debug1: Sending subsystem: sftp                                      
sftp> cd dataout                                                     
sftp> lcd /qmicro/dataout                                     
sftp> mget ./xyz*.CSV                                                
debug1: IGET and IPUT                                                
debug1: In FUNCTION: parse_args*****                                 
debug1: PATH::                                                       
debug1: IGET::In function::parse_dispatch_command                    
File "/dataout/./xyz*.CSV" not found.                                
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1                 
debug1: Transferred: stdin 0, stdout 0, stderr 0 bytes in 0,1 seconds
debug1: Bytes per second: stdin 0,0, stdout 0,0, stderr 0,0          
debug1: Exit status 0