cancel
Showing results for 
Search instead for 
Did you mean: 

Content based Routing?

Former Member
0 Kudos

Hi Forum,

I've looked through the messages regarding content based routing or similar's but the answers did not satisfy my needs. I have an XSLT mapping from a flat file structure to an IDOC. To qualify the receiving system I have to do a database lookup in my XSLT mapping by a Java extension function with combining some of the inputfields. The result of this database lookup is the Receiver System. How can I use this result in the condition Editor for the receiver determination. I can only use here the Nodes from the inputmessage. Are there other ways to have access to a "global Container" where I can store the results from the databaselookup to use them here?

Thanks for you patience

Manfred Schmidt-Voigt

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hello Christine,

yes it is a large table. All Plant numbers combined with some other attributes creates a pointer to the right SAP Target system. So I really want to have this DB Lookup. And the lookup is not the problem. The problem is, how to get the resulting string to the level of Receiver Determination.

Hello Daniel,

what do you mean by creating a module and an attachment? In the Receiver Determination I can only access the nodes in the source message.

Thank you both

Manfred

Former Member
0 Kudos

Hi,

If the outbound adapter is a j2ee adapter, you can write a module which performs the lookup in a database or what ever. Then alter the message and add the information looked up.

The easy way would be to add an extra attribute on the root node and add the content of the lookup in this field.

I whould though prefere to use add the information to my root node.

If you are not that keen on adapter development, the send the message into a bpm where you perform a lookup. This could probably be performed useing one of SP13's lookup functions. The BPM should only consist of a recieve and a send step. When sending the message you should be able to perform the routing.

/daniel

Former Member
0 Kudos

Hi Manfred,

why do you have to do a database lookup to get the receiver system? are there any "calculations" happening or is the DB table simply having a combined key of your input fields identifying the receiver system? If so, you could model that with content based routing without using any database lookup, as you can combine conditions with logical AND and OR. In my opinion this would be better then using a lookup table, as all configuration would be done within XI and would not be distributed across systems (someone needs to maintain that database table...)

However it will only work, if the amount of possible conditions / input field combinations and hence the amount of receiving systems is limited.

Best regards

Christine

Former Member
0 Kudos

You can either send use a BPM to map the message and from the BPM send the message and use the content based routing on the messages from the BPM.

An alternative solution could be to implement a module, which performs the database lookup and place the routing in the message. It is possible to place data in a module in an attachment which can be accessed as a context object.