Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Getting TEMPO Worklogs in Power Bi

Hi Team,

 

I am currently working on a project to extract Worklogs from Atlassian's TEMPO Timesheets using Power BI. Over the past few weeks, i have done enormous research on TEMPO Rest API's and extracting the Tempo worklogs in Power BI from Web data source. The team manages around 48 projects in Tempo and i need to get Worklogs from all the projects. I am able to extract Worklogs for individual Projects using Project Key as API Parameter. However, if am not specifying the Project Key, a 504 gateway timeout error is thrown by Power BI editor as the records are very large. As my organization is moving from Project Server to Tempo, this would be a great win if i could achieve this in Power BI without doing any ETL. I am using below query to fetch data from Tempo.

 

let
Source = Json.Document(Web.Contents("https://api.tempo.io", [Headers=[Authorization="Bearer xxxxxxxxxxxxx"],RelativePath="rest-legacy/tempo-timesheets/3/worklogs", Query=[projectKey = "HSI"]]))

in

Source

 

I would expect the query to return something like [projectKey in "HSI","JOG","MOG"]. Any suggestions would be heavily appreciated as this would turn out to be a robust solution for creating Timesheet Reporting.

 

Many Thanks,

Arjun

1 ACCEPTED SOLUTION
v-yuezhe-msft
Employee
Employee

@Anonymous,

Please change your current query to a function:

let
    parameterSource = (Project as text)=>


let
Source = Json.Document(Web.Contents("https://api.tempo.io", [Headers=[Authorization="Bearer xxxxxxxxxxxxx"],RelativePath="rest-legacy/tempo-timesheets/3/worklogs", Query=[projectKey = ""&Project&""]]))

in

Source

in

   parameterSource


Then create the following table and invoke the above function in the new table.
2.PNG1.PNG

Regards,
Lydia

Community Support Team _ Lydia Zhang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

3 REPLIES 3
v-yuezhe-msft
Employee
Employee

@Anonymous,

Please change your current query to a function:

let
    parameterSource = (Project as text)=>


let
Source = Json.Document(Web.Contents("https://api.tempo.io", [Headers=[Authorization="Bearer xxxxxxxxxxxxx"],RelativePath="rest-legacy/tempo-timesheets/3/worklogs", Query=[projectKey = ""&Project&""]]))

in

Source

in

   parameterSource


Then create the following table and invoke the above function in the new table.
2.PNG1.PNG

Regards,
Lydia

Community Support Team _ Lydia Zhang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Thanks a lot guys!. its working for me

Anonymous
Not applicable

This is working fine for me but going further, we might create a staging database to store all the worklogs of all users and analyse the timesheet for different teams within the organization. 

 

We might need a more robust solution to extract worklogs. Is it possible to extract all the worklogs from REST API using SSIS. If yes, can you please share few tips in achieving this?.

 

Thanks,

Arjun

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors