0 Followers · 62 Posts

File Transport Protocol (FTP) is a standard network protocol used for the transfer of computer files between a client and a server on a computer network.

Learn more.

Question Mikael Toivonen · Aug 17, 2017

My issue is that I don't know why Ensemble processes incoming data in the wrong encoding.

Update: Issue was solved, I think, see my answer below.

our customer uploads UTF-8 encoded CSV files to our sFTP server. When I view the files on the server side, the scandinavian characters Ä and Ö (A and O with two dots on top of themselves, respectively) display correctly in the source file. When Ensemble downloads the files using a FTP Service, the characters display incorrectly in Ensemble. 

I am unable to pinpoint the reason for this behavior and I was hoping this is easily solvable.

8
0 9778
Question Kurro Lopez · Oct 21, 2025

Hi community,

I have a service that uses EnsLib.RecordMap.Service.FTPService to capture files in an FTP directory.

Instead of uploading them all at once, I would need to do so one at a time.

I have a class that extends this class because it preprocesses, saves everything in the RecordMap class, and then processes all the records at once.

When I invoke the BP, it does so through the method set tStatus = ..SendRequest(message, 1).

1
0 93
Question Sizwe Hlatshwayo · Jun 21, 2025

Good day 

I am trying to connect a business service to fileZilla using FTP on my local PC Win 11.

I am trying to setup my training after attending the Building HL7 interfaces course with ISC.

The connection is failing. He is the error below

ERROR <Ens>ErrOutConnectFailed: FTP Connect failed for localhost:21//SSL=' with error ERROR <Ens>ErrFTPConnectFailed: FTP: Failed to connect to server 'localhost:21//SSL='/' (msg='Missing required argument',code=501)

1
0 114
Question Thembelani Mlalazi · Apr 16, 2025

I need to connect to a SFTP server and I seem to connect and timeout have tested the connection using File-zilla and the connection was successful but the problem is when I try to connect using the FTP in bound adapter service I get the following errors.

ERROR <Ens>ErrOutConnectExpired: FTP Connect timeout period (120) expired for ***************.com:990/******/SSL='********* + ERROR <Ens>ErrFTPConnectFailed: FTP: Failed to connect to server ***************.

1
0 189
Question Stuart Byrne · Jun 23, 2020

Dear Community,

I need to collect a file from an FTP server over FTPS.

I have the :

  • credentials saved correctly
  • correct host and port informatoin
  • correct filepath I am trying to collect from
  • I have setup the SSL configuration in  System > Security Management > SSL/TLS Configurations and this tests sucessfully

When I run the business service to connect it connects, but soon after connecting it fails to open the directory:


Type Time Text  ID
Error 2020-06-23 14:42:06.542 ERROR <Ens>ErrFTPListFailed: FTP: Failed List for *.
4
0 531
Question Yone Moreno · Jul 4, 2024

Hello,

First of all thanks for your time reading this question, and thank you for your help.

🎯 We would need to create an Ensemble HealthShare Operation to read files from a FTP / SFTP server.

We have coded:

Class Operaciones.FTP.ConsultaPDFv01r001 Extends Ens.BusinessOperation [ ProcedureBlock ]
{

Parameter ADAPTER = "EnsLib.FTP.InboundAdapter";

Method ConsultarDocumentoPDF(pRequest As Mensajes.Request.ConsultaPDFRequestv01r00, Output pResponse As Mensajes.Response.RecuperarDocumentoPDFv01r00) As %Library.Status
{
	set ftp = ##class(%Net.FtpSession).%New()
	
	set isConnected =  ftp.
5
0 251
Question Ting Wang · Oct 2, 2019

Hi all,

We are delivering files to SFTP server using EnsLib.FTP.PassthroughOperation class and EnsLib.FTP.OutboundAdapter. But we are facing error below:

ERROR <Ens>ErrFTPPutFailed: FTP: Failed to Put file '' (msg='Error in SFTP Put('/cachesys/mgr/Temp/HC4IZVmI6w9gEw.sftp','/directory1/directory2/directory3/') ERROR #7511: SFTP Error '4': SFTP Error [80102004]: Operation Failed [80102004] at SFTP.cpp:750,0',code=0).

3
0 2179
Question Julio Rodriguez · Jul 10, 2023

Hello,

I have a EnsLib.HL7.Operation.FTPOperation that uses SFTP protocol and public/private key to connect to an external vendor moveitcloud.

Issue: The vendor is planning to enable Multi Factor Authentication for this file transfer account.

Question: Have you configured a SFTP operation to use Multi factor Authentication? If not, is there another way?

Thank you,

1
0 474
Question Leon Wilson · Mar 4, 2022

Good Afternoon My InterSystems IRIS Peers,

I have the following issue that I need help with, I tried all possibilities that I know of, therefore I am reaching out to the community for some insight.

I have a SFTP service that pulling 2.5.1 DFT HL7 messages from our SFTP file server. The issue is that IRIS is transforming patients names and addresses that contain special chars UTF-8 to ANSI.

Examples:

è = è
é = é
í = í-  .......etc

7
0 1853
Question Tim Miller · Sep 5, 2019

So we are in the midst of setting up a bunch of sFTP operations where we will have Ensemble send files to our various customers.

My questions about the set up are these:

1) For a simple test, I set up an Operation using EnsLib.FTP.PassthroughOperation.  Is this the one I should be using?

2) if the receiving system has a username and password, then all I have to do is put that username and password into a Credential and assign that credential to my operation correct?

