none
Handle Messages with common messagetype RRS feed

  • Question

  • Hi,

    I have the following scenario in my project;
     

    - I have a receive location ( A folder) where different order messages wil be dropped based on the one schema A (schema A imports other schemas) from a external system.

    - The Outgoing message will be send via MQ Send port

    - There are more schemas like schema A with common namescpase and root element

    - the imported schema one schema A has a unique namespace.


    What is the best way to handle different messages on a single receive location based on these kind of schemas ? Must I use an orchestration or do I have an option to do this witout an orchestration ?

    Cheers,

    Adem

    Friday, August 3, 2012 11:34 AM

Answers

  • Hi Adem ,

    Let me clear ,

    1)how many messages (Message types) your receiving from one location .

    2)these messages are having different filename ? if yes

    Configure same location for multiple biztalk receive location using filemask .

    if filename is test.xm filemask is *te*.xml (RL 1)

    if filename is order.xml filemask id *ord*.xml(RL 2)

    at last configure receiveport where you want it will pick matched schema only.

    Note : it is not help to you please try schema with <any> which has posted by leond.

    Thanks

    Vittalaranga

    • Marked as answer by Adem Terzi Tuesday, August 7, 2012 8:34 AM
    Monday, August 6, 2012 9:37 AM

All replies

  • Adem,

    I was not able to understand your requirement. But it seems you are just interested in routing messages so I think you can do it without using any orchestration. If I misunderstood it then provide some clarity on the specific issue you are facing.


    Please mark the post answered your question as answer, and mark other helpful posts as helpful, it'll help other users who are visiting your thread for the similar problem, Regards -Rohit Sharma (http://rohitt-sharma.blogspot.com/)

    Friday, August 3, 2012 12:03 PM
    Moderator
  • It means you want to receive files from one source location or using one receives location? Conform this…

    Might be resolve your issue with file mask (configure file mask based on file name in receive location )

    configure like  create one  receive port with multiple receive location (configure file mask based on file name in receive location ).then you  can configure receive port where you want .

    Thanks

    Vittalaranga


    Friday, August 3, 2012 12:40 PM
  • What do you mean when you say - " I have a receive location ( A folder) where different order messages wil be dropped based on the one schema A".

    Looks like you need some kind of Party Resolution. If that is the case, Create a property schema with appropriate routing fields and use it either in pipeline to populate those fields or run it through an Inbound Map. 

    Friday, August 3, 2012 5:32 PM
  • Thanks for reply Rohit and Vitta,


    I will give some details of the situation.. Below I have an sample message of the schema. As you can see in de body you have a reference to other schemas. The Document part is the dynamic part here.
    I receive messages where the Document part can be based on a different schema. But the base message has always the same namespace "urn:swift:saa:xsd:saa.2.0".

    I have build an custom pipeline component to avoid the error " multiple schemas matched the message type" and that works fine but I have also a single location to pick up the messages so I can't create multiple pipelines & receive locations for each message which is different on the Document part of the message. how can I solve this ?

    <?xml version="1.0" encoding="utf-8" ?>

    <DataPDU xmlns="urn:swift:saa:xsd:saa.2.0">

    <Header>

    <Message>

    <SenderReference>REF10610311505</SenderReference>

    <MessageIdentifier>camt.029.001.02</MessageIdentifier>

    <Format>MX</Format>

    <Sender>

    <DN>o=saaabebb,o=swift</DN>

    <FullName>

    <X1>SAAABEBBXXX</X1>

    </FullName>

    </Sender>

    <Receiver>

    <DN>o=saaabebb,o=swift</DN>

    <FullName>

    <X1>SAAABEBBXXX</X1>

    </FullName>

    </Receiver>

    <InterfaceInfo>

    <UserReference>REF10610311505</UserReference>

    </InterfaceInfo>

    <NetworkInfo>

    <Service>swift.eni</Service>

    </NetworkInfo>

    <SecurityInfo>

    <SWIFTNetSecurityInfo />

    Alliance Access 7.0.30

    528 System Management Guide

    </SecurityInfo>

    </Message>

    </Header>

    <Body>

    <AppHdr xmlns="urn:swift:xsd:$ahV10">

    <MsgRef>REF10610311505</MsgRef>

    <CrDate>2006-10-31T03:05:41.502</CrDate>

    </AppHdr>

    <Document xmlns="urn:swift:xsd:swift.eni$camt.029.001.02">

    <camt.029.001.02>

    <Assgnmt>

    <Id>RCUSTA20050001</Id>

    <Assgnr>AAAAGB2L</Assgnr>

    <Assgne>CUSAGB2L</Assgne>

    <CreDtTm>2005-01-27T11:04:27</CreDtTm>

    </Assgnmt>

    <RslvdCase>

    <Id>CCCC-MOD-20050127-0003</Id>

    <Cretr>CUSAGB2L</Cretr>

    </RslvdCase>

    <Sts>

    <Conf>MODI</Conf>

    </Sts>

    </camt.029.001.02>

    </Document>

    </Body>

    </DataPDU>

     


     

     

    Kind Regerds,
    Adem



    • Edited by Adem Terzi Friday, August 3, 2012 5:45 PM
    Friday, August 3, 2012 5:41 PM
  • If you only need the body, you could just extract the Document portion of the message in a Receive Pipeline component, and pass that along into the Message Box. If you need some fields from the header for routing, you could just promote those in the pipeline component itself. Depends on what you want to do with the message.
    • Edited by Anil K Narayan Friday, August 3, 2012 6:19 PM corrected grammar
    Friday, August 3, 2012 6:19 PM
  • You can create a custom pipeline component and publish only the body part and make sure you overwrite the messagetype of this new message according to the new message.

    Shashi

    • Proposed as answer by Mazin Alassaf Monday, August 6, 2012 3:06 PM
    • Unproposed as answer by Mazin Alassaf Monday, August 6, 2012 3:06 PM
    Friday, August 3, 2012 6:23 PM
  • If I understand you, You don't have to use the custom pipeline

    You can just modify a schema with <Any> element for the Header and maybe for the Body/AppHdr.


    Leonid Ganeline [BizTalk MVP] BizTalkien: Naming Conventions for the BizTalk Solutions

    • Proposed as answer by Mazin Alassaf Monday, August 6, 2012 3:06 PM
    Friday, August 3, 2012 7:40 PM
    Moderator
  • To add to others, you can also change a file name in pipeline depending on the context.

    Friday, August 3, 2012 8:26 PM
  • Hi Adem ,

    Let me clear ,

    1)how many messages (Message types) your receiving from one location .

    2)these messages are having different filename ? if yes

    Configure same location for multiple biztalk receive location using filemask .

    if filename is test.xm filemask is *te*.xml (RL 1)

    if filename is order.xml filemask id *ord*.xml(RL 2)

    at last configure receiveport where you want it will pick matched schema only.

    Note : it is not help to you please try schema with <any> which has posted by leond.

    Thanks

    Vittalaranga

    • Marked as answer by Adem Terzi Tuesday, August 7, 2012 8:34 AM
    Monday, August 6, 2012 9:37 AM
  • Thanks Vitta, filename mask solved my issue

    Tuesday, August 7, 2012 8:36 AM
  • Ohh..finally solved your issue...

    Thanks

    Vittalaranga

    Tuesday, August 7, 2012 10:01 AM