Planner Reporting Increment 8 - technical notes

Increment 8

Planner Reporting for Power BI is now at increment 8. Development has been running in roughly fortnigntly increments, I hesitate to call it a sprint as we are not that formalised. Increment 8 bring two main changes, it now reports across multiple groups by taking a username as a parameter and scanning all the groups for that user, the other change is further parameterisation of the dataflow. There is now only one 'hardcoded' value and that is the base URL of API management, this is necassary as the refresh needs a fixed url. This is all part of making the applicatio more robust. This is all function driven, so that there is no monolithic code and functions can be upgraded separately ro enhance functionalitym as has occured in increment 8. Here is the core fxCallPlannerAPI:

This is then invoked by providing the query parameters as a record and the path as a string:

The tables do not rely on each other, so that there are no issues with the firewall. Here is the start of the tasks query, where it gets the groups and th plans and then the task for each plan:

let
  Source = fxGetGroupsAndPlans(pUserName),
  #"Removed columns" = Table.RemoveColumns(Source, {"planName", "groupName"}),
  #"Invoked custom function" = Table.AddColumn(#"Removed columns", "Tasks", each fxPlanTasks([planId], [groupId])),

This is slightly inefficient as it does this twice, once for the tasks and then again to get checklist items, but it is robust. This pattern is used in all the queries.

Testing

We are fortunate to have a dedicated Microsoft development environment, which is used for testing. This means that all scripts are bundled up and tested before release. This also helps with determining which strategies are more robust from a deployment point of view. One thing that this highlighted is that deploying apps internally is easier than creating a template app for the store.

The Deployment Release

The deployment release will separate the Power BI App from the back end, increment 9 is about proving this strategy and creating a single PBIX file that forms the basis of the Planner Reporting user interface, with the dataflow and the API becoming a separate implementation stream. After increment 9 there will be Release 1.0 of the Planner Reporting app in App Source, which will be followed by the release of the back end. Increment 9 will flesh out this startegy.

Comments are closed