#ProjectOnline / #ProjectServer #Project site provisioning using #Office365 PnP remote provisioning #SharePoint #PowerShell

May 4, 2016 at 4:20 pm | Posted in .Net, Add-on, Administration, App, Configuration, Customisation, Functionality, Information, Installation | 1 Comment
Tags: , , , , , ,

For many years now Project Server deployments have used Project Sites or known as Project Workspaces before Project Server 2010. Typically most deployments have custom requirements for the sites so custom site templates were created from a site created using the default Project Site template. The updated custom site template was then linked to the Enterprise Project Type so that new projects created used the new site template. The biggest issue with this approach was that if you wanted to update the site template later on down the line all of the existing project sites would either need manually updating or writing code to traverse through all the existing sites and make the changes. With the new online world in Office 365 there are other things to think about too. If you create a new custom site template based on the default Project Site template then Microsoft roll out a new feature in the base Project Site template – your new project sites wont get that change either. This is where the PnP remote provisioning engine is great. For a while now – at least a year or 2 I think, the best practise is to stick with the default site templates Microsoft provide, so the Project Site template for example. The Enterprise Project Types should use the default Project Site template so each new project gets a site created using the default site template. But what about my custom lists, or columns or views I hear you ask – deploy the custom artefacts once the site is created from the default site template. In this post I will give you a very quick introduction to the Office 355 PnP Remote Provisioning engine which is part of the PnP core component. PnP, known as Patterns and Practices – details can be seen here: http://dev.office.com/patterns-and-practices. This will enable you to deploy your custom site artefacts.

For this example we will look at the PowerShell variant: https://github.com/OfficeDev/PnP-PowerShell but is also available with managed code. To get started with the PowerShell version follow the steps in the GitHub link to get the components installed. I have created a project / project site using the default Project Site template and added a new list called Change Requests that is linked to a Site Collection Content type in my root PWA site collection:

image

This list has two views:

image

I have also updated the default Risks list to use custom content type and included one new column:

image

I have added my new column to the All Items view:

image

This is the new site template I want to use. Typically this is where you would save as a template but not for this example.

Once the PnP components are installed on your machine, connect to the source project site using this command – update the Url for your site:

Connect-SPOnline –Url <source site URL> 

image

Enter credentials if prompted to do so.

Now use the following command to extract the site:

Get-SPOProvisioningTemplate -Out C:\Temp\PnP\NewTemplate.xml

image

This process will extract the site definition and create an XML file in the specified location:

image

At this point the XML should be modified to remove unneeded properties. For example, as this project site is linked to a project already the property bag will contain certain properties referenced to the source site – I don’t want to overwrite these settings on my target sites so I removed the property bag entries highlighted below.

image

I have also removed properties for configuration I don’t need to update, other lists etc.  See an example below, I have only left the two lists I have added / updated:

image

I don’t cover this here but I used Visual Studio – really one for the devs out there.

Once you are happy with the source XML file you are ready to deploy this to the existing project site/s. In this example I have a test project site created by the default Project Site template that has not been modified:

image

In PowerShell I now connect to the test target site using the command below – update the Url for your site:

Connect-SPOnline –Url <target site URL> 

image

Then run the following command to apply the changes:

Apply-SPOProvisioningTemplate -Path C:\Temp\PnP\NewTemplate.xml

image

Once completed the test target site should be updated, in this example, with a new list and updated risk list. Once you are happy with the test target project site you could repeat the process on other project sites. I have found some settings are not set correctly and some do generate errors in PowerShell but there are usually monthly updates the PnP code so always ensure you regularly update the modules using the Update-Module command.

This is a very simple example using PowerShell, in production you might have a full script that has a list of Project Sites you want to update and get the script to update them all etc. Or better still, go down the manage code route and create an event driven SharePoint provider hosted add-in to do it. Either way, fully test this process on test project sites / projects first before any production projects / project sites!

Want to capture your #Project team / staff morale? #ProjectOnline #ProjectServer / #SharePoint #PPM #JavaScript #jQuery

December 1, 2015 at 8:58 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information | Leave a comment
Tags: , , , , ,

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-Morale-in-9702d380 

This script enables you to capture the the team / staff morale each day – your team members just need to click one of the smiley faces:

image

In the example above I am logged in with the tenant admin account called “admin admin”. When a user clicks one of the icons it creates an item in the “ProjectTeamMorale” list in the PWA site:

image

If they click the happy faces it sets the item status to Happy, if they click the sad face it sets the status to Unhappy.

This list will need to be created manually with the following details:

List Name: ProjectTeamMorale

Columns:

image

The Date column setting defaults to Today:

image

Once the list is set up the script can be added to the PWA homepage using a content editor web part:

image

Reference the location of the project_team_morale.js file – in this example I added the JavaScript file to the Shared Document library in the PWA site:

