Kolom CostCenterDescription kan niet worden gevonden in TransactionLinesIncremental

Na enige tijd start een klant weer een PowerBI rapport op. Daarbij treden meerdere foutmeldingen op, waaronder:

PowerBI foutmelding TransactionLines.

De kolom CostCenterDescription in de tabel ExactOnlineREST Incremental TransactionLinesIncremental@eol is niet gevonden of kan niet worden gebruikt in deze expressie.

Is de tabelstructuur gewijzigd?

Dat klopt. Week of zes-acht geleden zijn de afgeleide velden verwijderd uit de nieuwe *Incremental tabellen om evidente reden. Opname ervan in de Sync API’s is in onze ogen een design fout van de API’s geweest. Advies is om de relaties zelf te leggen naar de stamtabellen zoals hier CostCenters.

Verwachting is dat er voorlopig geen verwijderingen of mutaties meer komen op de Incremental tabellen. Sowieso proberen we dit soort wijzigingen te vermijden aangezien ze breaking kunnen zijn.

Meer achtergrond over de reden waarom het verstandig is om het zo te doen is te lezen op Verzoek finetunen incremental tabellen Exact Online - 2 van forums.

Beste
dank je voor de toelichting. Het lijkt me een logische opbouw van het datamodel.
Maar het blijft wel vreemd dat je dan zelf een aantal kolommen moet bijmaken om de stamtabellen te kunnen koppelen via een eenvoudige relatie. Ook worden kolomnamen niet altijd gelukkig gekozen in jullie verschillende tabellen : code betekent in een aantal tabellen iets anders.
In de incremental had je dan beter de id’s van de costcenters en units opgenomen ipv een niet unieke code, costcenter, costunit enz. (indien je meerdere administraties hebt). Zodat je makkelijk de relaties kan leggen.
Als oplossing gebruik ik nu:
Bvb. In de incremental en bij Costcenters moet je dus dan zelf een kolom bijmaken door kolommen samen te voegen voor elke koppeling met een andere stamtabel : Division + Costcenter, Division + Costunit, Division + journal enz.

Tenzij ik me vergis natuurlijk.
Is er ergens een overzicht van de overeenkomende kolommen tussen de incremental en de stamtabellen beschikbaar, zodat de relaties kunnen gelegd worden zonder zoek en knutselwerk?

Alvast bedankt

We zijn hier afhankelijk van de gegevens die de Exact Online API aanlevert. Zoals je kunt zien in hun documentatie wordt bij bijvoorbeeld een CostCenter alleen de code en omschrijving teruggegeven, geen ID (en het ID is niet uniek over Exact Online omgevingen heen). Het probleem met de API is dat als de omschrijving van het cost center wijzigt, die niet leidt tot een wijziging in de API. Hierdoor wordt de data onbetrouwbaar. Door zelf de relatie te leggen wordt dit probleem voorkomen.

Hoe zou je dit in de praktijk kunnen doen? Bijvoorbeeld door een view te maken en deze te registreren op aanmelden van de database. Een voorbeeld van zo’n view zou kunnen zijn:

create view MyTransactionLines
as
select tle.*
,      ccr.description CostCenterDescription
from   TransactionLinesIncremental tle
join   ExactOnlineREST.HRM.Costcenters ccr
on     ccr.Code = tle.CostCenter
and    ccr.Division = tle.Division
;

Deze view MyTransactionLines kun je vervolgens in Power BI gebruiken.

Bedankt voor het antwoord. Makes sense.Toch blij dat Power BI veel aankan.
Er zijn heel veel setups en voorbereidingen nodig om de (voor ons) nodige dashboards te kunnen maken. Met iets meer tijd lukt het.