SoapRPC autosending an invalid namespace

I’m running SAP BC ver 4.7. I’m using the built in function soapRPC to send a Rosettanet 3A2 PIP (PriceAndAvailabilityRequest). When it runs, soapRPC is automatically adding a value into the root node of the 3A2 PIP:
<aPip3A2PriceAndAvailabilityRequest xsi:type=“p1:data” xmlns:p1=“http://
www.webMethods.com/2001/10/soap/encoding” id=“id1”>

It seems that BC is ignoring the value placed in the “XML namespace” of the record (general tab when in the record properties) and is always adding "http://www.webMethods.com/2001/10/soap/encoding". Is there any way to make it stop?

I’m sending to Axis and it is choking on this value (the URL is actually invalid which is why they think it chokes on it, but I don’t know). Here is a snipit of the error message that Axis reports (I can post the whole thing if needed):
<soapenv:Body>
<soapenv:Fault>
<faultcode
xmlns:ns1="http://xml.apache.org/axis/">ns1:Server.userException</faultcode>
<faultstring>org.xml.sax.SAXException: Deserializing parameter
‘aPip3A2PriceAndAvailabilityRequest’: could not find deserializer for type
{http://www.webMethods.com/2001/10/soap/encoding}data</faultstring>

Thanks

Keith,

Documentation says about the namespace http://www.webMethods.com/2001/10/soap/encoding is added due to:

webMethods to XML Mappings (Encoding & Decoding)
Data types from
http://www.webmethods.com/2001/10/soap/encoding
The following Java objects are encoded with webMethods-specific data types (i.e., types
from namespace http://www.webmethods.com/2001/10/soap/encoding).
Java Object XML type:
Hashtable Hashtable
Vector Vector
IData* data
com.wm.util.Table data array

  • Or any class that implements the IData interface (e.g. BasicData, IDataCodable,
    Values).

So for String types it will add “http://www.w3.org/2001/XMLSchema

So this is a default behaviour.

HTH,
RMG

I saw that in the SOAP Programming Guide as well, but there’s no mention of how to change the behavior (use something other than http://www.webMethods.com/2001/10/soap/encoding).

Anybody know?

Eric,

I hope you have used WSDL document,so check if this line exist in that document definition,types
(xmlns=“http://www.w3.org/2001/XMLSchema”)

Some how if you replaces the webMethods encoding with the above xmlns Axis should accept PIP document.

just my thoughts,

Yes, it was created from a wsdl. The wsdl they provided has no mention of webMethods anywhere inside of it.

I tried putting a namespace attribute to aPip3A2PriceAndAvailabilityRequest in the wsdl and reimporting it, but it made no difference.

As a workaround, is it possible to build a SOAP document; ex:

=>createSOAPData
=>addBodyEntry
=>soapHTTP

such that it appears to be a SOAP RPC?

If only there were two steps to soapRPC (build SOAP data, then I/O) I could have an intermediate step to modify the data being sent.

… just scratching for ideas.

Thanks.