image

That is it. The script can easily be updated to use different images or include more than two statuses etc. In this example I have done this for PWA but this could be added to a SharePoint intranet site to capture the staff members morale rather than just the project team in this example.

You can then generate a report to view the team / staff morale over time.

Try it out 🙂

#ProjectOnline / #ProjectServer 2013 Access #SharePoint lists on PDPs #JavaScript #jQuery #Office365

May 12, 2015 at 5:04 pm | Posted in Administration, Configuration, Customisation, Functionality, Information | Leave a comment
Tags: , , , , , ,

A common requirement is to see and access the Issues and Risks lists on the Project Detail Pages in the PWA site for the associated project. Previously I wrote a script that displayed the Issue and Risks data in a table but this was read-only. This can be seen here: https://pwmather.wordpress.com/2014/04/11/want-to-see-risks-and-issues-on-a-projectonline-projectserver-project-detail-page-ps2013-sharepointonline-sp2013-office365-javascript-jquery/ 

This new script will display the Issues and Risks (or any other list for that matter – slight code change / update required) on the PDP but will allow you to create / edit the lists items providing you have the permissions of course. Martin did something similar here. The script can be downloaded from the script gallery below:

 http://gallery.technet.microsoft.com/Online-Server-2013-access-627b10ef

To get the script to work you will need to download the following jQuery library: jquery-2.1.1.min.js – jQuery download Another 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 style library as you can see in the code below:

 image

Alternatively you can reference a CDN if preferred.

Once the script is downloaded, upload this to the PWA site collection, in this example it was uploaded to the shared documents library. Choose what PDP you want the script to be accessed, in this example I created a PDP called SharePoint Data, added a content editor web part on the new page then referenced the uploaded script using the content editor web part:

 image

Once loaded, the page will look like this:

 image

Don’t worry about the message – this is because there is no project UID available here.

Add the new PDP to the require Enterprise Project Types then navigate to the Project Center and access one of those projects from that EPT. Click the new PDP and you should see:

 image

Click one of the buttons and that list should load:

 image

You can also change the behaviour of the list form and use modal pop ups for a better experience:

 image

This currently includes Risks and Issues but can easily be updated to include other SharePoint lists.

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

#ProjectOnline / #ProjectServer View Resource Calendar Exceptions #JavaScript #jQuery #Office365 #SharePoint

May 1, 2015 at 10:41 am | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information | 1 Comment
Tags: , , , , , , ,

This script will enable the users to view the resource calendar exceptions for a particular resource. The script can be downloaded from the script gallery below:

https://gallery.technet.microsoft.com/Online-Server-View-20760922

To get the script to work you will need to download the following jQuery library: jquery-2.1.1.min.js – jQuery download Another 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 style library as you can see in the code below:

image

This example script does use the /ProjectServer REST API, so users will need access to that for this to work.

Once the script is downloaded, upload this to the PWA site collection, in this example it was uploaded to the shared documents library. Choose where you want the script to be accessed, in this example I created a new page, added a content editor web part on the new page then referenced the uploaded script using the content editor web part:

image

Once loaded, the page will look like this:

image

If no exceptions are found the table will display “No data available in table”, change the select menu to another resource that does have exceptions in the resource calendar and these will be displayed:

image

This only uses intrinsic fields so should work for any Project Online / Project Server environment but do test it thoroughly first. You might want to improve the error handling etc. before deploying to a production environment. Also remember this does require the user to have access to view resources via the /ProjectServer REST API for this to work.

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

#ProjectOnline / #ProjectServer #Project Site Finder #JavaScript #jQuery #Office365 #SharePoint

December 1, 2014 at 3:32 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information | 1 Comment
Tags: , , , , , , ,

This script will enable the users to quick find and navigate to the Project Site for a particular project. This is useful if you have many projects in the instance. The script can be downloaded from the script gallery below:

https://gallery.technet.microsoft.com/Server-Online-Finder-56968921

To get the script to work you will need to download the following jQuery library: jquery-2.1.1.min.js – jQuery download Another 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 collection document library as you can see in the code below:

image

This example script does use the ProjectData API, so users will need access to that for this to work.

Once the script is downloaded, upload this to the PWA site collection, in this example it was uploaded to the site collection documents library. Choose where you want to script to be accessed, in this example I have placed it on the PWA homepage using a content editor web part:

image

The content link in my example is: /sites/pwa/SiteCollectionDocuments/Project Site Finder.js

Once loaded, the page will look like this:

image

The user can then type in part of the project name and click “Find Project”:

image

The Project Site ULR column will contain the associated project site URL with a clickable hyperlink that will open the project site in a new window / new tab.

This only uses intrinsic fields so should work for any Project Online environment but do test it thoroughly first. You might want to improve the error handling etc. before deploying to a production environment. Also remember this does require the user to have access to the ProjectData API for this to work.

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

