Quantcast
Channel: Reporting – Modern Work Management – Project and the Power Platform blog
Viewing all 104 articles
Browse latest View live

#Office365 #Project Portfolio Dashboard add-in for #ProjectOnline #ProjectServer #BI #PPM

$
0
0

In this post we will look at the recently released Office 365 Project Portfolio Dashboard for Project Online / Project Server 2013 / 2016, see the announcement below:

https://blogs.office.com/2016/04/19/new-office-365-project-portfolio-dashboard-apps-are-live/

A directly link the the SharePoint add-in can be found here: https://store.office.com/en-us/WA104380116.aspx

I have loaded this on to one of our demo instances to take a look:

image

The add-in is accessed from the PWA site contents menu:

image

Worth noting is that the users will need to be a member of one of the following SharePoint groups for the Portfolio Dashboard to work when in the SharePoint permission mode:

Administrators for Project Web App
Portfolio Managers for Project Web App
Portfolio Viewers for Project Web App

When in the Project permission mode the users will need access to “Access Project Server Reporting Service” permission and be added to one of the SharePoint permission groups above.

When the add-in is first loaded it will load the data and cache it – it will tell you it is doing this. Then in the top right corner it will display the details for when the data in that dashboard was last updated / loaded:

image

You can then refresh the data as required and it will update to indicate the refresh has started:

image

Depending on the amount of data this might take some time.

The default dashboard is “This year’s projects”, there are 6 dashboards included by default, these are available in the Dashboard tab on the ribbon:

image

Each show different data. Each dashboard has different sections or pages, for example on This Year’s Projects I can view Projects:

image

Or Tasks:

image

Or Resources:

image

Or Content:

image

Some of the tables in the views have multiple views or sheets, for example the Resources shows Work by default but can view Issues, Risks or Availability:

image

In most pages you can either drill down or click though, for example from the Overview page on the table at the bottom I can click the project name to drill down to more detail for that project:

From:

image

To:

image

Clicking the task name will load the schedule PDP in a different tab.Clicking a risk or issue will load the list item in a different tab.

Notice the left navigation updates to show you where you are with more options. For example I can go from the project dashboard view to an Executive view:

image

I can then go back to the overall dashboard view by using the navigation section.

For each dashboard you can filter the data using the Filter tab:

image

The options tab will give you the ability to change the settings for the dashboard:

image

On the Dashboard tab you also have the ability to create your own dashboard using the create button, that will display a new tab on the ribbon:

image

Firstly give it a name and description.

image

Then select the projects to include:

image

Depending on the field type you will get different options to select, for example selecting a date field will give you this:

image

Then chose the layout for each section and the components on each:

image

Update each section as required then set any filters you want available:

image

Once completed click OK and the new dashboard will be available on the Dashboard menu for all users:

image

Download it today and take a look!



Extract #ProjectOnline or #ProjectServer 2013 / 2016 Timesheet data #PowerShell #Office365

$
0
0

This PowerShell script will use the Project Reporting OData API to extract the timesheet data between the given start and end dates. The user running the script specifies the source PWA instance URL, Username and password. They then enter the start and finish dates in yyyy-mm-dd format and run. The data will then be displayed in the console and output to a CSV file.

This script example can be downloaded here: https://gallery.technet.microsoft.com/Extract-Online-or-Server-c1cba361

To get the script to work you will need to reference the DLL as seen in the image below:

image

This can be installed from the SharePoint Online Client components / management shell. I used the dll from the SharePoint Online Management Shell in this example.

Please note, this has only been tested in PowerShell 3.0 and might not work in other versions. If you have any issues try this in PowerShell 3.0.

Firstly it will prompt for the source PWA URL:

image

Then the username and password:

image

Then the start and finish dates in yyyy-mm-dd format:

image

The script will output the data to the console:

image

It will also create a CSV file in the same folder that the PowerShell script is run from:

image

The CSV file:

image

This was only run against a test PWA instance in Project Online and only my account had timesheet data for the given period, it will return all of the timesheet data for all resources for the given start and finish dates.

This example requires the user to enter the environment details when running but it could easily be updated to hard code these then the PowerShell script could be scheduled to run weekly or monthly etc. The start and finish dates could be made dynamic too.

Whilst this only reads data, as always, this script is provided as is with no warranties etc. use at your own risk and test on a test environment before using on a production environment.


#ProjectOnline #OData reporting API updated to remove #HTML tags #Office365 #BI #Excel #PowerBI

$
0
0

Recently you might have noticed that the Project Online OData reporting API has been updated to remove the HTML tags, I tweeted about this last week. So before this changed the data would have look like this:

image

Notice the HTML tags such as   and </li></ul></ul></ul> in the StatusSummary field. In the PDP the data looks like this in the Status Summary multiline text field:

image

If you are still seeing HTML tags for projects these will be updated once edited and saved, After making a change to a project custom field and clicking Save on a PDP (this does a Project Summary Publish too) for this example project I then see the following in the OData feed:

image

As you can see the HTML tags are now removed from the StatusSummary field. So now in your Excel or Power BI reports you will no longer have to either use VBA in Excel to remove these or use a similar Power Query function in Excel or Power BI as detailed here.

The only down side to this change is if you use a report that can render the HTML tags to maintain the formatting set in the multiline project level custom fields on the PDP this will be lost. For example, for PS+ we use a Reporting add-in that maintains the multiline custom field formatting as seen below:

image

After the update this formatting is lost as expected making the data harder to read:

image

All is not lost though, if you want to maintain this formatting just using CSOM / JSOM or REST to get the data for the multiline project custom fields. In the example below using the REST (/_api/ProjectServer) API you can see that the HTML tags are still available:

image

Here the fields are referenced using the Internal Name rather than the Name, for example Custom_x005f_4d0daaaba6ade21193f900155d153dd4. So you will need to update any custom add-ins / reporting tools to get the multiline custom field data from these API’s if you wish to maintain the formatting.


#ProjectOnline Project Ideas list view with Project GUID #Office365 #SharePoint #JavaScript #jQuery

$
0
0

For those of you that are familiar with the project ideas lists in Microsoft’s PPM PWA application you might want to skip this first paragraph. Any list you create in the PWA site collection at the top level you will see a button Create Projects, if you are not familiar with this feature take a look at this blog post: https://pwmather.wordpress.com/2012/12/13/creating-and-adding-projects-to-projectserver-2013-ps2013-sp2013-office365-part-1/.

