Issue with DWH schema View (DWH_INV_ASSIGN_PER_FACTS_W_V) with TSV attribute added to the Assignment object. The view contains null values for columns joined from the DWH_INV_ASSIGN_PERIOD_FACTS table due to the fact it adds a FULL OUTER JOIN
STEPS TO REPRODUCE:
- Make sure there are no TSV custom attributes on the Assignment object
- Run the Load Data Warehouse job – Full Load
- Run the following query:
- select * from DWH_INV_ASSIGN_PER_FACTS_W_V where investment_key is null
- Check the DDL for the view DWH_INV_ASSIGN_PER_FACTS_W_V:
- select DWH_INV_ASSIGN_PERIOD_FACTS.ACTUAL_HOURS,
- DWH_INV_ASSIGN_PERIOD_FACTS.TEAM_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.ASSIGNMENT_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.BASE_COST,
- DWH_INV_ASSIGN_PERIOD_FACTS.BASE_HOURS,
- DWH_INV_ASSIGN_PERIOD_FACTS.DW_UPDATED_DATE,
- DWH_INV_ASSIGN_PERIOD_FACTS.EAC_COST,
- DWH_INV_ASSIGN_PERIOD_FACTS.TASK_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.RESOURCE_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.PERIOD_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.INVESTMENT_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.ETC_HOURS,
- DWH_INV_ASSIGN_PERIOD_FACTS.ETC_COST,
- DWH_INV_ASSIGN_PERIOD_FACTS.EAC_HOURS,
- DWH_INV_ASSIGN_PERIOD_FACTS.ACWP_COST
- from DWH_INV_ASSIGN_PERIOD_FACTS
- inner join DWH_CMN_PERIOD TP on (DWH_INV_ASSIGN_PERIOD_FACTS.PERIOD_KEY = TP.PERIOD_KEY AND TP.PERIOD_TYPE_KEY = 'WEEKLY')
- Note there is an inner join here
- Add a new TSV attribute N_TEST to the Assignment object.
- Make sure the attribute is DWH enabled.
- Add the attribute to the Assignment View in Studio
- Open an Assignment and add a value on that TSV
- Run Time Slicing job
- Run Load Data Warehouse job – Full Load
- Check the DDL for the view DWH_INV_ASSIGN_PER_FACTS_W_V
- select DWH_ASSIGNMENT_FACTS.N_TEST,
- coalesce(DWH_ASSIGNMENT_FACTS.PERIOD_KEY, DWH_INV_ASSIGN_PERIOD_FACTS.PERIOD_KEY) as PERIOD_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.ACWP_COST,
- DWH_INV_ASSIGN_PERIOD_FACTS.BASE_COST,
- DWH_INV_ASSIGN_PERIOD_FACTS.BASE_HOURS,
- DWH_INV_ASSIGN_PERIOD_FACTS.EAC_COST,
- DWH_INV_ASSIGN_PERIOD_FACTS.EAC_HOURS,
- coalesce(DWH_ASSIGNMENT_FACTS.DW_UPDATED_DATE, DWH_INV_ASSIGN_PERIOD_FACTS.DW_UPDATED_DATE) as DW_UPDATED_DATE,
- coalesce(DWH_ASSIGNMENT_FACTS.ASSIGNMENT_KEY, DWH_INV_ASSIGN_PERIOD_FACTS.ASSIGNMENT_KEY) as ASSIGNMENT_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.TEAM_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.TASK_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.RESOURCE_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.INVESTMENT_KEY,
- DWH_INV_ASSIGN_PERIOD_FACTS.ETC_HOURS,
- DWH_INV_ASSIGN_PERIOD_FACTS.ETC_COST,
- DWH_INV_ASSIGN_PERIOD_FACTS.ACTUAL_HOURS
- from DWH_INV_ASSIGN_PERIOD_FACTS
- full outer join DWH_ASSIGNMENT_FACTS on ( DWH_INV_ASSIGN_PERIOD_FACTS.ASSIGNMENT_KEY = DWH_ASSIGNMENT_FACTS.ASSIGNMENT_KEY and DWH_INV_ASSIGN_PERIOD_FACTS.PERIOD_KEY = DWH_ASSIGNMENT_FACTS.PERIOD_KEY )
- where coalesce(DWH_ASSIGNMENT_FACTS.PERIOD_KEY, DWH_INV_ASSIGN_PERIOD_FACTS.PERIOD_KEY) in (SELECT PERIOD_KEY FROM DWH_CMN_PERIOD TP WHERE TP.PERIOD_TYPE_KEY = 'WEEKLY')
- Note the join is a FULL OUTER JOIN
- Run the following query to see if any null values exist from the DWH_INV_ASSIGN_PERIOD_FACTS columns joined in the "full outer join".
- select * from DWH_INV_ASSIGN_PER_FACTS_W_V where investment_key is null
Expected Results: No null investment_key entries as each assignment is expected to have a task and investment ID
Actual Results: Null values exist in DWH_INV_ASSIGN_PER_FACTS_W_V