Extending #ProjectfortheWeb Part1 #PPM #CDS #MSDyn365 #PowerPlatform #MSProject #PowerApps

December 13, 2019 at 12:52 am | Posted in Add-on, Administration, App, Configuration, Customisation, Functionality, Information | Leave a comment
Tags: , , , , ,

This is the first of a few blog posts containing examples for extending the Project for the Web application. For those of you that have not seen any previous blog posts on Project for the Web here is a link: https://pwmather.wordpress.com/tag/project-for-the-web/ & a video: https://youtu.be/4OeegM8ScMk that I published when Project for the Web was released.

As you are all probably aware by now, Project for the Web is the new Project service built by the Project team at Microsoft. This new service is not built in SharePoint like Project Online, this is built on the Power Platform Common Data Service for Apps. There are two interfaces to access Project for the Web, the Office interface as accessed here https://project.microsoft.com/ or via the Power Apps interface accessing the Project model-driven app. Extending the Office UI is not possible so all customisations are via the Power Apps interface. In this blog post we will start adding an Issues entity to the app. The example can be seen below in my new model-driven app called “Project PPM”:

New “Logs” grouping with Issues on the site map and “Number of Issues” in the project view

App1

Issues entity with related project – clicking the project name navigates to that project:

App2

New Issue form – a few example fields:

App3

Project view with Issues tab and “Number of Issues” field that counts the number of issues for the current project:

App4

Issues tab in the current project:

App5

Clicking New Issue here loads the New Issue form but with the current project pre-selected:

App6

As you can see, this is a very simple customisation but shows various basic steps that can be repurposed to extend the app further. The steps below will walkthrough making these changes.

Access https://make.powerapps.com/ and ensure you’re in the default organisation where the new Project for the Web service is deployed. These steps below add the entity directly rather than via a solution, I’d recommend creating everything via a solution so that it can easily be exported / imported to different environments if needed. Items can be added to solutions after if required, this post does not cover solutions though. Under Data click Entities and add a new Entity, I called mine “Issues”:

Entity

Add the fields you want such as Due Date, Description, Owner, Status etc. and save the entity. Also create a field such as “Related Project” that is a lookup to the Project entity – this is important if you want that relationship:

EntityField

Next access the Views option in the Issues entity and modify / create views as needed, here I’ve just modified the default “Active Issues” view to add my new fields in – Publish the changes:

View

Now access the Forms option in the Issues entity and update the Main form to add the new fields in – Publish the changes:

Form

Save the Issues entity and access the Project entity, here I added a new rollup field called “Number of Issues”:

Rollup

I updated the view/s to add the “Number of Issues” field in where applicable and Published the views. The Information form was updated to include the Number of Issues on the Summary tab:

Proj Form

A new 1-column tab component was added to the form, I called this “Issues” and then a Subgrid related data component was added and linked to the new related Issues entity:

FormIssues

The form was then published and the entity saved as required.

That’s all the changes to the entities for this example. Next up is creating the new model-driven app. With the changes just carried out, the default “Project” app will include the changes to the Project entity but you wont have the new Issues entity on the left nav:

ProjApp

In the next post we will look at creating the app seen at the start of the post with future posts planned on more additions such as Risks, a process flow, Programs etc.

#Office365 #ProjectfortheWeb Project Request process using #MicrosoftForms #CDS and #PowerAutomate #ProjectManagement #PPM #MSProject #PowerPlatform

November 11, 2019 at 10:05 pm | Posted in Add-on, Administration, App, Configuration, Customisation, Functionality, Information, Workflow | 1 Comment
Tags: , , , , , , , , ,

A couple of weeks back I posted how to create a project request process for Office 365 Project Online using Microsoft Forms, Microsoft Flow, now known as Power Automate, and SharePoint, for those that missed that post, it can be found here: https://pwmather.wordpress.com/2019/10/23/office365-projectonline-project-request-process-using-microsoftforms-and-microsoftflow-projectmanagement-ppm-msproject-sharepoint-powerplatform/. Since the official release of the new Microsoft Project application, known as Project for the Web, I’ve built a similar example that uses Microsoft Forms, Power Automate and the Power Platform Common Data Service (CDS). For those of you that haven’t seen my posts on the new Project for the Web service, here is a link: https://pwmather.wordpress.com/tag/project-for-the-web/.

The components required for this project request process are Microsoft Forms, Power Automate, the CDS and Project for the Web. Firstly for the entry point to initiate the project request – I’ve used a simple Form as seen below but this could also just as easily have been a Power App.

Form

