Unlocking Insights: An Introductory Guide to Integrating Jamf Pro and Microsoft Power BI for Powerful Reporting

A Mea Culpa of sorts…

If you have been following our series on Jamf Pro and Power BI, you know that the goal was to create an automated method for getting data into Power BI. Or at least that is the underlying goal.

As I finished writing Part 3, I immediately started assembling the bits for Part 4. My process for writing these posts is to work through the steps, take the screenshots, write some notes, and then write the post. As I was working through the steps, I discovered a significant problem: auto-refresh from the Power BI website doesn’t work when you use manual queries. You can imagine how crushed I was when I discovered this. Three posts into a series that I thought would go a few more, and I was at a standstill.

That was over a month ago. I immediately started researching, trying to figure out a way around this roadblock, but I have not found one yet. At least not one that is simple to implement.

So that is where we are at, a standstill. I am still trying to research and test methods, but I have not found anything. Several of you have reached out about it, and I know some of you are also researching. As soon as I, or one of you, come up with a solution for this, I will be sure to post it.

So keep checking back regularly, check the #blog-feed channel in Macadmins Slack, and I’ll try to get something posted soon.

Thank you!

Categories:

2 responses to “Unlocking Insights: An Introductory Guide to Integrating Jamf Pro and Microsoft Power BI for Powerful Reporting”

  1. william drain Avatar
    william drain

    Hey a really great post that same me tons of time quering jamf restapi. I also was able to overcome the “dynamic data source” error when using Power BI online by tweaking your power query statement by adding the RelativePath options in the functions.

    Thanks for your help:)

    GetJson = (Url) =>
    let
    Options = [ RelativePath= “/api/v1/computers-inventory?section=STORAGE” , Headers=[Authorization=fnGetToken(client_id, client_secret)]], // added RelativePath to overcome Dynamic data source error using the Power BI Online
    RawData = Web.Contents(base_url, Options),
    Json = Json.Document(RawData)
    in Json,

    GetPage = (Index) =>
    let
    Json = Json.Document(Web.Contents(base_url ,
    [ RelativePath= “/api/v1/computers-inventory?section=STORAGE&page=” & Text.From(Index) & “&page-size=” & Text.From(EntitiesPerPage) , // added RelativePath to overcome Dynamic data source error using the Power BI Online
    Headers=[Authorization=fnGetToken(client_id, client_secret)]]
    )),
    Value = Json[#”results”]
    in Value,

    1. jjbumomy Avatar
      jjbumomy

      Glad you were able to find some value in the posts! And thank you for sending on the info about fixing the “Dynamic Data Source” errors. I will have to test that out!

      Steve