Itgenoda378/itgeneor314: Could not retrieve the value of an additional column with name 'AttachmentFromUrl' of table 'DocumentAttachmentFiles'. Your session has expired. A document is no longer accessible

Update: dit wiki is op basis van onderzoek door Exact Online bijgewerkt. Zie onderaan.

Een document in Exact Online bestaat uit twee onderdelen:

  1. de metadata zoals het onderwerp en het gerelateerde gegevens zoals een factuur of relatie;
  2. de (bevroreren) bestanden.

Met de volgende Exact Online SQL query kunnen beiden opgevraagd worden:

select dae.AttachmentFromUrl file_contents
,      dct.Subject
,      dct.TypeDescription
,      dae.FileName
,      dae.id
from   exactonlinerest..documentattachmentfiles@eol dae
join   exactonlinerest..documents@eol dct
on     dct.id = dae.document

Echter, het komt voor dat er metadata en URL’s uit de Exact Online API via de tabellen Documents, DocumentAttachmentsFiles of DocumentAttachmentsFilesBulk terugkomen, waar geen fysiek bestand meer van bestaat. Dit lijkt alleen op te treden in de Nederlandse Exact Online omgevingen. Dat is mogelijk te relateren aan een andere opslagstructuur voor documenten in Nederland en België en het verwijderen van documenten.

Bij het opvragen van het gerelateerde document treedt een melding op zoals:

itgenoda378 (of itgeneor314):
Could not retrieve the value of an additional column with name ‘AttachmentFromUrl’ of table ‘DocumentAttachmentFiles’.
Your session has expired.
A document is no longer accessible.

De onderliggende fout uit Exact Online die samen met de HTTP statuscode 401 teruggegeven wordt is:

<html>
  <head>
    <title>Object moved</title>
  </head>
  <body>
    <h2>
     Object moved to <a href="/docs/SysAccessDenied.aspx?Mode=0&amp;_Division_=123">here</a>.
    </h2>
  </body>
</html>

Dit betreft een datacorruptie. Advies is om een ticket in te dienen bij Exact Online support met het verzoek om documenten te laten verwijderen waarvan de bestanden niet meer opgehaald kunnen worden.

Via Invantive SQL kan deze foutmelding onderdrukt worden door ignore-document-download-errors op true in te stellen. Het valt niet uit te sluiten dat deze workaround soms faalt doordat een HTTP statuscode 401 teruggegeven wordt met een foutmelding die niet voldoet aan de specificaties van de API. Om die reden advies om de oorzaak op te lossen via Exact Online support.

Update 1 juni 2021

Exact Online heeft n.a.v. dit topic dieper naar de oorzaak gezocht. De conclusie is dat deze foutmelding alleen optrad indien het Apigee onderdeel van het API platform onder load was. De foutmelding A document is no longer accessible weerspiegelde niet de echte oorzaak. In de loop van april 2021 is de configuratie van de Exact Online API’s verbeterd en is het optreden van dit beschreven probleem niet meer gemeten.