#ProjectServer and #SharePoint 2013 / 2016 March 2017 Cumulative Update #PS2013 #SP2013 #PS2016 #SP2016 #MSProject

March 15, 2017 at 1:38 pm | Posted in Administration, Configuration, Fixes, Functionality, Information | Leave a comment
Tags: , , , , , , ,

The Office 2016 March 2017 updates and cumulative updates are now available, please see the links below:

https://support.microsoft.com/en-us/kb/4013886

Project 2016 March 2017 update:
https://support.microsoft.com/en-us/kb/3178669

SharePoint Server 2016 / Project Server 2016 March 2017 update: 
https://support.microsoft.com/en-us/kb/3178675 & https://support.microsoft.com/en-us/kb/3178672

The Office 2013 March 2017 updates and cumulative updates are now available, please see the links below:

https://support.microsoft.com/en-us/kb/4013886

Project Server 2013 March 2017 CU Server Roll up package:
https://support.microsoft.com/en-us/kb/3172462

Project Server 2013 March 2017 update:
https://support.microsoft.com/en-us/kb/3178625

Project 2013 March 2017 update:
https://support.microsoft.com/en-us/kb/3178650

Also worth noting, if you haven’t done so already, install Service Pack 1 http://support2.microsoft.com/kb/2880556 first if installing the March 2017 CU on 2013.

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

#ProjectServer and #SharePoint 2013 / 2016 February 2017 Cumulative Update #PS2013 #SP2013 #PS2016 #SP2016 #MSProject

February 26, 2017 at 8:55 am | Posted in Administration, CU, Fixes, Functionality, Information | Leave a comment
Tags: , , , , , , ,

The Office 2016 February 2017 updates and cumulative updates are now available, please see the links below:

https://support.microsoft.com/en-us/kb/4010765

Project 2016 February 2017 update:
https://support.microsoft.com/en-us/kb/3141514

SharePoint Server 2016 / Project Server 2016 February 2017 update: 
https://support.microsoft.com/en-us/kb/3141515 & https://support.microsoft.com/en-us/kb/3141517

The Office 2013 February 2017 updates and cumulative updates are now available, please see the links below:

https://support.microsoft.com/en-us/kb/4010765

Project Server 2013 February 2017 CU Server Roll up package:
***No Server rollup package this month – install other SharePoint 2013 patch as required***

Project Server 2013 February 2017 update:
https://support.microsoft.com/en-us/kb/3141525

Project 2013 February 2017 update:
https://support.microsoft.com/en-us/kb/3141499

Also worth noting, if you haven’t done so already, install Service Pack 1 http://support2.microsoft.com/kb/2880556 first if installing the February 2017 CU.

For more details see: https://blogs.technet.microsoft.com/projectsupport/2017/02/24/project-and-project-server-february-2017-updates-released/

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

#ProjectServer 2016 environment migration / rollover steps #PowerShell #PS2016 #MSProject #SP2016

January 19, 2017 at 3:48 pm | Posted in Administration, Configuration, Functionality, Information, Installation | Leave a comment
Tags: , , ,

This blog post will detail the PowerShell commands required to carry out an environment rollover / migration using Windows PowerShell where possible. The steps below use the database approach to rollover the Production environment to the Test / Development environment.

As a prerequisite I would recommend taking full backups of the Test / Dev farm to enable the environment to be rolled back if required. Use your usual farm backup procedures.

Test / Dev environment Prep

Firstly connect to the Test / Dev Application server and launch the SharePoint 2016 Management shell.

Type the following:

Remove-SPSite -Identity ‘<TEST/DEV PWA Site URL>’

You can check in Central admin in the Project Server Service Application to check that the PWA site has been removed.

Using the SharePoint 2016 Management Shell, remove the existing content database from the web application that hosted the PWA site collection that was removed in the previous step.

Type the following:

Dismount-SPContentDatabase ‘<Content database name>’

Test / Dev environment SQL Prep

Take a backup of the PWA Content database from the Production environment and copy this over to the Test / Dev SQL server and restore the database. The database required is:

  • Content database that contains the Production PWA site and Project Sites

Make a note of the database name used when this database is restored as it will be required later.

Test / Dev environment configuration

Using the SharePoint Management Shell, mount the restored content database to the web application that will host the PWA site collection.

Type the following:

Mount-SPContentDatabase ‘<content database name restored in previous step>’ -DatabaseServer ‘<Test / DEV SQL Server>’ –WebApplication <web application URL>

Post Provisioning

The Project Server Cube settings will need to be updated – update the SQL AS server / cube name.

Any Excel based reports in PWA will need to be updated to use the ODC files / connection strings from the Test / Dev environment as they will currently point to the Production ODC files / connection strings. This is done by opening the Excel reports in Excel, changing the ODC file / connection strings then saving the file back to the library.

All projects will need to be republished on the test / dev instance so that the project site features such as the issues and risks sync works as expected. There are other ways to fix that but republishing the projects is the easiest / safest option from what i have found.

#ProjectServer and #SharePoint 2013 / 2016 January 2017 Cumulative Update #PS2013 #SP2013 #PS2016 #SP2016 #MSProject

