cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP Sender Scenario with different Receivers

Former Member
0 Kudos

Hi,

I'm searching for a solution for the following scenario. SOAP Sender -> PI -> RFC (on System1 or System2) depending on a parameter which is not part of the message payload. As I already read, there must be some simple solution via the XHeaderName1 (namespace http://sap.com/XI/System/SOAP) Parameter of the Http Header.

I tried following:

SOAP Sender Adapter:

- checked Do Not Use SOAP Envelope

- checked Keep Headers

- checked Adapter Specific Message Attributes

- checked Variable Transport Binding

- set the name of the variable header to "system"

After this, I created a Receiver Rule with 2 conditions using

- left operator XHeaderName1, equals "System1" and added System1 as the receiving Communication Component.

- the same with "System2" and System2 as Communication Component

Then, I added this rule for my Standard Receiver Determination.

The SOAP request by the external partner got in its http header (not SOAP Header) "system: System1" respectivly "system: System2". However, no receiver is found!

What is wrong with this configuration? Does anyone have an idea or a solution for this scenario?

Thanks very much in advance!

regards

Harald

Accepted Solutions (1)

Accepted Solutions (1)

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Harald,

Out of curiosity I tried your scenario:

1. Checked Keep Headers, ASMA and Variable Transport Binding

added system in the XHeaderName1

2. Added an additional Header Field in SOAP UI using a generated WSDL in ID

3. Executed the request in SOAP UI and checked Dynamic Configuration for inbound message

Check if you are getting these. If you are, then check your condition in receiver determination.

It is also possible that you accidentally clicked the XHeaderName1 with the MAIL namespace instead of the SOAP.

Hope this helps,

Mark

Former Member
0 Kudos

Hello Mark, Hello@all,

Thanks for your answers. I'm using PI 7.11 SP09.

@Mark:

No, there is no point dynamic configuration shown in the sxmb_moni. I assume I have configured something wrong.

How are your settings for the conversion Parameters?

Are you adding the nosoap=true parameter in the Request URL?

@SAP Tech:

What do you mean with details about the dynamic configuration? I only did the things mentioned above, everything els ist straight forward SOAP->RFC Scenario and it is working for one single system.

Thanks again!

Harald

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Harald,

You mean to say it is already working for one system? Is your scenario synchronous or asychronous? I think XHeaderName1 only supports one value so that maybe the reason why system 2 is not read.

If your scenario is asynch, what you can do is to ask your provider to concat your receivers for the XHeader1 e.g

system: System1:System2

Then in your receiver determination conditions, use the approximate sign

e.g

That way it will search for the System1 string and then for the System 2 string.

Hope this helps,

Mark

Former Member
0 Kudos

Hi Mark,

It's a sync scenario and I meant, it worked when I only configured one receive (without any decision based on a parameter).

The problem is, there are NO dynamic configuration parameters in my incoming message, therefore it is clear to me that it can't work Your screenshot of the first post showed different parameters (SServerHost, ...).

Are you using the SOAP envelope (Communication Channel, Conversion Parameters)?

regards

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

We are on PI 7.11 SP08 and I am not using any SOAP Envelope. If you were able to tick ASMA and the Keep Headers option it should work. Have you tried checking the cache just to see if your changes have reflected?

Also it is not possible to split a sync message into two, you have to use BPM for that. Conditional routing is possible but only one receiver is allowed.

Hope this helps,

Mark

Former Member
0 Kudos

Hi,

yeah, I checked Keep Headers and ASMA and Variable Transport Binding. But no parameter is send!

No SRemoteHost, SRemoteAddr or anything else. ASMA is obviously not working!

I also checked the cache -> no problems.

I don't want to split the message, just decide to which communication component it should be forwarded.

According to this (SOAP Adapter Part), there are no further things to do to get this parameters!

http://scn.sap.com/community/pi-and-soa-middleware/blog/2009/05/26/pixi-pseudo-principal-propagation

This problem is very urgent and I don't have a clue what is wrong!

Thanks for any help!

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Harald,

Can you check SAP Note 1470127 - Sender SOAP Adapter - Missing Headers in Dynamic Configuration? It says that a patch is needed to be applied.

Hope this helps,

Mark

Former Member
0 Kudos

Is this note valid for

SAP_XIAF

7.30

7.30

7.30

?

It's an affected release but I cant find the correction for it. Am I missing something?

The Version of my SC is

SAP_XIAF1000.7.30.7.1.20120419041900

Can I apply this note?

Regards

Former Member
0 Kudos

Hello,

Have you fixed this issue? Could you please share your inputs on how to achieve this requirement.

Thanks.

Answers (2)

Answers (2)

Former Member
0 Kudos

some clarity required,

it seems you are using ASMA- variable binding --- if you have the identifier in soap call to determine system1 & 2...provide details dynamic configuration ...

check the keep header checkbox, check note

1470127

Former Member
0 Kudos

Hi

  What's mean 'XHeaderName1 '?