Actuals not in WIP but in Team or Actuals in wrong Team and not in WIP

Document ID : KB000031723
Last Modified Date : 14/02/2018
Show Technical Document Details

Symptom:

The resource has entered time for a particular project (project1) in the timesheet. As a result the actuals appear in WIP and also Cost Plan. But actuals does not appear in the Team Tab front.  The same resource has NOT entered time for a particular project (project2), but still the actuals appear in the team tab of that project.

Steps to Reproduce:

  1. Create a Timesheet, enter hours on a financially enabled project and submit it for approval
  2. Approve and Post the Timesheet
  3. Post the Transactions to Financials
  4. Post to WIP
  5. View WIP Actuals on the Project Cost Plan
  6. View Project Team page 

Expected Result:  The Team page should show the actual hours posted.

Actual Result: The Team page does not show the actual hours posted.  We see the actual hours on the Project, Task Assignment page.  However after some investigation, we found the hours are showing up on the Team tab of another Project.  

Environment:

Applies to all supported PAS environments for specified releases.

Cause:

Caused by CLRT-78838

Assignments are created on the wrong project if multiple browser windows are used at the same time from Gantt page.

Issue reproduced involves having two projects with different Gantt windows open in the same browser session and multiple tasks on the projects. The problem is that the intermediate step of selecting the tasks is stored in a session variable. The same session variable that both assignment windows will use and the second "select tasks to assign" overwrites that variable set for the first "select tasks to assign".

Steps to Reproduce:

  1. Create 'Project1' and add a few Staff Team members
  2. Create multiple tasks on this project1 but do not assign the team members yet
  3. Create 'Project2' and add a few Staff Team members
  4. Create multiple tasks on this project2 but do not assign the team members yet
  5. In the same browser session, open a Gantt window (GW1) for 'Project1' and open a Gantt window (GW2) for 'Project2'
  6. GW1 - select multiple tasks to assign resources -- this will open the Team selection list - keep it open, go to GW2
  7. GW2 - select multiple tasks to assign resources -- this will open the Team selection list - keep it open, go to GW1
  8. GW1 - select one or more members from the Team selection list and assign to the selected tasks 

Expected Result: Assignments should be created on the correct project

Actual Result: The result is that the team members from GW1 that were just selected were assigned to the tasks chosen by GW2 - causing the assignments to be created on the wrong project

Resolution:

CLRT-78838 : Open, assigned to development for a future resolution.

Workaround:

First, be sure to advise all users NOT to open multiple Gantt windows in the same session to prevent this data issue.  If actuals have not been posted to the assignment, it can be removed from the incorrect project. 

You can utilize the following queries as a preventative measure to identify any potential data issues on new assignment records before any actual hours get posted.  Using these queries in this manner will help to remove the records from the application UI in a timely manner before any actual hours are posted.  Once actual hours are posted, the data may not be easily corrected through the application UI.

Use the following query to identify assignments that have an incorrect Team ID associated with a different investment:

select i.name inv_name, ta.prname task_name, r.full_name assgn_resource, 
  a.prid assgn_prid, a.prresourceid assgn_resource_id, a.team_id assgn_team_id, 
  a.created_date assgn_created_date, a.last_updated_date assgn_last_updated_date, 
  ta.prprojectid assgn_project_id, te.prprojectid team_project_id, 
  te.prresourceid team_resource_id, rt.full_name prteam_resource, 
  a.prestsum/3600 ETC, a.practsum/3600 Actuals
from prassignment a, prtask ta, prteam te, inv_investments i, 
  srm_resources r, srm_resources rt
where 1=1 
  and ta.prid = a.prtaskid
  and te.prid = a.team_id
  and te.prprojectid != ta.prprojectid
  and i.id = ta.prprojectid
  and r.id = a.prresourceid 
  and rt.id = te.prresourceid

Use the following query to identify assignments that have an incorrect Team ID associated within the same investment but with a different Team Staff Member.

select i.name inv_name, ta.prname task_name, r.full_name assgn_resource, 
  a.prid assgn_prid, a.prresourceid assgn_resource_id, 
  a.team_id assgn_team_id, a.created_date assgn_created_date, 
  a.last_updated_date assgn_last_updated_date, 
  ta.prprojectid assgn_project_id, te.prprojectid team_project_id, 
  te.prresourceid team_resource_id, rt.full_name prteam_resource, 
  a.prestsum/3600 ETC, a.practsum/3600 Actuals
from prassignment a, prtask ta, prteam te, inv_investments i, 
  srm_resources r, srm_resources rt
where 1=1 
  and ta.prid = a.prtaskid
  and te.prid = a.team_id
  and te.prprojectid = ta.prprojectid
  and i.id = ta.prprojectid
  and r.id = a.prresourceid 
  and a.prresourceid != te.prresourceid
  and rt.id = te.prresourceid

If the assignment does not have any actual hours, you can go into the application and delete the assignment from the incorrect project task. From the results returned on the queries, look at the column for actuals.  If there are no actuals for the assignment, go to the Project, Task Assignment page and remove the bad assignment record through the application UI.

  

If the assignment has actual hours posted, contact CA Technical Support for analysis and investigation for a possible workaround to align the data to the Team.