Dynamics 365 Project Operations: Approving time entries using the Project Approver Admin role

Project Operations Lite version 4.58.0.123

A global approver for time and expense has been an ask since PSA V1. The fact that only a Project Team Member set as a Project Approver can approve time and expense for a project has caused gray hair in nearly all PSA and Project Operations implementation projects I’ve done. With the September 2022 release, this has now changed. The September release introduced a Project Approver Admin security role, which allows a user to approve time, expense, and materials for projects, even if they’re not a Project Approver on a project team. Let’s see how this works in action.

The Project Approver Admin role

Learn is short and sweet about the Project Approver Admin role. Approval sets must be turned on, and access to tables is required via a security role. The latter means an additional security role must be given to access tables in Project Operations. When comparing the Project Approver role with the Project Approver Admin role, a quick deduction is that the Project Approver Admin role doesn’t give access to any tables.

Image 1. Comparing the Project Approver role (left) with the Project Approver Admin role (right).

Approving time entries using the Project Approver Admin role

Let’s assign the Project Approver Admin and the Project Approver roles to our test user John Doe and observe what he is able to see under project approvals. For this test scenario, I’ve created a simple project where my user is the only team member (image 2 below).

Image 2. Test project.

Next, let’s verify that my user doesn’t have a manager set. In addition to work, we also want to test approvals for absence and vacation.

Image 3. Verifying that a manager hasn’t been set.

Now that the scene is set, let’s see what happens when I create a new time entry for the example project and for vacation and absence. Well, nothing has changed when it comes to managers being required for absence and vacation type of entries. Submitting time for those isn’t possible without having a manager set.

Image 4. Trying to submit time for absence and vacation without a manager.

I guess this could be expected, so let’s add Laura Doe as my manager and submit the time entries.

Image 5. Adding a manager for absence and vacation entries.

Next, let’s see what John Doe is able to see under project approvals now that he’s a Project Approver Admin. Interesting. John Doe can’t see any entries at all! Not what I’d expect. Going through all OOTB views on project approval doesn’t change anything. There’s nothing for John Doe to approve.

Image 6. No entries to approve despite being Project Approver Admin.

Let’s look at the default view Time Entries for Approval, in more detail by editing the view’s filters. This reveals something interesting. Nothing has changed with this view after the release of the Project Approver Admin capability. The view shows entries where the approver is on a project team. When editing the view’s filters, there’s a statement “Condition not executed because of missing relationship: msdyn_projectteam” .

Image 7. Error in the filter.

Let’s remove the filter with the error and add the Type column to the view from the related time entry table. The time entries for absence, vacation, and work submitted by my user are now visible for John Doe.

Image 8. Edited Time Entry for Approvals view.

By approving all three entries, we can validate that as a Project Approver Admin, it’s possible to approve time entries of type absence, vacation, and work. Approval for all types of time entries is possible even if the approver is not the manager of the bookable resource whose time entries are being approved.

Image 9. Approved absence, vacation, and work as a Project Approver Admin.

I’ll leave the testing of approving expenses and materials to you. Leave a comment below about your findings or questions!

All my blog posts reflect my personal opinions and findings unless otherwise stated.

Leave a Reply

Your email address will not be published. Required fields are marked *