As with the Project Online example, we could ask whatever details we need to support the project request process but this is just a simple example. The department question is key for this example as that is used to control who approves this project request. I’ve only got two options here to keep it simple but you will see later on in the post how / where to add to this. The next component is the CDS Entity. I’ve created this new Project Requests entity in the default org:

ProjRequestEntity

I’ve filtered the fields above to show the custom fields I’ve created in this new Project Requests entity. These are summarised below:

  • Project Name – used to store the Project Name from the request form
  • Description – used to store the Project Description from the request form
  • Project Department – used to store the project department from the request form
  • Project Justification – used to store the project justification from the request form
  • Reviewed By – used to store the Flow Approval reviewer
  • Review Status – used to store Flow Approval status
  • Reviewer Comments – used to store the Flow Approval reviewer comments
  • Project Requested By – used to store the email address of the user who completed the request form
  • Project ID – used to store the Project ID from Project for the Web for project that gets created by the Flow
  • Project ID Linked – links to the project in the Project entity for project that gets created by the Flow

To support this process, I’ve also added the “Project Department” field to the Project entity as an option set – add the option values as required.

ProjEntity

Options:

OptionSet

The next component is the Power Automate Flow, this is used to automate the process from receiving the project request form response, sending out the approval and creating / updating the CDS entities accordingly. The Power Automate Flow can be seen below with one of the switch cases expanded:

Flow

The Flow is covered in more detail below. The final component required is Project for the Web.

This Flow is triggered when a new form response is submitted to the Project Request form. The first action is to initialize a Project Manager variable that is set later on. It then uses an Apply to each loop with a list of the response notifications passed in from the trigger. The first step inside the Apply to each action is the Get response details Form action with the form response ID passed in.

Flow1

The next action inside the loop is the Get user profile action, here we pass in the Project Request responders email address then the Flow uses the List records CDS action to query the Users entity, a filter is added as we pass in the users ID from the Office 365 Get user profile action. Here it is assumed that the user who completed the Form response is a user in the CDS Users entity. We then set the Project Manager variable inside a 2nd Apply to each loop. Whilst our List records example will only return one result, the List records action could return multiple results so Flow automatically adds the Apply to each. The input for the Apply to each 2 action is the output from the List records actions. The value used to set the ProjectManager variable is in this example is “items(‘Apply_to_each_2’)?[‘systemuserid’] but just pick “User” from the List records dynamic content:

Flow2

The Flow then uses a Switch action to have different paths based on the department value, the “Which department is the project for?” form answer is used to switch on:

Flow3

The Flow then has different cases in the Switch action, one for each of the possible values for the “Which department is the project for?” question. I’ve just got 2 cases in this example but this is where you would expand this for more departments:

Flow4

Expanding one of the cases to see the details and I will point out the differences between each case:

Flow5

As you can see, the first action is a Flow Approval that is set to “Approve/Reject – First to respond”. I’ve set the Title to be “Marketing Project Request”, update this for other departments as need. I’ve assigned this to the admin account but this where you would assign it to the user who approves the marketing projects. In the details section I’ve added the Project Request form responses for the “Get responses details” action to give the reviewer the details needed. The Condition check action is used to check the approval outcome. Then for requests that were approved the Flow uses another loop. The loop is required as the default Approval action can have more than one response in some cases but in this case it will only have one. Inside the loop there are 3 CDS actions:

Flow6

Firstly to create a new record in the Project Request entity by passing in the form response value and the approval details:

Flow7

The second CDS action in this loop is to create the project in the Project entity, here the Calendar Id is required but this is set by the service, here I just put a 1 in there as a value is required in the action, the Name is passed in from the Form value. The Contracting Unit is the Organizational Unit ID found in the Organizational Unit entity, Project Manager is set with the Project Manager variable. The Work hour template is set to the correct Work Template ID found in the Work template entity. The final field set in this example is the Project Department value, here we set Marketing but set this based on the correct Project Department:

Flow8

The final CDS action in the loop is to update the original Project Request record in the CDS with the newly created Project identifier Project record:

Flow9

If the project is rejected, in this example a record is created in the Project Request entity only but typically you would also send an email etc. to notify the requester. This action is similar to the first action in the approved side but the Review Status is set to Rejected:

Flow10

That’s it, a very simple Power Automate, Microsoft Forms and Power Platform CDS project request process for Project for the Web. I will post a short video on my YouTube channel demoing this in action later this week along with a video for the Project Online version too: https://www.youtube.com/channel/UC_b_pa1ADKlUqIpLK9AmR1g?sub_confirmation=1

Welcome to the new Project – getting started Part 2 #MSProject #PPM #Office365 #PowerPlatform #ProjectMangement #ModernWorkManagement #CDS #PMOT #PMO

October 30, 2019 at 4:11 pm | Posted in Administration, App, Functionality, Information | Leave a comment
Tags: , , , , , , ,

Following on from yesterday’s blog post: https://pwmather.wordpress.com/2019/10/29/welcome-to-the-new-project-getting-started-part-1-msproject-ppm-office365-powerplatform-projectmangement-modernworkmanagement-cds-pmot-pmo/ walking through the new Project, here is part 2. In the post we will look at the backend to the new Project and look at two Power BI report packs I released yesterday. Links were in the part 1 but for completeness here they are again:

Power BI report for Project:  https://gallery.technet.microsoft.com/Power-BI-Report-Pack-4506f183

Power BI report to combine Project and Project Online data (1 PWA instance): https://gallery.technet.microsoft.com/and-Online-Power-BI-Report-d1fbca1b

Project is built on the Power Platform’s Common Data Service for Apps (CDS), the data is stored in Entities in the CDS – the same as Roadmap – lots of links about Roadmap here: https://pwmather.wordpress.com/2019/03/01/project-roadmap-cds-app-overview-ppm-projectmanagement-msproject-projectonline-office365-powerplatfom-dynamics365/ Let’s take a look at the solutions deployed for Project, to do this I’ve accessed the Dynamics 365 Admin Center from the Office 365 Admin centers which loads this:

D365Admin

Project is deployed to the default organisation, on this tenant I only have 1 organisation – click the Open arrow on the Default org. This loads the PowerApps interface, from here click the Settings cog > Advanced Settings:

PApps

This takes you to the Dynamics 365 Settings:

D356Admin

Click the Settings > Solutions:

D365Settings

This then loads the solutions deployed to this instance:

D365Solutions

You can also see the solutions from the familiar PowerApps interface:

PAppsSolutions

Sticking with the Dynamics 365 Admin interface for the moment, let’s have a quick look at the msdyn_ProjectServiceCore solution:

ProjectSolInfo

We can then view the components that form this solution, I wont go into them all but here are a few. Looking at the Entities we can see the Entities used in this solution, here I’ve drilled down to the fields in the Project entity:

ProjEntity

I will go into more details on the fields via the PowerApps interface. Looking at the Model-driven Apps we can see Project:

ModelApp

Now lets switch to the PowerApps interface (make.powerapps.com) and view some of the entity fields. Click Data > Entities from the left navigation menu:

PAppsEntities

Change the view from Default to Managed in the top right corner and scroll down to Project:

ProjectEntity

Click Project to view the Project entity details:

ProjEntityDetails

Here we can see the fields, relationships, rules, views etc. We can also view the current data stored in that entity:

PEntityData

The current main entities used by Project are:

  • Bookable Resource
  • Project
  • Project Bucket
  • Project Task
  • Project Task Dependency
  • Project Team Member
  • Resource Assignment
  • User

There are others such as Replay Log Section, Work template etc. but those above are where the core data is stored that you see in the UI. Some of these entities are new for Project but some have just been extended or updated to add new components, for example, adding new views or fields to existing entities to support Project. More on the entities later on when we explore the Power BI report pack I created as that is a good way to visualise the data model and the relationships between the entities. Let’s click Apps from the left navigation menu, select Project and click edit:

ModelDrivenProject

This then loads the app designer displaying the new Project app – this is what you see when you are in the Dynamics interface that we looked at yesterday. This shows the components that make up the model-driven Project app – more on this in future blogs posts.

Now lets go back to looking at the entities / data model for Project, for this I will use the Power BI template I published yesterday https://gallery.technet.microsoft.com/Power-BI-Report-Pack-4506f183 Once downloaded and opened in Power BI desktop you will need to provide the CDSUrl for the parameter. There are several ways to get the correct URL for your default CDS instance. Your Office 365 Administrator can access the PowerApps Admin Center, click Environments, click the default environment which loads this:

CDSEnvDetails

Then click See all:

CDSURL

Copy the Environment URL. Or you can get it from the browser when accessing project.microsoft.com. When accessing that page, open the browser dev tools and access the Network tab then reload the page, look for GetModProdCdsEndpoint then click the Response tab and find the cdsUrl property value:

CDSURLDEVTOOLS

Once you have the correct CDS URL, enter that into the CDSUrl parameter input – minus the trailing slash:

CDSURLPowerBI

Click Load and sign in when prompted. To access all data, the account used here will need Read access at the business unit level to the Project CDS entities used plus the other default roles a normal user is assigned to. If the user account doesn’t have the correct access the connections will fail. You could create a new “project report access” role in the Dynamics 365 instance where Project is deployed if needed. To do that, access the Dynamics 365 admin center from the Office 365 Admin center using the Global Admin account. Open the default Dynamics 365 instance (this is where Project is deployed to) then click the Settings Cog > Advanced Settings. Then click Settings > Security > Security Roles > New. Give the new role Read access at the business unit level to the 8 entities used in the report:

    • Bookable Resource
    • Project
    • Project Bucket
    • Project Task
    • Project Task Dependency
    • Project Team Member
    • Resource Assignment
    • User

Then access the user account that will be used for the report from the Dynamics Security admin in the Users page then assigned the new role to this account using the Manage Roles option. Other roles and role assignments are as per the default settings. I covered this for the Roadmap report pack I released at the start of the year: https://pwmather.wordpress.com/2019/01/30/project-roadmap-powerbi-report-pack-ppm-projectmanagement-msproject-projectonline-office365-powerplatform-dynamics365/ – for Project the role needs access to different entities. Once the data has loaded in the Power BI report, click on the Model button on the left navigation menu to view the data model:

DataModel

Click the Manage Relationships button to view the relationship table:

RelationshipTable

Here you can see how the different entities / tables are related.

I also published a report yesterday that combines the Project (CDS) data with the Project Online data (1 PWA instance) https://gallery.technet.microsoft.com/and-Online-Power-BI-Report-d1fbca1b This report uses the slightly less CDS entities:

  • Bookable Resource
  • Project
  • Project Task
  • Resource Assignment
  • User

It also uses the following tables in the Project Reporting API:

  • Assignments
  • Projects
  • Resources
  • Tasks

This reporting combines the following tables:

  • Assignments and Resource Assignments
  • Projects and Project
  • Project Task and Tasks
  • Resources and Bookable Resource
  • Resources (Filtered to users) and Users

I will create separate blogs post dedicated to these Power BI Reports in the next week or two but download them and see what you think, hopefully they either give you want you need for reporting or help you build the reports you do need.

Look out for more blog posts and videos on Project in the future!

Welcome to the new Project – getting started Part 1 #MSProject #PPM #Office365 #PowerPlatform #ProjectMangement #ModernWorkManagement #CDS #PMOT #PMO

October 29, 2019 at 5:08 pm | Posted in App, Functionality, Information | 1 Comment
Tags: , , , , , , ,

As you might have seen, the new Project started rolling out a week just over a week ago but the official release is today, here is the blog post from Microsoft: https://www.microsoft.com/en-us/microsoft-365/blog/2019/10/29/new-microsoft-project-rolls-out-worldwide/ If you didn’t see the earlier Microsoft blog post announcement about the start of the rollout it can be found here: https://techcommunity.microsoft.com/t5/Project-Blog/The-new-Project-is-rolling-out/ba-p/909721 In the blog post there are a few links that are worth spending time reading both as Project partner and a Microsoft Project user.

In this blog post we will take a look at the new Project.

How do I access the new Project?

Once the new Project has reached your tenant, creating new projects is via the Project Home, the same place new Roadmaps are created: https://project.microsoft.com/

ProjHome

You can also access this via the Dynamics interface as seen later on in this post.

Clicking the + New blank project button will launch the page:

BlankProj

Building the project schedule

Straightaway you you can start creating tasks on the grid. The first thing to do is give the project a name – click the “Untitled project” and the project name panel will launch:

ProjName

Here you can give your project a name, change the project owner and project start date if required. Click the “Add new task” row and you can enter the the first task:

ProjTask

Enter the tasks as required:

ProjTasks

Hover over the task and you you will see an i icon and an ellipsis, clicking the ellipsis launches the task callout with actions for the task – you can also right click on the task to see the task callout:

TaskCallout

Clicking the i icon or the Open details on the task callout launches the task details panel:

TaskDetails

Build the schedule as needed, here is my simple example:

Tasks

At this point there are no dates associated with the tasks. I will now add some durations as this will add start and finish dates to the tasks:

TaskDurations

TaskDate

So we now have some tasks, durations and dates, what about the other information like task links, % complete etc.? These columns can be added by clicking the + Add column button:

Column

Add in the columns required – notice that Successor and Predecessor have been renamed. Here I have added in the columns I want:

ColumnsAdded

Columns can be reordered by dragging the column to the required position, column widths can also be adjusted as needed too. The columns added here and the ordering is persistent for this project for all users who have access to it. Let’s add some task links. There are several way to do this, from the Task Details panel using the Add dependency button:

AddDepButton

Click it and you can select a task:

AddTaskDep

Now the Task Details panel updates to the show the linked task with the finish date of the linked and a label to show the task is “Driving”, Task1 in this case is driving Task2:

TaskDepDetails

The Grid has also updated to show the task IDs for the task links in the Dependents (after) and Depends on (before) columns:

GridUpdateDeps

You can also create task links by directly clicking in the Dependents or Depends on cells and select the task/s from the list:

DepColsCreateDeps

Or type the task ID or task name in the cell:

CreateDepsByTyping

The other way I want to show you is the slickest way by far, click the Timeline button next to the project name. This loads the interactive Gantt chart:

Gantt

As you hover over a task bar on the Gantt you see controls appear:

GanttHover

Here I can drag the end of one task to the start of another to create the task link:

DraggingDep

The Gantt will then update to move the tasks as required:

TaskLinked

I have now created my simple project task schedule:

TasksSchedule

Assigning Resources

Who used to get fed up having to build the team to be able to assign an enterprise resource? Well not anymore! Hover over the Assign to cell next to the task and click the + person icon:

AddResource

This launches the control to add a resource:

AddResourceControl

Now simply start typing the name of the resource to search the tenant directory and click the resource to add them:

ResSearch

Clicking the user will launch a modal pop up:

Groups

As you can see from the pop up, I firstly need to connect my new project to an Office 365 Group. I can either create a new Office 365 Group or link to an existing one. For this project I will create a new Office 365 Group. Clicking the proposed group name loads the Office 365 Group menu – update as required:

GroupDetails

Then click Create and assign to assign the resource. When adding other resources to the project, you will see another modal pop up:

AddMemberPopup

This is just to warn you that the user will be added to the group and have access to the project data, groups files and Microsoft Teams etc. – more on this in the Project Access Model. One point to note, you can no longer assign anyone to a summary task:

SummaryTaskRes

This was bad practice anyway but it’s great Project now prevents this!

You might also want to plan and manage your plan in an Kanban type task board, this is covered using the Board view, this is accessed by clicking the Board button next to the Project Name:

BoardView

There are different view options available on the menu here:

BoardViewOptions

The default view is the “Group by Progress” view which has 3 fixed columns for Not Started, In Progress and Completed – more on this view when we cover task progress. Switching to the Bucket view, new buckets can be added:

BucketView

Click the “Add Bucket” button to create a new bucket. Task cards can then be dragged into the new bucket/s:

BucketTasksMoved

Switching to Group by Finish Date and you see the Task group in Next Week and Future:

BoardFinDate

Just note, if you drag a task from the Next Week column into the Future column, this will update the task’s and any linked dependent task’s Finish dates to the future. Notice on all of the Board views, Summary Tasks are filtered out.

Project / Task Progress

There are several ways to progress a task in Project. Starting with the Grid view, you can click in the % complete cell and type:

TaskProgress

Click out of the cell and you will see the progress:

TaskProgress1

You can open the Task Details panel and type the progress in the % Complete input:

TaskDetailProgress

In the Board view using the “Group by Progress” view, you can drag a task card to “In Progress” and this will update the task % complete to 50% or drag a task card to the Completed and this will update the task % complete to 100%:

TaskBoardProgressUpdate

You can also click the empty circles you see next to the Task names on all views, when you hover over these you see a tick appear inside:

Tick

Clicking the empty circle marks the task as complete, the same feature that exists in Microsoft To-Do:

Ticked

Project Saving and Editing

The project auto saves so no need to worry about saving and the concept of publishing no longer exists – how cool is that! Need to undo / redo something, just use Ctrl + z to undo and Ctrl + y to redo.

The new Project also supports co-authoring so multiple users can edit the project at the same time!

Project Access Model

The security for the new Project is built on the Office 365 Groups model – just like Project Roadmap. When you assign a user to a task, they are added to the Office 365 Group. All users in that Office 365 Group have edit access to the project. You can check group access very easily via the Group Members button in the top right corner:

GroupMembers

It is a very simple access model, you either can access and edit the project by being in the Office 365 Group or not access to the project at all.

Access via Dynamics 365

As mentioned at the start of this post, you can create new projects via the Project Home but also via the Dynamics interface. Access the Dynamics home https://home.dynamics.com and click the Project app, this will load the Project app:

D365Project

From here you can create new projects or edit / view existing projects, see below my test project opened in the Dynamics interface:

Summary View:

D365Summary

Tasks View:

D365TaskView

I can edit the project directly here or for a better experience, click the “Open in Project” button to edit in the full page experience this post has covered. I will cover more of the Dynamics interface in future posts.

Extensibility Options

As the new Project is built on the Power Platform Common Data Service for Apps (CDS), you have the power of the Power Platform to extend / build on top of Project using PowerApps, Flow and Power BI. I will have many posts in the future for extending / adding features for the new Project, maybe even one or two later this week / early next!

Reporting

All of the data is stored in entities in the CDS so reporting is very simple from tools like Power BI. I do have a Power BI report pack for the new Project, this can be downloaded here: https://gallery.technet.microsoft.com/Power-BI-Report-Pack-4506f183 In part 2 of this getting started series I will cover the Power BI Report pack. Here are some screenshots of the reports:

Report1

Report2

Report3

You can also add Projects from the new Project (I wonder how long I will keep calling it that!) into Roadmap.

I have also created a Power BI report pack that displays both Project (CDS) and Project Online data in the same reports to help with the transition where you might be using both applications side by side, this can be downloaded here: https://gallery.technet.microsoft.com/and-Online-Power-BI-Report-d1fbca1b The reports look very similar the the Project reports above.

Summary

Well the wait is finally over, the new Project is here, go give it a try! This post covers most of the end user features, in part 2 I will cover the backend. Project Online will still be a part of the Microsoft PPM offering so I will still continue to include blog posts / videos for Project Online. I have also published an intro video here: https://youtu.be/4OeegM8ScMk

Sync #MSProject #Roadmap Row Item Status with #ProjectOnline Task Status using #MicrosoftFlow #CDS #PowerPlatform #MSFlow #REST #SharePoint #WorkManagement #Office365

May 27, 2019 at 9:36 pm | Posted in Administration, Configuration, Functionality, Information, Reporting | 1 Comment
Tags: , , , , , , ,

At the recent Microsoft PPM Summit in Prague last week, Chris Boyd from the Microsoft Project Product team demonstrated syncing the Roadmap row item status with the task status from the Project Online schedule. This was done using compiled code in a console application which worked well. I set myself a little challenge to do something similar but all from Microsoft Flow. Being a public holiday here in the UK, I found an hour spare today to tackle this. In this blog post I walkthrough the Flow actions required to do this. A summary image can be seen below:

image

As you can see, this flow is triggered on a Project Online Project Publish. I then execute a REST query on the Project Data API using the send an HTTP request to SharePoint action:

image

I pass in the published project ID and select the TaskID and the custom field I’m using to set the Roadmap row item status. I created a custom field called “Roadmap Health” that was a lookup with the same status values as Roadmap but you can use any field and values, just update the query and Flow Switch action as needed.

I then create a new variable called “Health” and set the Type to an Integer:

image

I then add an Apply to each action and pass in the body(‘GetTaskHealth’)[‘value’] expression to use the output from my REST call:

image

I then have a condition check action to check for null values in the Roadmap Health field, the expression for the field is items(‘Apply_to_each’)[‘RoadmapHealth’] then null is also added via an expression:

image

You could remove the need for the condition check by filtering out the nulls in the REST call. If this is false, nothing happens as there is no status to sync, if this true the next action is a  Switch, the field I’m using in the switch is referenced using the expression: items(‘Apply_to_each’)[‘RoadmapHealth’]

image

Then for each possible value from the task level custom field you are using, map this to one of the Roadmap status’ by setting the Health variable, for example, when the Roadmap Health task field value is equal to “On Track” I set the variable to 0:

image

The Roadmap status enumerations are below:

  • On Track = 0
  • Potential Problem = 1
  • At Risk = 2
  • Complete = 10
  • Not Set = 100

Once that is completed for all possible outcomes, the next action is the List records Common Data Service action:

image

Here the Flow returns the Roadmap Item Link record for the TaskId passed in, the TaskId is referenced using the following expression: items(‘Apply_to_each’)[‘TaskId’]

The next action is another Apply to each action, Flow does this automatically as the List records would typically return more than one record:

image

The output used for this action is the default List records value from the Dynamic Content option. Then the final action within the Flow is the Common Data Service Update a record:

image

This action updates the Roadmap Items, I then pass in the List records Roadmap Item value from the Dynamic content panel, this is the Roadmap Item Id value. I also pass in the Health variable in the “Health Status Value” field. The flow will loop through all Project tasks and update the equivalent Roadmap row item status, pretty simple for a no / low code solution using only Microsoft Flow!

