E.e.a. is geanalyseerd. De engine verwerkt in dit geval de verkoopfacturen van 4 administraties.
De keuze van de administraties kan gestuurd worden op SQL niveau via het use
statement, in de Invantive Cloud SQL editor via de keuzelijst rechtsboven, via de database “On Startup” of via Power BI of via Exact Online.
Het verwerken van de gegevens uit verschillende administraties gebeurt gelijktijdig. Niet met honderden tegelijk, want dat zou een oneerlijke belasting zijn van Exact Online, maar wel tot het aantal ingesteld via de driverattribuut requests-parallel-max
. Die is meestal 8.
In dit geval zullen alle vier de administraties gelijktijdig uitgelezen worden. De data komt streaming binnen vanuit het platform (in dit geval Exact Online, maar dit streaming concept geldt voor vrijwel alle platformen). De data landt in buffers tussen Exact Online en Bridge Online. De omvang van de buffers wordt automatisch aangepast op basis van de leessnelheid bij Exact Online en de uitgifte snelheid van Bridge Online. De maximale snelheid bij Exact Online ligt voor de meeste gevallen rond 2 MB compressed, 20 MB uncompressed (met een brede spreiding) per seconde, maar aanmerkelijk hoger voor documentbijlagen. Normaliter heeft Bridge Online een doorvoersnelheid van 500 MB compressed, 5 GB uncompressed per seconde, maar niet iedere Power BI client zal zo snel kunnen inlezen.
Merk op dat zowel richting Exact Online als vanuit Bridge Online gebruik gemaakt wordt van caches. Dit is ook zichtbaar in de systeemplaat.
Streaming zorgt er voor dat de data al terugkomt terwijl niet alles opgehaald is, maar komt ook met nadelen zoals bijvoorbeeld het probleem omschreven op Itgenclr078: Newtonsoft.Json.JsonReaderException / zorgen stabiliteit Exact Online.
Naarmate de vier streamingstromen zich vullen met rijen, worden de vier stromen gemengd tot 1 uitvoer. Omdat de antwoorden vanuit Exact Online soms bij de ene administraties soms een milliseconde sneller terugkomen dan bij de ander, worden de gegevens gemengd teruggegeven. Het is dus niet zo dat eerst alle gegevens van administratie 1 terugkomen, daarna administratie 2, etc. Het is rustig mogelijk dat de ene dag eerst 3 regels uit administratie 1 terugkomen, daarna 100 uit 2, etc.
In dit geval blijkt uit de analyse dat de gebruiker op drie van de divisies: 15…04 (‘.’ betekent cijfer verborgen), 25…31 en 27…14 geen rechten heeft op de verkoopfacturen. Er komt terug bijvoorbeeld:
Content length: 82
Is from cache: False
Protocol version: 1.1
Response URI: https://start.exactonline.nl/api/v1/15...04/bulk/SalesInvoice/SalesInvoices?$select=SelectionCode,SelectionCodeCode,SelectionCodeDescription,AmountDC,AmountDiscount,AmountDiscountExclVat,AmountFC,...,YourRef,SalesChannel,SalesChannelCode,SalesChannelDescription
Header Cache-Control: no-store, no-cache
Header Connection: keep-alive
Header Content-Length: 82
Header Content-Type: application/json
Header DataServiceVersion: 1.0;
Header Date: Wed, 14 Jul 2021 09:01:02 GMT
Header Expires: -1
Header Pragma: no-cache
Header Referrer-Policy: strict-origin-when-cross-origin
Header Set-Cookie: ASP.NET_SessionId=...; SameSite=lax; path=/; secure; HttpOnly; SameSite=Lax, ExactServer{...}=Division=15...04; SameSite=lax; path=/; secure; HttpOnly, ExactOnlineClient=...=; SameSite=lax; expires=Mon, 31-Dec-2198 23:00:00 GMT; path=/; secure; HttpOnly
Header Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
Header X-Content-Type-Options: nosniff
Header X-RateLimit-Limit: 50000
Header X-RateLimit-Minutely-Limit: 300
Header X-RateLimit-Minutely-Remaining: 299
Header X-RateLimit-Minutely-Reset: 1626253320000
Header X-RateLimit-Remaining: 49972
Header X-RateLimit-Reset: 1626307200000
Header X-XSS-Protection: 1; mode=block
{
"error": {
"code": "", "message": {
"lang": "", "value": "Forbidden"
}
}
}
Afhankelijk van de reactiesnelheid wordt door de bug deze foutmelding verkeerd verwerkt. Op Invantive Bridge Online is de versie teruggezet naar een voorgaande. Op Invantive Cloud staat nog de huidige versie, die dus een itgenodr017
zal geven. Een oplossing hiervoor staat klaar als volgende release. Die zal uitsluitend op Cloud gezet worden in afwachting van een mogelijke livegang morgen door Exact Online van een deel van de geplande wijzigingen.