Páginas filhas
  • LGX - LFTP

 Classe para comunicação com servidores de FTP (File Transfer Protocol).


Hierarquia



Sintaxe



LET l_ftp_reference = _ADVPL_create_component(NULL,"LFTP")


Métodos GET



Métodos acessíveis através da função _ADVPL_get_property que permite recuperar e manipular os valores do componente:

Método GET: FTP_CONNECT

Realiza conexão com um servidor FTP.

Sintaxe




_ADVPL_get_property(< l_reference >,"FTP_CONNECT",< cServer >,< nPort >,< cUser >,< cPassword >) => SMALLINT

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
cServerCHARNome ou endereço IP do servidor FTP.Sim


nPort
SMALLINT
Número da porta de comunicação com o servidor FTP.Sim
cUser
CHAR
Usuário para autenticação no servidor FTP.Sim
cPassword
CHAR
Senha para autenticação no servidor FTP.Sim

Retorno




TipoDescrição
SMALLINT

Verdadeiro se o servidor FTP foi conectado com sucesso.

Exemplo




Exemplo
#------------------------------#
 FUNCTION LFTP_getFTP_CONNECT()
#------------------------------#
   DEFINE l_reference VARCHAR(10)     
   
   # Cria o componente para conexão FTP.     
   LET l_reference = _ADVPL_create_component(NULL,"LFTP")   
   
   # Conecta o componente ao servidor FTP.     
   LET l_status = _ADVPL_get_property(l_reference,"FTP_CONNECT","est1",21,"lg991933","********")
 END FUNCTION




Método GET: FTP_DOWNLOAD_FILE

Efetua o download de um arquivo do servidor FTP.

Sintaxe




_ADVPL_get_property(< l_reference >,"FTP_DOWNLOAD_FILE",< cFile >,< cDir >) => SMALLINT

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
cFileCHARArquivo de origem do servidor FTP do qual será realizado o download para a máquina local ou para um diretório do servidor TOTVS Tec. O arquivo deve ser informado com o caminho completo do servidor FTP.Sim


cDir
CHAR
Diretório de destino onde será feito o download do arquivo. Podendo este ser da máquina local ou um diretório do servidor TOTVS Tec.Sim

Retorno




TipoDescrição
SMALLINT

Verdadeiro se o download do arquivo foi realizado com sucesso.

Exemplo




Exemplo
 # Efetua o download de um arquivo do servidor FTP para a maquina local.     
LET l_status = _ADVPL_get_property(l_ftp_reference,"FTP_DOWNLOAD_FILE","\\home\\lg991933\\ftp_download.txt","C:\\ftp\\")   
   




Método GET: FTP_ERROR

Informa o código de erro da última ação FTP que falhou.

Sintaxe




_ADVPL_get_property(< l_reference >,"FTP_ERROR")

Retorno




TipoDescrição
CHAR

Mensagem de erro ocorrida na última ação FTP que falhou.

Exemplo




Exemplo
LET l_msgerror = _ADVPL_get_property(l_reference,"FTP_ERROR")




Método GET: FTP_GET_FILE_LIST_COUNT

Quantidade de arquivos encontrados na execução do método FTP_LOAD_FILE_LIST.

Sintaxe




_ADVPL_get_property(< l_reference >,"FTP_GET_FILE_LIST_COUNT") => INTEGER

Retorno




TipoDescrição
INTEGER

Quantidade total de arquivos encontrados no diretório informado no método "FTP_LOAD_FILE_LIST"

Exemplo




Exemplo
LET l_totalFiles = _ADVPL_get_property(l_reference,"FTP_GET_FILE_LIST_COUNT")




Método GET: FTP_GET_FILE_LIST_INDEX

Arquivo encontrado numa determinada posição da lista de arquivos carregados pelo método FTP_LOAD_FILE_LIST.

Sintaxe




_ADVPL_get_property(< l_reference >,"FTP_GET_FILE_LIST_INDEX",< nIndex >) => SMALLINT

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
nIndexINTEGERÍndice do arquivo dentro da lista de arquivos encontrados no diretório informado na execução do método "FTP_LOAD_FILE_LIST".Sim


Retorno




TipoDescrição
INTEGER

Nome do arquivo

Exemplo




