Tested on Project Operations on Dataverse version 22.214.171.124 (October 2021)
A hidden gem that quite a few people seem to miss is the capability to assign multiple roles for a resource who is working on a project. The capability has been around for a while in PSA as it was introduced back in 2020. The docs article found here describes the setup process but I decided to write a short blog post about it so that we’d have instructions with screen captures that the community can follow.
Let’s first look at a simple use case. Let’s consider a scenario where a resource is working as a Solution Architect and a Consultant on a project. The work for the project is priced so that consulting costs X € an hour and solution architecture costs Y € an hour. For the sake of example the cost prices for consulting and solution architecture are also different. Let’s define the prices in table 1 below.
|Role||Sales Price in €||Cost Price in €|
Next, let’s look at how a resource is set up for multiple roles on a project.
Assigning a resource for multiple roles
First thing we’ll do is take a look at the roles the Bookable Resource we’ll assign on a project has. As seen in image 1, John Doe has Project Manager set as his default role. This means that John’s role allocation on a project is as follows:
- Bookable Resource Bookings based on a Resource Requirement can lead to John getting a role that is defined on the Resource Requirement. Example: Resource Requirement has a Resource Requirement Category for Consultant. When John is booked for the Resource Requirement, ProjOps assigns John a role of Consultant.
- Direct Resource Assignments on a task will result in John being assigned his default role, which is Project Manager.
Let’s look at an example project seen in image 2 and ask the big question: How can we ensure John is booked as a Consultant on task Definition workshops and as a Solution Architect on task Environments, solution segmentation? Let’s answer that next.
A role definition for a project task can be set on a project task row. It’s also possible to set an Organizational Unit but for now, let’s focus on roles. Image 3 shows how a project task row is opened from the Modern Project UI in Project Operations.
When a project task row opens up, a default role and an Organizational Unit can be defined as seen in image 4. We’re focusing on a default role in this blog post. The steps from image 3 and 4 are repeated for task Environments, solution segmentation, which requires a default role of Solution Architect.
Now that default roles for both tasks are set, John Doe is assigned on both tasks as seen in image 5. Note that this example focuses on direct assignments, not bookings.
The results of the assignments are seen in image 6. John Doe’s default role of Project Manager is seen on the Team tab’s All Team Members grid. His Project Team Member row will hold a role of Project Manager. When the row for John Doe is expanded in the grid, the task specific assignments can be seen.
The Estimates tab can be used to verify that cost and sales prices are correct. The consultancy task has a daily cost price of 800 € and the solution architecture task a daily cost price of 1000 € as seen in image 7. Looks correct (100 € x 8 h and 125 € x 8 h).
The sales price for the consultancy task is 1600 € for a day and the solution architecture task has a daily sales price of 1800 € as seen in image 8. Also correct (200 € x 8 h and 225 € x 8 h).
I hope this short article helps you build your project plans so that you’re able to price a resource based on their role on a project task. Be sure to read the docs article as well!