Team Member Does Not Load Tasks or Results in Performance Degradation When a Global Activity Code Is Assigned to Millions of Activities

(Doc ID 2229335.1)

Last updated on FEBRUARY 21, 2017

Applies to:

Primavera P6 Enterprise Project Portfolio Management - Version to [Release 15.2]
Information in this document applies to any platform.



Team Member does not finish loading tasks when a global code is referencing millions of activities in a database.  This could be any VALUE, not necessarily the VALUE that was used.

Steps to Reproduce

The code used is assigned to millions of activities in the entire database and causes the issue to occur.  If the codes is assigned to less activities, the performance may be acceptable.
  1. Log into P6 web
  2. Assign access to 1 project in the database to a TM user.
  3. Assign a global code value to activities in the Project.
  4. Set TM filter to equal that value.
  5. Login to TM - the retrieving tasks symbols revolve for minutes then a box shows up that says "Alert!" with an OK button.
  6. Press the OK button and the symbols continue to spin for many more minutes until another pop-up "Warning - Session Inactive"
  7. Select Stay logged in and it continues this way never retrieving the records.

A trace shows the offending SQL:

SELECT * FROM (SELECT task.remain_drtn_hr_cnt RemainingDuration,task.target_start_date PlannedStart,task.complete_pct_type PercentCompleteType,task.task_id ActivityId,task.phys_complete_pct DBPhysicalPercentComplete,project.step_complete_flag ProjectPhysicalPctCptUseSteps,task.proj_id ProjectId,task.target_drtn_hr_cnt PlannedDuration,task.act_work_qty + task.act_equip_qty ActualUnits,task.remain_work_qty + task.remain_equip_qty RemainingUnits,task.task_type ActivityType,task.status_code ActivityStatus,task.act_work_qty ActualLaborUnits,task.target_work_qty PlannedLaborUnits,taskuser.user_id ActivityOwnerUserId,task.starred_flag IsStarred,rsrc.rsrc_short_name PrimaryResourceShortName,task.reend_date RemainingFinish,task.clndr_id CalendarId,rsrc.rsrc_name PrimaryResourceName,task.act_start_date ActualStart,task.restart_date RemainingStart,task.cstr_type ConstraintType,task.cstr_type2 ConstraintType2,task.external_early_start_date ExternalEarlyStartDate,task.location_id LocationId,task.review_end_date ReviewFinishDate,task.expect_end_date ExpectFinishDate,alias_projwbs.wbs_name ProjectName,task.act_end_date ActualFinish,task.external_late_end_date ExternalLateFinishDate,projwbs.wbs_name WbsName,task.target_end_date PlannedFinish,task.task_name ActivityName,task.act_equip_qty ActualNonLaborUnits,task.remain_work_qty RemainingLaborUnits,task.wbs_id WbsId,task.task_code ActivityCode,task.control_updates_flag ReviewRequired,project.proj_short_name ProjectIdName,task.remain_equip_qty RemainingNonLaborUnits,task.rsrc_id PrimaryResourceId FROM actvcode actvcode478,projwbs alias_projwbs,project,projwbs,rsrc,task,task task478,taskactv taskactv478,taskuser WHERE (task.wbs_id=projwbs.wbs_id AND task.proj_id=projwbs.proj_id) AND task.proj_id=alias_projwbs.proj_id and alias_projwbs.proj_node_flag='Y' AND task.proj_id=project.proj_id AND task.rsrc_id=rsrc.rsrc_id(+) AND task.task_id=taskuser.task_id(+) AND task.task_id=task478.task_id AND task478.task_id=taskactv478.task_id(+) AND 478=taskactv478.actv_code_type_id(+) AND task478.proj_id=taskactv478.proj_id(+) AND task478.proj_id=task.proj_id AND taskactv478.actv_code_id=actvcode478.actv_code_id(+) AND (((task.act_end_date IS NULL OR task.act_end_date >= TO_DATE('2016-07-10 00:00:00','yyyy-mm-dd hh24:mi:ss')))) AND ( (task.wbs_id IN ( select projwbs.wbs_id from projwbs, obsproj, userobs where projwbs.status_code = 'WS_Open' and projwbs.proj_id = obsproj.proj_id and obsproj.obs_id = userobs.obs_id and userobs.user_id = 796 ))AND ( ( actvcode478.actv_code_id=58091 ) ) ) order by task.task_id asc) WHERE rownum <=1025



Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms