Itgenrst007: The metadata of the columns 'CODE' of table '' specifies that null values should not appear, but there is a null value in row #1

Bij het opvragen van alle eenheden op Exact Online krijg ik de volgende foutmelding:

itgenrst007: The metadata of the columns ‘CODE’ 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.
Message ID: 2700eaf0-b5d3-4f13-982b-dcc1976bc58b
Occurred (UTC): 11-7-2022 06:45:33

De gebruikte query is:

select division
,      code
,      description
,      id
from units@eol1
order by division, code

De foutmelding treedt niet op als ik de volgende query gebruik op Exact Online:

select division
,      code
,      description
,      id
from units@eol1
where code like '%_%'
order by division, code

Resultaat zijn dan 83 eenheden. In het Exact Online scherm zie ik er maar pakweg 40.

Hoe moet ik hiermee omgaan?

Beste is om met de volgende instructies de daadwerkelijke API calls richting Exact Online te verzamelen in een bestand:

Het laatste artikel bevat ook een query om het fraaier vorm te geven.

Gelieve dan een bug te melden bij Exact Online support en meld hierbij twee dingen:

  • geef aan dat de waarde van het veld Code in de API-output soms leeg is, en
  • geef aan dat er meer units zichtbaar zijn dan in het scherm in Exact Online zelf.

Dit zijn twee bugs, die mogelijk wel een oorzaak delen.

Advies is om ook te vragen of hierdoor elders in Exact Online onjuiste data kan verschijnen en bij gebruikers na te vragen of er “onverklaarbare” issues spelen waarin de eenheid mogelijk een rol speelt.

Een Excel-bestand is gemaakt. Het lijkt er op dat in ieder geval een eenheid geregistreerd is met als naam de “hard space” (\u00a0). Spaties aan het begin en einde van een teksten worden structureel door Invantive SQL automatisch weggehaald.

De volgende query op de native call log geeft aan dat er inderdaad 84 eenheden in Exact Online geregistreerd zijn, die maar deels zichtbaar zijn:

select dta.Code
from   ndjsontable
       ( passing file '...\native-20220711-a8ebe187-d0c9-4c08-80b9-6496e8b671a6--eol1-1086774-start.exactonline.nl_904438.Units.ndjson'
         columns Id                         int64    not null label 'Id'                       path 'Id'
         ,       ResponseBodyAsString       varchar2     null label 'Body'                     path 'ResponseBodyAsString'
       )
       msg
join   jsontable
       ( 'd.results[*]' 
         passing msg.responsebodyasstring
         columns Code varchar2 path 'Code'
       ) dta
where msg.id<=3

Advies is om de hard spaces te vervangen door geldige omschrijvingen. Er zijn geen plannen om dergelijke data te corrigeren voor verplichte velden binnen de SQL-engine.