122: AND l_effective_date BETWEEN pet.effective_start_date
123: AND pet.effective_end_date
124: AND pet.popl_enrt_typ_cycl_id = enp.popl_enrt_typ_cycl_id)
125: AND NOT EXISTS (SELECT 'x'
126: FROM HRI_CS_CO_PGM_CT pgmd
127: WHERE pgmd.pgm_id = pgm.pgm_id);
128: --
129: CURSOR c_ptip IS
130: SELECT ctp.ptip_id ptip_id, ctp.pl_typ_id pl_typ_id, ctp.pgm_id pgm_id,
136: AND l_effective_date BETWEEN ptp.effective_start_date
137: AND ptp.effective_end_date
138: AND ptp.opt_typ_cd <> 'SPDGACCT'
139: AND EXISTS (SELECT 'x'
140: FROM hri_cs_co_pgm_ct pgmd
141: WHERE pgmd.pgm_id = ctp.pgm_id)
142: AND NOT EXISTS (SELECT 'x'
143: FROM hri_cs_co_pgmh_ptip_ct ctpd
144: WHERE ctpd.ptip_id = ctp.ptip_id);
206:
207: CURSOR c_popl_rptg_grp
208: IS
209: SELECT rgr.popl_rptg_grp_id, rgr.rptg_grp_id, rgr.pgm_id
210: FROM ben_popl_rptg_grp_f rgr, hri_cs_co_pgm_ct pgmd
211: WHERE rgr.pgm_id IS NOT NULL
212: AND rgr.pgm_id = pgmd.pgm_id
213: AND l_effective_date BETWEEN rgr.effective_start_date
214: AND rgr.effective_end_date
219: --
220: CURSOR c_pgm_enrt_perd
221: IS
222: SELECT enp.enrt_perd_id, pgmd.pgm_id, enp.strt_dt, enp.end_dt, enp.ASND_LF_EVT_DT ASND_LF_EVT_DT
223: FROM hri_cs_co_pgm_ct pgmd,
224: ben_popl_enrt_typ_cycl_f pet,
225: ben_enrt_perd enp
226: WHERE pgmd.pgm_id = pet.pgm_id
227: AND pet.popl_enrt_typ_cycl_id = enp.popl_enrt_typ_cycl_id
254: BEGIN
255: --
256: output('Inside Incremental Update');
257: --
258: -- (1) Populate dimension table HRI_CS_CO_PGM_CT
259: --
260: FOR l_pgm_row in c_pgm LOOP
261: --
262: INSERT INTO HRI_CS_CO_PGM_CT
258: -- (1) Populate dimension table HRI_CS_CO_PGM_CT
259: --
260: FOR l_pgm_row in c_pgm LOOP
261: --
262: INSERT INTO HRI_CS_CO_PGM_CT
263: ( PGM_id
264: , LAST_UPDATE_DATE
265: , LAST_UPDATED_BY
266: , LAST_UPDATE_LOGIN
527: -- Delete rows that no longer exist in the source tables
528: --
529: -- Program Dimension
530: --
531: DELETE FROM HRI_CS_CO_PGM_CT pgmd
532: WHERE NOT EXISTS (SELECT 'x'
533: FROM ben_pgm_f pgm
534: WHERE pgm.pgm_id = pgmd.pgm_id);
535: --
647: AND l_effective_date BETWEEN ptp.effective_start_date
648: AND ptp.effective_end_date
649: AND ptp.opt_typ_cd <> 'SPDGACCT'
650: AND EXISTS (SELECT 'x'
651: FROM hri_cs_co_pgm_ct pgmd
652: WHERE pgmd.pgm_id = ctp.pgm_id);
653: --
654: CURSOR c_plip
655: IS
706: --
707: CURSOR c_popl_rptg_grp
708: IS
709: SELECT rgr.popl_rptg_grp_id, rgr.rptg_grp_id, rgr.pgm_id
710: FROM ben_popl_rptg_grp_f rgr, hri_cs_co_pgm_ct pgmd
711: WHERE rgr.pgm_id IS NOT NULL
712: AND rgr.pgm_id = pgmd.pgm_id
713: AND l_effective_date BETWEEN rgr.effective_start_date
714: AND rgr.effective_end_date;
715: --
716: CURSOR c_pgm_enrt_perd
717: IS
718: SELECT enp.enrt_perd_id, pgmd.pgm_id, enp.strt_dt, enp.end_dt, enp.ASND_LF_EVT_DT ASND_LF_EVT_DT
719: FROM hri_cs_co_pgm_ct pgmd,
720: ben_popl_enrt_typ_cycl_f pet,
721: ben_enrt_perd enp
722: WHERE pgmd.pgm_id = pet.pgm_id
723: AND pet.popl_enrt_typ_cycl_id = enp.popl_enrt_typ_cycl_id
746: output('Start Of Full Refresh');
747: --
748: -- Disable the WHO Triggers
749: --
750: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_CO_PGM_CT_WHO DISABLE');
751: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_CO_PGMH_PTIP_CT_WHO DISABLE');
752: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_CO_PGMH_PLIP_CT_WHO DISABLE');
753: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_CO_RPGH_PIRG_CT_WHO DISABLE');
754: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_COMPOBJ_CT_WHO DISABLE');
755: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_TIME_BENRL_PRD_CT_WHO DISABLE');
756: --
757: -- Truncate the target table prior to full refresh.
758: --
759: EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || g_schema || '.HRI_CS_CO_PGM_CT';
760: EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || g_schema || '.HRI_CS_CO_PGMH_PTIP_CT';
761: EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || g_schema || '.HRI_CS_CO_PGMH_PLIP_CT';
762: EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || g_schema || '.HRI_CS_COMPOBJ_CT';
763: EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || g_schema || '.HRI_CS_CO_RPGH_PIRG_CT';
767: --
768: output('Truncated the tables: ' || to_char(sysdate,'HH24:MI:SS'));
769: --
770: --
771: -- (1) Populate dimension table HRI_CS_CO_PGM_CT
772: --
773: FOR l_pgm_row in c_pgm LOOP
774: --
775: INSERT INTO HRI_CS_CO_PGM_CT
771: -- (1) Populate dimension table HRI_CS_CO_PGM_CT
772: --
773: FOR l_pgm_row in c_pgm LOOP
774: --
775: INSERT INTO HRI_CS_CO_PGM_CT
776: ( PGM_id
777: , LAST_UPDATE_DATE
778: , LAST_UPDATED_BY
779: , LAST_UPDATE_LOGIN
1037: COMMIT;
1038: --
1039: -- Enable the WHO triggers
1040: --
1041: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_CO_PGM_CT_WHO ENABLE');
1042: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_CO_PGMH_PTIP_CT_WHO ENABLE');
1043: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_CO_PGMH_PLIP_CT_WHO ENABLE');
1044: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_CO_RPGH_PIRG_CT_WHO ENABLE');
1045: run_sql_stmt_noerr('ALTER TRIGGER HRI_CS_COMPOBJ_CT_WHO ENABLE');
1159: output('Finished changes to the table: ' || to_char(sysdate,'HH24:MI:SS'));
1160: --
1161: -- Gather index stats
1162: --
1163: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_CO_PGM_CT');
1164: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_CO_PGMH_PTIP_CT');
1165: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_CO_PGMH_PLIP_CT');
1166: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_CO_RPGH_PIRG_CT');
1167: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_TIME_BENRL_PRD_CT');
1164: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_CO_PGMH_PTIP_CT');
1165: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_CO_PGMH_PLIP_CT');
1166: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_CO_RPGH_PIRG_CT');
1167: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_TIME_BENRL_PRD_CT');
1168: fnd_stats.gather_table_stats(g_schema, 'HRI_CS_CO_PGM_CT');
1169: --
1170: -- Write timing information to log
1171: --
1172: -- output('Gathered stats: ' || to_char(sysdate,'HH24:MI:SS'));