Itgenxml091 on BARCODE field

During the synchronization of Items to Exact Online, we encounter the following error:

itgenxml091
The column ‘BARCODE’ has a value ‘10788942212008112505’ which cannot be converted to the data type Int64.
The value ‘10788942212008112505’ is not a valid large integer.
Value was either too large or too small for an Int64.
Use comma ‘,’ as a thousand separator.

Request ID: 0HNN7G8UUIJP0:00000001

This causes the synchronization to fail.

Can it be checked why the BARCODE field is being treated as an Int64 instead of as text (string)?

itgenxml091

The column BARCODE in Items has a value ‘10788942212008112505’ which cannot be converted to the data type ‘int64’.

The value ‘10788942212008112505’ is not a valid large integer.
Value was either too large or too small for an Int64.

Use a comma ‘,’ as a thousands separator.

The cause is an excessively large potential value for the data type used for this field in the Invantive software. A modification will be made to resolve this issue.

Report: gmr-eol-items

Call stack:

System.OverflowException
ValidationException
ValidationException
   at System.Number.ThrowOverflowException[TInteger]()
   at System.String.System.IConvertible.ToInt64(IFormatProvider provider)
   at Invantive.Data.DataUtility.ConvertToLong(GlobalState owner, ExecutionOptions executionOptions, Object val)

SQL Statement:

select /*+ result_set_name('Items') */
       ...
,      itm.barcode
       ...
from   ( select to_number(itm.division_code) division
         ,      to_guid(replace(itm.id_attr, '{', '', '}', '')) id
         ,      itm.* 
         from   exactonlinexml..items@eol itm 
       ) itm
...

Exact Online dictates in the metadata that it is an integer number:

<xsd:element name="Barcode" type="xsd:integer" minOccurs="0"/>

The largest possible input value in the Exact Online user interface itself is 20 nines:

99999999999999999999

The number 10788942212008112505 has 20 digits and is larger than the maximum value with 19 digits of an Int64 (9223372036854775807).

Within the REST APIs, Exact Online uses a string instead of an Int64 as it does with XML. A string is also better due to possible leading zeros.

An improvement has been put into production to resolve this issue. Around five columns have been removed due to the transition from XML to REST tables.

For more information, see:

Deze vraag is automatisch gesloten na 1 week inactiviteit. Het laatste gegeven antwoord is gemarkeerd als oplossing.

Gelieve een nieuwe vraag te stellen via een apart topic als het probleem opnieuw optreedt. Gelieve in de nieuwe vraag een link naar dit topic op te nemen door de URL er van in de tekst te plakken.