create or replace view LjTestW1
as
select * from DataService.Flexwerker.Loonjournaal@efx(jaar => 2026, week => 1)
Med dette forsøger jeg at hente lønjournalen fra en periode i Easyflex via et OData-feed i Excel. I Universal SQL editor fungerer denne forespørgsel, men den vises desværre ikke i OData-feedet. Heller ikke efter cache er ryddet. Har nogen tilfældigvis nogle tips?
De brugerdefinerede views fra Startup SQL caches både i EDM-datamodellen og processen (hvis forbindelsen ikke har været afbrudt i længere tid). Især Invantive Bridge Online og Invantive App Online cacher særdeles aggressivt, mens selve Invantive Cloud-siden gør det langt mere begrænset og tilbyder mere kontrol over sessionerne via knappen “Afbryd forbindelse” i UniversalSQL-editoren.
Rydning af cachen fjerner EDM-datamodellen og fjerner også definitionen af det brugerdefinerede view fra sessionen, hvis alt går godt.
Nogle gange ser det ud til, at en cache-nulstilling hjælper, og til sidst bliver viewet altid synligt.
Det ser faktisk ud til at være en fejl; implementeringen af et view til Bridge Online og App Online burde ikke være så kompliceret og tidskrævende.
Indtil nu har det ikke været muligt at gøre problemet reproducerbart, hvilket har forhindret en løsning.
I mellemtiden er Big Data JSON-driveren blevet tilgængelig inden for Invantive UniversalSQL. Denne faciliterer, ligesom Parquet, hurtig forespørgsel af datasæt med terabyte af logfiler.
Vi vil bruge dette til at lave en analyse over en længere historik for den involverede bruger i et forsøg på at finde årsagen. Hvis den findes, vil der blive lavet en fejlrettelse til release 26.0 og den kommende release 27.0.
En view fra startup-SQL manglede i OData4-feedet, fordi Invantive Bridge Online blev ved med at bruge en tidligere gemt datamodel. At tømme cachen i Invantive Cloud påvirker ikke denne datamodel.
Sammensat med hjælp fra AI.
Sporindhold
Sporet dækker fra 22. til 24. september 2026. Alle tidspunkter er i UTC.
Tidspunkt (UTC)
Begivenhed
23-09 12:04
Databasen oprettes i Invantive Cloud, uden startup-SQL.
23-09 12:05
Den første OData4-anmodning fra Power BI. Bridge Online bygger datamodellen med 197 tabeller og gemmer den på disk. Den gemte model er gyldig i syv dage.
23-09 14:26
Startup-SQL’en får en view på lønjournalen.
23-09 14:31 til 14:47
Fem sessioner fra Power BI. I hver session kører Bridge Online startup-SQL’en uden fejl. Datamodellen kommer dog fra diskcachen: 197 Easyflex-tabeller uden viewet.
24-09 08:39
Endnu en session, samme billede.
24-09 08:46
Cachen tømmes i Invantive Cloud.
24-09 09:00 og 09:03
To sessioner, samme billede.
24-09 09:06
Startup-SQL’en får en view på DataService.Flexwerker.Journaalposten. Bridge Online rapporterer korrekt en fejl: denne tabel kræver værdier for parametrene jaar og week (itgenboe074).
24-09 09:09
Startup-SQL’en får viewet fra forespørgslen. Seks sekunder senere tømmes cachen igen i Invantive Cloud.
24-09 09:10 og 09:24
To sessioner. Startup-SQL’en opretter viewet uden fejl. Datamodellen kommer igen fra diskcachen med 197 tabeller.
Efter den første ændring af Startup-SQL’en fungerede ti sessioner med den gamle datamodel.
Årsag
I begyndelsen af hver session kører Invantive Bridge Online Startup-SQL’en. Viewet eksisterer derefter i denne session. Derfor fungerer en forespørgsel på viewet i SQL-editoren af Invantive Cloud.
Listen over tabeller i OData4-feedet kommer fra en separat cache: datamodellen bag $metadata. Invantive Bridge Online opbevarer denne datamodel pr. bruger og pr. database krypteret på disk. Den unikke nøgle til denne cache indeholder kun databasen og ikke Startup-SQL’en. Efter en ændring af Startup-SQL’en forblev den gamle datamodel derfor i brug, indtil den ville udløbe efter syv dage.
Designet tog delvist højde for dette. En datamodel med views fra startup-SQL’en gemmer Bridge Online bevidst ikke, da sådanne views kan ændre sig. En datamodel, der er gemt før der var en view, blev imidlertid ikke kontrolleret ved læsning. Dette scenarie opstod her: modellen fra 23. september 12:05 er ældre end den første tilpassede view.
Tømning af cachen hjalp ikke
Invantive Cloud og Bridge Online har hver deres menupunkt “Nulstil cache”. Hver mulighed tømmer kun caches i sit eget produkt, og de to produkter kører på forskellige servere. Sporet viser to nulstillinger på Invantive Cloud. Denne nulstilling slettede cachen i Invantive Cloud, men ikke i Bridge Online. En nulstilling i Bridge Online selv optræder ikke i sporet.
Besked 2 nævner, at tømning af cachen sletter datamodellen. Dette gælder “Nulstil cache” i Bridge Online, men ikke for den samme handling i Invantive Cloud.
Forbedringer
Følgende forbedringer er blevet gennemført:
Bridge Online gemmer en fingeraftryk af databasens definition med datamodellen. Denne består af de forskellige Startup SQL’er og datacontainers: alias, connector og valg af partitionerede tabeller. Adgangskoder og tokens indgår ikke, da disse fornyes uden at tabeller ændres.
Hvis fingeraftrykket ændrer sig, bygger Invantive Bridge Online datamodellen op igen.
Det samme fingeraftryk er en del af nøglen til svarcachen. Startup-SQL kan også vælge andre partitioner. Efter ændringer leverer svarcachen derfor ikke længere svar beregnet med den gamle definition.
En igangværende session holder fast på definitionen, som sessionen blev åbnet med. En session afsluttes senest ti minutter efter sidste forespørgsel. Så forbliver svarene inden for en session ens.
En database, der kun leverer fra svarcachen i nødstilstand, bevarer den gemte datamodel og de gemte svar. Denne indstilling er netop beregnet til kun at levere fra cachen.
Invantive MCP Server til AI (såsom Claude) bruger den samme datamodel og får den samme korrektion.
Tilgængelighed
Forbedringerne er tilgængelige fra version 26.0.332 og i den næste udgivelse 27.0.
Dette spørgsmål blev automatisk lukket efter 1 uges inaktivitet. Det sidste givne svar er markeret som løsningen.
Venligst stil et nyt spørgsmål i et separat emne, hvis problemet opstår igen. Inkluder venligst et link til dette emne i det nye spørgsmål ved at indsætte URL’en i teksten.