#ProjectOnline #PowerApps example #Office365 #PPM #PMOT #Apps #MSProject #SharePoint Part2

February 24, 2018 at 10:17 pm | Posted in Add-on, Administration, App, Configuration, Customisation, Functionality, Information, Mobile | Leave a comment
Tags: , , , , ,

In part 2 of this series we look at continuing with the example PowerApp for Project Online for project details and project navigation. For those of you that missed part 1, a link to the post can be found below:


In part 2 we will update the detail screen to display the data we want and include links to PWA for the associated project. If you are following, open the app you started in part 1:


Using the tree view on the left, click DetailScreen1 to load the detail screen or click the chevron next to a project from the browse screen:


Firstly I updated the screen label to “Project Details” and deleted the delete and edit icons:


Next two buttons were added to the top bar, one for the Site and one for the Tasks. The Site button will launch DataCardValue8 which in my case is the Project Site URL as seen below:


The Tasks button will launch the Project Schedule PDP but concatenating the PWA URL for the schedule PDP (or whatever PDP you want to link to) then using the ProjectID, in my case DataCardValue2, from the detail screen for the projuid URL parameter:


The buttons were added to the screen using the insert menu:


As you can see, there are lots of options on the insert ribbon! Other quick links could easily be added such as Issues, Risks, New Risk etc. That is it for the detail view, we have some project details and two buttons that link out to PWA for the associated project:


Just for fun I also added a new screen in for a chart. I inserted a bar chart and created a project count by progress chart:


For the Items, I entered the following formula to count the number of projects Completed, Not Starter or In Progress:


