An introduction to BizTalk 2006 by the ATC Collective ... Day 6b of many BizTalk Fridays (Automating Processes)
Continued from this morning at http://dotnet.org.za/willy/archive/2008/08/29/an-introduction-to-biztalk-2006-by-the-atc-collective-day-6a-of-many-biztalk-fridays-orchestrations.aspx.
Automating ... or should that be controlling ... Business Processes
Orchestrations need to be managed, controlled and synchronised. BizTalk packs a few pieces of tools in this regard, in terms of scope, group, flow control, expression and exception shapes. Let us explore all of these 'quickly':
| Scope | | Organises shapes for transactional execution and exception handling, as well as maintaining variable scope. Scopes can be nested and defined as synchronized or not synchronized ... at this point we will assume you understand the difference. |
| Group | | Used to arrange actions in an intuitive way, using it as a placeholder for future functionality or collapse a junk of stuff to remove clutter and noise from the designer views. |
| Flow Control | If...Else... | if (condition) {...} else {...} |
| | Delay | Pause for a period or until a specific time or date. |
| | Listen | Listen Wait for events to occur. |
| | Loop | Repeated actions. |
| | Parallel Actions | Parallel activities, all of which must complete before orchestration continues. |
| | Suspend | Suspend operations, whereby administrative intervention is needed to resume. |
| | Terminate | Eject, eject, eject ... terminate immediately. |
| Expression | | Define an expression, such as initializations and manipulation of orchestration variables. |
| Throw Exception | | Throw and exception and in a friendly way as the runtime engine to pass the exception to the nearest exception handler for the exception type. |
Nesting Orchestrations
- An orchestration can call another orchestration asynchronously by using the Start orchestration shape or synchronously by using the Call orchestration shape.
- In both cases parameters can be passed, including messages, variables, port references, role links or correlation sets.
Distinguished Fields
Creating Expressions
- Expressions can operate on orchestration variables, assign values to messages and message parts, assign values to dynamic ports and event call .NET assemblies.
- Use the Expression Editor to create an expression.
- Filter Expression example:

Correlation
- Correlation matches an incoming message to an appropriate instance of an orchestration, for example an orchestration may receive three messages which must be processed in a specific order.
So what's next? ACID ... Transactions ... and it seems a lot more interesting stuff.