cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with SOAPAction in Sender SOAP Channel

Former Member
0 Kudos

Hi folks

We are currently publishing a webservices provided by a third party. Our sceranio is a SOAP -> IDoc implemented using a Sync/Async BPM.

Our thrid party can only change the endpoint of the SOAP call, not the SOAPAction parameter, under these circusntances, we are unable to receive the message.With XMLSpy when we invoque the WS using the predefined value SOAPAction we get the following error:

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

  <SOAP:Header>

</SOAP:Header>

  <SOAP:Body>

  <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

  <faultcode>SOAP:Client</faultcode>

  <faultstring>Error during parsing of SOAP header</faultstring>

  <faultactor>http://sap.com/xi/XI/Message/30</faultactor>

  <detail>

  <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30">

  <SAP:Category>XIProtocol</SAP:Category>

  <SAP:Code area="PARSER">ITEM_MISSING</SAP:Code>

  <SAP:P1>{http://schemas.xmlsoap.org/soap/envelope/}Header</SAP:P1>

  <SAP:P2/>

  <SAP:P3/>

  <SAP:P4/>

  <SAP:AdditionalText/>

  <SAP:Stack>XML element {http://schemas.xmlsoap.org/soap/envelope/}Header missing in SOAP message header (SAP XI Extension)

</SAP:Stack>

  </SAP:Error>

  </detail>

  </SOAP:Fault>

  </SOAP:Body>

</SOAP:Envelope>

and the message didn´t appear in the sxi_monitor.

By now our SOAP Sender Channel are under transport protocol HTTP and message protocol XI 3.0 we checkASMA and variable transport Binding with variable header SHeaderSOAPAction.

Did anyone face with  similar issue? How to change that predefined SOAPAction into the http://sap.com/xi/WebService/soap1.1 value defined in the wdsl of the directory.

Thanks in advance.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi, thanks experts

The question is finally solved following this steps.

1. For avoiding the SOAPAction check  the endpoint must be

http://<host>:<port>/XISOAPAdapter/MessageServlet?channel=:

2. The BPM development must exclude namespaces non-SAP propietaries, we  define DT, MT and the abstract MI as own definitions. MI derived from external definition of wsdl as an outbound interface mapped to the inbound asynchronous interface of the BPM .

Thanks

Answers (2)

Answers (2)

iaki_vila
Active Contributor
0 Kudos

Hi MariLuz,

You can try to check Do Not Use SOAP envelope, with this check you can avoid that PI tries to deal with SOAP PI envelope.

Also, you are working with a Sync/Async bridge, depending your PI version you have some alternatives to use BPM:

- Sync/Async Bridge (http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80f96dbf-adca-3010-ffb5-daf2d1f0e...). I think from PI 7.31 is available.

- You can wrap your IDOC inside a RFC in your ECC endpoint, and to do a SOAP - RFC sync scenario.

Hope this helps.

Regards.

vadimklimov
Active Contributor
0 Kudos

Hello Mariluz,

Message protocol XI 3.0 is a SAP proprietory protocol and is used in proxy communication between Integration Server (SAP PI/PO) and local ABAP/Java proxy runtime (of connected application systems). XI protocol compliant message contains specific mandatory header elements in the structure of the SOAP envelope, and if the sender system doesn't provide them, SAP PI/PO will not be able to correctly handle such a message - this is the reason you receive an error. If it is SOAP communication with some arbitrary service consumer and it is not ABAP/Java proxy communication, message protocol shall be switched from XI 3.0 to SOAP 1.1 in the SOAP sender communication channel configuration.

Regards,

Vadim