You may already know this, but Project for the web comes with a Dynamics app called Project. At the time of writing this post, the app provides you with the following capabilities:
- Access to a central repository of all the projects created with Project for the web
- Access to the pool of resources assigned to projects, along with the ability to manage their work hours and time off
- Access and define Accounts and Contacts
Since Project for the web stores data in the Common Data Service (CDS), every project created with Project for the web essentially uses the ‘Project’ entity from CDS. This means you can create or modify custom Fields, Forms and Views for the ‘Project’ entity, as well as create custom Entities that are linked to projects (for example, Risks and Issues repositories).
We will cover the topic of configuring custom CDS Entities in another post. Today we’ll talk about how easy it is to configure custom Fields for projects, as well as surfacing them in Forms and Views.
Let’s say we want to give users the ability to capture the Cost, Schedule and Resource status for their projects and have an ‘Overall Health’ project field that will be calculated based on these status fields. We will also want to surface these fields in a project Form, as well as in a View that displays a list of existing projects.
Enhancing the ‘Project’ entity from the CDS is done using PowerApps.
The first thing you need to do is open PowerApps and make sure the default environment is selected in the Environment drop-down from the ribbon. You need to do this because the Project app gets deployed on the default environment.
Next, click Data – Option Sets in the quick launch, then click New option set in the ribbon:
You can think of Option Sets as the equivalent of Lookup Tables from Project Online. For our status fields, we will define an option set containing the following values: Green, Yellow and Red.
After you save the new option set, click Entities in the quick launch, then find and click the Project entity from the list.
NOTE: If you only see a small number of available Entities in the page, click on the following link which is displayed at the bottom of the list:
Once you opened the Project entity, you will see a list of all the fields currently available for projects. Go ahead and click Add field in the ribbon:
Create the three status fields by providing their display name, choosing the Option Set data type and selecting the Option Set you just created:
Follow the same steps for the ‘Overall Health’ field, but this time choose the Text data type and add a calculation in the Calculated or Rollup section:
In the Calculated Field dialog, define the calculation syntax. For example:
Now that the fields are defined, it’s time to surface them in the Project app.
First, we’ll add the fields to an existing Form, so that users can update the fields on a project-by-project basis. To do this, select the Forms tab while editing the Project entity and click on the Information form:
Using drag-and-drop, add the custom fields created by you earlier to a new or existing Tab:
When done, save and publish your changes using the buttons from the top-right corner of the screen:
Go back to the Project entity and add the fields to one of the available Views. Don’t forget to save and publish the changes once you’re done editing the view.
That’s it! Users are now able to capture status information for their projects:
They are also able to see the ‘Overall Health’ and status for each project in a single view:
Last but not least, these fields can also be leveraged when building reports and dashboards.