The formula is below for my data, ProjectData is the name of my SharePoint list and Progress is the column on my SharePoint list that contains the % complete value for each project:

    {Column: "Completed", Value: CountIf(ProjectData, Progress = 100)
    {Column: "Not Started", Value: CountIf(ProjectData, Progress = 0)
    {Column: "In Progress", Value: CountIf(ProjectData, Progress <> 0 && Progress <> 100)

Then set the item colours:


I then added the back arrow to navigate back to the main browse screen:


The final change was to add an icon to the main browse screen that enabled navigation to the chart screen:


To preview your app in PowerApps, press F5:

Main screen: list of projects with search and sort using project name, link for each project to project detail screen, access to chart screen, refresh the data and link to create a new project in Project Online


Details screen: project details with button links to the project site or schedule PDP in Project Online PWA and a back button to the main screen


Chart screen: bar chart display project count by progress for Completed, Not Started and In Progress with a back button to the main screen


Once you are happy with your app you can share it to your organisation. Before you do, access the App Settings view and give it a name, set the icon and description:


Then click Save and save it to your organisations PowerApps environment then share the app:


For details on Saving, publishing and sharing your apps see the links here: https://docs.microsoft.com/en-us/powerapps/save-publish-app & https://docs.microsoft.com/en-us/powerapps/share-app Users can then access your app using the browser, PowerApps Studio or the PowerApps mobile app!

Hopefully that has given you enough to get started or given you some ideas for Project Online PowerApps. There are so many features to PowerApps, they are very powerful! For getting started guides on PowerApps start here: https://docs.microsoft.com/en-us/powerapps/getting-started

Have fun!


#ProjectOnline #PowerApps example #Office365 #PPM #PMOT #Apps #MSProject Part1

February 21, 2018 at 11:47 pm | Posted in Add-on, Administration, App, Configuration, Customisation, Functionality, Information, Mobile | 1 Comment
Tags: , , , ,

PowerApps aren’t a new feature in Office 365 but not one that I have blogged about before, mainly due to the lack of native support for Project Online, but I have created apps before using PowerApps  – it’s an awesome application! PowerApps provide a great way for users to create powerful business apps without writing code. You can use the same connectors that have use for Flow etc. so there is great support for SharePoint Online but no so much for Project Online. To get around this, the easiest approach is to have your Project Online data in a SharePoint list, I have covered a few examples with code samples before:



In this series of posts, we will create a simple navigation type app for Project Online using PowerApps. In part 1 we look at getting started and creating / updating the browse / home screen. To do this we will need the Project Online data in a SharePoint list using a similar process as the examples above. This post assumes you already have your Project Online data available in a SharePoint Online list and a process to keep this updated as your Project Online changes, similar to the list below:


Access PowerApps from the Office 365 app launcher:


This will launch PowerApps:


If you haven’t used SharePoint Online in Flow or PowerApps before, firstly you will need to click Connections > New Connections > Type SharePoint in the Search bar and add the SharePoint connection:


Once you have the connection you can create the app. To create the PowerApp you can either use the web based PowerApps Studio that can be accessed on the Apps page:


Or there is an App available in the Microsoft Store:


For the purpose of this blog post I will be using the Windows 10 App but the steps are the same.

Once the App launches, you can Open existing apps:


Or create a new one, click the New button:


From here you can create an app starting with your data, start from a blank canvas or start from a template. The templates options will present you with template previews to select from:


For the purpose of the this blog post and to keep the blog post shorter, we will start with our SharePoint data, if this is your first PowerApp this might be the best option to start with until you’re familiar with PowerApps:


Type the URL of the site that contains the list:


Press Go then select the correct list and press Connect, in this example it is ProjectData:


PowerApps will then build a working app for you based on the data in your SharePoint list:


Once finished, home / browse screen is displayed:


Clicking the chevron for a project loads the detail screen:


That might be good enough for some scenarios – pretty awesome given it was a click of a button! As mentioned, we will look to make a navigation type app that displays some high level project information so we will make some minor tweaks to the base app PowerApps kindly created for us.

Clicking on different areas on the canvas will enable different settings or you can click the elements using the left hand tree view. The first item we will change is the ProjectData label which by default takes the source list name. This property is the LblAppName1:


Moving down the screen, we want to change the search feature so that the search box and sorting work on the Project Name. To do this, select BrowseGallery1 from the left hand tree view, then click Advanced, finally update the Data items. Replace ComplianceAssetId with Title as seen below in two places:


The search box and sort icon will now work on the Project Name – in our case this is Title on the source SharePoint list.

Next up we want to see Project Name and Project Owner on the project summary section. Using the left hand tree view, click Title1 then access the Advanced menu. In the DATA section under the Text property, update this to “ThisItem.Title”:


Notice the Project Name now appears. Repeat for Subtitle1 and select a different project property or multiple properties, I will set the Project Owner and % complete:


I will also change the Body1 property to display the Project Start and Finish Dates:


The final change for the browse screen in part 1 of this blog post is to change the IconNewItem1, this is the + symbol in the top right corner. In the default app, this will load the edit screen to create a new list item, for this example we will point this to load the create project page in Project Online. Select the IconNewItem1 from the left hand tree view, replace the OnSelect “NewForm(EditForm1;Navigate(EditScreen1, None) with Launch(https://PWASiteURL/_layouts/15/PWA/Wizards/CreateProject.aspx) and update the tooltip as seen below:


The browse screen should look something like this now:


With the ability to search and sort on Project Name:


Worth noting is that this project data will not be security trimmed etc.

We have barely touched the surface of PowerApps but that is it for Part 1. In Part 2 we look at updating the detail view and adding in links to navigate to the project in PWA.

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:


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.


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


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:


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


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:


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:


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:


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


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 – 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 | Comments Off on #ProjectOnline – 1 PWA site collection for all or 1 per department? #O365 #PPM #PMOT #Office365 #MSProject
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.

#Office365 Project Time Reporter mobile app for #iOS released #ProjectOnline #PPM #Timetracking

September 21, 2016 at 10:49 am | Posted in Add-on, Administration, App, Functionality, Information, Mobile | Comments Off on #Office365 Project Time Reporter mobile app for #iOS released #ProjectOnline #PPM #Timetracking
Tags: , , , , ,

Yesterday saw the release of the Office 365 Project Time Reporter mobile app for Apple’s iOS, see the announcement here: https://blogs.office.com/2016/09/20/announcing-the-availability-of-office-365-project-time-reporter/

This post gives a walkthrough on getting started and using the app on your iOS device. Firstly download the app for your iOS device from the Apple store:


Once completed locate the Project Time Reporter app:

app icon

On first launch you will be required to enter the Project Online PWA URL:


You will then see the login screen:


Enter your Office 365 credentials and click Sign In and you will see the loading screen briefly whilst the data is loaded:


Once completed you will see the Timesheet for this period:


From here you can enter the actuals as needed. Using the green control menu at the bottom of the app you can scroll between timesheet periods using the previous and next buttons, add a row, save the timesheet, send the timesheet or filter the projects. Using the ellipsis in the top right hand corner you can access other timesheet options such as refresh, go to current period, summary, send progress for all tasks or manage timesheets. The app menu in the top left corner enables you to access the app settings, here you can switch to the tasks view or see the app settings. Below you will see screen shots of some of these features.

Firstly the app menu screen, here you can view Timesheet, Tasks or Settings:

app menu

On Settings you can view the PWA URL and username and turn on two options:

app settings

I turned on the planned time in my app:

timesheet with planned work

To enter time just click in the box for the day you want to add time to:

timesheet actuals

You can use the Save button on the green menu at the bottom of the app to save the timesheet or send the timesheet using the send button. If you have many projects on the current timesheet you can using the filter option:

filter projects

If you want to send progress, click the ellipsis in the top right corner:

timesheet options

Here you will also see other options such as Summary:

timesheet summary

Manage Timesheets:

manage timesheets

On the timesheet view you can add rows using the Add button on the green menu:

add row in TS

We have focused on the Timesheet view here but there is also a Tasks view that is accessible from the app menu > Tasks:


You can change the view by clicking the Current Tasks heading:

task views

You can access the task options to filter and sort the tasks using the ellipsis in the top right hand corner:

task options

Selecting a task will take you to the task details screen:


To edit a task click Edit in the top right hand corner:


Make any changes as needed and click Save or Send.

Download it today and see what you think – it will make the timesheet / task update process so easy when you are on the move!

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


This list has two views:


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


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


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> 


Enter credentials if prompted to do so.

Now use the following command to extract the site:

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


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


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.


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:


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:


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> 


Then run the following command to apply the changes:

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


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!

Getting started with #ProjectOnline development #Office365 #ProjectServer #JavaScript #PowerShell #dotNET

April 26, 2016 at 7:55 am | Posted in .Net, Add-on, Administration, App, Configuration, Customisation, Functionality, Information | Comments Off on Getting started with #ProjectOnline development #Office365 #ProjectServer #JavaScript #PowerShell #dotNET
Tags: , ,

Just a quick post to highlight a new code sample that has been added to the Project Online code samples on GitHub found here: https://github.com/OfficeDev/O365-Project-Online-.Net-Samples

The projTool tool has been created / updated to use CSOM instead of the PSI, Brian Smith has a great walkthrough for getting started with this tool on the link below:


On the GitHub samples you will find other examples for JSOM, CSOM and REST. A great place to start with Project Online development. You will also find some simple code samples / solution starters on the link below for Project Online / Project Server:


#Office365 #Project Portfolio Dashboard add-in for #ProjectOnline #ProjectServer #BI #PPM

April 22, 2016 at 4:33 pm | Posted in Add-on, Administration, App, Customisation, Functionality, Information, Reporting | 2 Comments
Tags: , , , ,

In this post we will look at the recently released Office 365 Project Portfolio Dashboard for Project Online / Project Server 2013 / 2016, see the announcement below:


A directly link the the SharePoint add-in can be found here: https://store.office.com/en-us/WA104380116.aspx

I have loaded this on to one of our demo instances to take a look:


The add-in is accessed from the PWA site contents menu:


Worth noting is that the users will need to be a member of one of the following SharePoint groups for the Portfolio Dashboard to work when in the SharePoint permission mode:

Administrators for Project Web App
Portfolio Managers for Project Web App
Portfolio Viewers for Project Web App

When in the Project permission mode the users will need access to “Access Project Server Reporting Service” permission and be added to one of the SharePoint permission groups above.

When the add-in is first loaded it will load the data and cache it – it will tell you it is doing this. Then in the top right corner it will display the details for when the data in that dashboard was last updated / loaded:


You can then refresh the data as required and it will update to indicate the refresh has started:


Depending on the amount of data this might take some time.

The default dashboard is “This year’s projects”, there are 6 dashboards included by default, these are available in the Dashboard tab on the ribbon:


Each show different data. Each dashboard has different sections or pages, for example on This Year’s Projects I can view Projects:


Or Tasks:


Or Resources:


Or Content:


Some of the tables in the views have multiple views or sheets, for example the Resources shows Work by default but can view Issues, Risks or Availability:


In most pages you can either drill down or click though, for example from the Overview page on the table at the bottom I can click the project name to drill down to more detail for that project:





Clicking the task name will load the schedule PDP in a different tab.Clicking a risk or issue will load the list item in a different tab.

Notice the left navigation updates to show you where you are with more options. For example I can go from the project dashboard view to an Executive view:


I can then go back to the overall dashboard view by using the navigation section.

For each dashboard you can filter the data using the Filter tab:


The options tab will give you the ability to change the settings for the dashboard:


On the Dashboard tab you also have the ability to create your own dashboard using the create button, that will display a new tab on the ribbon:


Firstly give it a name and description.


Then select the projects to include:


Depending on the field type you will get different options to select, for example selecting a date field will give you this:


Then chose the layout for each section and the components on each:


Update each section as required then set any filters you want available:


Once completed click OK and the new dashboard will be available on the Dashboard menu for all users:


Download it today and take a look!

#ProjectOnline CSOM DLL now available in #SharePoint NuGet package

February 5, 2016 at 9:32 am | Posted in .Net, Add-on, Administration, App, Customisation, Functionality, Information | Comments Off on #ProjectOnline CSOM DLL now available in #SharePoint NuGet package

Quick post to highlight that the Project Online CSOM DLL ‘Microsoft.ProjectServer.Client.dll’ is now available via the NuGet package for SharePoint, see the blog post below for details:


Direct link to the package: https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM

Next Page »

Blog at WordPress.com.
Entries and comments feeds.