Resource management changes (Project Service Automation 3.x)

Important

Dynamics 365 Project Service Automation has evolved into Dynamics 365 Project Operations. For more information, see Project Service Automation Transition.

The sections of this article provide information about the changes that have been made to the Resource management area of Dynamics 365 Project Service Automation version 3.x.

Project estimates

Instead of being based on the msdyn_projecttask entity (Project Task), project estimates are based on the msdyn_resourceassignment entity (Resource Assignment). Resource assignments have become the "source of truth" for task scheduling and pricing.

Line tasks

In PSA 3.x, line tasks are obsolete (deprecated). Assignments now point to the whole task instead of the line tasks.

The following example shows how a task that is named "Test task" is assigned to team members A and B in earlier versions of PSA and in PSA 3.x.

  • Before PSA 3.x:

    • Test task

      • Test task – Line task 1

        • Assignment to A
      • Test task – Line task 2

        • Assignment to B
  • PSA 3.x:

    • Test task

      • Assignment to A
      • Assignment to B

Unassigned assignment

In PSA 3.x, an unassigned assignment is an assignment that is assigned to a NULL team member and a NULL resource. Unassigned assignments can occur in a couple of scenarios:

  • If a task has been created, but it hasn't yet been assigned to any team member, an unassigned assignment is always created.
  • If all assignees on a task are removed, an unassigned assignment is re-created for that task.

Scheduling fields on the Project Task entity

The fields on the msdyn_projecttask entity have been deprecated or moved to the msdyn_resourceassignment entity, or they are now referenced from the msdyn_projectteam entity (Project Team Member).

Deprecated field on msdyn_projecttask (Project Task) New field on msdyn_resourceassignment (Resource Assignment) Comment
msdyn_assignedresources None
msdyn_assignedteammembers None
msdyn_numberofresources None
msdyn_scheduledhours None
msdyn_effortcontour msdyn_plannedwork The format of the JavaScript Object Notation (JSON) data structure that is stored in the field has been changed.

Schedule contour

The schedule contour is stored in the Planned Work field (msdyn_plannedwork) of each Resource Assignment entity (msdyn_resourceassignment).

Structure

The new structure of the schedule contour consists of flexible time slices that are defined for each day of the schedule. Each time slice has the following properties:

  • Start – The start of the working hours for the day, according to the project calendar.
  • End – The end of the working hours for the day, according to the project calendar.
  • Hours – The number of hours that are assigned on the day.

Example

This example uses a project calendar where the workday is from 9 AM to 5 PM in the UTC-8 time zone.

[{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":8},{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":8},{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":2}]

Auto-scheduling and manual scheduling

If a task is auto-scheduled, the hours are front-loaded, and the task duration might be reduced.

Example

The following task is auto-scheduled for 18 hours over three days (December 3, 2018, to December 5, 2018).

[{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":8},{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":8},{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":2}]

If a task is manually scheduled, the hours are evenly distributed to all the dates.

Example

The following task is manually scheduled for 18 hours over three days (December 3, 2018, to December 5, 2018).

[{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":6},{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":6},{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":6}]

Assignment unit

The assignment unit has been deprecated in PSA 3.x. The task effort hours are now equally divided, per day, among all the assigned resources.

Example

In this example, the task is is assigned to two resources and is auto-scheduled for 36 hours over three days (December 3, 2018, to December 5, 2018).

  • Assignment 1:

    [{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":8},{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":8},{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":2}]
    
  • Assignment 2:

    [{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":8},{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":8},{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":2}]
    

Pricing dimensions

In PSA 3.x, resource-specific pricing dimension fields (such as Role and Organizational Unit) have been removed from the msdyn_projecttask entity. These fields can now be retrieved from the corresponding project team member (msdyn_projectteam) of the resource assignment (msdyn_resourceassignment) when project estimates are generated. A new field, msdyn_organizationalunit, has been added to the msdyn_projectteam entity.

Deprecated field on msdyn_projecttask (Project Task) Field from msdyn_projectteam (Project Team Member) that is used instead
msdyn_resourcecategory msdyn_resourcecategory
msdyn_organizationalunit msdyn_organizationalunit

Contours

The pricing and estimation contour fields have been deprecated on the msdyn_projecttask entity. They have been moved to the msdyn_resourceassignment entity.

Deprecated field on msdyn_projecttask (Project Task) New field on msdyn_resourceassignment (Resource Assignment)
msdyn_costestimatecontour msdyn_plannedcostcontour
msdyn_salesestimatecontour msdyn_plannedsalescontour

The following fields have been added to the msdyn_resourceassignment entity:

  • msdyn_plannedcost
  • msdyn_plannedsales

The following fields for planned, actual, and remaining cost and sales are unchanged on the msdyn_projecttask entity:

  • msdyn_plannedcost
  • msdyn_plannedsales
  • msdyn_actualcost
  • msdyn_actualsales
  • msdyn_remainingcost
  • msdyn_remainingsales