Itgenclr083: De externe server heeft een fout geretourneerd: (500) Interne serverfout. (https://api.accounting2.twinfield.com/webservices/processxml.asmx)

Bij het verwerken van honderden Twinfield administraties kan af en toe de volgende foutmelding optreden bij queries op financiële data uit Twinfield zoals GeneralLedgerDetails op versies tot/met 20.2.75:

itgenclr083: De externe server heeft een fout geretourneerd: (500) Interne serverfout. (ProcessXml Web Service)

Deze melding wordt gevolgd door de code van de administraties tussen ronde haken.

Deze foutmelding zal de verwerking afbreken. Bij een hernieuwd verzoek zal de query meestal wel de financiële data uit Twinfield geven.

Achtergrond

Twinfield hanteert intern twee timeouts voor API verzoeken: een van 90 seconden en van 120 seconden. In sommige gevallen zal een complexe query afgebroken worden de Twinfield API servers na 120 seconden en soms gebeurt dat al na 90 seconden.

De Twinfield API kent geen “paging”: met een enkel Twinfield API verzoek worden soms miljoenen boekingen teruggegeven, en die verzamelen kost gewoon tijd.

Bij het overschrijden van de timeout geeft Twinfield een HTTP 500 foutmelding terug. Ook wordt soms bij een timeout een HTTP 404 foutmelding teruggegeven met een URL waarin een logid staat:

https://api.accounting2.twinfield.com/error.aspx?logid=2021-10-26+11%3A42%3A36+D960144&code=500

Het logid bevat ook een “D7” of “D9” waarde: “D9” is meestal een accountancy-server en “D7” een andere.

Oplossing

Vrijwel altijd kan de data alsnog opgehaald worden bij nogmaals uitvoeren van de query.

Het beperken van het aantal parallelle aanroepen van de Twinfield-servers helpt hierbij via de instelling set requests-parallel-max 2 bijvoorbeeld.

Daarnaast kan een filter meegegeven worden zoals op boekjaar.

De Invantive SQL-engine is vanaf 20.2.76 aangepast zodat dezelfde timeout gehanteerd wordt als Twinfield voor webverzoeken. De standaardwaarde van 5 minuten is omlaaggezet naar 90 seconden. Dit lost de verwarring over de achtergrond van de HTTP 500 en HTTP 404 foutmeldingen bij een timeout op: er staat voortaan duidelijk in de melding dat een timeout is opgetreden.

De nieuwe meldingscode is itgentfr103.

Toch kan het probleem nog altijd optreden omdat sommige data blijkbaar eerst opgewarmd moeten worden in het cachegeheugen van Twinfield gebracht.

Voor een volgende release zal ondersteuning voor de incrementele API’s van Twinfield toegevoegd worden.