Running #ProjectOnline #PowerShell in #Azure using #AzureFunctions #PPM #Cloud #Flow #LogicApp Part2

August 1, 2017 at 4:32 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information, PowerShell, Workflow | Leave a comment
Tags: , , , , , , ,

Following on from part 1 where I introduced the idea of automating certain Microsoft 365 PPM Project Online customisations using PowerShell, Microsoft Flow / Azure Logic Apps and Azure Functions, in part 2 I will set up an example automation for creating a Project Online event driven snapshot application on project published without having to set up any server or write any complied code! If you missed part 1 where this concept was introduced, see the link below:

https://pwmather.wordpress.com/2017/07/28/running-projectonline-powershell-in-azure-using-azurefunctions-ppm-cloud-flow-logicapp-part1/

Firstly I created an Azure Function app in my Azure subscription then created a new function based on the HttpTrigger – PowerShell template:

image

Give the function a name and set the Authorisation level – set the authorisation level to the correct setting for your function. Click Create. For details on Azure Functions, start here: https://docs.microsoft.com/en-us/azure/azure-functions/

You will then be presented with the function and sample code:

image

We will now create the PowerShell script to create the snapshot. This is based on a script I published a while back: https://pwmather.wordpress.com/2016/08/26/projectonline-data-capture-snapshot-capability-with-powershell-sharepoint-office365-ppm-bi/

The script has been updated to work in an Azure Function but also modified to use a parameter so that it only captures data for the published project, the PowerShell script can be seen further on in the post.

Firstly upload the SharePoint CSOM DLLs using the upload button:

image

I used the SharePoint CSOM DLLs from the SharePoint Online Management Shell:

image

Then enter the PowerShell code – screen shots below and code pasted below the images:

image

image

image

Code sample used in function:

# POST method: $req
$requestBody = Get-Content $req -Raw | ConvertFrom-Json
$projID = $requestBody.projID

# GET method: each querystring parameter is its own variable
if ($req_query_name) 
{
    $projID = $req_query_name 
}

#add SharePoint Online DLL - update the location if required
Import-Module "D:\home\site\wwwroot\ProjectSiteUserSyncHTTPTrigger\Microsoft.SharePoint.Client.dll"
Import-Module "D:\home\site\wwwroot\ProjectSiteUserSyncHTTPTrigger\Microsoft.SharePoint.Client.Runtime.dll"

#set the environment details
$PWAInstanceURL = "https://mod497254.sharepoint.com/sites/PWA2"
$username = "admin@MOD497254.onmicrosoft.com" 
$password = "password"
$securePass = ConvertTo-SecureString $password -AsPlainText -Force
#create the SharePoint list on the PWA site and add the correct columns based on the data required
$listname = "ProjectSnapShots"
$results1 = @()

#set the Odata URL with the correct project fields needed
$url = $PWAInstanceURL + "/_api/ProjectData/Projects()?`$Filter=ProjectId eq GUID'$projID'&`$Select=ProjectId,ProjectName,ProjectPercentCompleted"

#get all of the data from the OData URL
while ($url){
    [Microsoft.SharePoint.Client.SharePointOnlineCredentials]$spocreds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $securePass);    
    $webrequest = [System.Net.WebRequest]::Create($url)
    $webrequest.Credentials = $spocreds
    $webrequest.Accept = "application/json;odata=verbose"
    $webrequest.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f")
    $response = $webrequest.GetResponse()
    $reader = New-Object System.IO.StreamReader $response.GetResponseStream()
    $data = $reader.ReadToEnd()
    $results = ConvertFrom-Json -InputObject $data
    $results1 += $results.d.results
        if ($results.d.__next){
        $url=$results.d.__next.ToString()
    }
    else {
        $url=$null
    }
}

#add data to snapshot list
#get PWA site client context
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($PWAInstanceURL) 
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $securePass) 
$ctx.Credentials = $credentials 
$ctx.ExecuteQuery()  
 
#get the target list 
$List = $ctx.Web.Lists.GetByTitle($listname) 
$ctx.Load($List) 
$ctx.ExecuteQuery() 

#for each project, create the list item - update the newitem with the correct list columns and project data
foreach ($projectrow in $results1) 
{ 
   $itemcreationInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation 
   $newitem = $List.AddItem($itemcreationInfo) 
   $newitem["Title"] = $projectrow.ProjectName
   $newitem["ProjectId"] = $projectrow.ProjectId
   $newitem["PercentCompleted"] = $projectrow.ProjectPercentCompleted
   $newitem.Update() 
   $ctx.ExecuteQuery() 
} 

The PowerShell code would need to be updated with your environment details: (PWAInstanceUrl, username, password and listname variables). Also the OData URL will need to be updated to include the project level fields that you want to snapshot.The target SharePoint list will also need to be set up in the PWA site collection for the project fields the script uses. This is the list I set up for this example:

image

SnapshotDate is set to Todays date so we don’t need to set that in the code.

The code is simple to follow but in summary the first part will get the projID from request body – we will pass in the ProjectID for the published project from the Flow / Logic App trigger. Then the SharePoint Online CSOM DLLs are imported in. Then the specific PWA environment details are set for the variables. The OData URL is then added to the url variable. Here notice we are filtering for the ProjectID and passing in the $projID variable we get from the request body. The Select part of the query will need to be updated for your project level fields. Next the code gets the data from the OData feed using the web request and adds the data into the results array. Once we have the data, we connect to the SharePoint list, in the example it is the ProjectSnapShots as set in the $listname variable. Lastly the new item is created in the list using the data from the results array.

Now the Azure Function is ready to be used. It can be tested using the Test option in the right hand panel, update the Request body:

image

Update it for a valid project ID. Then click Run above the function code:

image

The Logs window below will help you debug any errors etc.:

image

Then check the SharePoint list in the PWA site and the new item should have been created:

image

We now know the Azure Function is working as expected, now we need to call the Azure function when a project is published. All we need from the Azure Function is the URL to use, use the </>Get function URL button:

image

Select the correct Key, in this example I used the default function key. Copy the URL as it will be needed later.

To call the Azure Function when a project is published, the choice here for a no code option would be Microsoft Flow or Azure Logic App. For this I will use Microsoft Flow but the same steps (triggers , actions etc.) would be used in the Azure Logic App. Create a new Flow and search for Project Online:

image

Then select the Project Online – When a project is published trigger.

Enter the PWA URL:

image

Then click the ellipsis and set the connection for the PWA URL or create a new connection if needed:

image

Click + New step then Add an Action and search Http:

image

Select HTTP – HTTP:

image

Complete the HTTP action:

Method is POST, the Uri is the URL for the function that we copied earlier, Headers are not required. The Body is where we pass in the project ID from the published project trigger:

image

The Flow is now completed:

SNAGHTML55ecdca7

Now click Save flow.

In PWA, Publish a project or projects and see the snapshot data created on the configured snapshot list once the Flow has run:

Flow run:

image

Data added to the list for the project I published – in this example it was the Office 2016 rollout project:

image

This just shows a simple example and the some of the possibilities for extending the Project Online capability when making use of simple PowerShell scripts and other Microsoft 365 / Azure services for cloud / serverless solutions. Look out for more examples in the future.

Running #ProjectOnline #PowerShell in #Azure using #AzureFunctions #PPM #Cloud #Flow #LogicApp Part1

July 28, 2017 at 4:50 pm | Posted in Add-on, Administration, App, Configuration, Customisation, Fixes, Functionality, Information, PowerShell, Workflow | 4 Comments
Tags: , , , , , ,

Following on from my last post where I published an example solution starter PowerShell script for adding project team users to the Project Site, here I mentioned about running the script in an Azure Function and even running this sync from a Project Online event. The blog post can be seen below if you missed that:

https://pwmather.wordpress.com/2017/07/07/projectonline-project-user-sync-to-project-sites-ppm-o365-powershell-sharepoint/

Whilst I will use that example PowerShell script from my last blog post as an example, the concept will work for any PowerShell script.

I wont cover the details in setting up the Azure Function in part 1 as there is plenty of support out there for this – for this example I created an Http Trigger – PowerShell function.

image

I then uploaded the SharePoint DLLs and copied in the PowerShell script into the editor:

image

The project site user sync script didn’t work as is as I had to make some minor changes to get this to run from the Azure Function. This included change the way the SharePoint CSOM DLLs where loaded in. In the example script I used Add-Type to load the DLLs but in the Azure Function I had to switch this out to use Import-Module:

image

The next change I had to make was to comment out all of the feedback to the console, so all of the write-hosts. I also had to remove the functions within the script so that is was one block. After these changes I could execute the PowerShell script to add the project team members from my example project into the associated project site from the Azure Function. As this was an HTTP Trigger Azure Function, you can get the URL to the function and access that URL to execute the function.

