none
Biztalk for multiple ftp location RRS feed

  • Question

  • I am in a Biztalk project, which is my first time in biztalk. The problem i have now is how to enable monitoring multiple folders on FTP server.

    My client will have multiple customers, each customer are assigned to a ftp location, where they can upload their orders to my client.

    I need to monitoring all of these folders and process their orders ( customerID is the folders name) the order will not contain any information about customer themself.

    since the customer grwos rapidly, so creating ports on each folder at development time is not an option.

    Is there any way to accomplish this task?  Thanks in advance!!


    Wednesday, June 15, 2011 10:53 AM

Answers

  • Hi Jas,

    You should be able to monitor different FTP locations. The first question I have is are those folders on 1 ftp server?

    - Create one Receive port
    - Create multiple receive locations for each ftp.

    It should do the trick.

    Another thing to consider is the formatting of the files. Each customer can have a different xml or flat file, which in turn needs to be mapped to a generic format. 


    If this post answers your question or helped you in the right direction, please use the "Answer" button on this post.
    Sahin Ozdemir | Consultant, MCTS BizTalk Server, MCPD Solution Development Avanade Netherlands BV
    Wednesday, June 15, 2011 11:10 AM
  • It's worth noting that many FTP servers limit the number of connections.  If you're having to connect via FTP this could cause the server problems.  If the FTP server is local to your organisation, then just using a file-adapter against the back-end file system that the FTP server uses is likely to be more efficient.

    Is there any reason why you cannot setup the receive locations apart from it seeming like a lot of effort?  You can use WMI to manipulate receive locations automatically which could take the effort out of setting everything up.

    If you want BizTalk to traverse multiple directories then no, there is no out-of-the-box way to do this.  You'll have to write yourself a custom adapter to provide this functionality for yourself.

     

    As for different schemas, you will need to define each of your schemas in BizTalk and use a map to transform the different input messages to your generic schema.  These maps can be configured to run on the Receive Port so the messages are in your generic format when they are received into BizTalk.


    If this is helpful or answers your question - please mark accordingly.
    Because I get points for it which gives my life purpose (also, it helps other people find answers quickly)
    Thursday, June 16, 2011 10:41 AM
  • Hi,

    I think I would still stick to Sahin solution where you have a receive location for every customer.

    You can automate the management (creation and deletion) of receive locations by using WMI, PowerShell or something else.  This to make sure you don't have to create all the receive locations manually. You can build a simple tool that allows you to manage the receive locations at run-time (in production).

    In a pipeline or orchestration you can fetch the name of the FTP folder from the original FTP path.


    HTH,

    Randal van Splunteren 2 x MVP BizTalk Server, MCTS BizTalk Server
    my blog

    Check out the PowerShell provider for BizTalk
    Please mark as answered if this answers your question.
    Friday, June 17, 2011 7:11 AM
    Moderator
  • Hi,

    I see a few possible solutions to your problem.

    1)

    Have a script running on your FTP server which moves all received files to a common folder which BizTalk monitors.

    2)

    Create a service on your backend system which sends a “Create receive location” request/message to BizTalk, each time a new customer is created in your backend system. Use Powershell and WMI as suggested by Randal van Splunteren to create and start the receive location.

    3)

    Make all customers send their files to the same folder on your FTP site.  Use FTP user rights to make sure the individual customers only can see their own files. If you need to move the processed files to an archive folder use a dynamic send port to send the files to the specific customers archive FTP folder.

     

    Best regards

    Rasmus Jaeger
    Please mark as answered if this answers your question.

    Friday, June 17, 2011 11:19 AM

All replies

  • Hi Jas,

    You should be able to monitor different FTP locations. The first question I have is are those folders on 1 ftp server?

    - Create one Receive port
    - Create multiple receive locations for each ftp.

    It should do the trick.

    Another thing to consider is the formatting of the files. Each customer can have a different xml or flat file, which in turn needs to be mapped to a generic format. 


    If this post answers your question or helped you in the right direction, please use the "Answer" button on this post.
    Sahin Ozdemir | Consultant, MCTS BizTalk Server, MCPD Solution Development Avanade Netherlands BV
    Wednesday, June 15, 2011 11:10 AM
  • Thanks Sahin

    Sorry for the misleading in the first post. the location I meant is for the FTP location, not the receive location in Biztalk. Since the customers will change very often (More than 1000 already now), it is not possible to create seperate location in biztalk for each client. Is it possible to create a receive location to monitor multiple FTP folders ( maybe sub folder?)

     

    Also the different schemas is my next taks, could you please mope specific on the generic format?

     

    Thanks again.

    Jas

    Wednesday, June 15, 2011 1:49 PM
  • It's worth noting that many FTP servers limit the number of connections.  If you're having to connect via FTP this could cause the server problems.  If the FTP server is local to your organisation, then just using a file-adapter against the back-end file system that the FTP server uses is likely to be more efficient.

    Is there any reason why you cannot setup the receive locations apart from it seeming like a lot of effort?  You can use WMI to manipulate receive locations automatically which could take the effort out of setting everything up.

    If you want BizTalk to traverse multiple directories then no, there is no out-of-the-box way to do this.  You'll have to write yourself a custom adapter to provide this functionality for yourself.

     

    As for different schemas, you will need to define each of your schemas in BizTalk and use a map to transform the different input messages to your generic schema.  These maps can be configured to run on the Receive Port so the messages are in your generic format when they are received into BizTalk.


    If this is helpful or answers your question - please mark accordingly.
    Because I get points for it which gives my life purpose (also, it helps other people find answers quickly)
    Thursday, June 16, 2011 10:41 AM
  • Maybe Auto FTP Manager can help you.  It can transfer from multiple ftp locations or scan through a directory tree, transferring just the newer or changed files. Download here:
    http://www.deskshare.com/ftp-client.aspx
    Friday, June 17, 2011 6:08 AM
  • Hi,

    I think I would still stick to Sahin solution where you have a receive location for every customer.

    You can automate the management (creation and deletion) of receive locations by using WMI, PowerShell or something else.  This to make sure you don't have to create all the receive locations manually. You can build a simple tool that allows you to manage the receive locations at run-time (in production).

    In a pipeline or orchestration you can fetch the name of the FTP folder from the original FTP path.


    HTH,

    Randal van Splunteren 2 x MVP BizTalk Server, MCTS BizTalk Server
    my blog

    Check out the PowerShell provider for BizTalk
    Please mark as answered if this answers your question.
    Friday, June 17, 2011 7:11 AM
    Moderator
  • Hi,

    I see a few possible solutions to your problem.

    1)

    Have a script running on your FTP server which moves all received files to a common folder which BizTalk monitors.

    2)

    Create a service on your backend system which sends a “Create receive location” request/message to BizTalk, each time a new customer is created in your backend system. Use Powershell and WMI as suggested by Randal van Splunteren to create and start the receive location.

    3)

    Make all customers send their files to the same folder on your FTP site.  Use FTP user rights to make sure the individual customers only can see their own files. If you need to move the processed files to an archive folder use a dynamic send port to send the files to the specific customers archive FTP folder.

     

    Best regards

    Rasmus Jaeger
    Please mark as answered if this answers your question.

    Friday, June 17, 2011 11:19 AM
  • Hi Jan,

    How was the solution at the end?

    Would be nice to know!

    Best Regards,

    Faw

    Wednesday, July 4, 2012 8:28 AM