cancel
Showing results for 
Search instead for 
Did you mean: 

Changing SOAP-HEADER in ABAP Proxy in order to call to XI 3.0

iaki_vila
Active Contributor
0 Kudos

Hi guys,

I need to call via ABAP-PROXY a XI 3.0 service but it is neccesary to add to tags into SOAP-HEADER.

I've seen an aproximation in this thread http://scn.sap.com/thread/1706794 working with if_ixml interface. I could also to wrap all the message and later in XI to extract it.

My question is, is it possible to access to PI-SOAP header without if_xml interface in the abap enviroment when i do my proxy-interface?

Do you have another idea to change the SOAP-HEADER inside XI with the restriction that the version is XI 3.0?, for example with an UDF to put in the header the fields that comes in the payload source xml.

Regards.

Accepted Solutions (1)

Accepted Solutions (1)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Do you have another idea to change the SOAP-HEADER inside XI with the restriction that the version is XI 3.0?, for example with an UDF to put in the header the fields that comes in the payload source xml.

Though the version is XI 3.0, still you can use Java mapping or XSLT mapping to alter the  SOAP Header inside XI itself. There won't be problem with this.  BTW, are you consuming the web service via XI?

iaki_vila
Active Contributor
0 Kudos

Thanks Baskar,

The scenario is PROXY ABAP-SOAP. The third-party web service needs some tags in the SOAP-HEADER . Do you think the best way is to create an UDF in XI and to pass the fields in the payload source message and later put them in the SOAP header?, don't you know another possibility in the ABAP side?

Regards.

former_member184681
Active Contributor
0 Kudos

Hi Iñaki,

I believe that any ingerence into the SOAP Header of the ABAP Proxy call would be rather difficult to perform on the ECC side. Instead, I would recommend going for the design you mentioned: include the values in the message payload on the sender side, and then put them into the target payload during mapping.

My only concern is: how do you want to put values into SOAP Header with a UDF? I believe this is only possible with HTTP Header (of the SOAP call) & Dynamic Configuration. In order to put values into SOAP Header, you would have to generate the SOAP Envelope yourself, and mark the "Do not use SOAP Envelope" indicator in the receiver SOAP CC. And you can only create the SOAP Envelope yourself with Java mapping or XSLT mapping, as far as I know (it could be the second message mapping in the operation mapping, after a graphical one, for your convenience).

Hope this helps,

Greg

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>The third-party web service needs some tags in the SOAP-HEADER . Do you think the best way is to create an UDF in XI and to pass the fields in the payload source message and later put them in the SOAP header?

Since your target system requires some customize soap header, one common approach is to do in mapping. If some parameter values needs to be updated you might use dynamic configuration using UDF or so. If you need to add namespace or namespace prefix or more changes then go for XSLT or java mapping to match the target system's webservice requirement. This is one standard approach.

>don't you know another possibility in the ABAP side?

You might want to wait for other experts to answer for this.

Answers (2)

Answers (2)

iaki_vila
Active Contributor
0 Kudos

At first thanks to Praveen, Baskar and Grzegorz.I knew that i can count on you.

Finally I'm going to use the Grzegorz option with an XSLT mapping and withe the option Dont Use SOAP envelope. Also as Grzegorz says, i've checked that is no possible to use an UDF in this case. The Praveen advice is good too but the problem is that there are some development done and i need no to spend so much time in this.

Regards.

former_member181985
Active Contributor
0 Kudos

Iñaki Vila wrote:

Hi guys,

I need to call via ABAP-PROXY a XI 3.0 service but it is neccesary to add to tags into SOAP-HEADER.

I've seen an aproximation in this thread http://scn.sap.com/thread/1706794 working with if_ixml interface. I could also to wrap all the message and later in XI to extract it.

My question is, is it possible to access to PI-SOAP header without if_xml interface in the abap enviroment when i do my proxy-interface?

Do you have another idea to change the SOAP-HEADER inside XI with the restriction that the version is XI 3.0?, for example with an UDF to put in the header the fields that comes in the payload source xml.

Regards.

Hi,

Some time back, I have a similar question http://scn.sap.com/thread/1567600 . Unfortunately there is no provision for this if we use XI runtime enviornment. Links:

http://help.sap.com/saphelp_nw04/helpdata/EN/51/d5cd16235e4643ae8ec92395c4ad97/frameset.htm

http://help.sap.com/saphelp_nw70ehp2/helpdata/en/51/d5cd16235e4643ae8ec92395c4ad97/frameset.htm

http://help.sap.com/saphelp_nw73ehp1/helpdata/en/51/d5cd16235e4643ae8ec92395c4ad97/frameset.htm

In XI, you can think of doing in this way. Create webservice SOAP envelope as a payload. Meaning it contains SOAP envelope, header, body etc... In the receiver SOAP channel enable check box "Do not use SOAP envelope"

- Praveen