Hoe vraag je de structuur van grootboekrekeningen in Exact Online op?

Grootboekrekeningschema’s

Exact Online biedt de mogelijkheid om grootboekrekeningen te clusteren voor rapportagedoeleinden. Zo kunt u een geconsolideerde balans genereren waarbij de saldi van verschillende grootboekrekeningen worden samengevat.

Er zijn meerdere groeperingen mogelijk. Voor alle abonnementen in Nederland is het mogelijk om grootboekrekeningen te koppelen aan (standaard voorgeschreven) RGS-schema’s:

Daarnaast kunnen Nederlandse ondernemers 1 groepering definieren voor een administratie (een zogenaamde “grootboekrekeningschema”), en accountants meerdere per administratie. De standaard groepering heeft meestal de code 1 zoals in deze afbeelding:

image

De grootboekrekeningschema’s zijn per abonnementeigenaar anders. Een accountant kan dus de schema’s A en B zien op een specifieke administratie, terwijl de ondernemer in die administratie met schema C werkt.

Boomstructuur

Een grootboekrekeningschema bevat “classificaties”. Aan een classificatie kunnen meerdere grootboekrekeningen gekoppeld zijn. Daarnaast kunnen classificaties onderling ook een ouder/kind-relatie hebben. Alle classificaties onder een grootboekrekeningschema vormen via hun hierarchische relatie een “boom”, waarbij grootboekrekeningen de “bladeren” vormen.

SQL

Via een aantal tabellen is de structuur raadpleegbaar. Merk op dat sommige tabellen niet de RGS-informatie bevatten en anderen weer wel. Dit is in de tijd bovendien regelmatig gewijzigd.

Alle grootboekrekeningen en hun eigenschappen zijn te vinden in GLAccountsIncremental@eol.

De grootboekschema’s zijn te vinden in GLSchemes, zoals met de volgende query:

select Division
,      Id
,      Code
,      Description
from   ExactOnlineREST..GLSchemes@eol
order
by     Division
,      Id

De classificaties (“knopen” in de boom) zijn op te vragen via GLClassificationsBulk, waarbij de kolom Parent de bovenliggende classificatie specificeert. Dit kan bijvoorbeeld met de volgende query:

select Division
,      Id
,      Code
,      Description
,      Parent
from   GLClassificationsBulk@eol

De samenstelling van de grootboekrekeningen (“bladeren”) en classificaties (“knopen”) tot een grootboekrekeningschema is op te vragen via de tabel GLAccountClassificationMappings. Dit kan bijvoorbeeld met een query zoals:

select Division
,      GLSchemeCode
,      GLSchemeDescription
,      ID
--
,      GLAccount
,      GLAccountCode
,      GLAccountDescription
--
,      Classification
,      ClassificationCode
,      ClassificationDescription
from   GLAccountClassificationMappings@eol
order
by     Division
,      GLSchemeCode

Alternatief

Het is ook mogelijk de oudere tabel GLAccountClassifications te gebruiken om de classiifcaties op te vragen. Deze bevat op het moment van schrijven niet de RGS-schema’s.

Daarnaast kan ook de oudere tabel GLAccountClassificationRelations gebruikt worden om de relaties op te vragen, zoals met:

select DIVISION_CODE
,      SCHEME_CODE_ATTR
,      CLASSIFICATION_DEPTH
,      CODE_ATTR
,      DESCRIPTION
,      PARENT_CODE_ATTR
,      PARENT_DESCRIPTION
from   GLAccountClassificationRelations@eol

Ook hier ontbreken momenteel de RGS-schema’s.

Een mogelijke manier om dit in Power BI te verwerken is een custom view maken:

create or replace view GrootboekStructuur
as
select t1.code_attr ClassificationCodeLevel1
,      t2.code_attr ClassificationCodeLevel2
,      t3.code_attr ClassificationCodeLevel3
,      g3.glaccountcode
,      g3.glaccountdescription
from   GLAccountClassificationRelations@eol t1
join   GLAccountClassificationRelations@eol t2
on     t2.scheme_code_attr = t1.scheme_code_attr
and    t2.parent_code_attr = t1.code_attr
join   GLAccountClassificationRelations@eol t3
on     t3.scheme_code_attr = t2.scheme_code_attr
and    t3.parent_code_attr = t2.code_attr
join   glaccountclassificationmappings@eol g3
on     g3.classificationcode = t3.code_attr
and    g3.glschemecode = t3.scheme_code_attr
where  t1.scheme_code_attr = 2
and    t1.parent_code_attr is null
union all
select t1.code_attr
,      t2.code_attr
,      null
,      g2.glaccountcode
,      g2.glaccountdescription
from   GLAccountClassificationRelations@eol t1
join   GLAccountClassificationRelations@eol t2
on     t2.scheme_code_attr = t1.scheme_code_attr
and    t2.parent_code_attr = t1.code_attr
join   glaccountclassificationmappings@eol g2
on     g2.classificationcode = t2.code_attr
and    g2.glschemecode = t2.scheme_code_attr
where  t1.scheme_code_attr = 2
and    t1.parent_code_attr is null
1 like