on 11-09-2015 7:53 PM
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
25 | |
12 | |
9 | |
6 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.