Yes but it was given the way they need it to be done ,thats why i need to use WinSCP. I am sharing you the code but i dont think teres problem in the code because wheni try to save codeunit it says canot load WinSCP....... the specific .Net variable.
Heres the code :
LEAR(WinSCPSessionOptions);
CLEAR(WinSCPSesh);
CLEAR(TransferOptions);
WinSCPSessionOptions := WinSCPSessionOptions.SessionOptions;
WinSCPSessionOptions.HostName := 'INDIRIZZO IP';
WinSCPSessionOptions.UserName := 'USERNAME';
WinSCPSessionOptions.Password := 'PASSWORD';
WinSCPSessionOptions.PortNumber :=21;
DirectorySFTP := '/DIRECTORYFTP/';
Protocol := Protocol.Ftp;
WinSCPSessionOptions.Protocol(Protocol);
FtpSecure := FtpSecure.Explicit;
WinSCPSessionOptions.FtpSecure(FtpSecure);
WinSCPSessionOptions.GiveUpSecurityAndAcceptAnyTlsHostCertificate(TRUE); // acquisisce e valida in automatico l'impronta digitale (certificato) del server
WinSCPSesh := WinSCPSesh.Session;
WinSCPSesh.Open(WinSCPSessionOptions);
IF WinSCPSesh.Opened THEN BEGIN
TransferOptions := TransferOptions.TransferOptions;
TransferOptions.TransferMode := TrasferMode.Binary;
TransferOperationResult := WinSCPSesh.PutFiles('FILE DA INVIARE',DirectorySFTP,FALSE,TransferOptions);
IF TransferOperationResult.IsSuccess THEN
MESSAGE('Upload completato')
ELSE BEGIN
SessionRemoteExceptionCollection := TransferOperationResult.Failures;
FOREACH SessionRemoteException IN SessionRemoteExceptionCollection DO
MESSAGE(SessionRemoteException.ToString);
END;
END ELSE
MESSAGE(GETLASTERRORTEXT);