on 01-17-2008 3:01 PM
hello,
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Call Adapter
-->
- <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
- <SOAP:Header>
- <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
<SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
<SAP:ProcessingMode>synchronous</SAP:ProcessingMode>
<SAP:MessageId>79630070-BC27-11DC-BD4F-0017A4106568</SAP:MessageId>
<SAP:TimeSent>2008-01-06T07:17:46Z</SAP:TimeSent>
i sent the message in HTTPS,
the problem is the target system can't get SOAP:mustUnderstand="1", the target system can get only SOAP:mustUnderstand="0"
how can i change SOAP:mustUnderstand="1" to SOAP:mustUnderstand="0"
thanks,
Shelly
Hi,
you could use the below alternative solution also as some Web services do not accept the message , if Content type is application/XML in the HTTP Header, it will accept only Text/XML. So While calling the Web service, the content has to be changed, This is possible using Module of the adapter as shown in the screen shot.
HTTP Header field values before using the module
User-Agent: SAP-Messaging-com.sap.aii.messaging/1.0505
content-id: payload-45A352A90948582CE1000000CDEFD4B7@sap.com
content-type: application/xml
Content-Length: 1280
Module name - localejbs/AF_Modules/MessageTranspormationBean
Type - Local Enterprise Bean Module - This is defined by the user, but the same name should be given in the module configuration for passing the parameters. In this case transform In the module configuration ,
Module key - In this case transform
Parameter name - Transform.ContenType
Parameter Value - text/xml;charset=utf-8
Here you could use the required parameters and pass the values....:-))
Thanks
Swarup
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
My propousal is as follows:
Go to the involved comunication channel on the integration Builder and Select the option:
"Do not use SOAP Envelope"
Then create your own XSLT mapping program as bellow:
-
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<!-- Call Adapter
-->
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
<SOAP:Header>
<SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:MUSTUNDERSTAND="0" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
<SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
<SAP:ProcessingMode>synchronous</SAP:ProcessingMode>
<SAP:MessageId>79630070-BC27-11DC-BD4F-0017A4106568</SAP:MessageId>
<SAP:TimeSent>2008-01-06T07:17:46Z</SAP:TimeSent>
<SPECIFICMAPPINGPROGRAM/>
</SAP:Main>
</SOAP:Header>
</SOAP:Envelope>
</xsl:stylesheet>
-
Import the archive and select it in the Interface Mapping.
Good luck!!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Shelly,
The issue is not to just change the soap header...it will fail elsewhere..
The mustUnderstand Attribute
The SOAP mustUnderstand attribute can be used to indicate whether a header entry is mandatory or optional for the recipient to process.
If you add "mustUnderstand="1" to a child element of the Header element it indicates that the receiver processing the Header must recognize the element. If the receiver does not recognize the element it must fail when processing the Header.
That being said means that the reciever ..doesent understand...the message...
Hope that helps
Regards
Ravi Raman
While(pointsAreAssigned ==true){
boolean getAReply = true;
}
else{
System.exit(0);
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
thanks
but it's not solve my problem
i need to change the SOAP:mustUnderstand element
in the soap header .
the interface is from SAP to HTTPS Web service.
the change should be :
SOAP:mustUnderstand="1" to SOAP:mustUnderstand="0"
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
94 | |
11 | |
11 | |
10 | |
9 | |
7 | |
6 | |
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.