This blog is to describe briefly on various Orchestration shapes.
Receive: Receive shape is used to receive the incoming xml message from message box using Inbound logical port.
Send: Send shape is used to send the outgoing xml message to message box using Outbound logical port.
Transform: Transform shape is used to execute the map from orchestration.
MessageAssignment: Message assignment shape is used to assign a message to another message.
Expression: Expression shape is used to initialize the variables, perform if else conditions and writing event logs.
Construct Message: Construct Message shape is used to construct the message. Only Transform and Message Assignment shapes are allowed within Construct message shape.
Group: Group shape is used to group the shapes in an intuitive and visually manageable way. You can collapse or expand a task to show or hide the actions within it. When you have complex orchestrations, we use the group shape for better visibility.
Call Orchestration: This shape is used to call child orchestration from Parent Orchestration. This shape will be used for synchronous process. When parent orchestration sends the request to child orchestration, child orchestration should send the response back to the caller (Parent Orchestration).
Start Orchestration: This shape is used to call child orchestration from Parent Orchestration. This shape will be used for Asynchronous process. When parent orchestration sends the request to child orchestration, child orchestration would not send the response back to the caller (Parent Orchestration).
Call Rules: This shape is used to call the business rules (BRE) from the orchestration. First, we need to create policies and deploy to Rule Engine DB, Using Call rules shapes we need to select the policies from the orchestration. If the policy has multiple rules, then latest version of the rule (Within the Policy) will be executed on incoming message.
Decide: This shape is used to apply if..else conditions in the orchestration.
Delay: This shape is used to pause the orchestration for a given time.
Listen: This shape is used to listen for a particular message based on Follow Correlation Set property. If the required message is received, it will continue for further process with in Listen block. We need to keep a receive shape in one side and Delay shape other side. If we don’t receive/listen the message with in the timeline mentioned in the delay shape then shapes which are mentioned under delay shape will be executed.
Parallel Actions: This shape is used to execute multiple flows parallelly in the orchestration
Loop: This shape is used to execute series of steps in an orchestration until a certain condition is met.
Scope: A “scope” is a unit or a block which is executed as a context and is associated with a transaction type. In order words, a scope defines a context which maintains the state for a defined unit-of-orchestration code.
Throw Exception: This shape is used to throw the exceptions to catch block
Compensate: This shape is used to roll back the transactions mentioned in the atomic scope. For example, BizTalk code has to insert message header details to Header Table and LineItem details to LineItem table. If any of these operations are failed, this will roll back the previous transactions based on the code written in the shape. Compensate shape can be used within compensation block only. For getting compensation block, right click on Scope shape and select “New Compensation Block”.
Suspend: This shape is used to suspend (Stop the processing) the Orchestration instance. We can resume these instances manually when needed.
Terminate: This shape is used to terminate the Orchestration instance. Orchestration instance is completely removed from BizTalk databases.