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