Reputation: 46420
Short version: Can a property with multiple values somehow be promoted so that send ports can subscribe to one of the values in the list?
Long version: In a database, I have mapping information, where we map people to locations. a person can work at multiple locations and location can have many people working at it. The relationship between locations and people (thousands of people) is maintained by an operations team using a well application which updates the database.
A message comes into Biztalk containing multiple people.
Currently, BizTalk receives the message, pulls out the list of people from the message, and dump messages into a sql database, with an associated list of people. SQL resolves the person/location relationships and writes a distinct list of locations to an associated table. We have a receive port that runs a query and publishes to the messagebox the message from the database with a promoted property that holds the location. From there we have multiple send ports, each that subscribe to a particular location.
The issue is that it is not an efficient process. The message gets published mutliple times to the Biztalk messagebox (once for inbound, and at least once for outbound).
Would it be possible to, using a pipeline component promote the locations that the message should go to, and then have send ports that subscribe to a particular location? The challenge is that some send ports need to be ReST, and some are SOAP, so the integration between locations can be different. I can't seen to find a way to publish multiple a property with multiple values, in a way that send ports can subscribe to one of those values. Looking for ideas...
Upvotes: 0
Views: 127
Reputation: 11040
Funny, this same situation came up just last week....anyway...
Yes, by using Bitwise And predicate in the filter. It's the & option. You'd have to map each location to a value (power of 2) but each property can support up to 32 options (64 if uint64 is supported which...umm....sorry, I just don't recall :)
If you need more than that, just add a second group filter, East, West or whatever.
Upvotes: 2