Itgenxml091 på BARCODE-fältet

Under synkronisering av objekt till Exact Online får vi följande fel:

itgenxml091
Kolumnen ‘BARCODE’ har ett värde ‘10788942212008112505’ som inte kan konverteras till datatypen Int64.
Värdet ‘10788942212008112505’ är inget giltigt stort heltal.
Värdet var antingen för stort eller för litet för en Int64.
Använd komma ‘,’ som tusentalsavgränsare.

Request ID: 0HNN7G8UUIJP0:00000001

På grund av detta misslyckas synkroniseringen.

Kan det utredas varför BARCODE-fältet behandlas som Int64 istället för som text (string)?

itgenxml091

Kolumnen BARCODE i Items har ett värde ‘10788942212008112505’ som inte kan omvandlas till datatypen ‘int64’.

Värdet ‘10788942212008112505’ är inte ett giltigt heltal av stor storlek.
Värdet var antingen för stort eller för litet för en Int64.

Använd kommatecken ‘,’ som tusentalsavgränsare.

Orsaken är ett för stort möjligt värde för den datatyp som används för detta fält i Invantive-programvaran. En justering kommer att göras för att lösa detta problem.

Rapport: gmr-eol-items

Anropsstack:

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-uttryck:

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 föreskriver i metadata att det är ett heltalsnummer:

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

Det största möjliga inmatningsvärdet i Exact Onlines användargränssnitt är 20 nior:

99999999999999999999

Numret 10788942212008112505 har 20 siffror, och är större än det maximala värdet med 19 siffror för en Int64 (9223372036854775807).

Inom REST API:erna hanterar Exact Online text istället för en Int64 som i XML. Text är också bättre på grund av möjliga inledande nollor.

En förbättring har gjorts i produktion för att lösa detta problem. Cirka fem kolumner har utgått på grund av övergången från XML till REST-tabeller.

För mer information, se: