Itgenoda055 Request timeout bij ophalen GLAccountClassificationMappings

De volgende melding treedt op bij ophalen van de GLAccountClassificationMappings op twee Exact Online administraties:

itgenoda055
Request timeout.
Please consider reducing the scope of your request or retry to send the message.
The remote server returned an error:
(408) Request Time-out.

De gebruikte OData4-URL is:

/acme-exact-online-15/odata4/ExactOnlineREST.Financial.GLAccountClassificationMappings@eol?$filter=%28Division%20eq%203186747%20or%20Division%20eq%203180620%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%20or%20Division%20eq%20null%29%20and%20GLSchemeCode%20eq%20%271%27

Omgezet door Bridge Online in SQL luidt die:

select t.*
from   ExactOnlineREST.Financial.GLAccountClassificationMappings@eol t
where  (((((((((((((((((((Division in (:w1, :w2)) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) or ([Division] is null )) and ([GLSchemeCode] = :w3))

De uiteindelijke API-call die faalt is:

https://start.exactonline.nl/api/v1/3186747/financial/GLAccountClassificationMappings?$filter=GLSchemeCode%20eq%20’1’&$select=*&$skiptoken=guid’bf2e5f8f-799d-4609-a649-1b274383136c’

De foutmelding treedt regelmatig op (meerdere malen per nacht) en op meerdere databases.

De foutmelding is ook consistent op te wekken met de volgende query in de web SQL Editor:

select /*+ http_disk_cache(false) http_memory_cache(false) */ *
from   ExactOnlineREST.Financial.GLAccountClassificationMappings@eol t
where  GLSchemeCode = '1'

Deze query met toevoeging limit 5 is na 18.697 ms klaar, terwijl dit maar 1 API-call behelst. Dit is ook terug te zien in de SessionIOs@DataDictionary:

Het eigenaardige is dat API-calls zonder een GLSchemeCode mee te geven circa 100x sneller klaar zijn:

Het verwachte resultaat is 958 rijen met GLSchemeCode 1 uit een totale inhoud voor deze twee administraties van 4508 rijen.

Een ticket is ingediend bij Exact Online met nummer 03539244.

Het probleem is gelijkend op Itgenboe161: The data download was cancelled bij SalesEntries op Exact Online. Gezien op dat Exact Online ticket in 4 maanden geen meetbare voortgang is geweest, is het advies om daarnaast het ticketnummer door te geven aan de accountmanager.

Als workaround kan geprobeerd worden tussen de filterstap op GLSchemeCode en de data ophalen een aantal stappen tussen te voegen zodat de data ongefilterd opgehaald wordt.

Op dit moment willen we de SQL-engine niet aanpassen om het filteren op GLSchemeCode onmogelijk te maken. De performanceproblemen delen we momenteel nog in als een door de cloudpartner op te lossen bug. Mocht dit probleem langdurig blijven bestaan, dan zal de filtermogelijkheid in een nieuwe release verwijderd worden. Dit leidt wel tot een grotere consumptie van API-calls (circa 100 per keer).

Er is vanuit Exact Online nog geen aanvulling op het ticket 03539244. Het is wel ontvangen en er is 11 mei aangegeven dan men het gaat uitzoeken en er op terug komt.

De 408 request timeout treedt in mei 2022 ook incidenteel op bij andere tabellen, zoals SalesInvoicesBulk en InvoiceTerms zonder duidelijke oorzaak.

We ervaren een soortgelijk probleem op GLAccountClassificationMappings:

let
  Source = OData.Feed("https://bridge-online.cloud/acme/odata4", null, [Implementation="2.0",ODataVersion=4,OmitValues=ODataOmitValues.Nulls,Timeout=#duration(0,2,0,0)]),
  GLAccountClassificationMappings = Source{[Name = "ExactOnlineREST.Financial.GLAccountClassificationMappings@eol", Signature = "table"]}[Data],
  #"Filtered Rows" = Table.SelectRows(GLAccountClassificationMappings, each [GLSchemeDescription] = "G/L Account Scheme")
in
  #"Filtered Rows"

Terugkoppeling heden vanuit Exact Online Support is dat er een Technisch Rapport is ingediend en dat men wacht op afwachting door een andere afdeling.

Is hier al een statusupdate van? Ik kan nu geen nieuwe administraties inladen doordat ClassificationMappings vast blijft lopen.

Er is nog geen update ontvangen vanuit Exact Online Support. Op basis van ervaringen is te verwachten dat een oplossing van deze bug nog wel meerdere maanden kan duren en er zelfs een kans bestaat dat zonder escalaties de bug niet opgelost wordt.

Advies is daarom om nu de workaround toe te passen:

Parallel daaraan is het mogelijk verstandig om de Exact Online accountmanager vragen de Exact Online case te escaleren.