The purpose of this post isn’t to revisit that feature, this post covers getting access to some of the data on that list that is hidden from the views and creating an enhanced view for the Project Ideas type list.

If you look at the view details, you can see below the columns I can add to this view:

image

Yet if I look at the columns available on this list using the REST API I see a few more, a key one being MSPWAPROJUID as seen below:

image

This column gets updated with the Project GUID when you create a project from the list. As this is a hidden column it can’t be added to any views which is a shame as that would be very useful. I thought ok, simple, I will just update the field hidden property false then add it to the view. Whilst that change is very simple with a few lines of code this appears to break the column getting updated with the Project GUID so I don’t recommend doing that currently. If I found a way to get this working I will create a post. So as that didn’t work that lead me on to the next idea, lets build my own view on a page. This can be seen below:

image

I have made the Item Title clickable to open the list item in a new window and where an idea item has been converted into a project, the Project GUID is a clickable link to the view the project. This opens the schedule Project Detail Page. The columns are sortable, by default it is sorted by Item ID, to change this use the arrows in the table column heading. As you can see, I don’t have much data on my test system and only one idea has been created into a project.

I have made the code available on the Microsoft code gallery, it can be downloaded here: https://gallery.technet.microsoft.com/Display-Online-ideas-list-c59c8cc7

To get the script to work for your PWA instance in Project Online you will need to update the listName variable to set the correct list title for your project ideas list:

image

Replace ProjectIdeas with the correct title. Save the JavaScript file in a document library in the PWA site collection then create a web part page in the PWA site collection, for example I created the page and uploaded the script to the Shared Documents library:

image

On the new web page page I added a content editor web part and linked to the JavaScript file:

image

Click Apply then OK and the data should load if the listName variable is correct. You can then add a link to the new page from the PWA quick launch if needed.

A nice simple solution that provides more functionality than the standard SharePoint view.


#ProjectOnline #PowerBI report with hyperlinks #Office365 #PPM #SharePoint #PowerQuery #BI

$
0
0

In this post we will look at creating a very basic Power BI report that includes hyperlinks to various entities in Microsoft’s Office 365 PPM Project Online PWA site. The report created here will be purely to show you how to create links to the Project Site, Project Detail Page, Issues and Risks items.

Firstly I will create my OData URLs I need for my datasets, these can be seen below:

  • Projects: <PWA site URL>/_api/ProjectData/Projects()?$filter=ProjectType ne 7
  • Issues: <PWA site URL>/_api/ProjectData/Issues
  • Risks: <PWA site URL>/_api/ProjectData/Risks

Now launch the Power BI desktop and click Get Data > OData Feed as seen below:

image

Enter the Projects URL and click OK:

image

On the next screen click Edit:

image

In the Query Editor window click Choose Columns:

image

In the Choose Columns window, uncheck all of the columns – quickest way is the uncheck Select All Columns:

image

Now select the following columns: ProjectId, ProjectName, ProjectWorkspaceInternalUrl

Click OK and the query will only contain those columns:

image

Rename ProjectName to “Project Name” and ProjectWorkspaceInternalUrl to “Project Site URL”, this is done by right clicking on the column heading and selecting Rename:

image

I have also changed the query name to Projects:

image

Now click Add Column > Add Custom Column:

image

Enter the name “Project Link” and the formula:

"<PWA site URL>/project%20detail%20pages/schedule.aspx?projuid=" & [ProjectId]

Update the PWA site URL to your Project Online PWA site URL and update the PDP if required, this one uses the Schedule PDP.

image

Click OK. The Projects dataset table is now ready, we now need to add in the Issues data. From within the Query Editor window, click New Source > OData Feed:

image

Enter the Issues URL and click OK:

image

Click OK on the preview window then you will see the 2nd query added:

image

Now we need to Choose Columns, remove them all and select the following: ProjectId, IssueId, ItemRelativeUrlPath, Title

Click OK. Rename the query to Issues then that dataset table is complete:

image

We now need to add in the Risks data. From within the Query Editor window, click New Source > OData Feed:

image

Enter the Risks URL and click OK, click OK on the preview window then you will see the 3rd query added:

image

Now we need to Choose Columns, remove them all and select the following: ProjectId, RiskId, ItemRelativeUrlPath, Title

Click OK. Rename the query to Risks then that dataset table is complete:

image

Now we need to merge the Issues table with the Projects table so that we can get the Project Site URL in the the Issues table. Select the Issues dataset table then click the Merge Queries option:

image

In the Merge window select the Projects table and ProjectId from both as seen below:

image

Click OK and you will see a new column appear:

image

Click the button on the new column to choose the columns to expand from the joined table:

image

Select just the Project Site URL:

image

Click OK and you will see the Project Site URL appear:

image

Rename the column to remove the NewColumn. prefix. Now click Add Column > Add Custom Column:

image

Enter a name “Issue Link” then enter the formula for the new column:

[Project Site URL] & "/" & Text.Range([ItemRelativeUrlPath],0,13) & "DispForm.aspx?ID=" & Text.Range([ItemRelativeUrlPath],13,1)

image

Click OK. Click on a row and ensure the URL is correct – copy in the browser to test:

image

Now select the Risks dataset table to repeat the steps. Click Merge Queries with the same steps as before and click OK. In the new column expand the Project Site URL then rename the column to remove the NewColumn. prefix. Add the custom column called “Risk Link” with the following formula:

[Project Site URL] & "/" & Text.Range([ItemRelativeUrlPath],0,12) & "DispForm.aspx?ID=" & Text.Range([ItemRelativeUrlPath],12,1)

image

Click OK then click on a row and ensure the URL is correct – copy in the browser to test:

image

Then click Close & Apply:

image

Then the Apply Query Changes window will load whilst the data model loads:

image

Once loaded, check the table relationships are ok and change if needed:

image

Now you are ready to build the Project links report as you would normally build a Power BI report. One additional step that you will need to do it make the URL columns into Web Urls. For example, select the “Project Site URL” from the Projects dataset then click the Modelling ribbon and under the Data Category option chose Web URL:

image

Repeat this for the three custom columns created: Issue Link, Risk Link and Project Link.

A very simple report has been created below to show the hyperlinks:

image

This is a very plain report as you can see, but this demonstrates how to create hyperlinks to keys areas of the project from a Power BI report.


#ProjectOnline data capture / snapshot capability with #PowerShell #SharePoint #Office365 #PPM #BI

$
0
0

This blog post will show an option to capture Microsoft’s PPM Project Online data into a SharePoint list on a schedule to enable time driven data capture for snapshot / trend reporting capability. This example makes use of a PowerShell script I created to get the data and write this to a SharePoint list. The PowerShell script will use the Project Reporting OData API to get all of the specified project data in the PWA Site Collection then create a list item on the specified SharePoint list. The user setting up the script will need to update the source PWA instance URL, username, password and list name. The account specified will need access to the OData API in PWA and contribute access to the target SharePoint list. The SharePoint list will also need to be created beforehand with the required columns. The OData query will need to be updated to include the correct project level fields required and the part of the script that creates the list items will need to be updated too. This is covered below.

This script example can be downloaded here: https://gallery.technet.microsoft.com/Online-Snapshot-example-0437b680

To get the script to work you will need to reference the DLL as seen in the image below:

image

This can be installed from the SharePoint Online Client components / management shell. I used the dll from the SharePoint Online Management Shell in this example.

Please note, this has only been tested in PowerShell 3.0 and might not work in other versions. If you have any issues try this in PowerShell 3.0.

Firstly decide what project level fields you want to capture, this will determine the list column requirements. Then create the SharePoint list in the PWA site collection with the required columns, for this example I created a list called ProjectSnapShots with the columns below:

image

The SnapshotDate column was set to have today as the default value so that when the items are created the date is set automatically.

Update the Project OData query to include the correct fields that you want to capture, in this simple example I have included the following:

image

$url = $PWAInstanceURL + "/_api/ProjectData/Projects()?`$Filter=ProjectType ne 7&`$Select=ProjectId,ProjectName,ProjectPercentCompleted,ProjectHealth,ROI,RiskRating&`$orderby=ProjectName"

As you can see I have a list column for each project level field. The next part of the script that needs to be updated is the item creation:

image

This is where you map the project level fields to the correct SharePoint list columns based on the data you are capturing.

Also ensure the variables have been updated correctly, placeholder values seen below:

image

Save and run the PowerShell script (fully test on a non-production PWA site collection before Production) to ensure the data is captured correctly in the target SharePoint list. You could then set this up to run as a scheduled task on a local server or a scheduled WebJob in Azure to capture the data weekly or monthly etc. For details on a scheduled WebJob see: https://azure.microsoft.com/en-gb/documentation/articles/web-sites-create-web-jobs/

Once the script is run you will see the data in the SharePoint list, below I have run this 3 times:

image

You could then create a snapshot / trend report as required from the list data and even join to the live Project OData API if you capture the Project ID as I have in the example script / list.

A simple time driven data capture to enable snapshot / trending reports for Project Online. This script could easily be modified to capture the data into a SQL database, either on-prem or in Azure SQL if required. Also if this was to be run in production the script should be updated for error handling with try / catch blocks etc.

The script is provided "As is" with no warranties etc.


Want to capture the last logon time for the #ProjectOnline PWA users? #PPM #JavaScript #Office365 #SharePoint

$
0
0

This is a supporting blog post for a new JavaScript file I have published to the Microsoft Gallery, it can be downloaded here:

https://gallery.technet.microsoft.com/Capture-Online-user-last-43621a21

Microsoft recently removed the Last Logon details from the Manage Users page in PWA settings for Project Online – Microsoft’s PPM tool. This simple script is an alternative solution that will capture the last logon for the Project Web App users. It wont capture the last logon from Project Professional or if a user accesses the API’s etc., it will only capture the last logon from the page the script is added to. In this example I have added the script to the homepage, so if a user has the Project Center saved as a favourite link and bypasses the PWA homepage then their logon would not be captured. You could add the script to multiple PWA pages if required.

When a user accesses the PWA homepage for the first time that day, an item is created on the SharePoint list in the PWA site, it only captures the logon once per day. See an example on my demo instance:

image

It captures the user name, the logon data and the browser that was used. This list will need to be created manually with the following details:

List Name: PWAUsageList

Columns:

image

The LogonDate column setting defaults to Today:

image

Once the list is set up, upload the JavaScript file to a library on the PWA site then the script can be added to the PWA homepage using a content editor web part:

image

Reference the location of the PWAUsage.js file – in this example I added the JavaScript file to the Shared Document library in the PWA site, also notice the Chrome Type is set to None so nothing is visible on the PWA homepage.

That is it, it will now capture the users who access the PWA homepage. Once you have the data on the list you can then create a report for that data. I will publish a blog post in the next week or so that details this but for now here is an example report screen shot in Power BI:

image

Fully test this on a non-production PWA instance before rolling out to Production, the script is provided As Is with no warranties etc. Try it out and let me know what you think.


Last logon time for the #ProjectOnline PWA users report #PPM #PowerBI #PowerQuery #Office365 #SharePoint #BI part 1

$
0
0

Following on from my last post where I published an option / workaround for the last connected feature that has been removed from Project Online, this post will look at generating a Power BI report for the usage data that is captured. For those of you that missed the last post, see link below before continuing:

https://pwmather.wordpress.com/2016/09/30/want-to-capture-the-last-logon-time-for-the-projectonline-pwa-users-ppm-javascript-office365-sharepoint/

Now that we have some data captured in the list we can generate a report, for this example report I have used Power BI and Power Query but you could do something similar in Excel Power View with Power Query or even JavaScript / HTML if you really wanted to. In this post I will walkthrough all the steps needed to start creating the example report seen below:

Page 1 (PWAUsage):

image

Page 2 (PWAUserLastConnect):

image

So firstly we need to two URLs for the data used to generate this report, the first one is from the PWAUsageList, this assumes the list is called PWAUsageList, update the URL as needed:

<PWA URL>/_api/Web/Lists/GetByTitle('PWAUsageList')/Items()?$Select=WhoString,LogonDate,Browser,Id

The next one is from the Project OData Reporting API to return the active users that have an account:

<PWA URL>/_api/ProjectData/Resources()?$Filter=ResourceIsActive eq true and ResourceNTAccount ne null

Now launch Power Bi Desktop and click Get Data > OData Feed:

image

Enter the URL for the PWAUsageList as seen in the example above and click OK then click the Edit button on the preview window and the Query Editor window will open. Change the Query name from Query1 to something meaningful such as PWAUsage. Now change the LogonDate Column to Date rather than Date/TIme by right clicking on the column heading > Change Type > Date:

image

Also rename any columns as needed and remove the duplicate ID column, I renamed LogonDate to Logon Date and WhoString to Username:

image

Now we will add a custom column to this query to get the “Last Refresh” date. To do this click the “Add Column” ribbon then “Add Custom Column” and complete the details:

image 

Click OK and the dataset will update:

image

Now we need to add the Resources data source, in the query editor click Home > New Source > OData Feed and enter the Resources OData URL as seen in the example above and click OK then click OK on the data preview window. Now click Choose Columns, the only column needed is ResourceName:

image

Click OK. The ResourceName column was then renamed and the Query renamed too:

image

Now we need to create a third query table that contains data from the PWAUsage query and the ActivePWAUsers query to show the last logon time for each PWA User. We could keep just the two queries and merge the two without creating a third table but that is up to you, you would just chose the Merge Queries option if you wanted to have just two queries. For this post I will create a third dataset query. In the query editor click the Merge Queries > Merge Queries as New option:

image

ActivePWAUsers in the top table and PWAUsage is the bottom table, select Resource Name in the top section and Username in the bottom section. The default join kind is fine for this merge:

image

Click OK. Update the query name to something meaningful such as PWALastLogon.

image

Click the Expand button next to the NewColumn:

image

Change the radio button to Aggregate and then click the dropdown next to Logon Date and select Maximum, don’t select anything else:

image

Uncheck the option “Use original column name as prefix” then click OK:

image

Rename the new column to remove the “Max of” and call the column “Latest Logon Date”

We now have the three queries ready to load into the report:

image

Now click Close & Apply > Close & Apply from the Home ribbon menu and the report will show your queries available:

image

The first thing to do will be to ensure the relationships between the three datasets is correct. Click the relationships button from the left navigation and update as needed:

image

All I had to change was to join PWAUsage to ActivePWAUsers by dragging Username from PWAUsage to Resource Name in ActivePWAUsers.

Now click back to the report view and we are ready to design the report. Now we have the datasets ready, in part 2 we will look at creating and designing the report, for now ensure you save the Power BI report for later when we look at designing the report.



Last logon time for the #ProjectOnline PWA users report #PPM #PowerBI #PowerQuery #Office365 #SharePoint #BI part 2

$
0
0

This is last post in this mini series for the last connect / last logon feature for Project Online, Microsoft’s PPM tool. In this post we will create the Power BI report. For those that missed the previous post see the links below, check these out first:

Firstly, capturing the last logon time: https://pwmather.wordpress.com/2016/09/30/want-to-capture-the-last-logon-time-for-the-projectonline-pwa-users-ppm-javascript-office365-sharepoint/

Secondly, part 1 of the report creation – setting up the dataset queries in preparation for this post: https://pwmather.wordpress.com/2016/10/10/last-logon-time-for-the-projectonline-pwa-users-report-ppm-powerbi-powerquery-office365-sharepoint-bi-part-1/

If you are continuing where we left off after part 1, open the saved Power BI report:

image

We have the blank canvas ready to add the data and visualisations. In the blog post we I cover creating the report below, Power BI has many options which we don’t cover here but all are intuitive so have a play!

Page 1 – PWAUsage:

image

Page 2 – PWAUserLastConnectDate:

image

Before we start, the report example I created uses a custom visual from the gallery for the Browser filter, this can be downloaded here: https://app.powerbi.com/visuals/show/ChicletSlicer1448559807354 or alternatively just use the default slicer visual like the one used for the Username filter.

Once the custom visual is imported (or choose to use the default slicer), expand the PWAUage dataset, this is the one we will use for this first page:

image

The first visual we will add is the bottom left pie chart for “Logon by Browser”, from the PWAUsage dataset select Browser and Id:

image

It defaults to the Table visualisation, change this to the Pie chart in the Visualizations pane:

image

Drag Id from Details into Values:

image

Drag the visual to the bottom left corner of the page. In the Visualizations settings pane, click the roller to access the settings, here you can change the settings as needed, for example I turned on the Legend and update the Title:

image

The next visualisation to add is the PWA Usage Details table, click anywhere on the page so no visualisations are selected then from the PWAUsage dataset select Browser, Logon Data and Username:

image

By default, the Logon Date will be broken down into the date hierarchy, change this in the visualisation settings, select Logon Date:

image

Move the visualisation to the bottom center of the page and click the Logon Date column to change the order by so the latest date is in the first row:

image

With the visualisation selected, click the roller in the visualisations settings pane to update the settings as needed. I updated the title, the grid settings, the text size for the data and changed the column order:

image

The next visualisation to add is the Hits Per User bar chart, click anywhere on the page so no visualisations are selected then from the PWAUsage dataset select Browser, Id and Username:

image

Change the visualisations from a table to a Stacked bar chart and move Id to Values and Browser to the Legend:

image

Move the visualisation to the center of the page and extend it to the right hand side of the page by dragging it:

image

The same process as before, update the visualisation settings as required by clicking the roller. I updated title, increased the size of the legend text and turned on data labels.

The next visualisation to add is the Last Refresh table, click anywhere on the page so no visualisations are selected then from the PWAUsage dataset select Last Refreshed, resize the visualisation and move it to the top right hand corner of the page:

image

Update the visualisation settings as required by clicking the roller. I added a title and increased the size of the data text:

image

Add a text box to the top of the page and enter the report title, change the settings as required:

image

The next visualisations to add are the cards showing the totals, the process is the same for all so I will only cover adding one in detail. Click anywhere on the page so no visualisations are selected then from the PWAUsage dataset select Id, change the visual from a table to a Card:

image

Move the visual to the bottom right corner of the page, resize it and update the settings as required, I added a title, removed the category label and increased the size of the data label:

image

Add 5 more cards, select the one already created then copy and paste it 5 times then place them in the correct location on the page as required:

image

The 5 additional visualisations need different settings applied as these will show the hits per Browser. To update them, select one so that the settings are visible. Drag Browser from the PWAUsage dataset to the Visual level filters setting:

image

Select IE:

image

Now update the title from Total Hits to Total IE Hits:

image

Repeat this for the other 4 cards but set one for Chrome, Edge, Firefox and Other so you end up with this:

image

The final visualisations to add to this page are the filters, with no visualisation selected, select Username from the PWAUsage dataset, change this from a table to a slicer and change the settings as required. I added a title, turned off the header row, turned of Select all and turned off single select:

image

Now repeat this but select Browser and change it to the Chiclet Slicer:

image

Change the settings as required, I added a title, turned off the header row and set it to have 2 columns:

 image

That is the first page set up, rename the page and it is completed:

image

So here you can see some useful stats around the PWA usage.

