XAF Explorer voor Power BI toont de volledige inhoud van een XML Auditfile Financieel (XAF) en voert diverse controles uit. XAF Explorer is beschikbaar als template en ondersteunt de XAF versies vanaf 3.0.
Dit artikel geeft een korte toelichting op enkele rapportpagina’s van XAF Explorer. Als voorbeeld bestand heb ik gebruik gemaakt van de Toro Rosso case, een XAF 3.2 bestand van Exact Online met RGS die onder meer te vinden is in de bibliotheek van de Analytics Library. De Toro Rosso case van XAF Explorer vind je hier.
Dashboard
Nadat je een XAF 3.2 bestand hebt ingelezen toont XAF Explorer het dashboard:
Tabel Inhoud
Tabel Inhoud geeft ons een eerste totaalbeeld van de inhoud van de auditfile. De tabel geeft inzicht in de hiërarchische structuur van een XAF bestand. Een * achter een element betekent dat het element meerdere keren kan voorkomen, en in kolom Aantal staat hoe vaak een element daadwerkelijk voorkomt in het ingelezen bestand. Elementen zonder * zijn vaak lege structuurelementen (bijvoorbeeld customersSuppliers, vatCodes of subledgers) maar bevatten soms simpele gegevens (bijvoorbeeld header bevat fiscalYear, startDate, endDate, etc).
De structuur is opgedeeld in 12 secties, die zichtbaar worden door de muis er over te bewegen. Elke sectie heeft een eigen rapportpagina waar de details van die sectie te vinden zijn. Klik op een sectie om naar de rapportpagina te gaan.
In dit voorbeeld zien we:
- dat er 29 customers/suppliers zijn, waarvan 10 met een geregistreerd banknummer;
- dat er 97 grootboekrekeningen zijn, zonder taxonomie en zonder historie;
- dat er geen aparte openingsbalans is opgenomen;
- dat de aantallen journals (dagboeken), transactions (boekingen) en transactionLines (mutaties) redelijk in verhouding zijn;
- dat bij sommige transactionLines ook aparte btw-regels zijn opgenomen;
- dat er 2 sub-administraties zijn (waarvoor geen btw-regels zijn opgenomen).
Hoe je deze aantallen en verhoudingen precies moet duiden zal per situatie verschillen.
Omdat er structurele verschillen zijn tussen XAF 3.2 en de lagere versies zal ook tabel Inhoud per versie een verschillend beeld geven. Als we een XAF3.1 bestand inlezen dan zal de sectie customerSupplierHistory licht grijs zijn, omdat deze alleen in 3.2 van toepassing is. Evenzo zal dan sectie generalLedger (3.2) inactief zijn en de sectie generalLedger (3.1) actief. Vanwege de structurele verschillen zijn voor de twee generalLedger secties twee aparte rapportpagina’s beschikbaar. Dit is een ontwerpkeuze die mede is bepaald door de huidige beperkingen van Power BI.
Tabel Kengetallen
Tabel Kengetallen toont aanvullende waarden die behulpzaam kunnen zijn bij de identificatie en de eerste beoordeling van de auditfile. Dit voorbeeld geeft een waarschuwing op het aantal leadReferences omdat dat afwijkt van het aantal grootboekrekeningen. Blijkbaar ondersteunt dit bestand RGS maar zijn enkele grootboekrekeningen niet gekoppeld aan een RGS-code.
Als de namespace van de auditfile niet wordt herkend toont deze tabel ook een waarschuwing. XAF Explorer doet niettemin een poging om gegevens zo goed mogelijk in te lezen.
Customers/Suppliers
Van rapportpagina Customers/Suppliers wordt het grootste deel in beslag genomen door de tabel met de 29 Customer/Suppliers. Onderin het scherm zien we drie gerelateerde tabellen: één Customer/Supplier kan meerdere Street addresses hebben, meerdere Postal addresses, en meerdere Bank accounts. De pijl die de tabellen verbindt geeft de filter richting aan. Selecteer een Customer/Supplier en je ziet welke gerelateerde gegevens hierbij horen.
Velden die beginnen met een underscore zoals _custID zijn niet afkomstig uit de auditfile maar door XAF Explorer gegenereerde sleutelvelden. Met deze sleutelvelden wordt de relatie gelegd tussen een hoofdtabel (zoals Customer/Suppliers) en een gerelateerde tabel (Bank accounts). Deze toegevoegde sleutelvelden zijn nodig om de hiërarchische structuur van de auditfile te transformeren naar een relationele structuur.
Customers/Suppliers history
Bovenin deze rapportpagina zien we opnieuw de tabel met 29 Customer/Suppliers. Selecteer hierin één regel en je ziet daaronder de historie van de geselecteerde Customer/Supplier.
Noot 1: merk op dat deze history structuur pas vanaf XAF 3.2 beschikbaar is. Bij XAF bestanden van een eerdere versie zullen de historische tabellen altijd leeg blijven.
Noot 2: stel dat een Customer/supplier van adres wijzigt, enige tijd later van bank, en weer later van naam. Op welke manier dienen dan de history tabellen gevuld te worden? En wat bevatten de velden changeDateTime, userID en changeDescription van de Customer/supplier dan?
General ledger
Van deze rapportpagina bestaan twee varianten: één voor XAF 3.2 bestanden, en één voor XAF 3.0 en 3.1. Een verschil is dat vanaf XAF 3.2 de taxonomy structuur is gewijzigd. Daarnaast is aan XAF 3.2 een history structuur toegevoegd.
In de rapportpagina voor XAF 3.1 zien we twee relaties. De relatie tussen Taxonomy en Taxonomy element via het veld _taxoID is geïmplementeerd door XAF Explorer, deze witte pijl hebben we al eerder gezien.
De relatie tussen Ledger accounts en Taxonomy element is van een andere soort en is daarom oranje gekleurd. Zo’n oranje pijl heeft altijd een tooltip met in dit geval de volgende tekst: “accID –> glAccID (niet in model geïmplementeerd)”. Dit betekent dat er een relatie bestaat tussen twee auditfile tabellen die niet tot een hiërarchische structuur behoren. Die relatie wordt gemaakt met behulp van twee velden uit de auditfile zelf, in dit geval accID uit Ledger accounts, en glAccID uit Taxonomy element. Deze relatie is niet standaard in het datamodel geïmplementeerd omdat het kan voorkomen dat zo’n relatie ongeldig is.
Merk op dat deze auditfile RGS ondersteunt via het veld leadReference van de tabel Ledger accounts.
Opening balance
Tabel Opening balance lines bevat de mutatieregels die de openingsbalans vormen. Ten behoeve van de subadministraties kunnen er per Opening balance line 1 of meer regels voorkomen in de tabel Opening balance subledger lines. De auditfile elementen nr en obLineNr zijn de sleutelvelden die de relatie implementeren, zoals aangegeven in de tooltip van de oranje filterpijl.
Daarnaast behoort iedere Opening balance subledger line tot precies één Opening balance subledger. Dat is in de auditfile een hiërarchische relatie, zoals de witte pijl aangeeft. Om deze relatie te implementeren heeft XAF Explorer het sleutelveld _sbID toegevoegd.
Transactions
Deze rapportpagina zal het meest interessant gevonden worden omdat het de financiële transacties uit de auditfile in beeld brengt. De hiërarchische structuur van vier niveau’s is getransformeerd tot vier gerelateerde tabellen: Journals, Transactions, Transaction lines, en Vat lines. Merk op dat alle velden van het type text zijn en dus niet geconverteerd zijn naar typen waarmee gerekend kan worden. XAF Explorer toont de inhoud van de xml-elementen onbewerkt.
Subledgers
De structuur voor de subadministraties bestaat uit drie tabellen: Subledgers, Subledger lines en Subledger vat lines. Deze tabellen hebben een hiërarchische relatie die door XAF Explorer is geïmplementeerd met de sleutelvelden _sbID en _sbLineID.
Elke Subledger line is gerelateerd aan één Transaction line. Om deze relatie te kunnen weergeven is de tabel Transaction lines op deze rapportpagina herhaald.
In de auditfile is feitelijk geen directe relatie tussen Subledger lines en Transaction lines. De sleutel waarmee een Subledger line de bijbehorende Transaction line identificeert bestaat uit drie elementen: jrnID uit Journals, trNr uit Transactions en Nr uit Transaction lines. Samen identificeren ze bijbehorende Transaction line. Om deze relatie eenvoudiger in het datamodel te kunnen implementeren heeft XAF Explorer het samengestelde sleutelveld _trLineKey toegevoegd, bestaande uit jrnID, trNr en Nr. (Deze sleutel is standaard niet in het datamodel opgenomen, zoals de gele filterpijl ook aangeeft.)
Controle RGS
Tabel RGS helpt bij het bepalen welke RGS-versie in deze auditfile is gebruikt. Dit is nodig omdat in XAF 3.2 er – volgens de specificatie van 2014 – geen mogelijkheid bestaat om de RGS-versie te benoemen.
Tabel RGS geeft een overzicht van alle leadReferences die in het grootboek voorkomen (rijen), en gaat per RGS-versie (kolommen) na of de betreffende leadReference daarin voorkomt. Komt de leadRefence niet voor dat blijft de waarde blanco, anders wordt het aantal grootboekrekeningen weergegeven waarin de leadReference voorkomt.
In de Toro Rosso case zien we dat sommige leadReferences alleen in de RGS-versies 1.1 en 2.0 worden herkend (bijv BVorBtwTtv). Het ligt dan voor de hand dat de overige RGS-versies niet gebruikt zijn. Als we naar de totalen kijken zien we dat de RGS-versies 1.1 en 2.0 het beste scoren: 94 van de in totaal 97 grootboekrekeningen zijn gekoppeld aan een bekende leadReference. In deze case is dus RGS-versie 1.1 of 2.0 gebruikt. Maar we moeten voorzichtig zijn met analyses o.b.v. RGS omdat er drie grootboekrekeningen zijn zonder leadReference.
Voor meer informatie zie de openbare Power BI app XAF 3.2 en RGS.
Download
Het template XAF Explorer voor Power BI wordt momenteel getest en komt binnenkort voor download beschikbaar. Stuur me een bericht als je wilt helpen het template te testen.