Information below is no longer accurate. Please check updated article
On May, 2017 Microsoft released SDK for creating custom Data Connectors for Power BI. Given this opportunity we are releasing TeamDesk Data Connector (Beta) for Power BI.
Currently Microsoft supports custom connectors on desktop version only, but they plan to extend this technology to Power BI online and, eventually to all their products supporting PowerQuery (M) language, such as Excel and SQL 2017 and distribute connectors via Office Store, so the tech looks promising.
Try it now!
If you want to try it now, you’ll need to follow this steps:
- Install Microsoft Power BI Desktop;
- Create a [My Documents]\Microsoft Power BI Desktop\Custom Connectors directory;
- Download TeamDesk Data Connector into the directory. If browser tries to change file extension to .zip, rename it back to TeamDesk.PowerBI.DataConnector.mez;
- Enable Custom data connectors feature under File > Options and Settings > Options > Preview features in Power BI Desktop;
- Restart Power BI Desktop.
Upon using Get Data, you’ll find TeamDesk connector in Online Services category.
Click on the connector, confirm you are using beta tech and you’ll be prompted to enter your database URL. Simplest way is to copy any database URL from browser window.
Next, enter your TeamDesk email and password:
Next, connector will prompt you to choose the table and the view to get the data from. On the screenshot is the data from Invoicing sample database.
Finally, click Load button to get the data to Power BI:
Then transform and visualize the way you want:
If you prefer programmability, there are two functions available at your disposal:
TeamDesk.SelectView(url, table, view) – given database URL, the name of the table and the name of view retrieves the content.
=TeamDesk.SelectView("https://www.teamdesk.net/secure/db/55214", "Invoice", "List All")
produces result identical to the sample above. Or, there is even-more low-level function:
TeamDesk.Select(url, table, columns, filter, sort) – allows you to specify the data you need, precisely:
=TeamDesk.Select("https://www.teamdesk.net/secure/db/55214", "Invoice", {"Name", "Total"}, "[Company]='ABC, Inc.'", "Due Date//DESC")
selects customer names and totals from invoices for ABC, Inc. company, and sorts by recent due date on top.
Enjoy!