Ophalen Teamleader endpoints met 'parameter' vanuit Invantive Cloud

Hi,

Wij maken via Azure Data Factory connectie met een Invantive Cloud OData feed om de data op te halen en vervolgens weg te schrijven naar een Azure SQL Database. We zijn bekend met het bestaan van de ‘Flat’ tabellen, maar merken dat deze erg traag werken. Daarnaast lijkt de lijst van endpoints in de OData feed in ADF incompleet. Alle endpoints die een parameter terug verwachten ontbreken.

Zijn er andere best practices die wij over het hoofd zien om met ADF alle mogelijke Teamleader endpoints op te halen? Uiteindelijk willen wij vooral de ‘standaard’ endpoints aan kunnen vullen met custom fields, en ook de migrate endpoints voor het updaten van een V1 ID naar een V2 ID zijn erg behulpzaam.

Een bericht is gesplitst naar een nieuw topic: Eigen queries via OData

Via OData zijn alleen tabellen en tabelfuncties uit de Teamleader V1 en V2 API’s beschikbaar die geen verplichte parameters hebben.

Dit betreft overwegend tabelfuncties met verplicht maar aftelbare parameters zoals deal ID. Hiervoor is zowel in V1 and V2 een alternatief beschikbaar in de vorm van een view met *Flat in de naam. De prestaties hiervan zijn laag doordat ze recursief per rij een puntquery moeten uitvoeren; dit is een bekend en onvermijdbaar onderdeel van de Teamleader API’s.

Soms kan er in plaats van een V1 *Flat view gebruik gemaakt worden van de V2 tabel. Deze zijn veel rijker qua kolommen waardoor het gebruik van de onderliggende tabelfuncties niet nodig is. Vergelijk bijvoorbeeld V1 Projects met 5 kolommen met de V2 Projects met 32 kolommen.

Voor custom fields zijn er ook views in V1 en V2, maar de prestaties zijn beperkt. Met handgemaakte queries kan dit soms omzeild worden doordat niet alles opgehaald/geactualiseerd wordt.

De Migrate tabellen zijn de eerste keer langzaam, maar aangezien het een blijvende afbeelding betreft worden die langdurig gecachet zodat de prestaties de tweede en volgende keer significant beter zijn.

Meer informatie over dit onderwerp is ook te lezen in: