Geeks With Blogs
Evan Koch Musings on BizTalk Server and SQL Server

When implementing business processes with BizTalk, sometimes there's a need for manual intervention within an orchestration and you can’t predict when this intervention will occur.  Let’s work with the process depicted below.

The orchestration representation for this matches the diagram fairly closely.

The Decide shape and the associated branches are visual representations of if/else logic.  The following is analogous:

            If (CreditScore > 700) 

                        Construct Loan Decision (Approve)

            ElseIf (CreditScore < 450)

                        Construct Loan Decision (Deny)


                        Send For Manual Review

We use the correlation set when sending the loan for manual review.  This will ensure that the loan decision we receive corresponds to the loan we sent for manual review.  For this example the correlation I’ve based the correlation type on the loanID, though we could introduce another unique value at this point and remove any confidential information so that the decision is made on the basis of loan amount, loan purpose, and credit score. 

We initialize the correlation set on the LoanID promoted property when the message is sent for manual review and follow the correlation set when receiving the loan decision.

For each loan that is sent for manual review, a corresponding subscription is created with a filter condition based on the loanID.

After the loan has been manually reviewed and the decision has been submitted, the subscription will match the message and resume the transaction.  If the response isn’t received within a certain time, the orchestration will be dehydrated to wait so it the resources consumed will be reduced.  Source code for this example can be found here.

Posted on Wednesday, September 5, 2007 10:00 PM | Back to top

Comments on this post: Correlation Sets

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Evan Koch | Powered by: