Itgendch797: There is no last issued version on table partition

Na een upgrade naar Invantive Data Hub (20.0.117-PROD+1680) treedt een foutmelding op bij

alter persistent cache table exactonlinerest.financial.glaccounts@eol force refresh

namelijk:

itgendch797: The obsolete version 95 is available, but there is no last issued version on table partition on ‘ExactOnlineREST.Financial.GLAccounts@123456 on https://start.exactonline.nl/1234567 (10-24.479)’.

De voorafgaande statements alter persistent cache download feed en alter persistent cache purge obsolete table partition versions zijn wel gelukt.

Op zich is de foutmelding gelijkend op dit topic, maar de tabel GLAccounts bestaat nog in de Exact Online API’s. Er is wel een snellere versie beschikbaar onder GLAccountsBulk, maar dat heeft geen relatie met dit probleem.

In oude 17.32 releases zat een probleem dat zodra het verversen (laden van nieuwe data) te lang uitbleef, de “Ready” (status “R”) versie toch de status “Obsoleted” (status “O”) kreeg. Dit gebeurde na een instelbare periode, maar kon al optreden na korter dan 2 weken na het laden. Oude releases konden hiermee overweg in de zin dat ze geen foutmelding gaven en rustig verder draaien. Praktisch betekende het wel dat de gerelateerde view deels geen grootboekrekeningen bevatte voor de genoemde administratie.

Sinds de oude 17.32 releases zijn tientallen controles toegevoegd op de integriteit van het laadproces en itgendch797 is er een van.

Je kunt het beste eerst proberen de oude tablepartitie te verwijderen zoals beschreven in het gerelateerde topic met alter persistent cache drop table NAAM en daarna weer de tabelpartitie toevoegen met bijvoorbeeld een basale select count(*) from exactonlinerest..glaccounts.

Lost dit het probleem voor je op? Zo ja, vink dan svp het lichtgrijze vlakje met “Oplossing” direct onder dit antwoord aan. Zo nee, laat s.v.p. weten waar het laden van Exact Online in SQL Server nog fout gaat.

Ik heb het (test)script aangepast:

local remark alter persistent cache table exactonlinerest.financial.glaccounts@eol force refresh

alter persistent cache drop table exactonlinerest.financial.glaccounts@eol

select /*+ ods(true, interval '20 hours') */ count(*) from exactonlinerest..glaccounts@eol

Dit wordt foutloos uitgevoerd.

Ik heb daarna ook het oorspronkelijke (test)script uitgevoerd. Dat gaat nu ook foutloos.

Dit lijkt dus wel een oplossing te zijn, maar moet ik dit nu toepassen op alle tabellen? Ik had GLAccounts genomen, omdat dit niet veel data is. Maar ik heb ook AccountsBulk, SalesOrdersBulk, en SalesInvoicesBulk. Dat gaat om veel grotere aantallen.

Ik verwacht dat het verwijderen met drop en weer opnieuw toevoegen een eenmalige exercitie is.

Daarna zou je met 1 statement de replica kunnen bijwerken:

alter persistent cache refresh

Of eventueel geforceerd:

alter persistent cache force refresh

Of eventueel geforceerd zonder trickle loading (Exact Online webhooks):

alter persistent cache force refresh approach copy