locked
Biztalk Send port Filter on Promoted Properties RRS feed

  • Question

  • Hello,

     

    I am trying to route the messages based on the content in the messages. This is what I followed

    1)     Schema has a root of “MsgRootTestNew” and 2 elements Source, Destination

    2)     Source is a promoted (using quick promotion)

    3)     Added a target namespace of http://Schema.TestSchema root of “MsgRootTestNew” with assembly name of “Schema”

    4)     Assigned SN key and deployed schema and property schema on to BTS

    5)     I have send port with transport type of File Port and pipeline as XMLtransmit

    6)     I added a filter Schema.Destination == ABC

    7)     I drop below test XML,

    <MsgRootTestNew xmlns="http://Schema.TestSchema">

      <Source>SOmeAPP</Source>

      <Destination>ABC</Destination>

    </MsgRootTestNew>

    8)     I get an error

    A message received by adapter "FILE" on receive location "POCDynamicRouting_File" with URI "C:\POC\PipelineTest\Input\*.xml" is suspended.

     Error details: The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted. Please use the Biztalk Administration console to troubleshoot this failure. 

     

     

    If I remove the Schema.Destination == ABC  and set the filter on the BTS.ReceivePortName == MyPortName property, Works just fine.

     

    Any thoughts?

     

    Thanks

     

    Kote

                   

     

     

     

    Monday, June 28, 2010 10:13 PM

Answers

  • Send port filter expression use the properties in the message context, when you promote the fileds it won't become context properties unless you do it in the poperty schema. For this you have to edit the property schema and make the source(promoted field)'s MessageDataPropertyBase=MessageContextPropertyBase and then redeploy and make the filter. You should also be able to see the source propery in the Message context properties.

     

    Thanks,


    i.ahmad Please mark this as an answer if it helps
    Tuesday, June 29, 2010 4:39 AM

All replies

  • Hi,

    It looks that your property Schema.Destination is not promoted properly.  Make sure that your receive location is using XMLReceive pipeline (not passthru).  Enable tracking on receive port and see if  Schema.Destination is promoted or not.

    Regards,

    Tariq Majeed


    Please mark it as answer if it helps
    Tuesday, June 29, 2010 1:33 AM
  • Thanks for the reply.

    I have created a message schema and a  property Schema in my project. Then I created property promotion by doing quick promotion and verified  that promotion appears in the Property Schema.  Both these schema files were deployed.

    When I see the message context, I do NOT  see Schema.Destination promoted.  

    On the receive side I have a tried both using the XMLReceive and custom pipeline with XML Disassembler defined. 

    and I am also not using the distinguished fields.  

    Thanks

    Kote


    SKS
    Tuesday, June 29, 2010 2:47 AM
  • Hi,

    The filter should be AssemblyName.PropertySchemaName.PromotedPropertyName in the filter for promoted properties.

    Thanks,

    William

    • Edited by William Cummings1 Tuesday, June 29, 2010 1:33 PM Mis read the original poster
    Tuesday, June 29, 2010 4:04 AM
  • Send port filter expression use the properties in the message context, when you promote the fileds it won't become context properties unless you do it in the poperty schema. For this you have to edit the property schema and make the source(promoted field)'s MessageDataPropertyBase=MessageContextPropertyBase and then redeploy and make the filter. You should also be able to see the source propery in the Message context properties.

     

    Thanks,


    i.ahmad Please mark this as an answer if it helps
    Tuesday, June 29, 2010 4:39 AM
  • Thanks for the reply..

    Identified the issue… On the receive side, I had the promoted properties within the document schema (had them at 2 level deep in doc schema) and had an Envelop schema.

    Promotion 2 level deep within the Document did not work. When I moved these elements as attributes on root of document schema, promotion works fine. Send Port filter works fine after these changes.

     

     


    SKS
    Friday, July 16, 2010 3:34 AM