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 Scott Roth · Nov 25, 2025

I am trying to add validation to a RecordMap, because the source of the data sent file sent us bad data within the file. So, I am using PATTERN to verify certain fields start with Numeric, and Alpha where applicable. When the EnsLib.RecordMap.Service.FTPService runs into an issue it doesn't seem like it continues onto the next record if the record does not meet the validation requirements. 

How can I tell EnsLib.RecordMap.Service.FTPService to log the error and continue onto the next record, so those records that fail are not processed?

1
0 52
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 9736
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).

I've set the SynchronousSend flag to 1, but it continues processing all the files at

1
0 77
Article Kurro Lopez · Sep 29, 2025 13m read

I am truly excited to continue my "InterSystems for Dummies" series of articles, and today, we want to tell you everything about one of the most powerful features we have for interoperability.

Hey, even if you have already had a go, we plan to take a really close look at how to get the most out of them and make our production even better.

2
5 299
Question Eugene.Forde · Aug 31, 2025

I’ve been exploring options for connecting Google Cloud Pub/Sub with InterSystems IRIS/HealthShare, but I noticed that IRIS doesn’t seem to ship with any native inbound/outbound adapters for Pub/Sub. Out of the box, IRIS offers adapters for technologies like Kafka, HTTP, FTP, and JDBC, which are great for many use cases, but Pub/Sub appears to be missing from the list.

Has anyone here implemented such an integration successfully?

For example:

  • Would it make sense to leverage IRIS’s Business Service + REST API adapter to connect to Google’s Pub/Sub REST endpoints?
2
1 120
Question Kurro Lopez · Sep 5, 2025

Hello community.

I have a request from a client who wants to do the following.
Currently, they have a data upload process via FTP in which they have implemented a RecordMap to store the information of the CSV files that are uploaded to the FTP directory.
Now they want to have another directory so that it is ONLY executed through an external instruction, not when the file is uploaded to the directory.

Is it possible to create a process that reads the FTP directory on demand? That is, ONLY executes the EnsLib.FTP.InboundAdapter service when we tell it to.

3
0 107
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 95
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 166
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 516
Question Yuhong Snyder · Jan 22, 2025

Hello,

I hope this is a simple ask..

basically I need to create local files daily at a certain time for example 11:30pm.

1. file name needs to be like  xxx__20250113.txt , the date part should be next day's timestamp with format YYYYMMDD, so I will write about 17 files like that with different names.

2. write a dummy hard coded word for example “Dummy Word” in the file.  the file eventually will be used by other operations to add hl7 message on top of this  in it with the live interface message. 

3. this needs to be done every night at 11:45pm

So how am I going to implement this?

     1

0
0 123
Article Katherine Reid · Apr 24, 2019 5m read

The %Net.SSH.Session class lets you connect to servers using SSH. It's most commonly used with SFTP, especially in the FTP inbound and outbound adaptors.

In this article, I'm going to give a quick example of how to connect to an SSH server using the class, describe your options for authenticating, and how to debug when things go wrong.

Here's an example of making the connection:

Set SSH = ##class(%Net.SSH.Session).%New()
Set return=SSH.Connect("ftp.intersystems.com")​

This creates a new connection, and then connects to the ftp.intersystems.com SFTP server on the default port.

4
2 6780
Question Masayuki Tada · Aug 23, 2022

Hi,

I try SFTP connect by ObjectScript.
But occurred this error. Can't connect by SFTP key-pair authentication.

:ERROR #7510: SSH Error '-18': SSH Error [80101012]: Username/PublicKey combination invalid [80101012] at Session.cpp:458,0

Key pair was generate this way.
ssh-keygen -m pem -f ~/.ssh/id_rsa
"id_rsa" and "id_rsa.pub" is generated.
Passphrase is empty.

sftp command is connect successful.
ex.
sftp -i .ssh/id_rsa sftpuser@localhost

And other SFTP client is connect successful too.
ex. Fillezilla.

And password authentication is successful too.

ObjectScript code is this.

11
0 2012
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 242
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 2152
Article Patrick Dunn · Mar 7, 2024 4m read

In the WRC, we often see customers contact us because they are having been provided a .PPK file for use with SFTP connections, but they don’t know how to use that key within InterSystems IRIS. This article will explain why this represents such a problem, and explain how to use the .PPK key to generate a Private / Public Key pair in a format recognized by InterSystems IRIS.

The Problem:

You are trying to use InterSystems IRIS to connect to a remote SFTP server. The SFTP Server admins have provided you with a key file saved in .

0
2 1422
Question Jordan Everett · Aug 18, 2023

Hello!

I'm currently trying to setup a SFTP Ensemble production to handle all of my SFTP transactions. It's been going well, but I'm currently running into an issue where it is saying it is unable to exchange encryption keys. Error Below:

Unable to exchange encryption keys [80101005] at Session.cpp:238,0' matched ReplyCodeAction 1 : 'E=R' resulting in Action code R

Any advice on getting around this would be appreciated.

3
0 551
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 461
Question Rich Taylor · Mar 21, 2023

I am having an issue with a file not being deleted from the FTP server and returning an error to this effect.  The file, however, was fully processed.  This causes the file to process again.  

My question is I seem to recall a flag that can be set to enable more detailed tracing to be done on the FTP service/adapter.  However, I have not been able to locate this.  Does anyone recall such a logging setting or was I just dreaming?

0
0 363
Question Warren Baldock · Nov 24, 2022

Morning everyone, 

I would appreciate some advice please- hopefully there is plenty of experts out there.

We are setting up an sFTP share between hospital trusts here in the UK and I have set the outbound operation up using a custom extension of EnsLib.HL7.Operation.FTPOperation.

We are configuring a VPN tunnel to run between the sites also so there is a bit of firewall / network routing to take place to enable the connection but to add in a complication we are on a mirrored cluster and usually present on a Virtual IP address.

2
0 567
Article Yuri Marx · Oct 17, 2022 10m read

FTP (File Transfer Protocol) is a network protocol for transmitting files over TCP/IP connections in a network (including the Internet) configured to transfer files via this protocol. In an FTP transaction, a file sender is called a local host. A file receiver involved in FTP is a remote host, and it is usually a server. Although many file transfers can be conducted using Hypertext Transfer Protocol (HTTP), FTP is still commonly used to transfer files behind the scenes for other applications, such as banking services.

0
1 1018
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

I would like to know if there is a possibility to transform the RAW HL7 before IRIS do its magic or

7
0 1814
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 2704
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 381
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 486
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 692
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 462
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 436
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 551