Itgenibz031 / itgenibz039 foutmelding

Bij het ophalen van gegevens uit ionBiz krijg ik een van de volgende foutmeldingen:

itgenibz031
(geen tekst)

of

itgenibz039
The query specified in the URI is not valid. The node count limit of ‘100’ has been exceeded. To increase the limit, set the ‘MaxNodeCount’ property on EnableQueryAttribute or ODataValidationSettings.

De bijbehorende URL is (regelovergangen toegevoegd voor de leesbaarheid en %20 vervangen door spatie):

https://acme.ionbiz.com/odata/CustomFieldsValues?$filter=StringValue eq null and (CustomFieldValueRangeId eq 354 or CustomFieldValueRangeId eq 353 or CustomFieldValueRangeId eq 352 or CustomFieldValueRangeId eq 351 or CustomFieldValueRangeId eq 350 or CustomFieldValueRangeId eq 349 or CustomFieldValueRangeId eq 348 or CustomFieldValueRangeId eq 347 or CustomFieldValueRangeId eq 346 or CustomFieldValueRangeId eq 345 or CustomFieldValueRangeId eq 344 or CustomFieldValueRangeId eq 343 or CustomFieldValueRangeId eq 342 or CustomFieldValueRangeId eq 341 or CustomFieldValueRangeId eq 340 or CustomFieldValueRangeId eq 339 or CustomFieldValueRangeId eq 338 or CustomFieldValueRangeId eq 337 or CustomFieldValueRangeId eq 291 or CustomFieldValueRangeId eq 290 or CustomFieldValueRangeId eq 282 or CustomFieldValueRangeId eq 281 or CustomFieldValueRangeId eq 280 or CustomFieldValueRangeId eq 279 or CustomFieldValueRangeId eq 278 or CustomFieldValueRangeId eq 274 or CustomFieldValueRangeId eq 273 or CustomFieldValueRangeId eq 272 or CustomFieldValueRangeId eq 262 or CustomFieldValueRangeId eq 258 or CustomFieldValueRangeId eq 257 or CustomFieldValueRangeId eq 256 or CustomFieldValueRangeId eq 255 or CustomFieldValueRangeId eq 254 or CustomFieldValueRangeId eq 249 or CustomFieldValueRangeId eq 244 or CustomFieldValueRangeId eq 243)

Hoe los ik dit op?

Blijkbaar kent ionBiz een limiet qua complexiteit van de OData die toegestaan is. Mogelijk hangt dit samen met het mogelijk gebruik van de RESTier toolkit binnen ionBiz.

Het bijbehorende Invantive SQL-statement dat namens Power BI opgewekt wordt is:

select t.*
from   CustomFieldValues@ibz t
where  ([StringValue] is null  and CustomFieldValueRangeId in (:w1, :w2, :w3, :w4, :w5, :w6, :w7, :w8, :w9, :w10, :w11, :w12, :w13, :w14, :w15, :w16, :w17, :w18, :w19, :w20, :w21, :w22, :w23, :w24, :w25, :w26, :w27, :w28, :w29, :w30, :w31, :w32, :w33, :w34, :w35, :w36, :w37))

OData3 zoals ionBiz nog gebruikt kent geen IN operator, dus dit wordt herschreven naar een OR met 37 vergelijkingen. Elke OR telt naar verluidt voor ionBiz als vier nodes.

De resulterende OData3-URL heeft een lengte van circa 1650 tekens en valt daarmee ruim binnen de limiet, maar de OData3 API-server van ionBiz kan deze niet verwerken.

In een volgende release zal voor ionBiz het aantal elementen uit een IN dat nog herschreven wordt naar een OR-lijst beperkt worden tot 16. Hiermee wordt voorkomen dat de OData3 API-server het verzoek niet kan verwerken.

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.

Dit topic is 3 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.