cancel
Showing results for 
Search instead for 
Did you mean: 

Multi-file read / multi-file write

vcocco
New Contributor II

Hi there,
I have a need where I have to read multiple files from an sftp site and write all of those files (if they exist) to multiple file names. Would the binary reader fit the bill here?
I’m familiar with the multi-file read and the directory browser. I can successfully use those snaps to read what’s on the remote sftp server.
Right now I’m using the File Reader’s Folder/File box in Settings to do something like this:
sftp://transmissions-uat.testsite.com/Outbound/Encrypted

It reads all of the files in the Encrypted folder. Attached to this snap is the File Writer snap which seems to write the latest file to my file name. Is there a way to write all of the files to multiple file names? I’ve seen some mention of the Binary Router snap. Would this be the way to go?

Thanks,
Vin

7 REPLIES 7

vcocco
New Contributor II

Hello again,
My integration is working: it’s going out to an sftp server and pulling in all unarchived files that start with this string:
WORKFILE.PSOURCE.HRCNFRM.*

This results in pulling in the same set of files multiple times.

The complete file string looks something like this:

BERKWORK.PSOURCE.HRCNFRM.2983249.20190108110621668

The file string has the date: 20190108

I’d like to be able to pull in a file whose date string, above, matches the current date in the form YYYYMMDD. That way I’d only be pulling in files whose ‘lookup string’ matches the current date.
Could you provide a coding example?
Thanks again for all you help.

  • Vin

You can use the expression language to format a date to a string, which can be used to form the glob in the MultiFileReader. This expression should get you pretty close.

"BERKWORK.PSOURCE.HRCNFRM.*." + Date.now().toLocaleDateString({"format":"yyyyMMdd"}) + "*"

vcocco
New Contributor II

Thank you very much for that expression. I’ve made a lot of progress with the pipeline and the information you’ve given me.
I would like to put that entire file name 'BERKWORK.PSOURCE.HRCNFRM.*." + Date.new().toLocalDateString({“format”:“yyyMMdd”}" into a variable or some other temporary holding area. In the pipeline, I would like to (probably?) use a Boolean expression to check for the existence of the file and send out an email (via the Send Email Snap) based on the condition being true (‘1’).
Thanks again for all your help.