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 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 Kurro Lopez · Aug 29, 2018

Hi community,

I've created a BS that uses FTP InboundAdapter. It works, read the file and process it.

The problem is when there not any file in the FTP folder, it raises the following error:

 ERROR <Ens>ErrFTPListFailed: FTP: error en List para *.csv (mensaje='No-transfer-time exceeded. Closing control connection.',código=421)

I think it is something about the configuration, but I don't find what is the problem.

Any idea?

Best regards,

Francisco Lopez

4
0 861
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 1030
Question Kurro Lopez · Jan 4, 2017

Hi all,

I've a problem with EnsLib.FTP.OutboundAdapter

I've configured this adapter using a SFTP connection, it has been working the first time but now its raising the following error message:

ERROR <Ens>ErrFTPPutFailed: FTP: error al colocar archivo '1600000107279008930.pdf' (mensaje='Error in SFTP Put('C:\stream\QhFaDm4L1Jrgbg.stream','mypath/1600000107279008930.pdf') ERROR #7500: Error SSH '-2146430933': SSH Error [8010102B]: Unable to send FXP_OPEN* [8010102b] at SFTP.cpp:539,0',código=0)

This is part of my code:

    try {
        set name = pRequest.FileName
        set .
4
0 3165
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 507
Question Kurro Lopez · Oct 30, 2018

Hi all,

I have a FTP.Inbounding service that read a file and move it to a other folder when it is processed. The problem is that is not working fine in SFTP server.

The code is coppied from How to - Customize Ensemble Settings article.

// begin customization code
// get the Filename, attach the time stamp to it and move the file into the Archive directory
// the Rename method below is using RNFR and RNTO FTP commands (RFC 959), effectively moving the file into the new directory
Set tSource=pInput.Attributes("Filename")
Set tArchive=..Adapter.CreateTimestamp(tSource,"%f_%Q")
set fullPath 
4
0 2006
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?

0
0 131
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 1242
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 563
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 127
Question Stuart Byrne · May 23, 2017

Dear All,

I’m having trouble creating the following business service.  It’s intention is to pick up an CSV via FTP and pass it to a Business process that transforms it to a HL7 message.

I have created a record map for the CSV file, which I am trying to call in the business service and parse it into a new message class, which can be transformed in the business process.

Please could you advise:

Business Service:

/// Collects CSV from Epic FTP, looking for ENH patient
/// antiobitic sensitivities to be passed on to ENH Infection control
/// Patch 176
Class CUH.Serv.EpicFTPFilePickup Extends (Ens.
2
0 659
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 493
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 963
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 129
Question Scott Beeson · Feb 5, 2016
The minimum interval between invocations of the adapter by the Ensemble framework. For adapters that poll for external events, this is the polling interval. However, most polling adapters will process all inputs immediately if several are detected at one time. This is also the interval at which each Business Service will check for shutdown requests.

Is it seconds or what?  The default is 15  

1
0 554
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 530
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 962
Question Scott Roth · Jun 9, 2017

I have a case where I am creating a PDF file from an Encoded String, and I need to transfer this file over to another server. I was wondering since this is PDF file if I could just invoke the FTP.OutboundAdapter within my Object script that is creating the PDF from the encoded string. Is this possible? Does anyone have an examples of using EnsLib.FTP.OutboundAdpater within their Object Script?

Thanks

Scott Roth

Integration - Interfaces

The Ohio State University Wexner Medical Center

5
0 686
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 1847
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 89
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 Herb Salgado · Sep 13, 2018

Hello,

I am trying to send a HL7 Billing Batch 2.3:FHS file out to an FTP site:

The file needs to be  in Variable Length / Carriage return carriage control format--  

 When I send the file, the format is Fixed Length 512 Byte Record-- Not Working

The data is ok within the file-- It is just the way I am sending it out of Ensemble that is not correct.

I am thinking that it is a setting within the Operation that I am missing or not choosing correctly.

2
0 397
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 249
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 9773
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 2043
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 2754
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 66
Question Stella Ticker · Feb 27, 2017

I am having a problem getting pair key authentication to work on my local PC. I am using freeSShd as the SFTP server. I generated private and public keys using putty gen . I used these keys to successfully log into the root directory using both Winscp and Putty. But this is not working with an FTP Operation. Below is the error that results. freeSSHd server log shows that I log in but immediately disconnect.

I am working on HS2015.1.1 Please help !!

1
0 1595