#Project Roadmap #CDS #App Overview #PPM #ProjectManagement #MSProject #ProjectOnline #Office365 #PowerPlatform #Dynamics365 Part 2

January 7, 2019 at 6:03 pm | Posted in Administration, Configuration, Functionality, Information | Leave a comment
Tags: , , , , , , ,

This post follows on from part 1: https://pwmather.wordpress.com/2019/01/01/project-roadmap-cds-app-overview-ppm-projectmanagement-msproject-projectonline-office365-powerplatfom-dynamics365-part-1/ In part 1 we had a quick overview of the solutions used in the CDS app for the Roadmap service. In this post we will look at the fields used by the Roadmap service and take a look at some of the data in the Portfolio Service CDS database. As you know, this new feature is known as Roadmap to the end users, but the backend is known as the Portfolio Service, hence both names being used here.

Firstly we will have a look at some of the entities and field definitions from the Portfolio Service solution PowerApps admin interface that we briefly accessed at the end of part 1:

image

As you can see from the screen shot above, there are 6 entities deployed in the Portfolio Service solution. Each of these entities have various other artefacts such as views, keys, fields etc. For this post, we will just look at the fields. We wont explore all of the entities or all of the fields in each entity, but we will look at some of the key entities and fields used by the Roadmap service.

Firstly we will look at the Roadmap entity in the PowerApps portal:

image

You can scroll along the grid to see the properties such as description etc. This entity contains the roadmap details – the roadmap properties and rows added to the roadmap. Some of the key fields here for us as end users for reporting etc. are:

  • msdyn_name – this field will contain the Roadmap name and the row name
  • msdyn_type – this is used to determine the type – either a Roadmap which is type 0 or a row which is type 1
  • msdyn_roadmapid – this is the roadmap / row GUID
  • msdyn_parentroadmapid – this is contains the roadmap GUID for the rows added to a roadmap
  • msdyn_groupaadid – this is the associated Office 365 group ID

The next entity is the Roadmap Item:

image

This entity contains the roadmap item details – items added to rows on the roadmap and items added directly to the roadmap like key dates. Some key fields are:

  • msdyn_name – this field will contain item or key date name
  • msdyn_duedate – this field will contain the due date for row items
  • msdyn_startdate – this field will contain the start date for row items
  • msdyn_status – this is the status for the item such as At Risk, On Track etc.
  • msdyn_type – this is used to determine the type – either a key date which is type 0 or a phase which is type 1
  • msdyn_roadmapid – this is the roadmap / row GUID
  • msdyn_roadmapitemid – this contains the roadmap item GUID

The next entity is the Roadmap Item Link:

image

This entity contains the roadmap item link details – items added to rows on the roadmap that are linked to external projects (Project Online or Azure Boards currently). Some key fields are:

  • msdyn_externalname – this field will contain the external task name
  • msdyn_externalduedate – this field will contain the external due date for row items
  • msdyn_externalprojecttaskid – this is the external task GUID from the external project
  • msdyn_externalstartdate – this field will contain the external start date for row items
  • msdyn_externaltype – this is used to determine the type – either a key date which is type 0 or a phase which is type 1
  • msdyn_externalurl – this is the link to the external project
  • msdyn_roadmapid – this is the roadmap row GUID
  • msdyn_roadmapitemid – this contains the roadmap item GUID
  • msdyn_roadmapitemlinkid – this contains the roadmap item link GUID

The final entity that we will look at is the Roadmap Row Link:

image

This entity contains the roadmap row link details – rows on the roadmap that are linked to external projects (Project Online or Azure Boards currently). Some key fields are:

  • msdyn_externalname – this field will contain the external project name
  • msdyn_externalprojectid – this is the project GUID from the external project
  • msdyn_externalurl – this is the link to the external project
  • msdyn_refreshenddate – this is the finish time the external project last synchronised with the CDS data via the Flow
  • msdyn_refreshstartdate – this is the start time the external project last synchronised with the CDS data via the Flow
  • msdyn_roadmapid – this is the roadmap row GUID
  • msdyn_roadmaprowlinkid – this contains the roadmap row link GUID

Lets explore the data in the Roadmap entity. There are several ways in which we can do this, in code using the Organization Service or the Web API: https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/work-with-data-cds or there is a Connector for Power BI: https://powerapps.microsoft.com/en-us/blog/cds-for-apps-powerbi/ For this I will use Power Query in Power BI but also show you how to access the Web API too. To access the Roadmap data in Power BI you will need the server URL. There are at least two ways (probably more) to get the correct server URL for the CDS Roadmap uses. Firstly via the Office 365 Admin Center using the steps below:

Access the Office 365 Admin Center > Admin Centers > Dynamics 365:

image

Then click open on the correct instance and you will see the server URL in the URL bar:

image

The other way, if you do not have access to the Admin Center is by using the browser dev tools. Access Project Home > Press F12 / open the dev tools > Access a Roadmap > In the Network tab, find the network call GetCdsEndpoint then check the Response, you will see a cdsurl property:

