Stephan is an Avid Reader. No contributions for 2024.
Without a doubt, there will be something to
share on the Community in 2025!
User bio
404 bio not found
Member since Feb 22, 2019
Posts:
Stephan has not published any posts yet.
Replies:

Hi Arvind,

The FTP Inbound Adapter splits the directory and file name information into two stream attributes called "Filename" and "FTPDir" while the "Filename" attribute of the File Inbound Adapter combines that information in a single field. Although the stream container shows only the Filename attribute in the OriginalFilename property you can still access the FTP directory information from within the stream it contains.

There are several options. You could do this in the business process or operation that receives that stream or you may want to extract that attribute already in your custom business service.

For example if your business service receives pInput of type %Stream.Object, you can retrieve the attributes with

pInput.Attributes("Filename")

pInput.Attributes("FTPDir")

If you don't want to write a complete custom business service containing the EnsLib.InboundAdapter Parameter you could also extend EnsLib.FTP.PassthroughService, and just overwrite the OnProcessInput method and add a couple lines of code that concatenate the path and file name so it will show in OriginalFilename. Example:

Class CustomEnsLib.FTP.PassthroughService Extends EnsLib.FTP.PassthroughService {

Method OnProcessInput(pInput As %Stream.Object, pOutput As %RegisteredObject) As %Status {
If $data(pInput.Attributes("FTPDir")) {
set pInput.Attributes("Filename") = pInput.Attributes("FTPDir") _ pInput.Attributes("Filename")
}
...

Like I said, there are several options to achieve this. Please let me know if you have questions.

Stephan

Certifications & Credly badges:
Stephan has no Certifications & Credly badges yet.
Global Masters badges:
Followers:
Stephan has no followers yet.
Following:
Stephan has not followed anybody yet.