cancel
Showing results for 
Search instead for 
Did you mean: 

Error during XML => ABAP conversion

Former Member
0 Kudos

Hi Experts,

I have used one transaction_reference field in the source structure and in target structure  , here sender is the SOAP system and receiver is the SAP Proxy .

For that field i have used date type as integer and length is 16 in both sender and receiver structure .

My issue is when source send the data in transaction_reference field like '0000000123456789' then it is not showig any error,

BUT if sender the data like '1234567896325874' then it is showing the below error in the SXMB_MONI.

Is there any possibility without changing  the data type as string of the field transaction_reference.

Error during XML => ABAP conversion: Request Message; CX_ST_DESERIALIZATION_ERROR in /1SAI/TXS3C5C06AA37A22A5B80A3 Line 88 An error occurred when deserializing in the simple transformation program /1SAI/TXS3C5C06AA37A22A5B80A3 Kernel ErrorId: UNCAUGHT_EXCEPTION (Overflow converting from &#39;123456789123&#39; Kernel ErrorId: CONVT_OVERFLOW) XML Bytepos.: 562 XML Path: ns0:VesselSche An error occurred when deserializing in the simple transformation program /1SAI/TXS3C5C06AA37A22A5B80A3 Overflow converting from &#39;123456789123&#39;</SAP:Stack>




Thanks

Mohith.

Accepted Solutions (1)

Accepted Solutions (1)

former_member182412
Active Contributor

Hi Mohit,

It is not complaining about the transaction reference which you shown, it is complaining about the field value '123456789123' , check in payload which field this value contains and check for the length of the field and data type of the field.



Overflow converting from &#39;123456789123&#39; Kernel ErrorId: CONVT_OVERFLOW) XML Bytepos.: 562 XML Path: ns0:VesselSche An error occurred

Regards,

Praveen.

Former Member
0 Kudos

Hi Praveen,

If i am changing that field Data type as string its working.

My requirement is that field has to maintain Data type as Integer for validation.

Is there any possibility without changing  the data type as string.

Please help me on this.

Thanks,

Kumar

iaki_vila
Active Contributor
0 Kudos

Hi Mohith,

&#39; is a '. You should eliminate this character in the mapping.


Regards.

former_member182412
Active Contributor
0 Kudos

Hi Mohit,

You mentioned the values as '1234567896325874' but in the error the value is '123456789123' both are not same do you have any field with this value?? also check what is the value of XML byte position 562.

Regards,

Praveen.

Former Member
0 Kudos

Hi Vila,

Former Member
0 Kudos

Sorry Praveen while i am testing i geven this value"123456789123" while i am posting i mention that values like example.

Former Member
0 Kudos

Hi Vila,

In TranstionReferance field if change that type as STRING it is processing 16 digits.

Thanks,

Mohith.

former_member182412
Active Contributor
0 Kudos

Hi Mohit,

You defined the field type as integer so the maximum integer value is 2147483647 only check this link Integer (Java Platform SE 7 )

MAX_VALUE

A constant holding the maximum value an int can have, 231-1.

And you are trying to send more than this value which is 123456789123 that is why system unable to assign this value to integer and it is failing.

If you want to hold 16 digits then define the field as xsd:double.

Regards,

Praveen.

Answers (2)

Answers (2)

suchitatomar
Participant
0 Kudos

Hi Mohit,

you need to do  2 steps..

1. check  whether data is numeric?

2. Use if without else and pass your source field.

use one udf IsNumeric to do checking

Here we have to use Double class because Integer class maximum support until "1234567891" which around 10 characters only, while you have 16 characters.

Hope your query will be resolved..!! without changing the type in the source and target structure.

Check if this works and share the results..!!

Regards,

Suchita Tomar

Former Member
0 Kudos

Hi Tomar,

Thanks for reply it is working.

iaki_vila
Active Contributor
0 Kudos

Hi Molith,

Check in the XSD structure of PI where the proxy is reading if you have any restriction about the field mentioned.

Regards.

Former Member
0 Kudos

Thanks Inaki Vila,

Yes we are mentioned restriction, field fixed lengths and data type as integer  it has to pass up to 16 Digits.

It is processing upto 10 digits only but  i have to process the 16 digits.

Please help me on this.



Thanks,

Mohit