Ajude o site desativando o bloqueador de anúncio
Cabeçalho

Advpl - Exemplo SFTP. Protheus, comunicação

Autor: Eurai Criado: 06/05/2026 Atualizado: 06/05/2026 ADVPL
Postagem

ADVPL - Exemplo de Comunicação SFTP no Protheus

Exemplo completo de integração SFTP utilizando ADVPL no Protheus, realizando conexão com servidor remoto, listagem de arquivos, download, upload e desconexão segura utilizando a classe tSFtpClient().

Este modelo pode ser utilizado para integrações automatizadas entre ERP Protheus, servidores externos, troca de arquivos bancários, XML, SPED, relatórios e demais processos corporativos que utilizam protocolo SFTP.


#INCLUDE "TOTVS.CH"

namespace ud.gen

/*/{Protheus.doc} a01
SFTP

@type function
@author Eurai Rapelli
@since 2026.01.01
/*/

User Function a01()
    Local oFtp := tSFtpClient():New()
    Local nRet := 00 as numeric
    Local nReceiveFile := 00 as numeric
    Local cError := '' as character

    Local cServer := 'xxx'
    Local cPort := '9222'
    Local cUser := '333'
    Local cPass := 'adadada'
    Local lResult := .T. as logical


    Begin Sequence

        // Conectar no servidor SFTP
        nRet := oFtp:Connect(cServer, cPort, cUser, cPass)
        If nRet != 0
            cError := 'Não foi possível conectar no servidor SFTP'
            lResult := .F.
            Break
        EndIf

        // Listar diretório remoto
        aDir := oFtp:Directory('/rec')
        VarInfo('aDir:', aDir, , .F.)

        // Receber arquivo do servidor
        nReceiveFile := oFtp:ReceiveFile('/uDev.zip', '/rec/wwww.zip')
        If nReceiveFile == 0
            CpyS2T('/uDev.zip', 'C:\temp\')
        EndIf

        // Enviar arquivo para o servidor SFTP
        nRet := oFtp:SendFile('/uDev.zip', '/rec/xxx.zip')
        If nRet != 0
            cError := 'Falha ao enviar arquivo para o servidor SFTP'
            lResult := .F.
            Break
        EndIf

        // Desconectar do servidor
        nRet := oFtp:Disconnect()
        If nRet != 0
            cError := 'Falha ao desconectar do servidor SFTP'
            lResult := .F.
            Break
        EndIf

    End Sequence

    If !Empty(cError)
        MsgInfo(cError, 'ud.gen.a01')
    EndIf

Return( Nil )

Funcionalidades do Exemplo

  • Conexão segura via SFTP utilizando ADVPL
  • Autenticação em servidor remoto
  • Listagem de diretórios remotos
  • Download de arquivos do servidor
  • Upload de arquivos para ambiente externo
  • Tratamento de erros durante conexão e transferência
  • Desconexão segura da sessão SFTP
  • Exemplo compatível com ambiente Protheus / TOTVS

 

O uso de comunicação SFTP no Protheus é extremamente comum em integrações corporativas, automações fiscais, troca de arquivos CNAB, recebimento de XML, integração bancária, sincronização entre sistemas e comunicação entre ambientes externos.

Este exemplo serve como base para criação de rotinas automatizadas em ADVPL utilizando protocolos seguros de transferência de arquivos.

 

Gostou do conteúdo?
Compartilhe com outros desenvolvedores e contribua com a evolução da comunidade ADVPL, Protheus e TOTVS.
Deixe seu comentário com dúvidas, sugestões ou melhorias para futuras implementações.

 

#ADVPL #Protheus #TOTVS #SFTP #IntegraçãoProtheus #ComunicaçãoSFTP #TSFtpClient #ERPProtheus #DesenvolvimentoADVPL #AutomaçãoERP #TransferenciaDeArquivos #Backend #ERP #FrameworkProtheus #ProgramacaoADVPL #SistemaERP #TecnologiaTOTVS #IntegraçãoDeSistemas #UploadArquivo #DownloadArquivo #DesenvolvimentoERP #ADVPLBrasil #TOTVSDeveloper #ServidorSFTP #AutomacaoCorporativa

ASSINE A NEWSLETTER

Cadastrando...

PIX uDesenv

PIX QR Code para depósito

Clique para doar

Parceiros

Tudo em ADVPL - Blog parceiro

Blog ADVPL