DBA Data[Home] [Help]

PACKAGE BODY: APPS.HRI_MTDT_DIM_LVL

Source


1 PACKAGE BODY hri_mtdt_dim_lvl AS
2 /* $Header: hrimdlv.pkb 120.6 2005/09/19 06:03:03 cbridge noship $ */
3 
4 g_rtn   VARCHAR2(30) := '
5 ';
6 
7 g_cache_pow_wktyp  VARCHAR2(30);
8 
9 /* Called during package initialization */
10 PROCEDURE set_metadata IS
11 
12   l_dim_lvl   VARCHAR2(100);
13 
14 BEGIN
15 
16 /* Dimension level metadata */
17 /****************************/
18 
19   l_dim_lvl := 'HRI_PERSON+HRI_PER_USRDR_H';
20   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'supervisor_person_id';
21   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_dbi_cl_per_n_v';
22   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := 'hri_mdp_sup_wrkfc_sup_mv';
23   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_snp  := 'hri_mds_sup_wrkfc_sup_mv';
24 
25   l_dim_lvl := 'GEOGRAPHY+AREA';
26   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'geo_area_code';
27   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_dbi_cl_geo_area_v';
28   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := 'hri_mdp_sup_wrkfc_ctr_mv';
29   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_snp  := 'hri_mds_sup_wrkfc_ctr_mv';
30   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wcnt_mv_snp  := 'hri_mds_sup_wcnt_term_ctr_mv';
31 
32   l_dim_lvl := 'GEOGRAPHY+COUNTRY';
33   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'geo_country_code';
34   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_dbi_cl_geo_country_v';
35   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := 'hri_mdp_sup_wrkfc_ctr_mv';
36   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_snp  := 'hri_mds_sup_wrkfc_ctr_mv';
37   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wcnt_mv_snp  := 'hri_mds_sup_wcnt_term_ctr_mv';
38 
39   l_dim_lvl := 'JOB+JOB_FAMILY';
40   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'job_fmly_code';
41   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_cl_job_family_v';
42   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := 'hri_mdp_sup_wrkfc_jfm_mv';
43 
44   l_dim_lvl := 'JOB+JOB_FUNCTION';
45   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'job_fnctn_code';
46   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_cl_job_function_v';
47   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := 'hri_mdp_sup_wrkfc_jfn_mv';
48 
49   l_dim_lvl := 'JOB+PRIMARY_JOB_ROLE';
50   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'primary_job_role_code';
51   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_cl_job_job_role_v';
52   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := 'hri_mdp_sup_wrkfc_jpr_mv';
53 
54   l_dim_lvl := 'HRI_LOW+HRI_LOW_BAND_X';
55   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'pow_band_sk_fk';
56   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_dbi_cl_pow_all_band_v';
57   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := 'hri_mdp_sup_wrkfc_e_mv';
58 
59   l_dim_lvl := 'HRI_LOW+HRI_LOW_BAND_EMP';
60   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_dbi_cl_pow_service_band_v';
61 
62   l_dim_lvl := 'HRI_LOW+HRI_LOW_BAND_CWK';
63   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_dbi_cl_pow_plcmnt_band_v';
64 
65   l_dim_lvl := 'HRI_PRFRMNC+HRI_PRFMNC_RTNG_X';
66   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'perf_band';
67   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'hri_cl_prfmnc_rtng_x_v';
68   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := 'hri_mdp_sup_wrkfc_r_mv';
69 
70   l_dim_lvl := 'HRI_WRKACTVT+HRI_WAC_SEPCAT_X';
71   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'separation_category';
72   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'HRI_CL_WAC_SEPCAT_X_V';
73   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := '';
74 
75   l_dim_lvl := 'HRI_REASON+HRI_RSN_SEP_X';
76   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'leaving_reason_code';
77   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'HRI_CL_RSN_SEP_X_V';
78   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := '';
79 
80   l_dim_lvl := 'HRI_PRSNTYP+HRI_WKTH_WKTYP';
81   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'wkth_wktyp_sk_fk';
82   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'HRI_CL_WKTH_WKTYP_V';
83   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_name := 'hri_mdp_sup_wrkfc_sup_mv';
84   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wrkfc_mv_snp  := 'hri_mds_sup_wrkfc_sup_mv';
85   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_wcnt_mv_snp  := 'hri_mds_sup_wcnt_chg_mv';
86 
87   l_dim_lvl := 'HRI_ABSNC+HRI_ABSNC_CAT';
88   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'absence_category_code';
89   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'HRI_CL_ABSNC_CAT_V';
90   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_abs_mv_name := 'hri_mdp_sup_absnc_cat_mv';
91   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_abs_mv_snp  := 'hri_mdp_sup_absnc_cat_mv ';
92 
93   l_dim_lvl := 'HRI_ABSNC+HRI_ABSNC_RSN';
94   g_dim_lvl_mtdt_tab(l_dim_lvl).fact_viewby_col := 'absence_reason_code';
95   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'HRI_CL_ABSNC_RSN_V';
96   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_abs_mv_name := 'hri_mdp_sup_absnc_rsn_mv';
97   g_dim_lvl_mtdt_tab(l_dim_lvl).sup_lvl_abs_mv_snp  := 'hri_mdp_sup_absnc_rsn_mv ';
98 
99   l_dim_lvl := 'HRI_ABSNC_M+HRI_ABSNC_M_DRTN_UOM';
100   g_dim_lvl_mtdt_tab(l_dim_lvl).viewby_table := 'HRI_CL_ABSNC_M_DRTN_UOM_V';
101 
102 /* Dimension level buckets */
103 /***************************/
104 
105   g_prfmnc_band_buckets_tab(0).bucket_id_string := '-5';
106   g_prfmnc_band_buckets_tab(0).bucket_name      := 'na';
107 
108   g_prfmnc_band_buckets_tab(1).bucket_id_string := '1';
109   g_prfmnc_band_buckets_tab(1).bucket_name      := 'b1';
110 
111   g_prfmnc_band_buckets_tab(2).bucket_id_string := '2';
112   g_prfmnc_band_buckets_tab(2).bucket_name      := 'b2';
113 
114   g_prfmnc_band_buckets_tab(3).bucket_id_string := '3';
115   g_prfmnc_band_buckets_tab(3).bucket_name      := 'b3';
116 
117   g_country_buckets_tab(1).bucket_id_string := ':GEO_COUNTRY_CODE1';
118   g_country_buckets_tab(1).bucket_name      := 'ctr1';
119 
120   g_country_buckets_tab(2).bucket_id_string := ':GEO_COUNTRY_CODE2';
121   g_country_buckets_tab(2).bucket_name      := 'ctr2';
122 
123   g_country_buckets_tab(3).bucket_id_string := ':GEO_COUNTRY_CODE3';
124   g_country_buckets_tab(3).bucket_name      := 'ctr3';
125 
126   g_country_buckets_tab(4).bucket_id_string := ':GEO_COUNTRY_CODE4';
127   g_country_buckets_tab(4).bucket_name      := 'ctr4';
128 
129   g_primary_job_role_tab(1).bucket_id_string := '''HR''';
130   g_primary_job_role_tab(1).bucket_name      := 'hr';
131 
132   g_primary_job_role_tab(2).bucket_id_string := '''NA_EDW''';
133   g_primary_job_role_tab(2).bucket_name      := 'other';
134 
135   g_wkth_wktyp_tab(1).bucket_id_string := '''EMP''';
136   g_wkth_wktyp_tab(1).bucket_name      := 'emp';
137 
138   g_wkth_wktyp_tab(2).bucket_id_string := '''CWK''';
139   g_wkth_wktyp_tab(2).bucket_name      := 'cwk';
140 
141   g_abs_category_buckets_tab(1).bucket_id_string := ':ABS_CATEGORY_CODE1';
142   g_abs_category_buckets_tab(1).bucket_name      := 'absCat1';
143 
144   g_abs_category_buckets_tab(2).bucket_id_string := ':ABS_CATEGORY_CODE2';
145   g_abs_category_buckets_tab(2).bucket_name      := 'absCat2';
146 
147   g_abs_category_buckets_tab(3).bucket_id_string := ':ABS_CATEGORY_CODE3';
148   g_abs_category_buckets_tab(3).bucket_name      := 'absCat3';
149 
150   g_abs_category_buckets_tab(4).bucket_id_string := ':ABS_CATEGORY_CODE4';
151   g_abs_category_buckets_tab(4).bucket_name      := 'absCat4';
152 
153 
154 
155 END set_metadata;
156 
157 -- Sets bucket table for LOW bands dynamically
158 -- based on the collected table for LOW bands
159 PROCEDURE set_low_band_buckets(p_wkth_wktyp_sk_fk  IN VARCHAR2) IS
160 
161   CURSOR low_band_buckets_csr IS
162   SELECT
163    pow.pow_band_sk_pk        bucket_id
164   ,pow.band_sequence         bucket_no
165   ,'b' || pow.band_sequence  bucket_label
166   FROM hri_cs_pow_band_ct  pow
167   WHERE pow.wkth_wktyp_sk_fk = p_wkth_wktyp_sk_fk;
168 
169 BEGIN
170 
171 -- Check whether cache hit
172   IF (g_cache_pow_wktyp IS NULL OR
173       g_cache_pow_wktyp <> p_wkth_wktyp_sk_fk) THEN
174 
175   -- Set cache
176     g_cache_pow_wktyp := p_wkth_wktyp_sk_fk;
177 
178   -- Reset table
179     g_low_band_buckets_tab := g_buckets_tab_reset;
180 
181   -- Loop through available buckets setting up global table
182     FOR bucket_rec IN low_band_buckets_csr LOOP
183 
184       g_low_band_buckets_tab(bucket_rec.bucket_no).bucket_id_string :=
185                  bucket_rec.bucket_id;
186       g_low_band_buckets_tab(bucket_rec.bucket_no).bucket_name :=
187                  bucket_rec.bucket_label;
188 
189     END LOOP;
190 
191   -- Add unassigned rows if there is no data found otherwise reports
192   -- will crash as expected columns are not populated in the bucket tab
193     IF (g_low_band_buckets_tab.COUNT < 1 OR
194         g_low_band_buckets_tab.COUNT IS NULL) THEN
195 
196       g_low_band_buckets_tab(1).bucket_id_string := '-1';
197       g_low_band_buckets_tab(1).bucket_name := 'b1';
198       g_low_band_buckets_tab(2).bucket_id_string := '-1';
199       g_low_band_buckets_tab(2).bucket_name := 'b2';
200       g_low_band_buckets_tab(3).bucket_id_string := '-1';
201       g_low_band_buckets_tab(3).bucket_name := 'b3';
202       g_low_band_buckets_tab(4).bucket_id_string := '-1';
203       g_low_band_buckets_tab(4).bucket_name := 'b4';
204       g_low_band_buckets_tab(5).bucket_id_string := '-1';
205       g_low_band_buckets_tab(5).bucket_name := 'b5';
206 
207     END IF;
208 
209   END IF;
210 
211 END set_low_band_buckets;
212 
213 /* Initialization - set metadata for parameters */
214 BEGIN
215 
216   set_metadata;
217 
218 END hri_mtdt_dim_lvl;