Strategieën voor het Efficiënt Laden van Meerdere Divisiecodes?

Probleem: Het inladen van meerdere divisiecodes

Voor een project moet ik de ExactOnlineREST.Financial.Returns@eol ophalen voor 185 verschillende administraties (divisies). Ik wil een methode gebruiken om specifiek deze 185 administraties bij Invantive op te halen, zonder alle administraties in de database te laden. Het gewenste resultaat zou er als volgt uitzien, maar dan voor 185 administraties:

MicrosoftTeams-image (1)

In de volgende sectie zal ik alle methoden laten zien die ik heb geprobeerd, maar mijn “Folded Query” geeft nog steeds hetzelfde resultaat wanneer ik probeer deze 185 administraties te filteren. Dit is het volgende resultaat:

MicrosoftTeams-image (2)

Gebaseerd op verschillende artikelen en informatie die ik online heb gevonden, heb ik de volgende vier methoden ontwikkeld;

MicrosoftTeams-image (3)

Methode 1: Filteren op divisienummer

De eerste methode is een eenvoudige rijfilter op basis van divisiecodes, maar dan voor 185 verschillende divisies.

MicrosoftTeams-image (4)

Methode 2: Filteren op meerdere divisies met de List.Contains-functie

Bij de volgende methode heb ik een lijst gemaakt van alle 185 divisiecodes en vervolgens de List.Contains-functie gebruikt om mijn tabel te filteren op de items in de lijst.

MicrosoftTeams-image (5)

Methode 3: Vergelijkbare filter, maar dan op Shortname in plaats van Divisie

Voor deze methode heb ik methode 1 en 2 gereproduceerd, maar met een andere unieke kolom om op te filteren, namelijk Shortname.

Methode 4: Inner Join in plaats van een lijst of normale filterfunctie

In plaats van de vorige methoden heb ik nu een Excel-bestand ingeladen met alle gewenste divisiecodes en deze samengevoegd (inner join) met de ExactOnlineREST.Financial.Returns@eol.

Bij elke methode leidde dit tot een “Select *”-instructie in Invantive Cloud, zonder enig WHERE-statement om een filter toe te passen. Hierdoor werden alle duizenden divisies opgehaald in Invantive Cloud, en niet alleen de 185 die ik nodig heb. Heeft iemand meer informatie hierover en kan mogelijk assistentie bieden?

Artikel: Improved Very Large Company Volume Performance on Exact Online

Het selectief verwerken van administraties uit grote aantallen vanuit Power Query is mogelijk, maar is niet triviaal en vereist veel kennis over de interne werking van Power Query om zaken zoals query folding goed te krijgen. Daarom twee alternatieven die waarschijnlijk eenvoudiger te implementeren zijn met een robuust resultaat.

Use Gebruiken

De meest voorkomende oplossing is om gebruik te maken van het use-statement om de gewenste administraties te specificeren. Dit voorkomt ook eerder overmatige facturen, mocht een where-clause anders geinterpreteerd worden, waardoor alle administraties geraakt worden.

Dit wordt concreet uitgelegd voor een Invantive Cloud-database in het artikel:

Maak voor deze 185 administraties een database aan, en gebruik hiervoor een andere combinatie van gebruiker en client ID, om de beperking van Exact Online te omzeilen dat er maar 1 actief refresh token kan zijn. Deze beperking en de oplossing staat uitgelegd in Hoe richt ik als accountant Cloud met Power BI-connector in voor meerdere Exact Online eindklanten?.

Het use-statement ondersteunt ook dynamische dwarsdoorsnedes op basis van een query zoals:

use select EXPRESSIE, 'eol' from TABELLEN_MET_FILTERS

Hierdoor is het ook mogelijk om op basis van databasetabellen of bestanden de dwarsdoorsnede te selecteren. Merk op dat wijzigingen in de geselecteerde administraties pas zichtbaar worden nadat de cachelevensduur is verlopen. Uitleg over het instellen van de cachelevensduur is te vinden in Differentieer OData4 cachegedrag met Power BI.

Invantive Cloud-Applicatie

Incidenteel kan ook met een applicatie gewerkt worden. Applicaties op Invantive Cloud worden regelmatig gebruikt om dwarsdoorsnedes van de data te kopieren naar bijvoorbeeld een PostgreSQL- of SQL Server-database.

Een voorbeeld hiervan is te vinden in:

Nog meer uitgebreid qua mogelijkheden is het gebruik van een applicatiemodule om de gewenste dataset op te vragen in bijvoorbeeld een JSON-formaat dat eenvoudig vanuit Power BI te verwerken is, zoals geillustreerd in JSON genereren vanuit Invantive UniversalSQL.

Deze vraag is automatisch gesloten na 2 weken inactiviteit. Het laatste gegeven antwoord is gemarkeerd als oplossing.

Gelieve een nieuwe vraag te stellen via een apart topic als het probleem opnieuw optreedt. Gelieve in de nieuwe vraag een link naar dit topic op te nemen door de URL er van in de tekst te plakken.

Dit topic is 7 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.