Getting started with #ProjectOnline Part 9 #PS2013 #Office365 #Project #PPM #SharePointOnline #PM #SP2013

Paul Mather
I am a Project Server and SharePoint consultant but my main focus currently is around Project Server.
I have been working with Project Server for nearly five years since 2007 for a Microsoft Gold Certified Partner in the UK, I have also been awared with the Microsoft Community Contributor Award 2011.
I am also a certified Prince2 Practitioner.

This article has been cross posted from pwmather.wordpress.com (original article)

This is part 9 of the “Getting started with Project Online” series and the final part. This should have been posted months ago but I didn’t realise I missed it, sorry for the delay! In this post we will look at the reporting options for Project Online, specifically Project ODATA and Excel / Excel Web App. The focus will be on the ODATA queries rather than the presentation layer. The post will also touch on other reporting options for Project Online. In the last post we looked at the different places in PWA where data can be viewed and edited. If you missed the last post, see the link below:

http://bit.ly/OuohNu

Firstly a bit of background for Project ODATA. The Project Online / Project Server ODATA feed was introduced by Microsoft to act as an access point to the Reporting schema in the Project Web App database. For those of you who are familiar with Project Server (On-prem) most of the reports would have read data directly from the Reporting tables / views in the Project Server database using T-SQL. When Project Online was introduced as a cloud based solution, direct database access was not possible for many reasons but security / access being the main two. The answer was to build an API that accessed this data, that is where the ODATA feeds come in. ODATA is an open data protocol that provides HTTP/REST access to the Project Online reporting database schema. The Project Online ODATA feed is accessed via the PWA URL, append /_api/ProjectData to the end of the URL. For example http://Server/PWAName/_api/ProjectData – this is known as the service root URI (Uniform Resource Identifier). Project ODATA is available for Project Server 2013 (On-Prem) but you typically wouldn’t use ODATA on-prem for reports as you have the SQL server access. Also Excel reports that use ODATA on-prem will not refresh in Excel Services, they will only refresh the data in Excel. The ODATA feed is permission controlled, to access this API the user will need “Access Project Server Reporting Service” – this should be granted via a Project Server security group / SharePoint security group depending on what permission mode your PWA instance is using.

When building new reports always start in Internet Explorer (or a browser of your choice Smile) to fully test that the ODATA URLs work before taking these to Excel. Now we will move to Internet Explorer to see the data. Starting at the root /_api/ProjectData you will see all of the possible endpoints available:

image

If the user sees the following:

image

Disable the “Turn on feed reading view” in Internet Explorer.

To see all of the properties (fields etc.) available for each endpoint, use the metadata option. Append /$metadata to the URL /_api/ProjectData/$metadata:

image

Using these two URLs will help you build the URLs you need to meet the report requirements.

When querying any data source it is best practice to only return the data you need, filter out the data that is not required. This will make the report more responsive for the end user. The same applies with ODATA. Don’t just add the all of the ODATA endpoints (tables) to Excel and filter in Excel as this will not be efficient. Using this approach, Excel will download all of the data to the client then filter after, you want to filter at the source before the data is in Excel. The key options to use for optimising the ODATA queries are $select and $filter query options. The select query option will be used to select the properties (fields) that you want to use, an example can be seen below:

/_api/Projectdata/Projects?$select=ProjectName,ProjectId,ProjectCost,ProjectWork

To see what this does, see below:

With a select query option:

image

Without a select query option:

image

As you can see, using the select query option less information is returned, you only get the information you want rather than all the details that you probably don’t need. Depending on how much data you have in the PWA instance you will notice how much quicker IE returns the data when using the select query option compared to returning all properties. The next query option to look at is the $filter option. This will be used to filter the data returned. Before we look at the filter query option, there is something else to show for filtering. Some of the ODATA endpoints accept parameters, using the Projects() feed as an example. When loading the Projects() data you will see example URLs to show you how to access data for that particular project, see the line highlighted below:

image

So using /_api/Projectdata/Projects(guid’f68e1341-50b0-e311-942e-00155d1521a1′) only data for that particular project will be returned. You would replace the GUID for the correct Project GUID in your PWA instance:

image

That can then be combined with the $select query option:

/_api/Projectdata/Projects(guid’f68e1341-50b0-e311-942e-00155d1521a1′)?$select=ProjectName,ProjectId,ProjectCost,ProjectWork

image

To filter ODATA queries, the filter query option is used. A common filter would be:

/_api/Projectdata/Projects()?$filter=ProjectType ne 7

This would filter out the timesheet project row. Another examples would be:

/_api/Projectdata/Projects()?$filter=ProjectType ne 7 and ProjectCost gt 15000

This would filter out the timesheet row project but also projects where the cost was less than £15000:

image

For demo purposes so that you could see the projects and select was also added:

/_api/Projectdata/Projects()?$filter=ProjectType ne 7 and ProjectCost gt 15000&$select=ProjectName,ProjectId,ProjectCost,ProjectWork

There are many functions and operators to create the filter logic, see the filter sections on the URLs below for examples:

http://bit.ly/1yw2RAZhttp://bit.ly/1nNTYzc

There are also other query options available to use such as $orderby and $top, you will find details on those in the links above also. Some Project specific examples are below:

/_api/Projectdata/Projects()?$orderby=ProjectWork

/_api/Projectdata/Projects()?$top=5&$orderby=ProjectCost desc

Project ODATA also has navigation properties, for example, you might want to get all risks associated with a particular project:

/_api/Projectdata/Projects(guid’78732475-eaf5-e311-be98-4c809328175b’)/Risks

image

That returns all of the risk properties (fields), to only select the properties you need use the select option:

/_api/Projectdata/Projects(guid’78732475-eaf5-e311-be98-4c809328175b’)/Risks?$select=ProjectId,ProjectName,RiskId,Title,Category,AssignedToResource

image

That should be enough information to get you started on building efficient ODATA queries, for more details see:

http://bit.ly/1yw2SF0
http://bit.ly/1yw2RAZ
http://bit.ly/1nNTXeO
http://bit.ly/1yw2SF5
http://bit.ly/1nNTXv8

Once you are happy that the ODATA queries are efficient as possible and returning the correct data in IE, these can be added to Excel so that you can generate your data models, relationships and reports. I wont cover that part in this post as it has been covered before here:

http://bit.ly/OuoiRB 

Another example is here:

http://bit.ly/1dq1BDq

As well as using Excel for the reports there are other options, for example you could use SSIS to export the data to a SQL database then use SSRS:

http://bit.ly/1jIsq9V

Or you could create reports in SharePoint/PWA pages using JavaScript, some examples here:

http://bit.ly/1hDi3rP

http://bit.ly/1skZxDW

http://bit.ly/1qnKnyI

That brings us to an end of the getting started series, there will be a summary post / quick reference guide following this.

I hope this has proved beneficial for those that are just getting started with Project Online Smile

Categories: Paul Mather, Work Tags:

#ProjectServer and #SharePoint 2013 July 2014 Cumulative Update #PS2013 #SP2013 #MSProject

Paul Mather
I am a Project Server and SharePoint consultant but my main focus currently is around Project Server.
I have been working with Project Server for nearly five years since 2007 for a Microsoft Gold Certified Partner in the UK, I have also been awared with the Microsoft Community Contributor Award 2011.
I am also a certified Prince2 Practitioner.

This article has been cross posted from pwmather.wordpress.com (original article)

The Office 2013 products will now get monthly cumulative updates, the Office 2013 July 2014 Cumulative Updates are now available, please see the links below:

http://bit.ly/1snYFCZ

Project Server 2013 July 2014 Server Roll up package:
http://bit.ly/1snYDuL

Project Server 2013 July 2014 CU:
http://bit.ly/U9NfUc

Project 2013 July 2014 CU:
http://bit.ly/1snYFTg

Also worth noting, if you haven’t done so already, install the March 2013 Public update: http://bit.ly/1lR8IgK or Service Pack 1: http://bit.ly/1snYFTh if installing the July 2014 CU.

As always, test these updates on a replica test environment before deploying to production.

For more details see the following:

http://bit.ly/U9Ngro

http://bit.ly/U9NfUg

Categories: Paul Mather, Work Tags:

#ProjectServer and #SharePoint 2010 / 2013 June 2014 Cumulative Update #PS2010 #SP2010 #PS2013 #SP2013 #MSProject

