Itgenrst007: The metadata of the columns 'AmountFCExclVat' of table '' specifies that null values should not appear

Bij het laden van ExactOnlineREST.Incremental.SalesInvoiceLinesIncremental@eol krijg ik deze foutmelding:

itgenrst007:
The metadata of the columns ‘AmountFCExclVat’ of table ‘’ specifies that null values should not appear, but there is a null value in row #1.
Ensure that the nullable property in the metadata matches the values.
(Timestamp (Int64/int64): 6888718269, AmountDC (Double/double):… 0, Warehouse (Guid/guid): 5e55cc2b-1830-4d46-ab2d-ba149d0b9567)

De Invantive SQL-engine controleert of de data voldoet aan de eisen zoals vastgelegd in de metadata. Denk aan bijvoorbeeld datatype (geen tekst in een numeriek veld), precies en lengte, en dat een verplicht veld ook een waarde heeft.

Volgens onze metadata is AmountFCExclVat in SalesInvoiceLinesIncremental een verplicht veld. In dit geval lijkt het er op dat er geen waarde doorkomt.

Het is geen bekend probleem dat AmountFCExclVat leeg is.

Een controle over alle omgevingen heen leert dat echter andere gebruikers dit probleem ook ervaren sinds 18 november 06:04. Bij de tabel SalesOrderLinesIncremental (dus niet de verkoopfacturen maar de verkooporders) blijkt dit probleem ook op te treden.

Er is geen enkele registraties van dit probleem in de maanden voor 18 november 06:04.

Een proef op een vijftal administraties met enkele honderdduizenden levert SalesInvoiceLinesIncremental@eol levert deze foutmelding niet op. Het lijkt er op dat de Exact-storing maar een beperkt aantal administraties raakt.

Voor verdere analyse:

  • Heeft deze tabel ooit wel gewerkt zonder fouten? Zo ja, in welke periode?
  • Bevat SalesInvoicesLinesBulk wel deze data?
  • Gelieve delegatie te geven op de database t.b.v. verzamelen analytische data voor een terugkoppeling richting Exact.

We hebben in deze omgeving de fout niet eerder gehad omdat we voorheen gebruik maakten van de BULK variant van beide API’s. Maar omdat we nu overschakelen naar Azure Data Factory dacht ik dit ook direct om te zetten.

Via de BULK variant gaat het goed is; dan is de kolom AmountFCExclVat in alle gevallen leeg.

Heel toevallig voor een andere(nieuwe) klant nu ook bezig met de eerste keer ophalen van SalesInvoiceLinesIncremental en deze geeft hier precies dezelfde foutmelding. Het is dus niet administratie/division/klant specifiek.

Welk veld wordt gebruikt om AmountFCExclVat op te halen uit ExactOnlineREST.SalesInvoice.SalesInvoiceLinesBulk of ExactOnlineREST.SalesOrder.SalesOrderLinesBulk? Ik kan het veld niet vinden.

Hmm, het lukt niet om probleem op te wekken op de testomgevingen, maar ik vermoed dat er een wijziging is geweest.

In de documentatie staat nu ook: “Sum of all lines, excluding VAT. Only supported for header”

Dit is niet terug te vinden in onze kopie van de documentatie, dus mogelijk daarna toegevoegd. Als het bedrag alleen geldt voor de factuurkop / orderkop, dan kan het inderdaad leeg zijn in de regel.

Een functionele wijziging gaat doorgevoerd worden: de velden met “Only supported for header” worden optioneel gemaakt. Dit zal maandag in productiegenomen zijn.

Het veld het gewoon: AmountFCExclVat, maar je had het al gevonden.

Als het in productie is zal ik de incremental nog wel een keer testen.

De volgende velden uit de factuurkop/orderkop zullen optioneel geworden zijn:

  • AmountFCExclVat in SalesInvoiceLinesIncremental
  • AmountFCExclVat in SalesOrderLinesIncremental

Deze bevatten alleen (mogelijk) een waarde voor LineNumber 0; de header- / kopregel.