Teams Added to a Task When Adding Them to a Timesheet
book
Article ID: 413150
calendar_today
Updated On:
Products
Clarity PPM On PremiseClarity PPM SaaS
Issue/Introduction
After you add a task that a resource is not assigned to it to a timesheet, the task is added multiple times for all the teams the resource is part of, and those teams are also assigned to the task.
Steps to Reproduce:
Create 2 resources: 'ResA' and 'ResB'.
Create 5 team investments: 'Team1', 'Team2', ..., 'Team5'.
For 'Team[1-4]', add 'ResA' to its staff. For 'Team5', add ResB instead.
Open for time entry the 2 resources and the 5 teams, and set their track mode to 'PPM'.
Create a custom investment type object: 'MyCIT'.
Create a new 'MyCIT' instance: 'MyCIT1' and open it.
Add the 5 teams to its staff.
Create 5 tasks: 'Task1', 'Task2', ..., 'Task5'.
For each of these tasks, assign the team with the same number (e.g.: assign 'Team1' to 'Task1', 'Team2' to 'Task2'...).
Navigate to Timesheets and open the timesheet for the relevant period for 'ResA'.
Click on Add Task > Select Tasks, and clear any active filter.
Add 'MyCIT' 'Task[1-4]' to the timesheet (these are the tasks for Teams where 'ResA' is a member).
Expected and Actuals Results: The 4 tasks are added to the timesheet.
Add 'MyCIT' 'Task5' to the timesheet (this is the task for the Team where 'ResB' is a member, but 'ResA' is not).
Expected Results: The task is added to the timesheet.
Actual Results: The task is added 4 times to the timesheet. All 4 Teams ('Team[1-4]') have been assigned to 'Task5' as well.
Environment
Any supported Clarity release.
Resolution
The reported behavior is the intended functionality for team-based time entries.
When a resource adds a task as time entry, they are not directly assigned to, the system automatically creates assignments for all teams that the resource belongs to (teams that are staffed in Task's parent Investment).
When a resource adds a task to their timesheet, the system first checks for a pre-existing, valid assignment for that resource on the task.
If no direct or team assignment exists for the resource:
The system will automatically create the necessary assignments to enable time tracking.
It identifies all teams the resource is a member of that are also staffed on the parent investment.
It then assigns each of these teams to the task and creates a corresponding timesheet entry for each new assignment.
This is why adding a single task can result in multiple timesheet entries if the resource is part of several relevant teams.
If the resource is already assigned to the task (either directly or via a team):
The system will only create time entries for the existing assignments.
It will not create any new, implicit assignments.
If the task has other unassigned staff (resource or resource's team), the same task will remain available in the 'Add Task' page for other resources.
This is the behavior taking the earlier Steps to Reproduce as an example:
Resource Team Membership: 'ResA' is a member of 'Team1', 'Team2', 'Team3', and 'Team4'.
Direct/Indirect Task Assignment Existence:
Indirect task assignment exist for 'ResA' for 'Task1', 'Task2', 'Task3' and 'Task4', as:
'Team1' is assigned 'Task1',
'Team2' is assigned 'Task2',
'Team3' is assigned 'Task3',
'Team4' is assigned 'Task4'.
Time Entry Creation Logic in this case:
When 'ResA' adds 'Task[1-4]' (originally assigned to 'Team[1-4]', and indirectly to 'ResA'), the system detects that 'ResA' is indirectly assigned to these tasks.
The system only creates time entries for the existing assignments ('Team[1-4]' for 'Task[1-4]', respectively).
As the 'Tasks[1-4]' still have unassigned staffs (Teams that are not assigned to tasks), the same task will remain available in the 'Add Task' page
Non Existence of Direct/Indirect Task Assignment :
'Team5' is assigned to 'Task5' and 'ResA' doesn't belong to 'Team5'.
So 'ResA' is not directly or indirectly assigned to 'Task5'.
Time Entry Creation Logic in this case:
When 'ResA' adds 'Task5' (originally assigned only to 'Team5'), the system detects that 'ResA' is not directly or indirectly assigned to this task,
So it creates new assignments for all teams that 'ResA' belongs to ('Team[1-4]') on 'Task5', because the system does not understand whether the user 'ResA' worked on that task as part of which team.
This results in 4 time entries for 'Task5', one for each team assignment. User can keep the time entry that's appropriate to their work, and remove the other entries as needed. This is as per design.