What is the algorithm for tasks to appear on a timesheet?
In Administration, Timesheet Options, we have set the option to "Copy time entries from previous timesheet"
For a task to show up on a timesheet the following conditions must be met:
- The following attributes must be set as follows:
- The project that the task belongs to must be active and Open for Time Entry
(INV_INVESTMENTS.IS_ACTIVE = 1) and (PRJ_PROJECTS.PRISOPEN = 1)
- The project that the task belongs to must not be a Template
(SRM_PROJECTS.IS_TEMPLATE = 0)
- The project that the task belongs to must have a track mode of 'Clarity' or 'PPM'
(PRTRACKMODE = 2)
- The team association for the task must be Open for Time Entry
(PRTEAM.PRISOPEN <> 0)
- The task must not be a milestone, activity or phase
(PRTask.PRISMILESTONE = 0 AND PRTask.PRISTASK <> 0)
- The task must be 'Open for Time Entry' as well any immediate parent tasks; check for parent tasks 'Open for Time Entry' status on the Gantt view
(PRTask.IS_OPEN_TE = 1). Note: Immediate parent tasks includes not just the parent task directly one level above the task, but any other parent tasks in higher levels that are in the same chain as the task.
- 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.
- 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)
- If there are actuals and the estimate is not 0, then the assignment status is started
- (PRAssignment.prstatus = 1)
- 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:
- There is a pending estimate on the assignment
- (PRAssignment.prpendestsum > 0)
- There is no pending estimate specified on the assignment (PRAssignment.prpendestsum is null) , but one of the next 3 conditions are met:
- The timesheet population window intersects the assignment date ranges
- (PRAssignment.prstart < "timesheet population window end" AND PRAssignment.prfinish > "timesheet population window start")
- 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)
- 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:
- 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. Pending Estimates are copied when the timesheet row is copied to the current timesheet.
- How is the timesheet population window determined?
The timesheet population window can be specified in the " Populate Time Range " section found in Administration, Timesheet Options page.
[Timesheet population window start] = [time period start] - [days before time period start] : Default value = 7
[Timesheet population window end] = [time period end] + [days after time period end] : Default value = 7
- 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. Why would a completed task show up?
- 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 actual units, even though the ETC is 0, then the assignment is not complete, so the task can show on the timesheet. Once actual units 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.
- 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.
CA PPM copies the original task as well as the (split) task from the previous week. Is this expected?
Yes. All line items from the previous week are copied based on the rules outlined in this article and this includes (split) task rows. The purpose of (split) rows is to differentiate the Input Type Code or Charge Code for entering hours, and thus when the row is copied, the unique properties of the row is preserved for the current week.
Some additional related KB Articles: