Het Power BI rapport kan op verschillende manieren verbeterd worden. Advies is om eerst deze tips te verwerken en indien nodig dan nogmaals de ervaringen te delen qua looptijden en datavolume dat met de Power BI connector opgehaald wordt. Er zitten mogelijk veel verbeteringen en correcties in het vat.
Wisselen van Bulk naar Incremental
Het Power BI rapport gebruikt onder andere als databronnen:
TransactionLinesBulk
DocumentAttachmentsBulk
SalesInvoiceLinesBulk
SalesInvoicesBulk
AccountsBulk
GLAccountsBulk
DocumentsBulk
Voor de meeste van deze tabellen gebruikt in het rapport is er ook een *Incremental
versie, zoals:
TransactionLinesIncremental
AccountsIncremental
Deze *Incremental
tabellen hebben een aantal eigenschappen:
- de tabellen zijn minder breed qua kolommen en inhoud (halveert pakweg de downloadomvang),
- de tabellen zijn genormaliseerd (makkelijker datamodel),
- de tabellen zijn circa 5-10x sneller te importeren.
Advies is om de bestaande tabellen waar het kan te vervangen zoals beschreven op Snel en met minder API-calls Exact Online uitlezen met de incrementele "sync API"-tabellen.
Dit maakt het verversen van het dashboard significant sneller met de Power BI connector voor Exact Online, vooral voor een grote administratie.
Documenten en andere Overbodige Tabellen
In het rapport staat een heel klein blokje met documentgegevens. Voor het Power BI dashboard is dit mogelijk heel relevant, maar ik durf me de vraag te stellen of alle onderdelen van het rapport zoals dit wel gebruikt worden.
Sowieso valt niet uit te sluiten dat meerdere tabellen niet gebruikt worden.
Advies is om eerst te kijken of er grafische onderdelen zijn in het rapport die niet gebruikt worden en om ze in dat geval te verwijderen.
Daarna kan met een tool zoals:
of een van de tools beschreven op Power BI Exchange een analyse gemaakt worden.
In een zogenaamde “CRUD-matrix” is te zien of en waar een tabel gebruikt wordt in rapportagefuncties.
Verwijder alle ongebruikte tabellen uit het Power BI bestand; dat scheelt fors in downloadtijd en omvang.
Vergeet hierbij niet ook naar de tabel GLAccountClassifications
te kijken; deze lijkt niet gekoppeld in het datamodel.
Bedenk ook of alle velden wel nodig zijn; dit kan tot pakweg een factor 3 in downloadomvang en PBIX-omvang schelen.
Vooral bij XML-tabellen zoals StockPositions
kan het verwijderen van overtollige kolommen tot grote besparingen in de downloadomvang. De Power BI-connector geeft iedere kolom terug en de Exact Online XML-tabellen hebben extreem veel kolommen die ook nog eens heel vaak leeg zijn.
Tabellen met dezelfde informatie weghalen
Financieel
Vooral op het gebied van de Winst & Verlies rekening zijn er veel tabellen in gebruik, zoals BalanceLines
, ReportingBalance
, ProfitLossOverview
, ProfitLossOverviewCompareList
en twee openingbalanstabellen.
Vooral de tabel ReportingBalance
is erg beroerd qua performance, vooral als er kostenplaatsen of kostendragers gebruikt worden. De tabellen zijn meest onnodig omdat de data al elders aanwezig is.
Advies is om alle tabellen te vervangen door gegevens afgeleid uit BalanceLinesPerPeriod
(als er geen kostenplaatsen/kostendragers nodig zijn) of BalanceLinesPerPeriodCostAnalysis
(als er wel kostenplaatsen en/of kostendragers nodig zijn).
Verkoop
Ook qua verkoopinformatie qua bespaard worden op ruimte. Als gebruik gemaakt wordt van *Incremental
tabellen, dan is de kop van de factuur ook opgenomen in de rijen. De tabel SalesInvoicesBulk
hoeft dan niet meer gedownload te worden, maar kan afgeleid worden uit de regels.
Administraties
De gebruikte tabel voor administraties is niet de juiste: HRMDivisions
is niet een lijst van administraties op systeemniveau, maar op abonnementsniveau. Dit betekent dat elke administratie hier vaak dezelfde inhoud in heeft staan. Voor accountants met zelfboekende klanten is dat nog iets complexer: er staan in HRMDivisions
de administraties die horen bij het Exact Online abonnement van de klant waar de administratie bij hoort.
Meer uitleg over Exact Online tabellen die per abonnement gepartitioneerd zijn zoals Users
en MailMessagesReceived
is te vinden op Dubbele regels in SystemDivisionClassifications op Exact Online - 2 van forums.
Een betere keus is SystemDivisions
. Deze is significant sneller te downloaden en vereist geen extra stappen om dubbele waarden te verwijderen. Een stap met het verwijderen van dubbele waarden in Power BI is bijna altijd een teken van een ontwerpprobleem (een zogenaamde “code smell”).
De tabel met beschikbare Exact Online administraties kan trouwens ook gebruikt worden als keuzemenu voor de parameter “division-code”.
Verticaal Filteren
Bij bijvoorbeeld documenten valt op dat er niet verticaal gefilterd wordt. Dit betekent dat alle documenten opgehaald worden. Dat is zeer zelden nodig; meestal is maar een paar soorten nodig, zoals de verkoopfacturen.
Advies is om een relevant filter toe te voegen.
Datamodel
Power BI kent alleen relaties op basis van een enkele waarde. Dat voorkomt ook een aantal pijnpunten met lege waardes. Het datamodel maakt gebruik van een samengestelde sleutel met daarin:
- het label van de Exact Online administratie waar de rij in thuishoort,
- de natuurlijke sleutel van de rij, zoals de artikelcode.
Dit levert een relatief lange tekst op. Voor het downloaden maakt dat niet uit; de berekening vindt plaats op de Windows PC. Echter, bij het leggen van joins is het relatief duur om lange sleutels te gebruiken.
Advies is om in plaats van de hele administratienaam alleen de divisiecode te gebruiken. Het uitvoeren van de joins kost dan minder rekentijd.