Start Orchestration in BizTalk

Introduction

In this blog, we will try to understand the basics of start orchestration in BizTalk. Sometimes, there's a need to trigger another orchestration for processing without expecting control to return to the parent orchestration. In such scenarios, opting for Start Orchestration is a viable solution. This approach allows us to implement separate error handling within the child orchestration. The parent orchestration continues its execution without waiting for control to return, advancing through the remaining steps in the business process.

Scenario

  • Source A message is received by Process A orchestration which is the parent or the main orchestration
  • It then does a transformation and then Starts the Process B orchestration.
  • Process B orchestration sends out the message to another system.
  • Error handling is done for the send operation

High Level Steps

  • Receive SourceA File in ProcessA orch
  • Define message variables msgSourceA of type SourceA schema and msgSourceB of type Source B schema
  • Transform from SourceA_To_SourceB
  • Start the orchestration "ProcessB" with the input parameter of msgSourceBIn. The input message parameter has to be defined in the child orchestration.
  • Send the message to a file location
  • Appropriate exception handling has to be implemented.

Steps in detail

  • Create the Schemas



  • Create the "ProcessA" orchestration


  • Create message variables in this orchestration



  • The first step in the orchestration is to receive a message of type "SourceA" schema via "specify later" binding


  • The next step is to perform a transformation


  • Now let's create the child orchestration which is "ProcessB" orchestration


  • Create an Orchestration input parameter of type "SourceB" schema and name it "msgSourceBIn". This step is important.


  • Create a scope of Transaction Type = None



  • Implement Exception handling for this scope





  • Inside the scope shape place a send shape to send the message of type "SourceB" schema to a target location. The logical send port should be set to "specify later"



Bindings

  • Name of the Receive Port: POCStartOrchestration1.ReceiveSourceA.RP
  • Name of the Receive Location: POCStartOrchestration1.ReceiveSourceA.RL
  • URL:D:\developer\vipin\POCStartOrchestration1\ReceiveSourceA
  • Name of the Send Port: POCStartOrchestration1.SendSourceB.SP
  • URL: D:\developer\vipin\POCStartOrchestration1\SendSourceB





Deployment

  • Deploy the solution using Visual Studio
  • Right-click on the solution and click on deploy solution
  • Configure Bindings as described in the previous section
  • Restart the host instances
  • Refresh the admin console.
  • Test the solution by dropping an order file on to the receive location
  • If everything works fine you will see a message of type "SourceB" in the Send port file location

Comments

Popular posts from this blog

EDI X12 Trading partner configuration in BizTalk

How to create an EDI 850 profile in Boomi?

Basics of Correlation in BizTalk