Clarity PPM: Timesheet Population - What determines tasks appearing on a timesheet?

Document ID : KB000027000
Last Modified Date : 09/04/2019
Show Technical Document Details
Question:
What is the algorithm for tasks to appear on a timesheet?
Answer:

For a task to show up on a timesheet the following conditions must be met. 

1.   The following attributes must be set as follows:

a.   The project that the task belongs to must be active.
       (SRM_PROJECTS.IS_ACTIVE = 1) 
b.   The project that the task belongs to must not be a template. 
       (SRM_PROJECTS.IS_TEMPLATE = 0) 
c.   The project that the task belongs to must have a track mode of clarity. 
       (PRTRACKMODE = 2) 
d.   The team association for the task must be open. 
       (PRTEAM.PRISOPEN <> 0) 
e.   The task must not be a milestone, activity or phase. 
       (PRTask.PRISMILESTONE = 0 AND PRTask.PRISTASK <> 0) 
f.    The task must be open for time entry as well any immediate parent tasks. 
      (PRTask.IS_OPEN_TE = 1) 
 (The easiest way to find if a task is a child task, please open the project in PPM Gantt where the WBS structure is displayed)

AND

2.   The assignment cannot have a status of complete. It must be "not started" or "started." The assignment status is determined by condition a, b or c below.

a.    If there are no actuals posted to the assignment, regardless of what the estimates are, then the assignment status is Not Started. 
       (PRAssignment.prstatus = 0)
b.    If there are actuals and the estimate is not 0, then the assignment status is started. 
       (PRAssignment.prstatus = 1) 
c.    Otherwise (there are actuals and the estimate is 0) then the assignment status is completed. (PRAssignment.prstatus = 2) 

Note: It is important to look at the assignment status, not the task status in determining if a task should show on a timesheet for a resource. There are scenarios where the task status will differ from the assignment. i.e., A resource may be finished working on the task (that assignment would be complete); however, another resource may still need to complete the work on the same task. 


AND either Condition 3 or 4 is met: 

3.   There is a pending estimate on the assignment. 
        (PRAssignment.prpendestsum > 0) 
4.   There is no pending estimate specified on the assignment 
        (PRAssignment.prpendestsum is null) , but one of the next 3 conditions are met:

a.    The timesheet population window intersects the assignment date ranges. 
        (PRAssignment.prstart < "timesheet population window end" AND
        PRAssignment.prfinish > "timesheet population window start") 
b.    There is still some estimate on the assignment left on the assignment and the timesheet population window is later than the assignment date ranges. 
       (PRAssignment.prfinish < "timesheet population window start" AND PRAssignment.prestsum > 0) 
c.    The assignment start date is null and the timesheet population window intersects the task date ranges. (PRAssignment.prstart is null AND PRTask.prstart          < "timesheet population window end" AND PRTask.prfinish > "timesheet population window start") 
       (Note: This scenario is uncommon.) 

Note: If the pending estimate is 0, then neither condition 3 or 4 are met, so the task will not show on the timesheet. 

Note 2: If the "Copy from previous timesheet" feature is enabled, then in addition to any time entries selected by the above logic, any entries that were on the previous timesheet will be added to the timesheet being populated. 

Frequently Asked Questions 

1.   How are pending estimates entered? 

Pending estimates are typically entered by overriding the value in the ETC field on the timesheet or by specifying a value for the pending estimate field on the assignment properties page. 

2.   How is the timesheet population window determined? 

The timesheet population window can be specified in the " Populate Time Range " section found in the Admin Tool à  Timesheet Options page. 

[Timesheet population window start] = [time period start] - [days before time period start] 

[Timesheet population window end] = [time period end] + [days after time period end] 

3.   When populating a timesheet using the "populate" button, there are tasks being populated, that should not show on the timesheet. This appears to occur for task assignments under the following conditions.

  • The resource is assigned to a task 
  • The task is completed without the given resource recording any actual time against the task 
  • The resource's assignment ETC is set to 0 
  • The task status is set to "completed" (the assignment status remains at "not started") 
  • If the resource now populates the timesheet using the "populate" button, the completed task appears in the timesheet (Note: the same task does not appear in the list of tasks when using the "add task" button). 

Explanation: Condition 2a above indicates that if an assignment has no actuals, even though the ETC is 0, then the assignment is not complete, so the task can show on the timesheet. Once actuals are entered for this task, then the assignment will be complete and will not show up on the subsequent timesheet. 

Note: Even though the task was complete, this does not mean that the assignment will be. 

4.   I have the "Populate from Previous Timesheet" enabled, but I want to prevent a task from showing on next week's timesheet. How do I do this? 

Solution: Zero out the ETC (specify a pending estimate) and make sure that actuals have been entered onto the task at some point in the past. Then, delete the task from the timesheet in the subsequent time period. 
If the task has no ETC but has some actuals, then you can simply delete it from the timesheet. 

Additional Information:

To review notes that appear on timesheets or time entries, the following query can be used:

select * from PRNOTE
where prrecordid in (select prid from PRTIMEENTRY where prtimesheetid = xxxxxx) and prtablename in ('PRTimeEntry', 'PRTimeSheet') order by PRRECORDID