Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Voici les méthodes du module YFTP :

Image ModifiedImage ModifiedImage Modified
Info

Retrouvez les informations concernant YFTP dans l’aide en ligne XWIN au chapitre “Fonctions Ftp / SFtp”

image-20240430-121358.pngImage Added

Voici les méthodes présentes dans A5PMFTP :

...

  • l'upload et download d’un fichier

  • un test de connexion

  • du download multiple (GET * .XML par exemle), avec un retour pour chaque fichier téléchargé

  • du upload multiple (PUT * .XML par exemple), avec un retour pour chaque fichier envoyé

  • la sélection d’un pattern, comme *.xml.
    *.* prendra tous les fichiers avec extension
    * prendra tous les fichiers y compris ceux sans extension. Attention, il tentera également de copier les dossiers qui seraient présents sur le FTP mais va échouer. Si vous avez la problématique de GET e fichiers sans extension, alors atention à ne pas avoir de dossier dans le chemin de travail distant

  • de choisir d’effectuer une copie avec une extension intermédiaire (Fichier.xml (distant) ->fichier.xml.tmp (local) → fichier.xml (local)) ou l’inverse (Fichier.xml (local) ->fichier.xml.tmp (distant) → fichier.xml (distant))
    Ceci permet de s’assurer la copie intégrale du fichier sur le serveur (local ou distant) avant qu’il soit traitable de part son extension par un scrutateur
    L’extension utilisée par défaut est .tmp, mais elle est consultable et modifiable avec les méthodes FTP_Set_IntermediateExtension et FTP_Get_IntermediateExtension
    L’argument IntermediateExtension est positionné à True par défaut, vous pouvez le forcer à False dans votre appelparamétrable sur la table WMPARAMFTP.

Contenu du recordDiva yftp.FtpResult

Champ

Contenu

Format

Status

Contient soit le retour de FtpRequestGetError

0 pas d’erreur

1

ticket invalide

Ticket invalide

2 Erreur

3 Paramètres incorrects

Ou un retour de A5PMFTP :

4 Erreur sur le chemin local

5 Impossible de renommer localement le fichier

6 Erreur sur le fichier local

7 Erreur sur le fichier distant

8 FtpCod transmis incorrect

9 Serveur non renseigné

L

Code status du résultat

Public Structure FtpFileResult 1 FileName 256 ; nom fichier 1 Status L ;code status du resultat 1 Retour 256 ;retour principale 1 Desc 256 ;retour complémentaire

Retour

Message d'erreur produit par Harmony OU A5PMFTP

256

Retour principal

Desc

Texte de l'exception produit par la couche .Net.

256

Retour complémentaire

FileName

Nom de fichier

256

Outre le retour de la fonction appelée, vous pouvez obtenir plus de précisions en récupérant le dernier résultat par la méthode YFTP.FTP_get_lastFtpResult, renvoyant un recordDiva de type Yftp.FtpResult.

Contenu du recordDiva yftp.FtpFileResult

Le FtpFileResult est obtenu lors de traitement de fichiers multiples par Ftp_DownloadMultipleFile ou Ftp_UploadMultipleFile

Champ

Contenu

Format

FileName

Nom de fichier (individuel)

256

Status

Identique à FtpResult (voir ci-dessus)

Retour

Desc

Cas des fonctions de copies multiples

...

Il convient pour chaque fichier de récupérer la liste des fichiers concernés et le retour par les méthodes FTP_get_ListDownloadedFile ou FTP_get_ListUploadedFile.
Cette méthode renvoie la liste des fichiers traités et le compte rendu du dernier appel à une des 4 méthodes *MultipleFile*.
Cette liste contient des éléments du recordDiva de type YFtp.FtpFileResult (FileName+ contenu d’un FtpResult vu plus haut).voir ci-dessus).

Exemples

YFTP Test de connexion par download

Bloc de code
;*
Public Function int FTPTestConnexion(url_ftp, url_login, url_password)
; Chargement du fichier de descriptif et du fichier de données
; 0 : OK / 1 : Erreur / 2 : Erreur de config
	1 url_ftp 				A
	1 url_login	   		A
	1 url_password 		A
	;
	recordDiva 		yftp.FtpResult  rd
	1 fileName			S
	1 rt 					L = 1
;
Beginf
	fileName = CreateDirTemp("test.txt")

    ; Ftp recuperation du fichier
	rd = FtpDownloadFile (url_ftp, url_login, url_password, fileName, "test.txt" )
	
	if (rd.Status = 0)
		; Succes du telechargement 
		rt = 0
	elsif ((rd.Status = 2) and (String("(550)", rd.Desc ) > 0))
		; echec du telechargement car fichier pas trouvé (donc serveur trouvé et authen ok)
		rt = 2
	endif
	
	RemoveDirTemp(fileName)
	freturn(rt)
Endf

YFTP Envoi fichier

Bloc de code
;*
function int Envoyer_fichier_vers_serveur_Ftp(servftp, login, pwd, fileTemp, repTag, FileName, DeleteFileFl)
;envoi le fichier zip du package sur le serveur ftp

1	servftp 	;ServerFtpAdresse
1	login 	;ServerFtpLogin
1	pwd 		;ServerFtpPwd

1	repTag			S	; Sous-Répertoire de copie du fichier
1	fileTemp			S	; nom du fichier
1	FileName			S	; Nom du fichier final
1	DeleteFileFl	1,0 = false

1	fichierArrivee	S	; nom de fichier Final
1	err				1,0 = false
1	st			X
recordDiva 		yftp.FtpResult  retFtp

beginf
	
	;Création du répertoire de partage sur le serveur ftp
	FtpcreateDirectory (left(ServFtp), left(Login), left(Pwd), left(repTag))

	;envoi du fichier dans le répertoire de partage du le serveur ftp
	fichierArrivee = [ repTag "\" FileName ]
	retFtp = FtpUpLoadFile (left(ServFtp), left(Login), left(Pwd), left(fileTemp), fichierArrivee)
	if retftp.Status <> 0
		FtpDeleteDirectory (left(ServFtp), left(Login), left(Pwd), left(repTag))
	endif
	if retFtp.Status <> 0
		pv_mes_alert(4002)
		err = true
	endif
	
	if DeleteFileFl
		HDeleteFile(fileTemp, st, abort=FALSE)
	Endif

	freturn(err)
endf