BizTalk Server - Wrong parsing of a float from a SOAP receive location

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server > July 2004 > Wrong parsing of a float from a SOAP receive location





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Wrong parsing of a float from a SOAP receive location
Hans Erik

2004-07-29, 2:48 am

Hi,

I use a SOAP (adaper) receive loation in BizTalk 2004 to receive a XML document.
One of the fields in this document is of xs:float type. When I get a large number in this field it seems like the SOAP adapter does a exponentiation of the number. The number sent in the document to the receive location is 70200554912 and the number store
d in the tracking of the received document is 7.020056E+10.
When I use a file receive location and drop the exact same document to this location as sent with SOAP the number is received correctly in BizTalk.
I have also traced the SOAP message before it's received by BizTalk and the number is correct in the trace.

Is this a bug in the adapter, or can someone explain if there is a setting somewhere I have missed?

brgds
Hans Erik
Hans Erik

2004-07-29, 2:48 am

I Found a solution to my problem:

I used the BizTalk Web Services Publishing Wizard to publish my schema as a webservice. This wizard make a Datatypes.cs which types all data in the document.
The xs:float was typed into System.Single a type that obviously likes to do a exponentiation of large numbers.

I tried to change this type to System.Double which moved the upper limit before exponentiation a little bit.
I ended up with typing these fields as string, since the only task for this web service is to send the received document into BizTalk and not perform any calculations.

brgds
Hans Erik

"Hans Erik" wrote:

> Hi,
>
> I use a SOAP (adaper) receive loation in BizTalk 2004 to receive a XML document.
> One of the fields in this document is of xs:float type. When I get a large number in this field it seems like the SOAP adapter does a exponentiation of the number. The number sent in the document to the receive location is 70200554912 and the number sto

red in the tracking of the received document is 7.020056E+10.
> When I use a file receive location and drop the exact same document to this location as sent with SOAP the number is received correctly in BizTalk.
> I have also traced the SOAP message before it's received by BizTalk and the number is correct in the trace.
>
> Is this a bug in the adapter, or can someone explain if there is a setting somewhere I have missed?
>
> brgds
> Hans Erik

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com