Exemplo
 # Carrega a lista dos arquivos de um diretório FTP. 
 CALL _ADVPL_set_property(l_ftp_reference,"FTP_LOAD_FILE_LIST","/home/lg991933/","*.*",TRUE)

 # Recupera a quantidade de arquivos encontrados no diretório. 
 LET l_count = _ADVPL_get_property(l_ftp_reference,"FTP_GET_FILE_LIST_COUNT") 
 FOR l_ind = 1 TO l_count 
    # Exibe no console todos os arquivos encontrados no diretório. 
    LET l_file_name = _ADVPL_get_property(l_ftp_reference,"FTP_GET_FILE_LIST_INDEX",l_ind) 
    CALL conout(l_file_name CLIPPED) 
 END FOR 




Método GET: FTP_REMOVE_FILE

Remove um arquivo do servidor FTP.

Sintaxe




_ADVPL_get_property(< l_reference >,"FTP_REMOVE_FILE",< cFile >) => SMALLINT

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
cFileCHARArquivo do servidor FTP que será removido, o arquivo deve ter o caminho do completo.Sim


Retorno




TipoDescrição
SMALLINT

Verdadeiro se o arquivo do servidor FTP foi removido com sucesso.

(ideia) Em caso de falha (Falso) a descrição do erro ocorrido pode ser recuperada utilizando o método FTP_ERROR.

Exemplo




Exemplo
# Exclui um arquivo do servidor FTP.     
LET l_status = _ADVPL_get_property(l_ftp_reference,"FTP_REMOVE_FILE","\\home\\lg991933\\teste.txt")




Método GET: FTP_RENAME_FILE

Renomeia um arquivo do servidor FTP.

Sintaxe




_ADVPL_get_property(< l_reference >,"FTP_RENAME_FILE",< cFile >,< cNewFile >) => SMALLINT

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
cFileCHARArquivo do servidor FTP que será renomeado, o arquivo deve ter o caminho do completo.Sim


cNewFile
CHAR
Novo nome que será atribuído ao arquivo informado.Sim

Retorno




TipoDescrição
SMALLINT

Verdadeiro se o arquivo do servidor FTP foi renomeado com sucesso.

(ideia) Em caso de falha (Falso) a descrição do erro ocorrido pode ser recuperada utilizando o método FTP_ERROR.

Exemplo




Exemplo
# Renomeia um arquivo do servidor FTP. 
LET l_status = _ADVPL_get_property(l_ftp_reference,"FTP_RENAME_FILE","\\home\\lg991933\\ftp_download.txt","teste.txt")




Método GET: FTP_UPLOAD_FILE

Efetua o upload de um arquivo para o servidor FTP.

Sintaxe




_ADVPL_get_property(< l_reference >,"FTP_UPLOAD_FILE",< cFile >,< cDir >) => SMALLINT

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
cFileCHAR

Arquivo de origem do qual será realizado o upload para o servidor FTP. O arquivo deve estar com o caminho completo, podendo este ser da máquina local ou de um diretório do servidor TOTVS Tec.

A pesquisa do arquivo de origem sempre será realizada na seguinte ordem:
1) Pasta Local 

2) Pasta completa no servidor do AppServer.

3) Pasta no disco do servidor do AppServer, sendo uma pasta relativa ao ROOTPATH configurado no ambiente em uso.

Sim


cDir
CHAR
Diretório do servidor FTP de destino, onde será feito o UPLOAD do arquivo informado.Sim

Retorno




TipoDescrição
SMALLINT

Verdadeiro se o upload do arquivo foi realizado com sucesso.

Exemplo




Exemplo
 # Efetua o upload de um arquivo da máquina local para o servidor FTP.     
LET l_status = _ADVPL_get_property(l_ftp_reference,"FTP_UPLOAD_FILE","C:\\ftp\\ftp_upload.txt","\\home\\lg991933\\")     
   





Métodos SET



Métodos acessíveis através da função _ADVPL_set_property que permite alterar e manipular os valores do componente:

Método SET: FTP_DISCONNECT

Desconecta um servidor FTP.

Sintaxe




CALL _ADVPL_set_property(< l_reference >,"FTP_DISCONNECT")


Exemplo




Exemplo
#---------------------------------#
 FUNCTION LFTP_setFTP_DISCONNECT()