image

Once you have the server URL you can either use the Power BI connector or the Web API. The the simplest way to demo viewing this data using the Web API is via the Browser. In this example. Add the following to the end of the server URL: /api/data/v9.1 – you can use a different version, at the time of writing 9.1 was the latest on my tenant. Going to the root Web API URL will return the JSON for all of the entities available. Append the entity that you want to access to the end of the URL and you will see all of the data available in the entity:

image

As the Web API implements the OData protocol you can use the standard query options such as $select or $filter. Here I’m just selecting the name and type from the roadmaps entity:

https://org05724544.crm11.dynamics.com/api/data/v9.1/msdyn_roadmaps()?$select=msdyn_name,msdyn_type

image

Here I’m filtering for roadmaps only as the roadmaps entity contains roadmaps and rows:

https://org05724544.crm11.dynamics.com/api/data/v9.1/msdyn_roadmaps()?$filter=msdyn_type eq 0

image

To easily make sense of the data you need to format the JSON. Power BI is easier to visualise the data.

In Power BI click Get Data > More > Online Services > Common Data Service for App (Beta):

image

Select it then press connect. Accept the warning about being a preview connector (something to be aware of!). Now enter the server URL:

image

Now you can see all of the tables / entities that are in this CDS service, for the purpose of this blog post I will just expand Entities then select Roadmap, Roadmap Item, Roadmap Item Link and Roadmap Row Link:

image

Then click Edit to load these in the query editor. I’ve removed some of the default fields to clean up the data. Here is one of my roadmaps from the msdyn_roadmap table via Power Query in Power BI:

image

Here is a row from my roadmap:

image

Here is a key date added to my roadmap from the msdyn_roadmapitem table:

image

Here is a task (known as a phase in Roadmap) added to a row in the roadmap:

image

Here is a milestone (known as a key date in Roadmap) added to a row in the roadmap:

image

Here is an item link for a task linked to a row in Roadmap from msdyn_roadmapitemlink table:

image

Here is an row link for a project linked to a row in Roadmap from msdyn_roadmaprowlink table:

image

In the final part of this mini series, we will look at following on from this and creating a simple report in Power BI for the Roadmap data and bring in some Project Online data.

Advertisements

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

January 1, 2019 at 7:19 pm | Posted in Administration, Configuration, Functionality, Information | 1 Comment
Tags: , , , , , ,

Following on from my last post where we walkthrough using the new Roadmap service for Microsoft PPM, in this post we take a quick look at some of the backend architecture within Dynamics 365. For those of you that missed the first post on Roadmap, a link is here: https://pwmather.wordpress.com/2018/12/19/project-roadmap-is-live-ppm-projectmanagement-msproject-projectonline-office365-powerplatfom/

The new Roadmap Service is built on top of the Common Data Service (CDS) for Apps that is part of the Power Platform offering. Details on the CDS for Apps can be found here: https://docs.microsoft.com/en-us/powerapps/maker/common-data-service/data-platform-intro. For this post we start in the Office 365 admin center, click the Admin Center icon from the left nav then click Dynamics 365. This will load the Dynamics 365 Administration Center:

image

On this Microsoft Demo instance I have one instance, this is where Roadmap is deployed to. Clicking the Open button will open this instance in a new window:

image

It defaults to the Administration screen. Using the Settings menu you can access other settings:

image

Most of these settings are either empty or contain the default entities / settings but a few do contain specific settings for the Roadmap service – also known as the Portfolio Service as you will seen further on in this post. If you access the Customizations menu:

image

Then click Publishers and you will see the Publishers this App uses:

image

Notice “Microsoft Project” – this is the Roadmap part of the app. Go back to the Customizations page and click Solutions, you will then see the solutions that this app uses:

image

Notice the two Portfolio Service solutions – these are part of the Roadmap solution. You can click the “Portfolio Service” display name and this will load the solution information / components:

image

Here you can navigate the various components such as entities then the fields within those entities:

image

We will explore the fields in part 2. You will notice the status bar informing us that we cannot edit components that are within a managed solution, these are managed by the Portfolio Service solution.

In part 2 we will look at the fields used by the Roadmap service and the data in the CDS database for Roadmap.

#Project Roadmap is live #PPM #ProjectManagement #MSProject #ProjectOnline #Office365 #PowerPlatfom

December 19, 2018 at 9:00 pm | Posted in Add-on, Administration, App, Configuration, Functionality, Information, Reporting | 2 Comments
Tags: , , , , ,

Microsoft Project Roadmap is now live and rolling out! This is available on one of my demo tenants, in this post we will have a walkthrough creating a roadmap. For those of you who might not be aware, Roadmap is a new feature added to Microsoft’s PPM offering, this was announced at Microsoft Ignite: https://pwmather.wordpress.com/2018/09/24/microsoft-project-the-future-ignite-ppm-pmot-workmanagement-projectonline-projectmanagement/ and: https://pwmather.wordpress.com/2018/09/26/microsoft-project-roadmap-product-at-a-glance-ppm-office365-flow-powerplatform-dynamics365-azure-azureboards/