January 12, 2017 at 7:42 pm | Posted in Administration, CU, Fixes, Functionality, Information | Leave a comment
Tags: , , , , , , ,

The Office 2016 January 2017 updates and cumulative updates are now available, please see the links below:

https://support.microsoft.com/en-us/kb/3214449

Project 2016 January 2017 update:
https://support.microsoft.com/en-us/kb/3141459

SharePoint Server 2016 / Project Server 2016 January 201 update: 
https://support.microsoft.com/en-us/kb/3141487 & https://support.microsoft.com/en-us/kb/3141486

The Office 2013 January 2017 updates and cumulative updates are now available, please see the links below:

https://support.microsoft.com/en-us/kb/3214449

Project Server 2013 January 2017 CU Server Roll up package:
https://support.microsoft.com/en-us/kb/3141480

Project Server 2013 January 2017 update:
https://support.microsoft.com/en-us/kb/3141484

Project 2013 January 2017 update:
https://support.microsoft.com/en-us/kb/3141470

Also worth noting, if you haven’t done so already, install Service Pack 1 http://support2.microsoft.com/kb/2880556 first if installing the January 2017 CU.

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

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

November 7, 2016 at 9:40 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information, PowerShell, Reporting | Leave a comment
Tags: , , , , , , , ,

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.

Update #ProjectOnline Project custom field values using #PowerShell with data from a CSV file #PPM #ProjectServer #CSOM

November 6, 2016 at 4:44 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information, PowerShell | 1 Comment
Tags: , , , , , , , ,

This blog post will demonstrate a simple example of how Microsoft’s PPM tool, Project Online, can include data from an external system. This is a very simple example using a demo CSV mock up of data that could be from an external system. The CSV part could easily be replaced by a SQL query or a REST API query to the source system etc.

Example CSV data used can be seen below:

image

As you can see, my imagination for example project names has not improved! The code uses the Project Name as the key between the two data sets – the CSV file and PWA so the names will need to match.

This script example can be downloaded here: https://gallery.technet.microsoft.com/Update-Online-Custom-Field-12f034f4

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

image

image

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.

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

image

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 project found in the CSV file will be outputted as seen in the example below. In this example two projects exist in the CSV data but not in my example Project Online PWA instance (remember for this example, the names need to match in the CSV file and PWA):

image

Checking in the Project Center after the script has run you can see for the projects that exist in the CSV file, the project budget includes the values found in the CSV file:

image

This PowerShell script could be run on a schedule from a server on-prem or even in Azure. The script would just need access to the data to import (CSV file etc.) and the DLLs. 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.

#ProjectServer / #ProjectOnline error opening Enterprise Resource Pool #MSProject #Office365 #PPM

October 10, 2016 at 8:17 am | Posted in Administration, Functionality, Information, Issue, Workarounds | Leave a comment
Tags: , , , , ,

A quick post to highlight an issue and workaround for opening the Enterprise Resource Pool in Project Pro using the Open button on the Resources tab in the Resource Center:

image

If you try and click the Open button with no resources selected in the grid you will get the error below:

“This action couldn’t be performed because Office doesn’t recognize the command it was given” :

image

Select at least one resource in the grid then this command will work fine.

Access #ProjectOnline #Project sites using #PowerShell and #SharePoint CSOM #Office365

July 8, 2016 at 8:26 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information, PowerShell | Leave a comment
Tags: , , , , ,

This PowerShell script will use the Project Reporting OData API to get a list of all the Project Sites in the PWA Site Collection linked to a project. It will then access each of those project sites to enable you to easily update / review the site if needed. This example just lists all of the list titles for each site but can be used as a starting script for modifying a particular list or adding a new list on all project sites etc. This could be used to help rollout changes to existing Project Sites, the code here will help you get connected and access each Project Site object using CSOM. You could even use this example to get the project site URLs then use the approach I blogged about the other month with the PnP PowerShell to month the sites. The example is for Project Online but could easily be updated for Project Server 2013 / 2016.

The user running the script will need to update the source PWA instance URL, username and password. The account will need access to the OData API in PWA and access to all of the project sites.

This script example can be downloaded here: https://gallery.technet.microsoft.com/Access-all-Online-Projects-568c7c59

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.

The good thing about using the OData API to return the list of Project Site URLs is that if you have certain sites for each Enterprise Project Type you could easily filter the OData query to only return the project site URLs for the correct Enterprise Project Type.

Once 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), firstly this example will give you a count of project sites:

image

Then for each of those sites it will list all of the SharePoint lists on each site:

image

As mentioned, this just lists all of the lists so probably isn’t that useful unless you wanted to check each Project Site had the correct lists. The script could be modified to update those project sites or lists fairly easily depending on what the changes were. All I would say is that if you are looking to update / make changes to the project sites, fully test your modified script on a non-production PWA instance first as you could cause a lot of damage if you weren’t careful!

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

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

May 17, 2016 at 4:32 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information, PowerShell, Reporting | Leave a comment
Tags: , , , , ,

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 / #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!

Next Page »

Blog at WordPress.com.
Entries and comments feeds.