Over the next few days I will publish a short video for this Flow on my YouTube channel and also probably provide a download link for this Flow template to help as a solution starter.

#Project Roadmap #PowerBI report pack with #AzureBoards data #PPM #ProjectManagement #MSProject #Office365 #PowerPlatform #Dynamics365 #CDS #Odata #AzureDevOps

March 16, 2019 at 5:38 pm | Posted in Administration, App, Configuration, Customisation, Functionality, Information, Reporting | 1 Comment
Tags: , , , , , , , , , , ,

This post follows on from my last post where I posted about using Azure DevOps Azure Boards in Project Roadmap, in case that you missed it here is the link: https://pwmather.wordpress.com/2019/03/15/project-roadmap-azuredevops-azureboards-ppm-projectmanagement-msproject-projectonline-office365-powerplatform-cds/

In this post we will cover combining Azure Board data into the Roadmap Power BI report pack I released. Here is the blog on the default Roadmap Report pack if you haven’t seen that yet: https://pwmather.wordpress.com/2019/01/30/project-roadmap-powerbi-report-pack-ppm-projectmanagement-msproject-projectonline-office365-powerplatform-dynamics365/

image

I covered a similar topic the other week but for combining Project Online data here: https://pwmather.wordpress.com/2019/03/08/project-roadmap-powerbi-report-pack-with-projectonline-data-ppm-projectmanagement-msproject-office365-powerplatform-dynamics365-cds-odata/

With the Power BI Roadmap report set up and loading data from your Roadmap service which includes linked items from Azure Boards, we will now edit that Power BI report to bring in Azure Boards data. Firstly click Get Data > Odata Feed and enter the Azure DevOpps OData API URL like below:

https://analytics.dev.azure.com/organizationName/_odata/v1.0/

image

For details on the Azure DevOps OData API in Power BI, see this article: https://docs.microsoft.com/en-us/azure/devops/report/powerbi/access-analytics-power-bi?view=azure-devops

Click OK and sign in as required. In the Navigator window select Projects and WorkItems plus other tables as required:

image

Click Edit to load the Power Query editor. Edit the queries as needed, such as removing columns, remaining columns etc. but ensure you leave the ProjectId and WorkItemId columns in Projects and WorkItems queries as these are required to join the Azure Boards data with the Roadmap data. Once finished you should have at least 9 queries like below:

image

Click Close and Apply in the Power Query editor. Set up the relationships between the Projects table and RoadmapRowLinks and WorkItems table and RoadmapItemLinks:

image

Now update the Roadmap Detail page in the report as needed, as seen below outlined in red, I have included some project and work item level data from my linked Azure Boards Projects and Work Items:

image

It’s that simple!

#Project Roadmap #AzureDevOps #AzureBoards #PPM #ProjectManagement #MSProject #ProjectOnline #Office365 #PowerPlatform #CDS

March 15, 2019 at 6:26 am | Posted in Add-on, Administration, App, Configuration, Functionality, Information, Reporting | 7 Comments
Tags: , , , , , , , , ,

All of my previous posts on the new Roadmap service for Project has been based on Project Online projects, In this post we take a quick look at using Azure DevOps projects in Roadmap. This post wont go into much detail about the new Roadmap service, only how to use Azure DevOps projects in Roadmap. For details on the Roadmap service see this summary post: https://pwmather.wordpress.com/2019/03/01/project-roadmap-cds-app-overview-ppm-projectmanagement-msproject-projectonline-office365-powerplatfom-dynamics365/

Firstly ensure you have access to a project in Azure DevOps. This project will need work items (Epics, User Stories, Features, Tasks etc.) that have two fields used that might not be standard in your organisation depending on the process used in the project, these are Start Date and Target Date. To do this, for each type of work items that you want to sync in Roadmap, from the Work Items board in the Azure DevOps project, click “New Work Item” then the item such as Epic:

image

This list of work items might vary depending on which process your project uses, this example project just uses the basic process. When the Epic page loads, click Customize from the Actions menu seen below:

image

Click New Field:

image

Then set the option to “Use an existing field” and select “Start Date” and click Add Field:

image

Repeat this to add “Target Date” then update the layout to move the two new fields where you want them:

image

Repeat this process for other work items as needed such as Tasks, User Stories or Features depending on what board process your project uses. For example, if your project uses the default Agile process you will just need to update the User Story work item to add these fields. Now with some example Epic work items created in my test Azure DevOps project, each with a start date and target date, I can move over the Roadmap.

