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.

Advertisements

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

July 16, 2017 at 2:25 pm | Posted in Administration, CU, Fixes, Functionality, Information | Leave a comment
Tags: , , , , , , ,

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

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

Project 2016 July 2017 update:
https://support.microsoft.com/en-us/kb/3203476

SharePoint Server 2016 / Project Server 2016 July 2017 update: 
https://support.microsoft.com/en-us/kb/3213544 & https://support.microsoft.com/en-us/kb/3213543

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

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

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

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

Project 2013 July 2017 update:
https://support.microsoft.com/en-us/kb/3213538

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

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

#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.

#Project #MVP Award #ProjectOnline #ProjectServer #MVPBuzz #Microsoft

July 3, 2017 at 12:35 pm | Posted in Information, Personal | 3 Comments
Tags:

I had some great news over the weekend – I was renewed as a Business Solutions – Project MVP for 2017 – 2018. This is the 5th consecutive year after first being awarded in April 2013. I am really grateful for the recognition, especially as I still enjoy helping out the Project and Project Server / Project Online community so much.

MVPaward

#ProjectOnline Reporting #OData entity modified dates #PPM #PMOT #O365

July 1, 2017 at 7:21 pm | Posted in Administration, Configuration, Functionality, Information, Reporting | Leave a comment
Tags: , ,

Just a quick blog post to highlight a feature in the OData reporting API so that you are aware of how it works. A few months back it was announced that all entities in the OData API would have modified dates. I thought this would be a great addition as those that pulled the data into a SQL database could then just pull down the deltas to minimise the data from Project Online into the database. I for one hadn’t really looking into the new modified date properties as I just assumed they would be true modified dates when those entities where updated. So for example, I thought if I just opened and published a project without changing any task data only the Project Modified Date would change and the Task Modified Dates would remain as the previous dates when those tasks were actually modified. This assumption was incorrect, in that scenario where you only open then publish the project without making changes to any tasks, all task modified dates are also updated to match the project modified date. See the example below:

The Office 2016 rollout plan on my test Project Online system was created over a month ago as were all of the example tasks. Today I just opened the project and published it without making any changes to any tasks but notice the ProjectModifiedDate and TaskModifiedDates all match:

image

Checking the Task Time phased task modified dates shows the same thing:

image

If I just add a new task then publish the project the same happens, the project modified date is updated as expected but also all tasks are updated to have the same task modified date as the project modified date:

image

image

I have also seen examples where adding one new task doesn’t impact the modified dates of other tasks.

If I now left that project open for a couple of minutes without making any changes then hit publish again, this time I do see only the Project Modified Date change as expected, in that scenario the task modified dates remain the same.

Here are examples for task data and task time phased data but the same occurs in all feeds such as assignment time phased, assignment baseline time phased etc.

Just something to be aware of if you were wondering why the dates were always being updated – may be you had the same assumption as I did! If you are using the entity modified dates, make sure you test all scenarios to ensure you know when dates do and don’t get updated.

I have put an idea on the user voice forum – if you agree it would be good to change these dates to true modified dates – get voting Smile   https://microsoftproject.uservoice.com/forums/218133-microsoft-project/suggestions/19821661-have-true-entity-modified-dates-in-the-odata-api-f

Blog at WordPress.com.
Entries and comments feeds.