Click the + next to the first page to add a new page and rename this to PWAUserLastConnectDate:

image

Now expand the PWALastLogon dataset and select both fields, change the column order so Resource name is first then change the row order so the Resource Name is alphabetical:

image

Change the settings as needed, I added a title, turned off the horizontal grid line and increased the text size. Now add a text box to the page to add the report title:

image

On this page you can quickly see who has logged in and when plus who has never logged in since adding the JavaScript to the Project Web App homepage – unless of course they always by pass the PWA homepage or the pages where you added the JavaScript!

There are lots of options available, have a play and build great dashboards! If you used the Chiclet slicer here is a cool option to add:

image

It supports Image URLs, for this I updated the PWAUsage dataset and added a new column called Browser URL:

image

As you can see this is an if statement, based on the Browser a certain URL is set to display the correct logo for each browser, either save the images to a site you have access to or use images from the internet. Then on the report designer I set the Browser URL to be an Image URL on the Modelling tab:

image

Then update the Chiclet Slicer settings:

image

Once completed save and publish your report to Power BI or you can just use it from Power BI Desktop if needed.

Power BI offers great report visualisations, this is just a simple example, see what you can come up with!


Update #ProjectOnline Resource custom field values using #PowerShell with data from #AzureAD user attributes #PPM #Offce365 #ProjectServer #CSOM

$
0
0

This blog post will demonstrate a simple example of how Microsoft’s PPM tool, Project Online, can include / sync metadata from Azure AD user attributes to resource custom fields in Project Online. This example script will update the resource custom field “Job Title” on my test tenant with the data from the Azure AD user “Title” attribute.

This script example can be downloaded here: https://gallery.technet.microsoft.com/Update-Online-Resource-83137b7f

The script does require some additional modules / DLLs to work. Firstly you will need the Azure AD module installed, this can be downloaded here: http://connect.microsoft.com/site1164/Downloads/DownloadDetails.aspx?DownloadID=59185. You will also need the SharePoint Online and Project Online CSOM DLLs. The DLL’s used are from the NuGet package here: https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/16.1.5521.1200. There are later version available, check here: https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM. Download those as required. These modules can be seen here on line 3,5 and 14 in the example script, the location will need to be updated to reference the correct location for your SP / PS Online CSOM DLLs.

The user setting up the script will need to update the correct location to the DLLs required, the AD username, AD password, CSV file location, PWA instance URL, username, password and the custom field internal name. The PWA account specified will need edit access to all of the resources in PWA and the AD account will need access to read all the users in Azure AD. Ensure the variables have been updated correctly, placeholder values seen below:

image_thumb.png

In this example all users in the Azure AD will be exported, clearly if you have a large organisation it would be efficient the filter for only those users that exist in Project Online. The code matches users and resources based on the AD display name and PWA resource name when updating the resources in PWA.

To get the correct custom field internal ID I use the REST API, <PWA Site URL> + /_api/ProjectServer/CustomFields. Find the resource level custom field and copy the InternalName as seen below:

image_thumb.png

Once the PowerShell script has been updated, save it and it can then be tested on a test / non-production environment. Once executed in PowerShell, each resource found in the CSV file will be outputted as seen in the example below. In this example there are many AD users in the CSV export that do not exist in the PWA instance.

image_thumb.png

Checking in the Resource Center after the script has run you can see for the resources that exist in the CSV file created, the Job Title has been updated with the values found in Azure AD / the export CSV file:

image_thumb.png

The CSV file generated can be seen here:

image_thumb.png

This PowerShell script could be run on a schedule from a server on-prem or even in Azure / webjob. The script would just need access to save / access a CSV file and the DLLs / modules required. Fully test this script on a test / non-production PWA instance before running on a Production PWA instance.

The script is provided “As is” with no warranties etc.


#ProjectOnline new #OData resource path for Resource Demand #Reporting #BI #O365 #PPM

$
0
0

This post covers a new resource path in the OData endpoint for Microsoft’s PPM tool Project Online to give you the data you need for true resource demand for project assignments and resource engagement assignments. Before resource engagements were introduced, you could have assignments in the project plans or in the resource plans. For reporting, the data was available in the Assignments and the AssignmentTimephasedDataSet resource path feeds, normal project assignments data would be in the AssignmentWork field and resource plan work was in the AssignmentResourcePlanWork field. There was also an AssignmentCombinedWork in the AssignmentTimephasedDataSet feed that displayed the correct resource demand for the resource when you used both resource plans and project plans. The AssignmentCombinedWork field would take into account for the project resource utilisation calculation options. With the introduction of resource engagements there wasn’t a single field that gave you this same resource demand data – until now!

If you regularly view the Project OData service root URL (_api/ProjectData) you might have noticed a new feed, ResourceDemandTimephasedDataSet. This feed has the following properties:

image

The ResourcePlanUtilizationType type will display either a 0, 1 or 2. This is the property to indicate the project resource utilisation calculation options for the project. The enumeration for these values is below:

  • o = Project Plan
  • 1 = Resource Engagements
  • 2 = Project Plan Until

The ResourcePlanUtilizationDate property will only contain a date when the “Project Plan Until” resource utilisation calculation option is set.

This new ResourceDemandTimephasedDataSet feed will show the true resource demand for the project resource utilisation calculation option when using both project assignments and resource engagements. Some scenarios below show when data would and wouldn’t be included in this new feed:

Scenario 1: Project plan has resource assignments and resource engagements. The “Calculate Resource Utilization from:” option is set to Project Plan. In this scenario only the project assignments will be included in the ResourceDemandTimephasedDataSet feed.

Scenario 2: Project plan has resource assignments and resource engagements. The “Calculate Resource Utilization from:” option is set to Resource Engagements. In this scenario only the resource engagement assignments will be included in the ResourceDemandTimephasedDataSet feed.

Scenario 3: Project plan has resource assignments and resource engagements. The project assignments start from the 20th November to the 10th December 2016. The Resource engagements start from the 25th November to the 20th December 2016. The “Calculate Resource Utilization from:” option is set to Project Plan until with a date set to 1st December 2016. In this scenario only the project assignments will be included from the 20th November 2016 up to and including the 1st December 2016 and only resource engagement assignments from the 2nd December to 20th December 2016  will be included in the ResourceDemandTimephasedDataSet feed.

Example data can be seen below:

image

That makes things far easier for reporting resource demand, without this new feed you had to use the AssignmentTimephasedDataSet feed and the EngagementsTimephasedDataSet feed and join the datasets.


Security trim Project data in #ProjectOnline #PowerBI reports #PPM #Odata #REST #BI

$
0
0

The reporting API for Microsoft’s PPM solution – Project Online doesn’t filter the data based on the access model in PWA. For some organisations this can be problematic. In this blog post I show a simple report example to filter only projects and project milestones that I have access to in PWA.

In this example I have a very simple Power BI Report that is only using ODATA (_api/ProjectData), the Projects resource path to populate the Projects slicer / filter and the Tasks resource path to populate the Milestones for the selected Project:

image

I have access to a long list of projects (see the scroll bar on the slicer). Using the Audit Tracking project as an example, I can currently see this project in PWA as shown below:

image

I will change the access model so I get access denied to this project:

image

I only see these 6 projects projects in an unfiltered Project Center view:

image

Yet if I refresh my Power BI report I still see the full list as expected (the ODATA reporting API is not data security trimmed, you either access all data or none). One option is to use the REST (_api/ProjectServer) to filter the datasets that use the ODATA API as the source. The REST API is security trimmed to only show the data you have access to based on the access model in PWA. For example, I will get the list of Projects from REST to populate the Projects slicer / filter in Power BI, this only shows the projects I have access to in PWA. I have added a new data source to my simple Power BI report for the REST API:

image

The join is then set up on Id from the Projects REST dataset to the ProjectId in the Milestones OData dataset:

image

I now switch my slicer / filter to use the Projects – REST dataset

image

As you can see the list of projects matches what I see in the Project Center but there is a also a blank option there. The blank value is for rows it can’t join with on the Milestone ODATA dataset, these are the projects I no longer have permission to access in PWA! To resolve this, select the page and add a report level filter like below where Name is not blank:

image

This report filter will not show any blank values for the Name field on any visualisation in the report:

image

The blank value is now removed. My data is now security trimmed to match what I have access to in PWA! Obviously if you know what you are doing you can just undo all of this and see all data but for some it might be a workable solution! You can do the same with Resources too.


Security trim Project data in #ProjectOnline #PowerBI #Excel #PowerQuery reports part 2 #PPM #Odata #REST #BI

$
0
0

Further to my last post on an example method to security trim the Project data in a Power BI report for Microsoft’s Project Online PPM tool, another option is to merge the datasets / tables. If you didn’t see the first post, a link can be found below:

https://pwmather.wordpress.com/2016/12/09/security-trim-project-data-in-projectonline-powerbi-reports-ppm-odata-rest-bi/

For this post, I have the same two ODATA / REST queries used, the ODATA one for the Milestones (/_api/ProjectData/Tasks()?$Filter=TaskIsMilestone eq true) which is not security trimmed and the REST one for the Projects (/_api/ProjectServer/Projects) which is security trimmed. With both of these datasets loaded into the Power BI Query Editor, select the Milestone dataset and click Merge from the Home ribbon tab and set the following:

image

This is merging my two tables based on ProjectId from the Milestone dataset and Id from the Projects dataset using a Left Outer join. You can see from that screen shot that I don’t actually have access to the Agile Product Development project in PWA as it is not returned in the list of projects in the REST dataset. Clicking OK will show a NewColumn:

image

Click expand and select Name:

image

That returns nulls for the project names you do not have access to:

image

These rows should be filtered out, click the Name column heading dropdown and de-select null:

image

Click OK and the Milestone dataset table will match the list of projects you have access to in PWA – the rows with nulls in the Name column will be removed from the table. I then renamed the Milestones – ODATA dataset to Filtered Milestones:

image

Click Close & Apply then the load a couple of visualisations on to the report and you can see that now the data is security trimmed as part of the query and not in the report:

image

In this simple example there is no need for the report level filter to remove the nulls at the report level like there was in the previous post. The same applies as with the previous post, if your users know Power BI  / Power Query they can easily undo all of this and access all the data but this might be an option to explore.


#ProjectOnline #PPM #PowerBI Report Pack #BI #Reporting #PowerQuery #DAX #Office365

$
0
0

Over the holiday period I started to build a Power BI Report Pack for Microsoft’s Office 365 PPM tool Project Online. I have made this publically available to download using the link below:

https://gallery.technet.microsoft.com/Online-Power-BI-Report-de969b81

This Report Pack currently consists of 5 reports but will be extended in the near future with additional reports and / or changes to existing reports. In this release there are 5 reports, these can be seen below:

Portfolio Report:

image

Issues Report:

image

Risks Report:

image

Project Report:

image

Resource Demand Report:

image

These reports only use default intrinsic fields so it should work for all Project Online deployments.

Once downloaded, the report pack data sources will need to be updated to point to your target Project Online PWA instance. To do this you will need the Power BI desktop tool which is a free download here: https://powerbi.microsoft.com/en-us/desktop/

Open the downloaded PWMatherProjectOnlinePowerBIReportPack.pbix file in Power BI Desktop and follow the steps below to point the data sources to your Project Online PWA instance:

  • Home > Edit Queries > Edit Parameters
  • On the “Enter Parameters” window update the PWAURLParameter value with the correct PWA URL and click OK.
  • Click Apply Changes on the yellow status bar . You might be prompted to sign in if you haven’t before, if so, see the details below
  • If prompt with the authentication options. Select Organizational account then click Sign In.
  • Enter credentials for an account that has access to the OData Reporting API on the target PWA instance
  • Then click Connect
  • A Privacy levels window may appear, select Organisational then click Save.
  • The Apply Query Changes window will appear as the data is refreshed.
  • Once the refresh window disappears the reports will update to show the data from the target PWA instance. Click the Project Report tab and change the project filter from Project 1 to a project from your PWA instance. Save the file.

This file can either be emailed around to colleagues with details on how to update the credentials to their own or what would be better is to publish the report to your Power BI workspace can create an organisational content pack that others can add to their Power BI workspace. If the Power BI organisational content pack is the chosen option, you might want to create a Dashboard first.

In a follow up blog post to this one, I will touch on creating a dashboard once the report is published to my Power BI workspace then create an organisation content pack.

Enjoy, I hope you like it Smile


#ProjectOnline #PPM #PowerBI Report Pack Publish #BI #Reporting #PowerQuery #DAX #Office365

$
0
0

Following on from my recent Project Online Power BI report pack post / release, this post looks at publishing the Report pack to the Power BI service, creating an example Dashboard and then finally creating an organisational content pack. For those of you that missed the previous post, please find a link below:

https://pwmather.wordpress.com/2017/01/03/projectonline-ppm-powerbi-report-pack-bi-reporting-powerquery-dax-office365/

Open up the report pack in Power BI Desktop as seen below:

image

Click the Publish button on the Home ribbon or Click File > Publish > Publish to Power BI:

image

Sign in to Power BI if prompted to do so. If you have more than workspace in the Power BI Service it will prompt you to select the destination. Select the destination “My Workspace” as required and click Select, you will then see the following:

image

Once completed you will see:

image

Click Got it to close the window. Open up the browser and navigate to https://app.powerbi.com. You will then see the published report under the Reports heading in My Workspace and also the report dataset under the Datasets heading. Click the report name under the reports heading and the published report will load:

image

You can then schedule a refresh of the data. Click the ellipsis next to the report under the Datasets heading:

image

Click Schedule Refresh. You will then see that you need to enter the credentials used for each OData endpoint used in the reports:

image

Click Edit credentials and select OAuth2 on the window that opens:

image

Click Sign In then enter the credentials / select the account as required. Repeat this for all of the OData connections.

**********NOTE: There is currently an issue with updating the credentials in Power BI when the Project Online OData URL contains [], you will probably receive the following message “Failed to update data source credentials.”

image

I’m not sure when this will be resolved. Alternatively, if your PWA site default language is English you could update all of the report queries to remove the /[en-US] from the OData URL. To do this, click Edit Queries > Edit Queries to open the Query Editor. Select a query from the Queries menu on the left then click Advanced Editor. This will open the Advanced Editor window. In Source remove /[en-US] from the OData URL and click Done. Repeat this for all queries that contain the PWA OData URL, once completed click Close & Apply > Close & Apply. Then follow the steps to publish the report to the Power BI service. **********

Once the credentials are all updated and correct, expand Schedule Refresh and enable this as required:

image

Click Apply.

Now click the report name under the Reports heading. From here you can pin visualizations on to a dashboard. See an example below:

image

Click the pin in the top right corner of the visualization then click New Dashboard and give the dashboard a name:

image

Click Pin.

Repeat this for other visualizations on other pages in the report as required but on the Pin to dashboard menu select Existing dashboard and select the dashboard you just created:

image

Once you have added all the visualizations you want, click on the new dashboard from the Dashboards heading:

image 

Now you could create the organisational content pack to make this report and dashboard available to others in the organisation. This does require the Power BI Pro license.

Click the Settings Cog in the top right corner:

image

Click Create content pack:

image

Complete the form as required and upload an image if needed then select your dashboard – this will automatically include the correct report and dataset. Once completed, click Publish. You will then see a success message in the top right corner:

image

Other users with a Power BI Pro license will then be able to consume the content pack once logged into their Power BI workspace by clicking Get Data > My Organization > Get:

image

Click Get it now. It will then add the content pack to their workspace.

Before creating the content pack it would be best to wait until the data source credentials issue is resolved in the Power BI service so that the data in the content pack will update on the schedule. Or alternatively, if your PWA site default language is English, remove the /[en-US] from each dataset query as described in this post.



#ProjectOnline #PowerBI Currency Conversion Project Cost Report Part 1 #PPM #BI #Office365

$
0
0

Whilst Microsoft’s Office 365 PPM tool Project Online supports projects using different currencies, there is no conversion based on a currency rate. The project has a currency set and the correct currency symbol is displayed for cost data. In the reports and views there is no conversion based on an exchange rate between currencies. This blog post shows a simple way using Power BI to have a report calculate the project cost based on the defined currency as seen below:

image

In the steps below we walkthrough how to set up this simple example. Firstly in the Power BI Desktop client add the Projects OData feed:

  • Click Get Data > OData Feed and add the Odata URL for your PWA site: <PWASite>/_api/ProjectData/Projects and click OK
  • Click Edit to launch the Power BI Query Editor then click Choose Columns and uncheck Select All to deselect all the columns then select at least ProjectName, ProjectCost and  ProjectType and click OK
  • Click the dropdown menu on the ProjectType column and uncheck 7.
  • Change the table from Query1 to Projects

The Projects table is now completed.

Now we need to create a table for the different currencies and rates we want to use.

  • Click Enter Data to launch the Create Table window and create the columns “Currency” and “Rate”. Enter the data as needed and call the table Currency then click OK. I created the following:
  • image
  • On my PWA instance, GBP is the currency used for this demo / blog post so this is set to 1.00 then I have a example currencies / rates for Euros and USD

The Currency table is now completed. Click Close & Apply > Close & Apply. Create a table with the project data on then a slicer for the currency values from the currency table like below:

image

Now right click on the Projects table in the fields pane and click New measure:

image

Enter the following in the formula / query bar:

image

This gets the selected currency from our slicer as a value in the Projects table. This is then used in the next new measure we create. Right click on the Projects table in the fields pane and click New measure again:

image

Enter the following in the formula / query bar:

image

Now add the ProjectCost_Converted field into the table with the project data and change the slicer selection and notice the ProjectCost_Converted values change, as seen below for Euros (EUR):

image

For Pounds (GBP):

image

For US Dollars (USD):

image

This simple version doesn’t take into account for projects that span multiple years where different rates will apply, it could be extended to support that though. In part 2 later this week we look at pre-calculating the project cost so that the portfolio cost is correct based on the currency defined by the project, look out for that towards the end of the week.


#ProjectOnline #PowerBI Currency Conversion Project Cost Report Part 2 #PPM #BI #Office365 #PowerQuery

$
0
0

Following on from my first post on currency conversion found below:

https://pwmather.wordpress.com/2017/03/06/projectonline-powerbi-currency-conversion-project-cost-report-part-1-ppm-bi-office365/

This post walks through a different option for working with multiple currencies. This post will create a similar report as seen below:

image

This report enables the project cost to be calculated based on project currency and rate for the year. In this example I have two projects that should be reporting costs in Euros,the PWA site is set up using Pounds (GBP) as are the resources that are used on those projects. So for those two projects in PWA the projects display a EUR symbol but there is no conversion to calculate the Euro rate from the GBP resource rates used.

In the steps below we walkthrough how to set up this example. Firstly in the Power BI Desktop client add the Projects OData feed:

  • Click Get Data > OData Feed and add the Odata URL for your PWA site: <PWASite>/_api/ProjectData/Projects and click OK
  • Click Edit to launch the Power BI Query Editor then click Choose Columns and uncheck Select All to deselect all the columns then select at least ProjectId, ProjectName, ProjectCurrency and ProjectType and click OK
  • Click the dropdown menu on the ProjectType column and uncheck 7.
  • Change the table from Query1 to Projects

The Projects table is now completed.

Now we need to create a currency table, still within the Query Editor see these steps:

  • Click Enter Data and create 4 columns, Currency, Master, Date and Rate then enter the data as required and click OK, for the purpose of the blog post here is the data I entered:
  • image
  • On my PWA instance, GBP is the default currency used for this demo / blog post so this is set to 1.00 then I have a example currencies / rates for Euros. The project data in my PWA instance ranges from 2016 to 2018 so I need rates to cover those years
  • Click Add Column > Custom and enter the name “Year” with the formula of  Column Date.Year([Date]) and click OK
  • Right click on Master column and change the type to True / False
  • Change the table name to CurrencyData

The currency table is now completed.

Now we need to get the Task Timephased data, still within the Query Editor opened from creating the currency table table, see these steps:

  • New Source > OData Feed and add the OData URL for your PWA site: <PWASite>/_api/ProjectData/TaskTimephasedDataSet and click OK then OK again
  • Click Choose Columns and uncheck Select All to deselect all the columns then select at least ProjectId, TaskCost, TaskIsProjectSummary and TimeByDay and click OK
  • Change the table from Query2 to TaskData
  • Click the dropdown menu on the TaskCost column, if it states “List may be incomplete” click load more and then uncheck 0. In the advanced editor check the filter is ([TaskCost] <> 0)
  • Click the dropdown menu on the TaskIsProjectSummary column and uncheck false
  • Click Add Column > Custom Column and enter the name “Year” with the formula of Date.Year([TimeByDay]) and click OK
  • Click Merge Queries > Merge Queries, in the Merge window select Projects then select ProjectId in the TaskData table and ProjectId in Projects table:
  • image
  • Click OK
  • In the New Column column heading, click the Expand button, select just ProjectCurrency and uncheck the use original column name option:
  • image
  • Click OK
  • Click Merge Queries > Merge Queries, in the Merge window select CurrencyData then  hold the Ctrl key down and click Year and then ProjectCurrency in the TaskData table and then Year and then Currency in the CurrencyData table like below:
  • image
  • Click OK
  • In the New Column column heading, click the Expand button, select just Rate and uncheck the use original column name option:
  • image
  • Click OK
  • Click Add Custom > Custom Column and enter the name “TaskCost_Converted” with the formula of [TaskCost] * [Rate] and click OK
  • Right Click the column heading for TaskCost_Converted column and click Change Type > Decimal Number:
  • image 

The TaskData table is now complete. Click Close & Apply > Close & Apply. Check the table relationships are correct, it should just be Projects linked to TaskData using ProjectId.

Now design the report as required. For the purpose of this blog post I created one table with the following fields:

image

Ensure TaskCost and TaskCost_Converted fields are set to Sum and all other fields on the table are set to Don’t summarize. If you need to work with multiple currencies in reports, try this out and extend it for your specific needs.


#ProjectOnline issue with #PowerBI and the #OData URL with [] now fixed #PPM #BI #PMOT

$
0
0

Just a quick post to highlight that the issue with setting the credentials for a Project Online OData connection that contained the [] for localisation is now fixed in the Power BI Service. If your OData URL contained the [] to specify the OData localisation you couldn’t set the credentials in the Power BI Service for the data refresh, you would see the error below.

For the details on the error see a previous post of mine, see the Note halfway down the post: https://pwmather.wordpress.com/2017/02/10/projectonline-ppm-powerbi-report-pack-publish-bi-reporting-powerquery-dax-office365/

It’s good to finally have this issue fixed in Power BI. The Project Online Power BI report pack I created will now refresh / work as expected in the Power BI Service: https://pwmather.wordpress.com/2017/01/03/projectonline-ppm-powerbi-report-pack-bi-reporting-powerquery-dax-office365/


Want to report across #ProjectOnline Project Sites for #SharePoint list data? #PPM #JavaScript #Office365 #REST #OData

$
0
0

For those of you that are familiar with Project Server or Project Online, only the default lists and default columns from those lists are synchronised to the database reporting schema. So Project API’s like the OData API (_api/ProjectData) only have data for Risks / Issues and the default columns etc. I have published an example solution starter script that will allow data from any list on the project site to be used.

This is a supporting blog post for the JavaScript solution starter I have published to the Microsoft Gallery, it can be downloaded here:

https://gallery.technet.microsoft.com/Report-on-Online-list-data-f5cbf73f

This solution starter should be updated before production use to include the correct data you want, improve error handling, support the REST API pagination etc. This example uses the Issues list and some example default columns from the Issues list but it can easily be updated to use a custom list on the Project Sites.

There are comments in the script to help update the script for your target Project Site list and columns. Once the script is updated, upload it to a library on the target PWA site. Create a new page on the PWA site to host the JavaScript file. Then add a content editor web part on the new page and reference the JavaScript file, for example:

image

Once added it will look like this (this in on one of my MOD demo tenants):

image

The select menu will contain a list of EPTs:

image

Changing the selection to another EPT will load a SharePoint modal pop up whilst the data loads:

image

If an EPT is selected that doesn’t contain any list items the following will be displayed:

image

There is example conditional formatting on the table:

image

The list item title is a clickable hyper link that will open the list item in a new window:

image

Fully test this on a non-production PWA instance before using in Production, the script is provided As Is with no warranties etc. Try it out and let me know what you think.


Update for script to report across #ProjectOnline Project Sites for #SharePoint list data #PPM #JavaScript #Office365 #REST #OData

$
0
0

I have made a quick change to the example solution starter script to fix a common encoding issue with the EPT names. For example, if your EPT name is “R & D”, the original example solution starter script wouldn’t handle this when querying the Project OData API. It would pass in R & D when querying the OData API but the OData API call fails as it should use R %26 D. I have updated the solution starter code to handle this and encode the EPT name before querying the Project OData API. The solution starter code can be downloaded here:

https://gallery.technet.microsoft.com/Report-on-Online-list-data-f5cbf73f

If you didn’t seen the original post or solution start script before, see the post below:

https://pwmather.wordpress.com/2017/05/05/want-to-report-across-projectonline-project-sites-for-sharepoint-list-data-ppm-javascript-office365-rest-odata/

This script is still a solution starter and should be updated for production use to include the correct data you want, improve error handling, support the REST API pagination, split out HTML, CSS and JavaScript etc.


Viewing all 104 articles
Browse latest View live