on 12-05-2007 3:35 PM
I've developed a SOAP -- XI -- RFC scenario and successfully tested this using XMLSpy and oXygen. Both applications generate the following SOAP request.
<i><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<invoices id="filename" xmlns=" urn:xxxxxxxx.com/yyyyy/cc">
<invoice xmlns="">
<account_no>YYYYYYY</account_no>
<document_reference>ZZZZZZZ</document_reference>
<debit_credit_indicator>D</debit_credit_indicator>
<gbp_amount>0</gbp_amount>
<transaction_date>2007-10-26</transaction_date>
<vat_amount>0</vat_amount>
<invoice_line>
<transaction_currency>EUR</transaction_currency>
<transaction_amount>60.00</transaction_amount>
</invoice_line>
</invoice> </invoices>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope></i>
When testing using the SOAP request generated by BEA Logic SAP returns an error 'Received HTTP response code 500 : Error during parsing of SOAP header' Notice that the namespace prefix for the SOAP tags are missing.
<i><Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:uk="urn:xxxxxxxx.com/yyyyy/cc">
<Header/>
<Body>
<uk:invoices id=" filename">
<invoice xmlns="">
<account_no>YYYYYYY</account_no>
<document_reference>ZZZZZZZ</document_reference>
<debit_credit_indicator>D</debit_credit_indicator>
<gbp_amount>0</gbp_amount>
<transaction_date>2007-10-26</transaction_date>
<vat_amount>0</vat_amount>
<invoice_line>
<transaction_currency>EUR</transaction_currency>
<transaction_amount>60.00</transaction_amount>
</invoice_line>
</invoice>
</uk:invoices>
</Body>
</Envelope></i>
All I need to do is add a namespace prefix to the SOAP tags and I can get the soap request to work. I have a few questions
i) does the XI SOAP adapter require a namespace prefix for the SOAP tags
ii) is there any documentation to support this (as I find most of the documentation available for XI limited) - I've read the SOAP blogs and the how to guide.
iii) is there a workaround.
iv) Why do oXygen and XML Spy generate a the same namespace prefix's (SOAP-ENV). I've searched through the WDSL and can't find any reference to this. I'm assuming it's a standard prefix.
Thanks in advance.
1. Not always. But Yes it is required in default communication channel configuration
2. /people/padmankumar.sahoo/blog/2005/02/15/an-overview-of-soap
3. U can use "Do Not Use SOAP Envelope" option of SOAP adapter. In this case the envelop will not b used
4. Any prefix could be used but important is to uses it.
Regards,
Prateek
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Prateek,
Thanks, the article was useful but doesn't mention a requirement to use a prefix. You say it's required in the 'default communication channel configuration'. I can't see anywhere in the SOAP CC which mentions namespace prefixes or where I would change it.
I understand that if I don't use a soap envelop then I need to create an XSD with the required fields and use that as the interface. Is this correct.
Agree - testing has shown that any prefix works.
User | Count |
---|---|
88 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.