cancel
Showing results for 
Search instead for 
Did you mean: 

Deserialisation failed

Former Member
0 Kudos

Hello ,

I have a problem with decimal as input parameter for a webservice,

The decimal has 4 digits behind the decimal point. But if you instead give more than 4 (e.g. 5) digits as input, then you will get the following exception:

(The test was carried out using Web services navigator)

My question is, if SAP is not able to round down such a decimal to the predefined format automatically?

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

- <soap-env:Body>

- <soap-env:Fault>

<faultcode>soap-env:Client</faultcode>

<faultstring xml:lang="en">Deserialisation failed</faultstring>

- <detail>

- <n0:SimpleTransformationFault xmlns:n0="http://www.sap.com/transformation-templates">

<MainName>/1BCDWB/WSS0071009153138917323</MainName>

<ProgName>/1BCDWB/WSS0071009153138917323</ProgName>

<Line>10</Line>

<Valid>X</Valid>

- <DeserialisationFault>

<DescriptionText>Im ST-Program /1BCDWB/WSS0071009153138917323 ist bei der Deserialisierung ein Fehler aufgetreten.</DescriptionText>

<DescriptionDetailText>Beim Konvertieren von 0.76000000 trat ein Verlust von Nachkommastellen auf.</DescriptionDetailText>

<TreePosition />

<ClassName>CX_SY_CONVERSION_LOST_DECIMALS</ClassName>

</DeserialisationFault>

- <Caller>

<Class>CL_SRG_RFC_PROXY_CONTEXT</Class>

<Method>IF_SXML_PART~DECODE</Method>

<Positions>1</Positions>

</Caller>

</n0:SimpleTransformationFault>

</detail>

</soap-env:Fault>

</soap-env:Body>

</soap-env:Envelope>

Thanks in advances

Yy

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Check this OSS note 892944

Summary

Symptom

When you execute a web service, the "Deserialisation failed" error occurs. In the response message, a "SimpleTransformation - Fault" message is displayed. The following message is documented in the connection trace (SM59) if the trace to the web service is activated (tx WSADMIN "Administration Web Services for SOAP RuntTime": Trace settings = full trace):

| XRFC> 20051027 133601 SUPPORT: SOAP Fault Exception caught: : <

| XRFC> Deserialisation failed

Other terms

Web Service

Reason and Prerequisites

The error frequently occurs after you import a new kernel patch.

Solution

In Releases 6.20 - 6.40, reactivate the virtual interface, or in Releases 6.40 and higher, reactivate the Service Definition of the Web Service. Then check if the error response still occurs.

Former Member
0 Kudos

Thanks for the hint !

I think that our problem is the instuction of " CALL TRANSFORMATION

...." in method IF_SXML_PART~DECODE of the class CL_SRG_RFC_PROXY_CONTEXT .

The instruction CALL TRANSFORMATION has some restrictions during the conversion of two decimals with different lengths.

In our case it is not practicable to rewrite the interphase and predefinition.

So we are looking forward to an alternative way .

Best wishes

Yy

Former Member
0 Kudos

hi Yy,

I experence a similar problem.

I found an OSS note 830340 that seems to describe exactly the situation. But it is issued for BASIS 640, whereas our basis is version 700.

the problem seems to be in the transformation generated automatically from web service interface (or the ST engine interpreting it).

I have manually modified the Simple Transformation the way that I could get through the SOAP message. The problem is that I am not sure if I can transport such generated simple transformation to Q / P, as originally it is assigned to $TMP package. Another problem is that by modifying the Simple Transformation I made it incompatible with some SOAP clients.

My transformation

.....

<tt:deserialize>

<n0:ZEosGetshoppingcartstatus tt:extensible="deep-dynamic">

<n0:Shoppingcardid>

<tt:ref name="SHOPPINGCARDID">

<tt:value/>

</tt:ref>

</n0:Shoppingcardid>

</n0:ZEosGetshoppingcartstatus>

</tt:deserialize>

...

the original was

.....

<tt:deserialize>

<n0:ZEosGetshoppingcartstatus tt:extensible="deep-dynamic">

<Shoppingcardid>

<tt:ref name="SHOPPINGCARDID">

<tt:value/>

</tt:ref>

</Shoppingcardid>

</n0:ZEosGetshoppingcartstatus>

</tt:deserialize>

...

I'm looking forward to any feedback, should you managed to get more info/ solution for this case.

Best regards,

KK

Answers (0)