Ophalen TeamLeader V1 Subscription_items met OData v4

Veel verbonden platforms zijn rijk aan “tabelfuncties”. Dat zijn tabellen die geparameteriseerd zijn. In een echte tabelgeorienteerde aanpak zouden dat $filter (OData) of where-clause (SQL) zijn, maar de ontwerper had er voor gekozen om specifiek bepaalde parameters te eisen.

Op zich ondersteunt de OData4 standaard wel dergelijke entiteiten, maar Power BI biedt hiervoor momenteel geen ondersteuning.

In Invantive SQL zitten daarom veel “views” die voor zover mogelijk de noodzakelijke relaties leggen om te komen tot een tabel zonder parameters. In de Teamleader V1 API zijn voorbeelden hiervan:

  • ContactsAll
  • SubscriptionsAll

De onderliggende Invantive SQL query is dan bijvoorbeeld voor ContactsAll:

select p.*
from   Teamleader.V1.Contacts l
join   Teamleader.V1.Contact(l.id) p

De prestaties van deze Teamleader V1 views zijn slecht als het gaat om grote aantallen rijen. Vaak komen er maar 100 rijen per minuut terug, terwijl andere platformen soms duizenden rijen per seconde teruggeven. Toch werkt het vaak acceptabel. Advies is om wel eerst te kijken of er een V2 variant is die ook de gewenste gegevens bevat; die zijn vaak net wat beter ontworpen zoals bijvoorbeeld TimeTracking die vele malen sneller is dan zijn V1 voorloper.

Zou jij kunnen kijken of deze query in de Invantive Cloud SQL editor voor jou een werkbaar resultaat oplevert:

select p.*
from   Teamleader.V1.Subscriptions l
join   Teamleader.V1.Subscription_Items(l.id) p

Zo ja, dan zullen we deze in een volgende versie verwerken.