[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;