3) if the receiving system's directory is just the root directory, do I need to put anything in File Path?

5
1 2762
Question Allison Womack · Dec 15, 2020

In 2020 we implemented HealthConnect as our HL7 interface engine.  Having completed this, we are currently evaluating whether it would be beneficial to migrate our managed file transfers from our current MFT software, MOVEit to HealthConnect.  I am interested in hearing from any InterSystems customers who have previously used MOVEit and currently using HealthConnect for file transfer managment.  Any feedback would be appreciated.

2
0 388
Question Purushothaman T · Dec 30, 2020

We have a custom FTP Service , and custom FTP adapter . Customization is just to find a duplicate file and for giving specific dynamic file spec pattern.
While running and polling for files, we are getting this error. Could you please help ? What's the issue and how to resolve it ?
ERROR <Ens>ErrFTPListFailed: FTP: Failed List for <FileName> (msg='Cache error in 'readResponse': <READ>zreadResponse+4^%Net.FtpSession.1',code=426)    

1
0 495
Question Gevorg Arutiunian · Apr 22, 2020

Hi community,

I am now working with an ftp adapter. I have no problem connecting to the FTP server, but there are problems with interacting with files. Has anyone had any experience with an FTP adapter, such as getting/modifying/deleting files?

4
0 709
Question Mikael Toivonen · Sep 29, 2020

I'm not sure how to go about building this scenario:

  1. I FTP PUT a file "data.txt" to external directory
  2. 3rd party processes that file
  3. 3rd party creates a log file "errors.txt" into the same directory
  4. My integration build should now 
    1. notice that there is a "errors.txt" file
    2. FTP GET that log file, delete it from server and process it 
    3. but we should also delete the "data.txt" from the server as it is "used" and should no longer be there. It is essential that "data.txt" must only be deleted if there is an "errors.txt" file and we have downloaded it

Can steps 4.1 - 4.

2
0 474
Question Tim Miller · Nov 11, 2019

Good morning all,

A question to see if anyone out there is already doing this.

We have built a custom BS based off of the EnsLib.FTP.InboundAdapter.  We have our processes wake up (using the Scheduler), grab the files in the directory, stay awake for a while, and then go back to sleep.

Each file goes through on its own message.  So we can trace each individual file and we know if it made it successfully or not.

What we would like to add is a status report email that creates a list of all the files sent in a "batch".

1
0 444
Question Arvind Balachandran · Aug 14, 2020

Hi All,

i have a issue in getting the complete file path when using the FTP Adapter in service.
EnsLib.FTP.PassthroughService / EnsLib.FTP.InboundAdapter

I need to know the folder name (including sub folder) where the new file is found by the service when looking up for new files. 
The normal file class is working good as expected

More details below,

In the below two examples you can notice folder name is fetched by normal File adapter, but in FTP only the file name is available.

FTP class gives the o/p as
<?xml version="1.0" ?>
<!-- type: Ens.

1
0 559
Question Scott Beeson · Jan 14, 2016

I have a service named FTP_In that is of class EnsLib.HL7.Service.FTPService.   It picks up files from multiple subfolders and sends them to an EnsLib.HL7.MsgRouter.RoutingEngine.   What I want to do is somehow capture the subfolder as a variable for use in the routing rules.  Is this possible?

Let's say I have the following files and directory structure on my FTP Server

/incoming/green/apple.dat
/incoming/yellow/banana.dat

I want the Routing Rule to be able to send anything that came from the /green/ folder to one operation and from /yellow/ to another.

