dpcapri

as400 ftp transfer

3 posts in this topic

Hello, i am new in this tool..

I have a script who transfer some file between windows server and as400.

the as400 is not on Unix mode, but as400 mode.

All goes well for the connection, autentication, but when the script try to tranfer the file, we probably receive an error message we need to ignore...

any body have experiencies with that ?

 

I use the FTP_ex script.

Thank you for any help.

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Could you post your code (without your credentials) - preferably using the <> code tags and explain the exact error message you are receiving?

This is not a strong area for me but I'll take a shot ... it looks like the function you are using is using WinInet.

Func __FTP_Init()
    $__g_hWinInet_FTP = DllOpen('wininet.dll')
EndFunc   ;==>__FTP_Init

If you look here at MSDN you can see how to ignore various types of WinInet error messages (search for "ignore").  I still think you probably need to know the error message in question to figure out which flags to use (and I could be wrong):

https://msdn.microsoft.com/en-us/library/windows/desktop/aa385328(v=vs.85).aspx

Edited by Jfish

Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt

Share this post


Link to post
Share on other sites

Hello,

See below the script : Just the function FTP PUT.

I don't know where i can insert following the type of server Wintel, unix or AS400 mode.

My problem is with AS400 mode, we need to insert the command QUOTE SITE NAMEFMT 1 to be sure to have the good directory format.

 