#Project-on-a-page for #Microsoft #ProjectOnline #PS2013 #JavaScript #jQuery #Office365 #SharePoint

October 26, 2014 at 4:24 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information, Reporting | 4 Comments
Tags: , , , , , , ,

This script will display project information including project level data, milestones, issues and risks on one page on the associated Project Site in Project Online. The script can be downloaded from the script gallery below:

https://gallery.technet.microsoft.com/scriptcenter/Online-Server-on-a-page-1b1f14f5 

To get the script to work you will need to download the following jQuery library: jquery-2.1.1.min.js – jQuery download Another 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 collection document library as you can see in the code below:

image

Also notice the reference to 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.

Worth noting, the script will also work for Project Server On-prem but the milestone query will need to be updated to use JSOM REST (/api/ProjectServer/) as the ProjectData ODATA feed has a bug with filtering for boolean fields. The query will need to be updated to use the REST fields – these are named different to the ODATA equivalents.

In this example i had the jQuery library and the “Projectonapage on project site.js” file uploaded the site collection documents library but in reality you would probably load both of these somewhere else in the PWA site collection but the choice is yours. I then created a page on my Project Site just in the Shared Documents library but again, create the page where you like within your Project Site. On the page I add a content editor web part and reference my “Projectonapage on project site” JavaScript file. I also added a link on the Project Site quick launch to my new page. The output can be seen below.

When the page loads the dialog box below will display until all the data has been loaded:

image

Once loaded, the page will contain the project data:

image

image

This only uses intrinsic fields so should work for any Project Online environment but do test it thoroughly first. You might want to improve the error handling etc. before deploying to a production environment.

#ProjectOnline data via #ODATA and #SSIS in #SQL database table delta sync example #BI #Office365

August 11, 2014 at 6:49 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information, T-SQL | Leave a comment
Tags: , , , , , , , ,

Microsoft recently released some great documentation and an example SSIS package on only pulling down the changes from Project Online to your custom SQL database – this will improve the efficiency of your Project Online SSIS packages. I recommend you take a look if you haven’t already:

http://msdn.microsoft.com/en-us/library/office/dn794163(v=office.15).aspx

http://www.microsoft.com/en-us/download/details.aspx?id=43736

For a walkthrough of an example SSIS package for Project Online see:

https://pwmather.wordpress.com/2014/03/26/projectonline-data-via-odata-and-ssis-in-sql-database-table-on-premise-msproject-sharepointonline-bi-ssrs-office365-cloud/

Or a great example from Martin here:

http://nearbaseline.com/blog/2014/04/project-site-custom-list-reporting-using-ssis-odata-connector/

#ProjectServer / #ProjectOnline custom PWA homepage #PS2013 #PS2010 #SharePoint #HTML #MSProject

July 30, 2014 at 2:31 pm | Posted in Add-on, Configuration, Customisation, Functionality, Information | 1 Comment
Tags: , , , , , , , , , ,

This post covers an example landing page for PWA using HTML and an image. Firstly select your chosen image and add on containers, other images, text etc. – anything you want really to define the image hotspots. These hotspots will become links. See my example below:

Image for PWA homepage example

This was a picture taken from a recent trip to Venice Smile

Upload the image to the PWA site collection.

Once you have the chosen / updated image you need to create the hotspots or image maps.There are plenty of tools available or online sites that do this. I have used the following site:

http://www.maschek.hu/imagemap/imgmap 

Upload your chosen image then add the image maps as shown below:

image

Once all the maps are added update the other properties such as Href, Alt and the target.

Scroll down and you will see the code, copy and past this into notepad or your favourite HTML editor:

image

Now you need to update the HMTL to add the image reference and tag the map to the image, see the first line:

image

Navigate to you PWA homepage and add a script editor or content editor web part then paste the HTML code in:

image

I used a script editor web part in this example.

Now the image will be loaded to PWA with clickable links on the image maps Smile

image

This was just an example so I didn’t spend much time on the image but with a creative mind you could really liven up your PWA homepage, Project Sites or any SharePoint landing page etc.

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

June 10, 2014 at 7:22 am | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information | 7 Comments
Tags: , , , , , , ,

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:

https://pwmather.wordpress.com/2014/06/02/projectserver-2013-projectonline-project-fields-displayed-on-project-site-javascript-jquery/

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

http://gallery.technet.microsoft.com/scriptcenter/Server-Information-ab10fd63

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

jquery-2.1.1.min.js – jQuery download

Another 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 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

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

June 2, 2014 at 8:48 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information | 8 Comments
Tags: , , , , , , ,

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://gallery.technet.microsoft.com/scriptcenter/Server-Information-ab10fd63

A screen shot of the output is below:

image

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

Next Page »

Blog at WordPress.com.
Entries and comments feeds.