I’ve added a new row to my Roadmap for the Azure DevOps project, on the “Connect to a project” menu, I will select “Azure Boards”:

image

Ensure the Azure DevOps organization URL is correct and validated, then select your project:

image

Then the Flow connection details will appear:

image

Sign in if prompted. Then click Connect:

image

Then search for items to add:

image

Then click Add. Now the items will be added to the row:

image

This data will be kept in sync using Microsoft Flow just like the Project Online projects. The Project Online projects Flow runs every 5 minutes by default where as the Azure Board project Flow runs every hour.

In the next post we will look to combine the Azure DevOps Project Board data with the Roadmap data in Power BI.

#Project Roadmap #PowerBI report pack with #ProjectOnline data #PPM #ProjectManagement #MSProject #Office365 #PowerPlatform #Dynamics365 #CDS #Odata

March 8, 2019 at 11:04 pm | Posted in Add-on, Administration, App, Configuration, Functionality, Information, Reporting | 2 Comments
Tags: , , , , , , , , ,

As mentioned in previous posts, I said I will post on how to bring in Project Online data with the Roadmap service data in a Power BI Report. We will start off with the Power BI Roadmap report pack I published recently. If you missed it, it can be downloaded from the post below:

https://pwmather.wordpress.com/2019/01/30/project-roadmap-powerbi-report-pack-ppm-projectmanagement-msproject-projectonline-office365-powerplatform-dynamics365/

image

With the Power BI Roadmap report set up and loading data from your Roadmap service, we will now edit that Power BI report to bring in Project Online data. Firstly click Get Data > Odata Feed and enter the Project Online Reporting API URL like below:

image 

Click OK and sign in as required. In the Navigator window select Projects and Tasks plus other tables as required:

image

Click Edit to load the Power Query editor. Edit the queries as needed, such as removing columns, remaining columns etc. but ensure you leave the ProjectId and TaskId columns in Projects and Tasks queries as these are required to join the Project Online data with the Roadmap data. Once finished you should have at least 9 queries like below:

image

Click Close and Apply in the Power Query editor. Set up the relationships between the Projects table and RoadmapRowLinks and Tasks table and RoadmapItemLinks:

image

Now update the Roadmap Detail page in the report as needed, as seen below outlined in red, I have included some project and task level data from my linked Project Online Projects and Tasks:

image

It’s that simple, take a look and see what you think.

#Project Roadmap #CDS #App Overview #PPM #ProjectManagement #MSProject #ProjectOnline #Office365 #PowerPlatfom #Dynamics365

March 1, 2019 at 12:57 pm | Posted in Administration, App, Configuration, Customisation, Functionality, Information, Reporting | 2 Comments
Tags: , , , , , , ,

Have you used the new Roadmap feature from Microsoft yet? If not, why not! Over the last few months I posted several Roadmap related blog posts. In this blog post I have summarised all of the posts so that all of the post links are available in one place.

Roadmap is live – this post covered an overview for the end user: https://pwmather.wordpress.com/2018/12/19/project-roadmap-is-live-ppm-projectmanagement-msproject-projectonline-office365-powerplatfom/

Roadmap CDS App over view – this covered the CDS details (entities etc.) and reporting:

Roadmap PWA Project Center integration: https://pwmather.wordpress.com/2019/01/16/projectonline-pwa-project-details-page-integration-with-project-roadmap-office365-ppm-powerplatform-msflow/

Then the Power BI Report pack for Roadmap: https://pwmather.wordpress.com/2019/01/30/project-roadmap-powerbi-report-pack-ppm-projectmanagement-msproject-projectonline-office365-powerplatform-dynamics365/

image

Combining Project Online data with Roadmap data in the Power BI Report pack: https://pwmather.wordpress.com/2019/03/08/project-roadmap-powerbi-report-pack-with-projectonline-data-ppm-projectmanagement-msproject-office365-powerplatform-dynamics365-cds-odata/

Roadmap with Azure Board work items: https://pwmather.wordpress.com/2019/03/15/project-roadmap-azuredevops-azureboards-ppm-projectmanagement-msproject-projectonline-office365-powerplatform-cds/

Combining Azure Board data with Roadmap data in the Power BI Report pack: https://pwmather.wordpress.com/2019/03/16/project-roadmap-powerbi-report-pack-with-azureboards-data-ppm-projectmanagement-msproject-office365-powerplatform-dynamics365-cds-odata-azuredevops/

If you haven’t used Roadmap yet, take a look when you can! Also, see what you think of my Roadmap Power BI Report pack to get you started on reporting.

Blog at WordPress.com.
Entries and comments feeds.