#---------------------------------#
    CALL _ADVPL_set_property(l_reference,"FTP_DISCONNECT") 
 END FUNCTION




Método SET: FTP_LOAD_FILE_LIST

Carrega uma lista com os arquivos encontrados no diretório informado do servidor FTP.

Sintaxe




CALL _ADVPL_set_property(< l_reference >,"FTP_LOAD_FILE_LIST", < cDir>, < cExtension >, < nListDir > )

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
cDirCHARDiretório do servidor FTP do qual deseja-se carregar a lista de arquivos.Sim


cExtension
CHAR
Define quais extensões de arquivos serão carregados na lista de arquivos.

nListDir
SMALLINT
Indicador que define se serão listadas os subdiretórios do diretório informado.
 FALSE

Observações


Caso não informada a extensão do arquivo, será considerado o padrão todos os arquivos (*.*).
Caso não informado se irá listar os subdiretórios, iserá considerado o padrão para não listar os subdiretórios (FALSE).

Exemplo




Exemplo
# Carrega a lista dos arquivos de um diretório FTP. 
CALL _ADVPL_set_property(l_ftp_reference,"FTP_LOAD_FILE_LIST","/home/lg991933/","*.*",TRUE)




Exemplo


Clique no link na lateral direita para expandir o código de exemplo.

Código de exemplo do componente LQUERY
#--------------------# 
 FUNCTION TesteLFTP()
#--------------------#     
   DEFINE l_ind           SMALLINT,            
          l_count         SMALLINT,            
          l_status        SMALLINT     
   DEFINE l_file_name     CHAR(050)     
   DEFINE l_ftp_reference VARCHAR(10)     
   
   # Cria o componente para conexão FTP.     
   LET l_ftp_reference = _ADVPL_create_component(NULL,"LFTP")   
   
   # Conecta o componente ao servidor FTP.     
   LET l_status = _ADVPL_get_property(l_ftp_reference,"FTP_CONNECT","est1",21,"lg991933","********")     
   
   IF  NOT l_status THEN         
       CALL log0030_mensagem("Não foi possível conectar-se ao servidor FTP.","excl")         
       RETURN     
   END IF     
   
   # Carrega a lista dos arquivos de um diretório FTP.     
   CALL _ADVPL_set_property(l_ftp_reference,"FTP_LOAD_FILE_LIST","/home/lg991933/","*.*",TRUE)
   
   # Recupera a quantidade de arquivos encontrados no diretório.     
   LET l_count = _ADVPL_get_property(l_ftp_reference,"FTP_GET_FILE_LIST_COUNT")     
   
   IF  l_count = 0 THEN         
       CALL log0030_mensagem("Nenhum arquivo encontrado no diretório '/home/lg991933/' do servidor FTP.","excl")         
       RETURN     
   END IF     
   
   FOR l_ind = 1 TO l_count         
       # Exibe no console todos os arquivos encontrados no diretório.         
       LET l_file_name = _ADVPL_get_property(l_ftp_reference,"FTP_GET_FILE_LIST_INDEX",l_ind)         
       CALL conout(l_file_name CLIPPED)     
   END FOR     
   
   # Efetua o upload de um arquivo da máquina local para o servidor FTP.     
   LET l_status = _ADVPL_get_property(l_ftp_reference,"FTP_UPLOAD_FILE","C:\\ftp\\ftp_upload.txt","\\home\\lg991933\\")          
   
   # Efetua o download de um arquivo do servidor FTP para a maquina local.     
   LET l_status = _ADVPL_get_property(l_ftp_reference,"FTP_DOWNLOAD_FILE","\\home\\lg991933\\ftp_download.txt","C:\\ftp\\")
   
   # Renomeia um arquivo do servidor FTP.     
   LET l_status = _ADVPL_get_property(l_ftp_reference,"FTP_RENAME_FILE","\\home\\lg991933\\ftp_download.txt","teste.txt")          
   
   # Exclui um arquivo do servidor FTP.     
   LET l_status = _ADVPL_get_property(l_ftp_reference,"FTP_REMOVE_FILE","\\home\\lg991933\\teste.txt")     
   
   # Disconecta do servidor FTP.     
   CALL _ADVPL_set_property(l_ftp_reference,"FTP_DISCONNECT") 
 END FUNCTION