;======================================
; Fonction FTP Put or Get *************
;======================================
Func _FTP()

 ; Ouverture de session FTP
 _FileWriteLog($logPath & $logName, @CRLF)
 _FileWriteLog($logPath & $logName, "***************************************")
 _FileWriteLog($logPath & $logName, "ETAPE " & $i & "." & $i & " : Ouverture de session FTP")
 $FTPOpenError = _FTP_Open(StringTrimRight($IniName,4))
 If $FTPOpenError = 0 Then
  $Message[$i][$i] = "ERREUR ETAPE " & $i & "." & $i & " : " & @LF & "Impossible d'ouvrir une session FTP"
  _FileWriteLog($logPath & $logName, "-----")
  _FileWriteLog($logPath & $LogName, "ERREUR ETAPE " & $i & "." & $i & " : impossible d'ouvrir une session FTP")
  _FileWriteLog($logPath & $logName, "-----")
  $GlobalMessage = $GlobalMessage & @CRLF & $Message[$i][$i]


 Else
  _FileWriteLog($logPath & $logName, @CRLF)
  _FileWriteLog($logPath & $logName, "***************************************")
  _FileWriteLog($logPath & $LogName, "Session FTP Ouverte")


  ; Connexion au serveur FTP Distant
  $FTPServerIP = IniRead($iniPath, "FTPSERVER", "IP", "default")
  $FTPUser = IniRead($iniPath, "FTPSERVER", "Username", "default")
  _FileWriteLog($logPath & $logName, "Connexion au serveur FTP : " & $FTPServerIP & " avec le compte : " & $FTPUser)
  $FTPPass = Ini_ReadCrypted($Cle, $iniPath, "FTPSERVER", "Password")
  $FTPConnectError = _FTP_Connect($FTPOpenError, $FTPServerIP, $FTPUser, $FTPPass)
  If $FTPConnectError = 0 Then
   $Message[$i][$i+1] = "ERREUR ETAPE " & $i & "." & $i+1 & " : " & @CRLF & "Le nom d'utilisateur : " & $FTPUser & " ou le mot de passe de connexion au serveur FTP " & $FTPServerIP & " est incorrect"
   _FileWriteLog($logPath & $logName, "-----")
   _FileWriteLog($logPath & $logName, "ERREUR ETAPE " & $i & "." & $i+1 & " : le nom d'utilisateur : " & $FTPUser & " ou le mot de passe de connexion au serveur FTP " & $FTPServerIP & " est incorrect")
   _FileWriteLog($logPath & $logName, "-----")
   $GlobalMessage = $GlobalMessage & @CRLF & $Message[$i][$i+1]


  Else
   ; Changement de répertoire FTP
   _FileWriteLog($logPath & $logName, @CRLF)
   _FileWriteLog($logPath & $logName, "----------------------------------------")

   If $ETAPE[$i] = "FTP_Put" Then ; si fichiers vers serveur FTP, sélectionner le répertoire de dépot : ***** SI COPIER FICHIER VERS LE SERVEUR FTP
    If $Dest_Folder <> "" Then
     _FileWriteLog($logPath & $logName, "Accès au répertoire FTP : " & $Dest_Folder)
     $FTPChangeDirError = _FTP_DirSetCurrent($FTPConnectError, $Dest_Folder)
     If $FTPChangeDirError = 0 Then
      $Message[$i][$i+2] = "ERREUR ETAPE " & $i & "." & $i+2 & " : " & @CRLF & "Le répertoire de dépôt FTP n'est pas accessible"
      _FileWriteLog($logPath & $logName, "-----")
      _FileWriteLog($logPath & $logName, "ERREUR ETAPE " & $i & "." & $i+2 & " : le répertoire de dépôt FTP n'est pas accessible")
      _FileWriteLog($logPath & $logName, "-----")
      $GlobalMessage = $GlobalMessage & @CRLF & $Message[$i][$i+2]
     Else
      _FileWriteLog($logPath & $logName, "Le répertoire de dépôt FTP est : " & $Dest_Folder)
     EndIf
    EndIf

    ; Transfert des fichiers vers le serveur FTP
    Select

     Case $List[0] = "1" ; un seul fichier
      _FileWriteLog($logPath & $logName, @CRLF)
      _FileWriteLog($logPath & $logName, "----------------------------------------")
      _FileWriteLog($logPath & $logName, "Transfert du fichier vers le serveur " & $FTPServerIP & " ------")
      $FTPFilePutError = _FTP_FilePut($FTPConnectError, $Source_Folder & $List[1] , $Dest_Folder)
      If $FTPFilePutError = 0 Then
       $Message[$i][$i+3] = "ERREUR ETAPE " & $i & "." & $i+2 & " : " & @CRLF & "Le fichier " & $Source_Folder & $List[1] & " n'a pas pu être transféré sur le serveur " & $FTPServerIP
       _FileWriteLog($logPath & $logName, "-----")
       _FileWriteLog($logPath & $logName, "ERREUR ETAPE " & $i & "." & $i+2 & " : le fichier " & $Source_Folder & $List[1] & " n'a pas pu être transféré sur le serveur " & $FTPServerIP)
       _FileWriteLog($logPath & $logName, "-----")
       $GlobalMessage = $GlobalMessage & @CRLF & $Message[$i][$i+3]
      Else
       _FileWriteLog($logPath & $logName, "-----")
       _FileWriteLog($logPath & $logName, "Le fichier " & $Source_Folder & $List[1] & " a été transféré sur le serveur " & $FTPServerIP & " dans le dossier " & $Dest_Folder)
       _FileWriteLog($logPath & $logName, "-----")
      EndIf

     Case $List[0] > "1" ; plus d'un fichier
      For $k = 1 To $List[0]
       _FileWriteLog($logPath & $logName, @CRLF)
       _FileWriteLog($logPath & $logName, "----------------------------------------")
       _FileWriteLog($logPath & $logName, "Transfert des fichiers vers le serveur " & $FTPServerIP & " ------")
       $FTPFilePutError = _FTP_FilePut($FTPConnectError, $Source_Folder & $List[$k], $Dest_Folder)
       If $FTPFilePutError = 0 Then
        $Message[$i][$i+3] = $Message[$i][$i+3] & @CRLF & "ERREUR ETAPE" & $i & "." & $i+2 & " : " & @CRLF & "Le fichier " & $Source_Folder & $List[$k] & " n'a pas pu être transféré sur le serveur " & $FTPServerIP & " dans le dossier " & $Dest_Folder & @LF
        _FileWriteLog($logPath & $logName, "-----")
        _FileWriteLog($logPath & $logName, "ERREUR ETAPE " & $i & "." & $i+2 & " : le fichier " & $Source_Folder & $List[$k] & " n'a pas pu être transféré sur le serveur " & $FTPServerIP & " dans le dossier " & $Dest_Folder)
        _FileWriteLog($logPath & $logName, "-----")
        $GlobalMessage = $GlobalMessage & @CRLF & $Message[$i][$i+3]
       Else
        _FileWriteLog($logPath & $logName, "-----")
        _FileWriteLog($logPath & $logName, "Le fichier " & $Source_Folder & $List[$k] & " a été transféré sur le serveur " & $FTPServerIP & " dans le dossier " & $Dest_Folder)
        _FileWriteLog($logPath & $logName, "-----")
       EndIf
      Next
    EndSelect
   EndIf

   If $ETAPE[$i] = "FTP_Get" Then ; si fichiers vers serveur FTP, sélectionner le répertoire source FTP : ***** SI COPIER FICHIER DEPUIS LE SERVEUR FTP
    If $Dest_Folder <> "" Then
     _FileWriteLog($logPath & $logName, "Accès au répertoire FTP : " & $Source_Folder)
     $FTPChangeDirError = _FTP_DirSetCurrent($FTPConnectError, $Source_Folder)
     If $FTPChangeDirError = 0 Then
      $Message[$i][$i+2] = "ERREUR ETAPE " & $i & "." & $i+2 & " : " & @CRLF & "Le répertoire source FTP n'est pas accessible"
      _FileWriteLog($logPath & $logName, "-----")
      _FileWriteLog($logPath & $logName, "ERREUR ETAPE " & $i & "." & $i+2 & " : le répertoire source FTP n'est pas accessible")
      _FileWriteLog($logPath & $logName, "-----")
      $GlobalMessage = $GlobalMessage & @CRLF & $Message[$i][$i+2]
     Else
      _FileWriteLog($logPath & $logName, "Le répertoire source FTP est : " & $Source_Folder)
     EndIf
    EndIf

    ; Lister les fichiers du dossier FTP si FTP Get
    $List = _FTP_ListToArray($FTPConnectError, 2)

    ; Transfert des fichiers depuis le serveur FTP
    Select

     Case $List[0] = "1" ; un seul fichier
      _FileWriteLog($logPath & $logName, @CRLF)
      _FileWriteLog($logPath & $logName, "----------------------------------------")
      _FileWriteLog($logPath & $logName, "Transfert du fichier depuis le serveur " & $FTPServerIP & " ------")
      $FTPFileGetError = _FTP_FileGet($FTPConnectError, $Source_Folder & $List[1] , $Dest_Folder)
      If $FTPFileGetError = 0 Then
       $Message[$i][$i+3] = "ERREUR ETAPE " & $i & "." & $i+2 & " : " & @CRLF & "Le fichier " & $Source_Folder & $List[1] & " n'a pas pu être transféré sur le serveur " & $FTPServerIP
       _FileWriteLog($logPath & $logName, "-----")
       _FileWriteLog($logPath & $logName, "ERREUR ETAPE " & $i & "." & $i+2 & " : le fichier " & $Source_Folder & $List[1] & " n'a pas pu être transféré sur le serveur " & $FTPServerIP)
       _FileWriteLog($logPath & $logName, "-----")
       $GlobalMessage = $GlobalMessage & @CRLF & $Message[$i][$i+3]
      Else
       _FileWriteLog($logPath & $logName, "-----")
       _FileWriteLog($logPath & $logName, "Le fichier " & $Source_Folder & $List[1] & " a été transféré sur le serveur " & $FTPServerIP & " dans le dossier " & $Dest_Folder)
       _FileWriteLog($logPath & $logName, "-----")
      EndIf

     Case $List[0] > "1" ; plus d'un fichier
      For $k = 1 To $List[0]
       _FileWriteLog($logPath & $logName, @CRLF)
       _FileWriteLog($logPath & $logName, "----------------------------------------")
       _FileWriteLog($logPath & $logName, "Transfert des fichiers depuis le serveur " & $FTPServerIP & " ------")
       $FTPFileGetError = _FTP_FileGet($FTPConnectError, $Source_Folder & $List[$k], $Dest_Folder)
       If $FTPFileGetError = 0 Then
        $Message[$i][$i+3] = $Message[$i][$i+3] & @CRLF & "ERREUR ETAPE" & $i & "." & $i+2 & " : " & @CRLF & "Le fichier " & $Source_Folder & $List[$k] & " n'a pas pu être transféré depuis le serveur " & $FTPServerIP & " dans le dossier " & $Dest_Folder & @LF
        _FileWriteLog($logPath & $logName, "-----")
        _FileWriteLog($logPath & $logName, "ERREUR ETAPE " & $i & "." & $i+2 & " : le fichier " & $Source_Folder & $List[$k] & " n'a pas pu être transféré sur le serveur " & $FTPServerIP & " dans le dossier " & $Dest_Folder)
        _FileWriteLog($logPath & $logName, "-----")
        $GlobalMessage = $GlobalMessage & @CRLF & $Message[$i][$i+3]
       Else
        _FileWriteLog($logPath & $logName, "-----")
        _FileWriteLog($logPath & $logName, "Le fichier " & $Source_Folder & $List[$k] & " a été transféré sur le serveur " & $FTPServerIP & " dans le dossier " & $Dest_Folder)
        _FileWriteLog($logPath & $logName, "-----")
       EndIf
      Next
    EndSelect
   EndIf


   ;Fermeture de session FTP distant
   $FTPCloseError = _FTP_Close($FTPOpenError)
   If $FTPCloseError = "0" Then
    $Message[$i][$i+4] = "ERREUR ETAPE " & $i & "." & $i+4 & " : La session FTP ne parvient pas à se fermer"
    _FileWriteLog($logPath & $logName, "-----")
    _FileWriteLog($logPath & $logName, "ERREUR ETAPE " & $i & "." & $i+4 & " : Impossible de fermer la session FTP")
    _FileWriteLog($logPath & $logName, "-----")
    $GlobalMessage = $GlobalMessage & @CRLF & $Message[$i][$i+4]
   Else
    _FileWriteLog($logPath & $logName, "-----")
    _FileWriteLog($logPath & $logName, "Session FTP Fermée *************")
    _FileWriteLog($logPath & $logName, "***************************************")
   EndIf
  EndIf
 EndIf

EndFunc

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now