Once this has been rolled to your tenant, it will need to be enabled, Brian Smith covered that already here: https://blogs.msdn.microsoft.com/brismith/2018/12/07/project-online-getting-started-with-roadmap/. Once activated on your tenant, you will see a new option on the Project Home page:

image

For those of you not familiar with the new Project Home, see this post: https://pwmather.wordpress.com/2018/08/20/new-projectonline-project-home-office365-ppm-ui-ux-msproject-fabricui/

Clicking the Roadmap option for the first time will trigger Roadmap to be set up for the first time on that tenant, you will see the message below:

image 

Once that has completed after a short while, you will see the following page:

image

This is the blank roadmap canvas ready for you to create your roadmap items. There is a prompt to do this, see the “Add a row” card. Click the Add row button, this will load a side panel on the right:

image

Specify a name for the row – this could be the project name, feature name etc., it is just your reference for that roadmap item row. Specify an owner for that roadmap row – this is the person who is responsible for that project or feature etc. Then select the connection, the row can either connect to a Project Online project or an Azure DevOps Board:

image

In this example, I will select Project Online. The panel then changes so you can enter the PWA URL:

image

Enter the PWA URL and press the green tick to validate it:

image

Now start typing the name of the project you want to link this row to:

image

Then click the project name to select it. After a few moments, the panel will update:

image

Click See Details to view the permissions of the Flow – Roadmap uses Microsoft Flow behind the scenes to sync the data from Project Online and Azure Boards into the Roadmap database. Click Continue, the panel will then update to show what services the Flow will connect to and the account it will use:

image

Click Connect, after few moments the panel will update to Add items, here you can search for tasks from the linked Project Online project / Azure Board project:

image

Start typing the task names then select them, the selected items will appear in the table below:

image

Note the Type column, “Phase” are tasks with a duration greater than 0 and “Key date” are 0 duration tasks. Click Add at the bottom once the tasks are selected. These items will then be added to the roadmap row:

image

Notice in the right hand panel, you can see the last time the project was updated – this is the last time the project was synchronised to the roadmap database using Microsoft Flow. This happens every 5 minutes but you can trigger it manually by pressing the update button. We will look at the Flow later on. In the right hand panel, you can also click the project name, this will link to the Project Detail Page for that project in Project Online. You can access this project panel by either clicking the row title or selecting the row then clicking the Details button above the timeline.

Key dates can be added to the timeline using the Add key date button:

image

Key dates can be anything from key business dates to dates when a product is due to ship, it is just a way to visualise important dates for the roadmap.

Multiple rows can be added, you can have different rows linked to different PWA instances or different Azure Boards. The row order can be changed using the Move up or Move down arrow buttons above the timeline when a row is selected.

All items on the roadmap can have a status set:

image

Give the roadmap a name by clicking the “Untitled roadmap”, this will open a panel for you to update the name:

image

You have other options on the page, zoom to change the zoom level of the timeline. Filter to filter for a specific owner. Go to date to scroll the timeline to a date and Members to share access to the roadmap. This is done via Office 365 groups, you can either link this to an existing group or create a new one:

image

Once linked to a group, you will see the privacy level below the roadmap title:

image

The roadmap then has all of the features the Office 365 groups provide such as File, Planner, SharePoint, Conversations etc. The group can be accessed by clicking the group name on the members callout:

image

Clicking the Project link on the top bar will take you back to the Project Home, here you will now see your roadmap:

image

You can create many roadmaps from Project Home, linked to different projects and different Office 365 groups. If you wanted another user to access your roadmap, copy the URL link once you’ve accessed the roadmap then send then the URL, just ensure they have been added as a member to that roadmap.

As mentioned earlier on, the roadmap feature use Microsoft Flow to sync the data with the roadmap database. For each row you create that is linked to Project Online or Azure Boards in a roadmap, a new Flow will get created automatically. These will run every 5 minutes to sync the data. Two rows in my example roadmap were linked to projects in Project Online, this created two Flows for me:

image

We can drill in and see the Flow:

image

There are many actions in this Flow to sync the data, the Flow does many checks checking things like the project last published time and will only sync if the project publish was greater than 15 minutes ago. I wouldn’t recommend changing this Flow unless you know what you are doing – there is no need to change this Flow, leave it be! If you do happen to break it by accident, disable the Flow from the Flow admin page then on the roadmap, try to manually update a project row that is linked to that Flow, it will display a Fix option:

image

Click Fix, the panel will then update to show the Fix button:

image

Click Fix and the Flow will be redeployed.

That’s it for this post – a great addition to the Microsoft PPM offering.

Blog at WordPress.com.
Entries and comments feeds.