2
votes

I have an "enevelope" schema and a body schema and I have setup the correct properties on the "envelope" to point to the body. I also have a property schema for promoting a value in the body message so that i can route on it.

I set up a File drop receive location and two send ports. Each send port subscribing on a different value of the promoted property. The receive location uses XmlReceive and the send ports both use XmlTransmit.

When i drop one envelope message at the Rcv location, Bts picks it up, splits it, promotes the property and my send ports pick up the relevant messages and do their thing.

File drop was fine for testing, but the real scenario is slightly different. I want clients to submit "envelope" schemas containing multiple document elements via Wcf

So i published the envelope schema as a Wcf endpoint using the publishing wizard. Let it create the new Receive location. Wired up a Wcf client to talk to this endpoint and submitted a message.

Without changing anything on the Send ports in BizTalk I expected the same result; However I now get a routing failure.

If i remove the extra filter in the Send port that filters on the promoted property it works, no routing failure.

So ... it would appear that the promoting of my property is not happening on the Wcf receive location. I have checked; the Wcf receive location is using XmlReceive.

What gives? How do i fix this?

1
What are the 'other' filter that you have on the SendPorts?magnus
It sounds strange. If you remove the filter, how would BTS know where to send the incoming message? I thought the message would stay in the message box and you get a routing error since there is no subscription without filter. Hmm, I will try this myself.Martin Bring
I would guess that he has two filters. One for BTS.ReceivePortName == XXX && HisOwn.Promoted.Propoerty == xxx.magnus
yes. two filter properties. as magnus pointed out.ryancrawcour
To help narrow this down you could use trackig and grab a copy of that exact message submitted from the WCF client. Publish that message using a FILE adapter ReceiveLocation. Does the promotion work then?magnus

1 Answers

0
votes

I would guess that the namespace of your incoming message has changed as a result of changing it to use WCF.

This can cause the property promotion to no longer match the incoming message.

You can view the property promotions in the tracked messages in the BizTalk server admin tools.