Aanvulling Invalid Index Field
AFAS Profit verwacht velden met speciale tekens in de naam door te krijgen in het formaat “[‘NAAM’]” (zoals bijvoorbeeld een ‘.’).
AFAS Profit 15 verplichte sortering
Vanaf AFAS Profit 15 wordt geëist dat de data altijd gesorteerd opgehaald wordt omdat anders rijen kunnen verdwijnen of rijen dubbel verschijnen (zie Ontbrekende en dubbele rijen bij ophalen gegevens uit AFAS Profit met GetConnector) wordt automatisch een orderbyfieldids
toegevoegd op elk AFAS API verzoek naar een getConnector.
Een query op een connector POWERBI_Budget
leidt dan tot een call zoals:
https://99999.rest.afas.online/profitrestservices/connectors/POWERBI_Budget?take=5000&orderbyfieldids=Jaar,Periode,Administratie,Volgnummer_verbijzondering,Budgetscenario,Grootboekrekening,Kenmerk_rekening,Budget_sub-afdeling,Budget_afdeling,[‘Cat._result._rek’],[‘Cat._balans_rek.’],[‘Cat._toelichting_balans’]
die na URL-encoding een foutmelding in JSON geeft zoals:
{"errorNumber":-2147180996,"externalMessage":"General message: Invalid Index field","profitLogReference":"D2FC93B64455970E68A2839C6A0936A9"}
De errorcode -2147180996 zie je vaker bij ANTA errors (AFAS Next Technology Architecture) en kun je hexadecimaal lezen als 80049E3C.
Blijkbaar is invalid index field geen server error, maar een fout in het API request. De HTTP-errorcode 500 had dus eigenlijk moeten luiden HTTP-errorcode 402:
The HyperText Transfer Protocol (HTTP) 400 Bad Request
response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
maar mogelijkerwijs is dat technisch lastig haalbaar.
Oplossing
Het juiste antwoord komt wel terug als in het orderbyfieldsids
-filter de kolomnamen met speciale tekens niet meer ingepakt worden met blokhaken zoals met:
https://99999.rest.afas.online/profitrestservices/connectors/POWERBI_Budget?take=5000&orderbyfieldids=Jaar,Periode,Administratie,Volgnummer_verbijzondering,Budgetscenario,Grootboekrekening,Kenmerk_rekening,Budget_sub-afdeling,Budget_afdeling,Cat._result._rek,Cat._balans_rek.,Cat._toelichting_balans
Een dergelijke aanpassing is verwerkt in de BETA 20.1.343 of later. Merk op dat gezien het ontbreken van AFAS documentatie aanpassingen of correcties hierop buiten de support vallen.
Algemeen advies is om het gebruik van karakters in kolomnamen en tabelnamen van getConnectoren sowieso te beperken tot a…z en 0…9.