Dynamics 365 Project Operations: Billing methods on project tasks

Tested on:
Project Operations solution version 4.3.0.59 (UR 3), CE-only deployment

The General Availability of Dynamics 365 Project Operations has introduced a long-awaited feature of billing and chargeability options for project tasks. As I’m writing this blog post, this feature is currently only available in a CE-only deployment however the integrated CE+F&O deployment will also receive this feature in a future update. In a nutshell, the feature is simple: It allows a user to select whether all or only some project tasks as chargeable. Let’s walk through the chargeability setup in ProjOps.

Billing methods on project tasks

To get to chargeability on project tasks, an order, an order line and a project are first needed. I’ve created a very simple project plan as an example, and at this point, task billing options aren’t available on the project as it is not associated with an order line. The same goes for an order line: As there is no project associated with it, no task billing options are visible. The Include Tasks field will also have a null value.

A simple project plan.
Order line without a project associated with it.

Selecting which tasks are included on an order line

As a project is associated with an order line, it’s possible to choose whether all or selected project tasks will be included on the related order line (also called project contract line). Choosing All project tasks will associate all project tasks with the order line as chargeable. With this option the chargeability of project tasks can’t be selected on the order line or the related project. When looking at the Task Billing Setup on the related project, the Project Level Associations grid will be populated with the related order line.

Project level associations.

The other option of Selected project tasks only will reveal the Chargeable Tasks tab on the order line. When this option is selected the chargeability of project tasks can be selected on the order line or on the project. The previously mentioned Project Level Associations grid on the related project will be empty.

Selecting whether an order line includes all or selected project tasks.

Selecting a billing method for a project task on an order line

Adding a new task association is done from the Chargeable Tasks grid. This adds a new Project Contract Line Task record for the new Project Contract Line Task entity, which is introduced to the ProjOps data model in the UR3 release. When a task is associated this way, it’s done on task level. This means that associating a summary task doesn’t automatically add its subtasks to the grid.

Associating a project task with an order line.
Associated project tasks.

Selecting a billing method for a project task on a project

When a project is associated with an order line, the Task Billing Setup tab on a project will become visible and the Task Associations grid will display a project’s summary and subtasks. The grid is a bit tricky to navigate but once a task is selected on the grid, an Associate a Contract line subgrid button will light up. The available options on the popup dialog are:

  • Contract Line: Select which order line the task is associated with. Only order lines from the related order are displayed.
  • Billing Type: Chargeable / Non Chargeable. This will drive chargeability of a task.
  • Include all child tasks: Yes / No. Setting this to Yes on a summary task will set all its subtasks as chargeable / non chargeable.
Associating tasks with an order line from project.

As it’s only possible to expand a single project task on the Task Associations grid, an easier place to view the effect of the popup dialog is to look at the associations from the Chargeable Tasks tab on order line. This will reveal that the choice that was made in the previous dialog sets the summary task and its subtasks as chargeable.

Chargeable summary and subtasks.
Disclaimer:
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 *