This opens up lots of possibilities to easily execute this Azure Function from other applications that can make the HTTP call. For example you build easily execute this script once the project has been published either using a remote event receiver (RER) or a Microsoft Flow / Azure Logic App. The example script would need to be made generic and pass in a variable into the Azure Function for it to be a workable solution.

In part 2 of this blog post we will look at make a full event driven solution that is fired on project publish then executing the Azure Function and passing in a variable.

#ProjectOnline & #ProjectServer #PS2013 / #PS2016 Global Permissions access to PWA Settings Cog #SharePoint menu items

July 13, 2017 at 8:44 pm | Posted in Administration, Configuration, Customisation, Functionality, Information | Leave a comment
Tags: , , , , , ,

I wrote the same blog post but for Project Server 2010 over 5 years ago: https://pwmather.wordpress.com/2012/05/31/projectserver-2010-global-permissions-access-to-pwa-site-actions-menu-items-ps2010-sp2010-msproject/ This blog post will cover the same but for Project Online / Project Server 2013 / 2016. This is useful for PWA site collections that are using the Project Permission mode as you can add / remove these permissions as required. Below I have listed the Project Server /Project Online global permissions and the Settings Cog SharePoint menu items that are available when the permissions are allowed.

  • Log On
    • Allows access to the following Site Actions menu items:
    • Site contents
  • Log On + Manage Lists in Project Web App
    • Allows access to the following Site Actions menu items:
    • Edit page
    • Add an app
    • Site contents
    • Change the look
    • Site Settings (limited options)
  • Log on + Manage Lists in Project Web App + Manage SharePoint Foundation
    • Allows access to the following Site Actions menu items:
    • Edit page
    • Add an app
    • Site contents
    • Change the look
    • Site Settings (all options except Site Collection Admin (SCA) options)

#ProjectOnline project user sync to project sites #PPM #O365 #PowerShell #SharePoint

July 7, 2017 at 4:13 pm | Posted in Add-on, Administration, App, Customisation, Functionality, Information, PowerShell, Workarounds | 1 Comment
Tags: , , , ,

This is a supporting blog post for an example solution starter PowerShell script I wrote for Microsoft’s Office 365 PPM tool Project Online. With the great improvement from Microsoft to now support up to 30,000 Projects and Project Sites in one Project Online Project Web App site collection, there are some limitations such as not being able to sync the users to project sites outside of the PWA site collection. For details on this change see the post here:

https://pwmather.wordpress.com/2017/06/14/projectonline-project-site-settings-location-sharepoint-ppm-o365-msproject/

This solution starter script just demonstrates one method to sync the project team members into the associated Project Site-  the concept would also be useful when using the SharePoint permission mode in PWA. The example script is fixed to one example project / project site and only adds the team members to the members SharePoint group on that site. It doesn’t loop through all projects  or remove users from the project sites etc. This could all easily be done but is beyond the scope of the code sample / solution starter.

The code sample / solution starter can be downloaded from here: https://gallery.technet.microsoft.com/Online-User-Sync-to-7a75ef77

To get the script to work, there will need to be some environment variables set and a DLL available, these are detailed below.

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.

You will then need to update the environment detail placeholders as seen below:

image

Add the Full PWA URL, username and password for an account that is a full admin on the PWA site collection. Select an example project to test with on a non-production PWA project / project site. Use a project that is not syncing the users to the project site automatically – for example a project site outside of the PWA site collection. Copy the Project GUID – it will be similar to this: 4b75dfb8-4051-e711-80c9-00155da85037 and update the script with the project GUID. An easy way to get the Project GUID is from the PWA PDP URL when accessing the project. For the same project, copy the full project site URL and update the script then find the name of the correct SharePoint group to add the users to. For example it could be the members group. The groups can be found from the project site > Settings cog > Site Settings > Site Permissions.

Once these variable placeholders are set, save the script. Run the script using PowerShell and you will see the users added to the specified group on the project site. Fully test this on a non-production PWA instance first. The code should really be updated to production standard code before using on a production PWA instance and handle removing users, adding users to different permissions groups based on role and dynamically getting the projects and project site urls etc.

Below you can see the output from the PowerShell ISE when running against my example project  / project site on my test PWA instance:

image

Looking at the project site you can see the users here:

image

A production version of the PowerShell script could be set to run each day / night etc. as required. The code could also easily be run using an Azure Function and executed from a URL – you could then build is an event driven type user sync – more on that in my next blog post.

The script is provided "As is" with no warranties etc. – this is just a free solution starter so is use at your own risk.

#ProjectOnline #Project Site settings / location #SharePoint #PPM #O365 #MSProject

June 14, 2017 at 8:43 pm | Posted in Administration, Configuration, Customisation, Functionality, Information | 2 Comments
Tags: , , ,

Again, another post that is a bit later than I would normally post about changes but I’m still trying to play catch up at work and home after my vacation, I feel like I need another holiday already! Anyway, further to the announcement the other month regarding the change to support 30,000 project and 30,000 project sites in Microsoft’s Office 365 PPM tool Project Online, the final part of that change is here.

Before we jump in to the detail, a bit of history to show how the Project Product group have done a great job and massively improved the Project Online projects / project sites limit since Project Online was first released.  In the early days Project Online had a limit of 2,000 projects and 2,000 project sites. I think in the first release, both the projects and project sites were both restricted to 2,000 due to the SharePoint Online limit of 2,000 sub sites per site collection, the sub site limit is still a limit today in SharePoint Online. Details here for SharePoint Online limits: https://support.office.com/en-ie/article/SharePoint-Online-limits-and-quotas-8f34ff47-b749-408b-abc0-b605e1f6d498. The 2,000 project limit was then raised to 5,000 projects but the project site limit was still limited to 2,000 which meant that 3,000 of your 5,000 projects couldn’t have a project site. Today in Project Online you can have 30,000 projects and each of those projects can have a project site* I have put an asterisk here as there are some configuration / site collection requirements to support this as detailed in this blog post. To have 30,000 project sites you would need 15 Enterprise Project Types (EPTs) and 15 SharePoint site collections including the actual PWA site collection. This is how the Project Product group have worked around the SharePoint Online sub site limitation. Let’s look at how this is set up in PWA.

For the purpose of this blog post I have just two EPTs in my PWA site collection, the default Enterprise Project and one called Product Development. Firstly I will create a new SharePoint Online site collection via the SharePoint Admin Center in Office 365 called ProductDevSites to host the project sites in my new EPT. From the SharePoint Admin Center click New > Private Site Collection and complete the form

image

Click OK. That might take 10 to 15 minutes to provision. Once completed open the PWA site collection and navigate to the PWA Settings page:

image

Nothing different here… Clicking on the following settings will show some differences:

  • Connected SharePoint Sites
  • Manage User Sync Settings
  • Enterprise Project Type

Connected SharePoint Sites:

image

Notice the Settings button is now missing from the menu bar. The settings button here used to allow you to control if / when project sites where created. This has moved to the Enterprise Project Type page.

Manage User Sync Settings:

image

Notice there are two checkboxes missing from the Sync options. Here you could also set the Project Site Sync and the Project Site Sync for SharePoint task list projects. The setting to sync users has moved to the EPT page.

Enterprise Project Type:

image

Notice the three new sections here, Site Creation – this was on the Connected SharePoint Sites page, Site Creation Location – this a new setting and Synchronization – this contains the sync settings. Changing the Site Creation setting to either Automatically create or Allow users to choose will enable the Site Creation Location setting. This defaults to the current PWA site collection URL, for this EPT I will leave that as the location and enable the user permission sync:

image

One thing to note here regarding the synchronization options, both the user sync and the task list sync only work for project sites inside the Project Web App site collection. Save the EPT then open the other EPT/s. In this example I will edit the Product Development EPT and enable site creation but rather than creating sites in the PWA site collection I have selected to create these in the ProductDevSites site collection:

image

I could still create the Product Development project sites and other EPT’s project sites in the Project Web App site collection (PWA2 in this example) if I knew I would never exceed the 2,000 sub site limit. Notice I haven’t enabled the site sync as this would be redundant here as the site creation location is not the Project Web App site collection. Before we create some projects for each EPT, worth noting is that you might not see the same options as displayed on the EPT’s above, you might just see the following:

image

No Site Creation Location and the Sync User Permissions checkbox is disabled, this will be because your Project Web App site collection will be in the SharePoint permission mode so will be limited to up to 2,000 sub sites and the user permission sync to the project sites is not possible.

Creating a project for each EPT and publishing those projects will create the project sites. As you can see below, the project sites are in different site collections based on the EPT settings:

image

So now you can have 30,000 projects and 30,000 project sites!

Brian Smith posted about this change to other day too: https://blogs.technet.microsoft.com/projectsupport/2017/06/12/project-online-what-happened-to-my-site-creation-settings/

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

June 3, 2017 at 8:58 pm | Posted in Configuration, Customisation, Fixes, Functionality, Information, Reporting | Leave a comment
Tags: , , , ,

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.

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

May 5, 2017 at 5:13 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Information, Reporting | 5 Comments
Tags: , , , ,

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.

#ProjectOnline Project Center updates #O365 #PPM #PMOT #MSProject

April 20, 2017 at 7:18 pm | Posted in Administration, Configuration, Customisation, Functionality, Information, Performance | Leave a comment
Tags: , , , ,

Further to the announcement the other week regarding great improvements coming to Microsoft’s Office 365 PPM tool Project Online : https://pwmather.wordpress.com/2017/04/03/awesome-update-for-projectonline-create-and-manage-up-to-30000-projects-ppm-o365-pmot-msproject/

You may have noticed that on your Project Online PWA instance you now have two new checkbox options on the Project Center Projects ribbon to improve page load times if needed:

image

Rollups: image

Gantt Chart: image

A small change but one that will help improve page load times for users.

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

April 11, 2017 at 11:59 am | Posted in Administration, Configuration, Customisation, Fixes, Functionality, Information, Reporting | Leave a comment
Tags: , , , ,

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/

#ProjectOnline – 1 PWA site collection for all or 1 per department? #O365 #PPM #PMOT #Office365 #MSProject

March 20, 2017 at 6:55 pm | Posted in App, Configuration, Customisation, Functionality, Information, Installation | Leave a comment
Tags: , , , , ,

A question I hear a few times from organisations is “We have a new department or business unit coming on-board with Project Online, do we need a new PWA instance for them or can we use the one we already have?” The answer isn’t normally a straightforward yes or no. This post aims to cover most of the questions you need to ask when considering using the existing PWA site collection or creating a new one for a new department / business unit.

The first thing to consider is the Project Online limitations for the data such as number of projects per PWA site, check out the limits here: https://support.office.com/en-us/article/Project-Online-software-boundaries-and-limits-5a09dbce-1e68-4a7b-b099-d5f1b21ba489. Check how many projects you currently have in the PWA site collection and how many more the new business unit expect to add into the PWA site collection – if you are going to be reaching the limits on a PWA site collection then consider a dedicated PWA site collection for the new business unit. The number of PWA site collections in each Office 365 tenant will not be an issue – you can have up to 9,999. Just because you can have lots of PWA site collection doesn’t automatically mean the answer is a new PWA site collection each time!

One PWA site collection will support different PWA configurations for each business unit or department (custom fields , Enterprise Project Types etc.) by making use of the Department functionality to separate those configuration items. So for example, the R&D department only see configuration items relevant to them. So if the new business unit has different custom field / EPT requirements, that shouldn’t be a problem using a single PWA instance.

Whilst talking about configuration items, there are some items that are at the PWA site collection level that can’t be configured / tailored to each business unit or department. These would be some of the Time and Task Management options such as Time Reporting Periods, Timesheet settings and Task settings. Also some settings under the Operational Policies such as Additional Server Settings. If the new business unit has different requirements for time capturing they would need a dedicated PWA instance.

Another important aspect to consider is – will these different business units require access to the same enterprise resources to assign to tasks? Will they need to view the true resource demand / availability for these resources in one place? If this is the case then the easiest option is for the new business unit to use the same PWA site collection.

If there is a requirement to see the data from each business unit together in PWA, for example in a project center view then a single PWA site collection would be required. Similarly, if both business units projects needed to be included in the organisations portfolio strategic analysis for cost and resource requirements, a single PWA site collection will be required.

Reporting is another key factor, if the reports need to show data from all business units / departments then a single PWA instance is easier but it is still possible to generate reports that use data from multiple PWA site collections. With multiple PWA site collections this is something that can be worked around providing there was common metadata between the PWA site collections to enable projects from both PWA site collections to be viewed in the same report.

Then there is the management of the PWA site collection/s. It might be that the organisation has a central PMO function that administers the PWA site collection – adding another PWA site collection will increase their workload.

This is by no means an exhaustive list, here are just a few of the things to consider when deciding on using the existing PWA site collection or a new PWA site collection when a new business unit / department are coming on board.

Next Page »

Create a free website or blog at WordPress.com.
Entries and comments feeds.