SFTP file transfer interface

You can use the SFTP file transfer interface in formulas in Infor Public Sector to upload and download files using SFTP (Secure File Transfer Protocol).

First, use the File Transfers > SFTP node in the FileManagement configuration to connect to the SFTP server. You must specify the host address and a user name and password.

You can then use the interface in formulas. The SFTP file transfer interface (Hansen.Core.FileTransfers.ISFTPFileTransfer) supports these methods:

Method Description Parameters
Upload Uploads a file to the SFTP server.
  • remoteFilePath (string): Relative path where the file will be stored on the SFTP server.
  • stream (System.IO.Stream): A stream representing the file contents.
Download Retrieves a file from the SFTP server.
  • remoteFilePath (string): Relative path of the file to retrieve.
Returns Stream: A stream representing the file contents.
Delete Deletes a file or directory from the SFTP server.
  • remoteFileOrDirectoryPath (string): Relative path of the file or directory to be deleted.
Rename Renames a file or directory on the SFTP server.
  • remoteFileOrDirectoryPath (string): Relative path of the file or directory to rename.
  • newName (string): New name of the file or directory.
Exists Queries whether a specified file or directory exists on the SFTP server.
  • remoteFileOrDirectoryPath (string): Relative path of the file or directory.
Returns bool: True or False.
Move Changes the location of a file on the SFTP server.
  • remoteFilePath (string): Original relative path of the file.
  • newRemoteFilePath (string): New relative path of the file.
GetInfo Gets basic information about a file or directory on the SFTP server.
  • remoteFileOrDirectoryPath (string): Relative path of the file or directory.
Returns SFTPFile: An object with basic information about the file or directory.
GetDirectoryContents Lists the contents of a directory on the SFTP server.
  • remoteDirectoryPath (string): Relative path of the directory.
Returns List<SFTPFile>: A collection of SFTP files listing the contents of the directory.
CreateDirectory Creates a directory on the SFTP server.
  • remoteDirectoryPath (string): Relative path of the new directory.

Examples

This sample formula shows how to upload a file:

Dim fileService As New FileExplorerService
 
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService = 
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)

Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
 
Dim filePath As String = "Log\\File.txt"

If fileService.IsFileReadable(filePath) Then
    Using fileStream As IO.Stream = fileService.OpenWrite(filePath)
        Dim bytesToWrite = New UTF8Encoding(true).GetBytes("Hello World!")
        Dim buffer(bytesToWrite.Length) As Byte
        fileStream.Write(bytesToWrite, 0, bytesToWrite.Length)
    End Using
 
    Using fileStream As IO.Stream = fileService.OpenRead(filePath)
        SFTPFileTransfer.Upload("./test_file1.txt", fileStream)
    End Using
End If

This sample formula shows how to download a file:

Dim fileService As New FileExplorerService
  
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService = 
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)

Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
    fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
  
Dim remoteFilePath As String = "./Test_PDF.jpg"

Dim localFilePath As String = "Custom/Test_PDF_download.jpg"
  
Using SFTPStream As IO.Stream = SFTPFileTransfer.Download(remoteFilePath)
    Using fileStream As IO.Stream = fileService.OpenWrite(localFilePath)
        SFTPStream.CopyTo(fileStream)
    End Using
End Using

This sample formula shows how to delete a file:

Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService = 
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)

Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
  
Dim remoteFileOrDirectoryPath= "./Test_PDF.pdf"
  
SFTPFileTransfer.Delete(remoteFileOrDirectoryPath)

This sample formula shows how to rename a file:

Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService = 
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)

Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
  
Dim remoteFileOrDirectoryPath= "./Test_PDF.pdf"

Dim newName= "a_renamed_pdf.pdf"
  
SFTPFileTransfer.Rename(remoteFileOrDirectoryPath, newName)

This sample formula shows how to check if a file exists:

Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService = 
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)

Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
  
Dim remoteFileOrDirectoryPath= "./Test_PDF.pdf"
  
Dim result = SFTPFileTransfer.Exists(remoteFileOrDirectoryPath)

This sample formula shows how to move a file:

Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService = 
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)

Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
  
Dim remoteFilePath= "./Test_PDF.pdf"

Dim newRemoteFilePath= "./tests/Test_PDF.pdf"
  
SFTPFileTransfer.Move(remoteFilePath, newRemoteFilePath)

This sample formula shows how to get information about a file:

Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService = 
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)

Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
  
Dim remoteFileOrDirectoryPath= "./Test_PDF.pdf"
  
Dim result = SFTPFileTransfer.GetInfo(remoteFileOrDirectoryPath)

This sample formula shows how to get the contents of a directory:

Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService = 
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)

Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
  
Dim remoteFileOrDirectoryPath= "."
  
Dim result = SFTPFileTransfer.GetDirectoryContents(remoteFileOrDirectoryPath)

This sample formula shows how to create a directory:

Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService = 
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)

Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
  
Dim remoteDirectoryPath= "/my_new_directory"
  
Dim result = SFTPFileTransfer.CreateDirectory(remoteDirectoryPath)