none
how to start the orchestration based on message type dynamically RRS feed

  • Question

  •  

    I need to start the orchestration based on the message type dynamically.

    I have three messages , all the messege types are different and i have created the orchestrtions individually for each message type, now i need to start the orchestration dynamically based on the incoming message type.

    Please let me know if any one knows the solution.

    Any kind of help is greatly appreciated

    Wednesday, November 19, 2008 4:14 AM

Answers

  • Hi Rejesh,

    Create an orchestration which receives a System.Xml.XmlDocument type message.

    Extract the received message type using the promoted value BTS.MessageType.

    (BTS.MessageType = Targetnamespace#rootname)

    Add a decide shape and have a call or start orchestration shape in each decide rule branch.

    Best regards

    Rasmus Jaeger

     

    Thursday, November 20, 2008 8:29 AM
  • BizTalk works differently compared to web/win apps, SSIS packages or ETL tools like informatica.

     

    Make all the receive port bindings as direct binding inside the orchestrations. Deploy the orchestrations. Create the corresponding receive locations depends on your requirement for the message types.

     

    When the message is published in message box, corresponding orchestration will subscribe based on these message types.

     

    Hope this helps
    Thursday, November 20, 2008 4:18 AM

All replies

  • Hi

           i am not clear, you have three message schemas and them orchestrations. what is you dynamically start orchestration mean? When the message come in the specified orchestration will start. If the orchestration is binding with this message.

    Wednesday, November 19, 2008 4:28 AM
  • You can change the filter expression property of the recieve shape in your orchestration. You can filter by the properties promoted by your pipeline.
    Wednesday, November 19, 2008 8:48 PM
  • What adapter are you using?

     

    For instance if you are using SAP, you could create 1 receive port and 1 receive location.  Within that one receive location you would include a Pipeline that includes all 3 schemas.  Once the message has hit the pipeline and the message is disassembled it will make its way to the MessageBox and BizTalk will determine which orchestration to fire up.

     

    If you are using the FILE adapter you may not be able to use the method above based upon File masks and perhaps URIs.  In that case you could create 3 receive ports and 3 receive locations.  Then within BizTalk admin bind the orchestration to the correct receive port.  Once again when the message is received BizTalk will figure out which orchestration needs to be fired up.

     

    Perhaps you could expand on your requirements and we can try to help you out further.

     

    Thursday, November 20, 2008 1:00 AM
    Answerer
  • BizTalk works differently compared to web/win apps, SSIS packages or ETL tools like informatica.

     

    Make all the receive port bindings as direct binding inside the orchestrations. Deploy the orchestrations. Create the corresponding receive locations depends on your requirement for the message types.

     

    When the message is published in message box, corresponding orchestration will subscribe based on these message types.

     

    Hope this helps
    Thursday, November 20, 2008 4:18 AM
  • Hi Rejesh,

    Create an orchestration which receives a System.Xml.XmlDocument type message.

    Extract the received message type using the promoted value BTS.MessageType.

    (BTS.MessageType = Targetnamespace#rootname)

    Add a decide shape and have a call or start orchestration shape in each decide rule branch.

    Best regards

    Rasmus Jaeger

     

    Thursday, November 20, 2008 8:29 AM