none
Issue in Canonical Schema update RRS feed

  • Question

  • I am having the canonical schema as internal schema in my orchestration and I am enriching the canonical schema from different source like updating information from different web services. During enriching the canonical schema from the web service, the existing value of the canonical schema cannot be retained, since during Message transformation the message will be constructed.

    How we can maintain single  canonical schema for entire orchestration and enrich from different source without lossing existing data in the orchestration?

     


    RSK
    Wednesday, March 23, 2011 5:43 PM

Answers

  • RSK,

    As of I know, this is the way.You can have 2 maps with 5 WebServie responses as inputs to each and construct the Canonical message.This way you will only need 2 canonical messages for the scenario you mentioned.

    You can have a single map even but splitting into two will help to reduce the complexity on them.

    Thanks.

    Mark as answered if it helps. 


    Sriram N http://srirambiztalks.wordpress.com/
    Wednesday, March 23, 2011 8:25 PM

All replies

  • Hey RSK,

    Construct different messages of the same Canonical schema type.Like MessageInternalA, MessageInternalUpdated etc., You can use the same schema but different message names are required.

    Use the constructed canonical message(Message A) in a multipart map along with the WebService response(Message B) to build the updated canaonical message(Message C).

    Thanks.

    Please mark as answerewd if it helps.


    Sriram N http://srirambiztalks.wordpress.com/
    Wednesday, March 23, 2011 6:11 PM
  • Hi Sriram,

    In that case if we are need to map all the fields again in map. Consider in my canonical I having around 500 elements and I am hitting 10 services to enrich the data. In this scenario, according to your solution I need created nearly 20 messages and need to repeat the one to mapping between different canonical message for 500 fields.

    Is there any other approach that will simply this process without creating multiple instance of canonical messages?


    RSK
    Wednesday, March 23, 2011 6:36 PM
  • Hi RSK,

    as messages are immutable once they are constructed you cannot change them. Really the only way is to create two messages (original and temp) and then map original + webservice to temp and then use a message assignment after the transform to "flip back" original = temp.

    Otherwise call all 10 webservices and build one really large map (10 input messages, 1 output message).

    Also the BizTalk 2010 mapper could help you because it has some new features helping out connecting many nodes at once.


    If you like my post or consider it as a valid answer, please use the buttons to show me - Oliver

    http://pi.hauth.me

    Wednesday, March 23, 2011 8:17 PM
  • RSK,

    As of I know, this is the way.You can have 2 maps with 5 WebServie responses as inputs to each and construct the Canonical message.This way you will only need 2 canonical messages for the scenario you mentioned.

    You can have a single map even but splitting into two will help to reduce the complexity on them.

    Thanks.

    Mark as answered if it helps. 


    Sriram N http://srirambiztalks.wordpress.com/
    Wednesday, March 23, 2011 8:25 PM