Während der Synchronisierung von Items mit Exact Online erhalten wir den folgenden Fehler:
itgenxml091
Die Spalte ‘BARCODE’ hat den Wert ‘10788942212008112505’, der nicht in den Datentyp Int64 konvertiert werden kann.
Der Wert ‘10788942212008112505’ ist keine gültige große Ganzzahl.
Der Wert war entweder zu groß oder zu klein für ein Int64.
Verwenden Sie das Komma ‘,’ als Tausendertrennzeichen.
Request-ID: 0HNN7G8UUIJP0:00000001
Dadurch schlägt die Synchronisierung fehl.
Kann überprüft werden, warum das BARCODE-Feld als Int64 behandelt wird, anstatt als Text (String)?
Die Ursache ist ein zu großer möglicher Wert für den im Feld verwendeten Datentyp in der Invantive-Software. Es wird eine Anpassung vorgenommen, um dieses Problem zu lösen.
Bericht: 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-Abfrage:
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 gibt in den Metadaten vor, dass es sich um eine Ganzzahl handelt:
Der größte mögliche Eingabewert in der Exact Online-Benutzeroberfläche sind 20 Neunen:
99999999999999999999
Die Zahl 10788942212008112505 hat 20 Ziffern und ist größer als der maximale Wert von 19 Ziffern eines Int64 (9223372036854775807).
Innerhalb der REST-APIs verwendet Exact Online einen Text statt eines Int64 wie bei XML. Ein Text ist auch besser wegen der möglichen führenden Nullen.