locked
solution design suggestion : human interaction and queuing in asynchronous way RRS feed

  • Question

  • Hi I am currently looking to design and develop an Integration flow which is of a synchronous asynchronous pattern.

    synchronous in the sense, an ack message is sent back for any request received.

    asynchronous in the way that after certain human actions are done, results are posted to the calling client.

    scenario is that BizTalk will be receiving requests from external customers over http. 

    the challenge is : incase there is an exception while processing the message, a SQL entry is made for an internal user who would manually correct something in the backend. After the user saves his changes to the Database, the message should continue processing from that point. My doubt is, where do we hold the message till the user does his action. 

    I m currently thinking of a solution. Having it write to a folder location and then based on SQL query notifications, pick up the corresponding File based on the file name which has a unique ID. Don't know if it is the right approach to follow.

    any guidance would be helpful.

    Thanks and Regards,

    Ujjwal

    Monday, November 5, 2012 9:32 PM

Answers

  • Hi Ujjwal,

    I Suggest you to use the ESB Exception management for this.

    When a request fails in the middle of processing which received from external customers, biztalk ESB exception framework will pick up that message and it can show you in the ESB portal

    From there you can manually edit the message and re-submit it.

    In this approach no need of SQL entries,Polling/notifications etc.,

    Go thru below links

    http://msdn.microsoft.com/en-US/library/ee236724%28v=bts.10%29.aspx

    http://msdn.microsoft.com/en-US/library/ee250057%28v=bts.10%29.aspx

    For code references, When you install ESB it also installs a sample for this "Exception Handling"

     


    If this post answers your question, please mark it as such. If this post is helpful, click 'Vote as helpful'.

    • Proposed as answer by Leonid GanelineModerator Wednesday, November 7, 2012 1:43 AM
    • Unproposed as answer by ujjwalDev Friday, November 9, 2012 1:19 PM
    • Marked as answer by ujjwalDev Friday, November 9, 2012 1:19 PM
    Tuesday, November 6, 2012 4:54 AM

All replies

  • What you describe is more a BPM type of job. You mightlook at a combination of SharePoint + InfoPath + BizTalk to implement what you want. InfoPath + SharePoint (using Folders) will give you the Human Worklfow portion of your piece. BizTalk + SharePoint Adapter would help you post/retrieve XML documents from the SharePoint Folders while retaining the overall process flow/control from BizTalk.

    Regards.

    Tuesday, November 6, 2012 4:48 AM
  • Hi Ujjwal,

    I Suggest you to use the ESB Exception management for this.

    When a request fails in the middle of processing which received from external customers, biztalk ESB exception framework will pick up that message and it can show you in the ESB portal

    From there you can manually edit the message and re-submit it.

    In this approach no need of SQL entries,Polling/notifications etc.,

    Go thru below links

    http://msdn.microsoft.com/en-US/library/ee236724%28v=bts.10%29.aspx

    http://msdn.microsoft.com/en-US/library/ee250057%28v=bts.10%29.aspx

    For code references, When you install ESB it also installs a sample for this "Exception Handling"

     


    If this post answers your question, please mark it as such. If this post is helpful, click 'Vote as helpful'.

    • Proposed as answer by Leonid GanelineModerator Wednesday, November 7, 2012 1:43 AM
    • Unproposed as answer by ujjwalDev Friday, November 9, 2012 1:19 PM
    • Marked as answer by ujjwalDev Friday, November 9, 2012 1:19 PM
    Tuesday, November 6, 2012 4:54 AM
  • the challenge is : incase there is an exception while processing the message, a SQL entry is made for an internal user who would manually correct something in the backend. After the user saves his changes to the Database, the message should continue processing from that point. My doubt is, where do we hold the message till the user does his action.  --> IMO, I would use a table in SQL Server to store the message and then try later. You can also get the same message from BizTalk tracking database but that has some overhead as you may not enable global tracking in production at later stage.,

    HTH,
    Naushad Alam

    When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer
    alamnaushad.wordpress.com
    My TechNet Wiki "BizTalk Server: Performance Tuning & Optimization"

    Tuesday, November 6, 2012 4:19 PM
    Moderator
  • Thanks for your reply. In my case, we are not having a Sharepoint portal which can directly continue the flow.

    The exceptions are more of business related than technical. Some sort of validations, lookups etc.

    we are having an application to handle the failed message as such. The actual message is not tampered with by that internal app. It just does some processing in the background. After submitting on the internal app, the flow should continue in BizTalk

    I need to queue the messages up somewhere either to a folder or a queue to trigger back the BTS processign after the submit is done.

    Friday, November 9, 2012 1:24 PM