6
0 704
Question David Underhill · Jul 28, 2020

We use the %Net.FtpSession class to perform FTPS file transfers.  This has worked fine with Implcit FTPS servers but crashes when trying to connect to an Explicit FTPS server.  Explicit FTPS has a slightly diffferent negotiation in the intitial connection and different ports.

Has anyone gotten Explicit FTPS working with the Cache classes?

2
0 619
Question Token Ibragimov · Jun 11, 2020

Hello,

I'm trying to upload file to SFTP server.  

I have access to SFTP server . 
My code is bellow 

Try {
Set sftp = ##class(%Net.SSH.Session).%New()

Set sc = sftp.AuthenticateWithUsername(username,password)
if 'sftp.Connect(host){
            Set status = $$$ERROR($$$GeneralError,"Cannot connect to sftp  ")
            Quit       
}
Set sc = sftp.OpenSFTP(.t)

If 'sftp.Disconnect() Write "Failed to logout",!

} Catch ex {
Set status=$$$ERROR($$$GeneralError,$ZE)
Quit
}

The output : $lb(5001,"Cannot connect to sftp "

What i'm doing wrong ?

10
1 2044
Question Jimmy Christian · Dec 18, 2019

Hello community,

I am receiving a HL7 message over TCP connection.

I have to set up  a process/operation to produce a daily file with this HL7 messages to be created in a directory using EnsLib.File.OutboundAdapter
and EnsLib.HL7.Operation.FileOperation. The file needs to have a header line added each time it is created and a footer .I did not find any standard class file under File Adapter which will create header/footer. 

Any suggestion will be greatly appreciated.

Thanks,

Jimmy Christian

4
0 967
Question David Underhill · May 12, 2020

I have been using %Net.FtpSession and while it works, its handling of file/directory listings from an FTP server is less than ideal and, while this is due to the FTP protocol itself, the class could be written to handle this as would an FTP client such as FileZilla and command line/class FTP handlers for other languages.  I was wondering if anyone knows how the Ensemble adaptor works with this in case it provides code that would help, though the source does not seem to be available.

2
0 565
Question Michael Derr · Apr 6, 2020

Hello!

This may seem a bit strange, but I'd like to make a business operation which would put a file via SFTP and then confirm that the filesize on the remote server is consistent with expectations.  I am thinking either of a custom copy or extension of the adapter (right now it is using EnsLib.FTP.OutboundAdapter) that overwrites method PutStream, or a version of the FTP.PassThroughOperation with a customized method OnMessage that does the check after the PutStream completes OK-- but I am uncertain of how exactly to modify either method to make the check.

7
0 1244
Question Roger Merchberger · Jan 10, 2020

TL;DR: If I set an Ensemble  Production Service based on EnsLib.File.PassthroughService to a Binary charset encoding, it breaks the file handling. Any ideas?

Full long post:

All,

I set up an Ensemble production to transfer files via SFTP, which works fine sending the files to my Linux server. Then I was informed that we needed to save a hash of the file, for comparison with the destination to verify the file arrived unmodified.

8
0 511
Question David Losiewicz · Oct 3, 2019

I am using Ensemble FTP adapter to monitor file directory for files that require SFTP transfer to remote server using public/private keys for remote server authentication.

This works great in my engineering development space where file protections are loose.

I want to apply "principle of least privilege" regarding the public and private key files specified in  FTP Outbound adapter Business Operation. 

Can anyone recommend (Linux) permissions that allow Ensemble to execute the SFTP operation but minimizing access to the key files?

I've tried variouse combinations without success.

1
0 1033
Question Kurro Lopez · Sep 4, 2019

Hello everyone,

We have a process that is listening to an FTP service to collect some CSV files and process them. The process works correctly and when it ends it clears the directory waiting for it to enter some other file.

We have been receiving the following error message for a long time:

ERROR <Ens>ErrGeneral: Error in SFTP Dir() ERROR #7500: Error DirEnum SSH '-2146430967': 'SSH Error [80101009]: Would block waiting for status message [80101009] at SFTP.cpp:150,0

This happens when there are no files to process and appears from time to time, maybe every 20 minutes.

4
0 1034
Question William Proctor · May 2, 2019

Thanks for all replies in advance.  We have a security vulnerability that we have to get rid of.  We use Putty software to connect to cache as a terminal allowing several users to do maintenance work in cache.  this uses telnet Plain text.  I know that we can configure telnet to be encrypted using the super server service and I'm looking for software that can work like Putty as a terminal using encryption compatible with cache telnet encryption.

5
0 964