Paul Mather
I am a Project Server and SharePoint consultant but my main focus currently is around Project Server.
I have been working with Project Server for nearly five years since 2007 for a Microsoft Gold Certified Partner in the UK, I have also been awared with the Microsoft Community Contributor Award 2011.
I am also a certified Prince2 Practitioner.

This article has been cross posted from pwmather.wordpress.com (original article)

The Office 2013 June 2014 Cumulative Updates are now available, please see the links below:

http://bit.ly/1lpfwAX 

Project Server 2013 June 2014 Server Roll up package:
http://bit.ly/1mL5VBn

Project Server 2013 June 2014 CU:
http://bit.ly/1lpfuJ4 & http://bit.ly/1mL5W8d

Project 2013 June 2014 CU:
http://bit.ly/1lpfwRh

Also worth noting, if you haven’t done so already, install the March 2013 Public update: http://bit.ly/1lR8IgK if installing the June 2014 CU.

The Office 2010 June 2014 Cumulative Updates are now available, please see the links below:

http://bit.ly/1mL5W8f

Project Server 2010 June 2014 Server Roll up package:
http://bit.ly/1mL5W8h

Project Server 2010 June 2014 CU:
**** No individual Project Server 2010 packages for June 2014 ***

Project 2010 June 2014 CU:
http://bit.ly/1lpfwRn
Remember SP1 or SP2 is a pre-requisite for the Office 2010 June 2014 CUs.

As always, test these updates on a replica test environment before deploying to production.

For more details see the following webcast on June 24th 2014:

http://bit.ly/1mL5VRG

Categories: Paul Mather, Work Tags:

Supporting post for #ProjectServer 2013/ #ProjectOnline project fields displayed on project site #JavaScript #jQuery

Paul Mather
I am a Project Server and SharePoint consultant but my main focus currently is around Project Server.
I have been working with Project Server for nearly five years since 2007 for a Microsoft Gold Certified Partner in the UK, I have also been awared with the Microsoft Community Contributor Award 2011.
I am also a certified Prince2 Practitioner.

This article has been cross posted from pwmather.wordpress.com (original article)

As mentioned when I published the JavaScript code that displays project level information on the project site, here is the supporting blog post. The quick post that references the script is below:

http://bit.ly/1p1Se4p

The script can be downloaded from the Microsoft Script Gallery below:

http://bit.ly/1wWzbNv

Firstly, as with the other JavaScript files I have published you will need jQuery:

jquery-1.8.3.min.js – jQuery download

A later version of this library may work but this was the one I used / tested with.

Upload this library to your PWA site collection then update the script file with the correct location. I uploaded this file to the site assets library as you can see in the code below:

image

Like the Project Milestone JavaScript file I wrote, you will also notice the reference to the default SharePoint JS files and the two references to the Data tables CSS and JS files. I just referenced the hosted files but you could download these and host them yourself – if hosting the data table files yourself you will need more than just the two files reference here. For a production environment I would probably recommend downloading and hosting the jQuery data tables locally.

Once the script has been downloaded you will notice that I have used 6 default project level fields and 2 custom fields. The two custom fields are Programme and RAGPMStatus. These can be seen on the select below:

image

Programme and RAGPMStatus are custom to my test environment but I added these to show that default and custom project level fields can easily be added. To get the script to work you can either add these fields to your configuration – probably fine for a test environment, or modify the script to remove the custom fields or add your own. Here I will assume you want to add 2 of your own project level custom fields. Below are parts of the script that will need to be modified to accept your own 2 project level custom fields. For simplicity we will assume that the two new fields are Project Location and Project RAG. Project RAG is associated to a lookup table with the following 3 values: Green, Amber, Red.

Starting from the top of the script file here are all the places you will need to modify to get the two new fields in the code.

  • In the table, update the two column headers, replace Programme with Project Location and replace RAG Status with Project RAG.
  • Update the select query, replace Programme with ProjectLocation and replace RAGPMStatus with ProjectRAG.
  • On the first if statement replace Programme with ProjectLocation and replace RAGPMStatus with ProjectRAG.
  • In the data table processing section, replace Programme with ProjectLocation and replace RAGPMStatus with ProjectRAG for the aoColumns parameter
  • In the data table processing section for the aoColumnDefs parameter update the fnCreatedCell if statement with the correct lookup table values for the Project RAG field. So in this example replace On schedule [Green] with Green and Slipping but can mitigate [Amber] with Amber. You might also want to change the cell and font colors.

