Following on from a post I wrote over a month ago regarding checking entities from multiple Project Online PWA instances, this post covers updating multiple Project Online PWA instances. The first post can be found below:
In this post I demonstrate a way in which you can manage configuration across multiple PWA instances, for example you might want to create a new custom field on more than one instance. This is a simple example just to show you the idea. As this is very much an example, I haven’t released any code or solution but you can see the core code further on in the post.
For the purpose of this blog post I created a C# .Net console application. Once you have a new visual studio console app project you will need to add the references to the following DLLs:
I used the v15 SharePoint and Project Server dlls here.
In the program add these dlls:
The first part of the code is to capture the custom field name and description plus the number of PWA instances to update:
It then goes into a loop to create the custom field on the specified PWA site:
The code below is used to secure the password in the console input:
That is it. This example will create a Project level custom field but you could easily update the code to get the user to enter the entity type (task / resource etc.)
To see this in action see below:
Enter the custom field name:
Enter the custom field description:
Enter the number of PWA instances to update:
Enter the first PWA site URL:
Enter the username for an account that has access to create custom fields:
Enter the password for that account:
After pressing enter it will go off and create the custom field on the first PWA instance:
Press any key and it will go back to ask for the 2nd PWA instance:
It will then prompt for the username and password as before. It will keep looping through depending on how many PWA sites needed to be updated.
On one of those PWA instances we can see the field was created:
Nice and easy, saves navigating around multiple PWA site collections for a simple change you might want to roll out across multiple instances.