Once updated, add the script to your PWA site collection, I uploaded this to the Style Library. Then add a content editor web part to the project site and reference the uploaded project information JS file. If you want this to be on all project sites then you would need to create a new project site template with the JS file added.

Once added to a project site the project information will be visible for that project:

image

Categories: Paul Mather, Work Tags:

SharePoint 2010 Designer Issues

June 8, 2014 Leave a comment

While it is always good to work with the latest and greatest versions of everything, there are still solutions running on 2010 that need maintenance.

So recently I found myself having to update a SharePoint 2010 solution that was made up of an SPD2010 workflow, a content type and library template. I had to update the content type, workflow and library template with some new and updated columns.

The library template was using a custom Edit form with some of the  content type fields hidden, so I had to update the Edit form to show some new fields. To add a new field to a form you would normally edit the form table to and new rows where needed then select the field from the data source and select as ‘Insert as List Form Field’, unfortunately this option was no available; updating an edited form seems to be a common problem with SPD2010, as the same issue is outlined here.

http://social.msdn.microsoft.com/Forums/sharepoint/en-US/ac032a6b-5195-4ecf-a0ab-6e0117fd1a77/insert-as-list-form-field-not-available-on-data-source-details-panel-when-editing-editformaspx?forum=sharepointcustomizationprevious

My solution was as follows:

Select a field in the form where I wanted the new field and insert a new row into the form table, copy an existing control and insert into the new row, using the Common FormField Tasks control select the new control from the Data Field picker

 

picture2

Now Pick ‘List Form Field’ from the Format as  picker

 

picture1

In the Quick Tag Selector bar the new field will be called <SharePoint:FormField#FormField1>

picture3

From the Quick Control select Edit Tag…

picture4

The Tag code is now displayed with the ID value of  “FormField1

picture5

Now check the other fields and find the control with the highest ID value and set the new tag value the be higher in the format “ff<id>{$Pos}”, ensure both references to the ID value are set

picture7

If the ID numbering is incorrect a duplicate

picture6

Once completed the new control will be available on the form.

Categories: Work

CPS’ #ProjectServer Plus solution is an Award Finalist at the #Microsoft Partner Awards #WPC14 #ProjectOnline

Paul Mather
I am a Project Server and SharePoint consultant but my main focus currently is around Project Server.
I have been working with Project Server for nearly five years since 2007 for a Microsoft Gold Certified Partner in the UK, I have also been awared with the Microsoft Community Contributor Award 2011.
I am also a certified Prince2 Practitioner.

This article has been cross posted from pwmather.wordpress.com (original article)

I am pleased to announce that CPS’s Project Server Plus solution was an Award Finalist in the recent Microsoft Partner of the Year Awards 2014 in the Project and Portfolio Management Competency.

clip_image002

http://bit.ly/1hvTq0n 

For a full list of winners and finalists see:

http://bit.ly/1hVYNAB

Categories: Paul Mather, Work Tags:

#ProjectServer 2013 / #ProjectOnline project fields displayed on project site #JavaScript #jQuery

Paul Mather
I am a Project Server and SharePoint consultant but my main focus currently is around Project Server.
I have been working with Project Server for nearly five years since 2007 for a Microsoft Gold Certified Partner in the UK, I have also been awared with the Microsoft Community Contributor Award 2011.
I am also a certified Prince2 Practitioner.

This article has been cross posted from pwmather.wordpress.com (original article)

Just a quick post to highlight a new script I have published this evening. This displays project fields on the associated project site. A full blog post will be coming soon that explains how to use the script and what would need modifying for your environment (custom fields etc.). The script can be downloaded below:

http://bit.ly/1wWzbNv

A screen shot of the output is below:

image

The RAG Status background colour and font colour update based on the custom field value.

Categories: Paul Mather, Work Tags:
Follow

Get every new post delivered to your Inbox.

Join 1,663 other followers

%d bloggers like this: