[Home] [Help]
PACKAGE BODY: APPS.PER_RI_CONFIG_FND_HR_ENTITY
Source
1 PACKAGE BODY PER_RI_CONFIG_FND_HR_ENTITY AS
2 /* $Header: perrichd.pkb 120.3.12000000.2 2007/03/05 11:59:20 pkagrawa noship $ */
3
4 g_config_effective_date date := TRUNC(TO_DATE('1951/01/01', 'YYYY/MM/DD'));
5 g_config_effective_end_date date := TRUNC(TO_DATE('4712/12/31', 'YYYY/MM/DD'));
6 g_package varchar2(30) := 'per_ri_config_fnd_hr_entity.';
7
8
9 /* --------------------------------------------------------------------------
10 -- Name : create_jobs_no_rv_keyflex
11 -- Purpose : This procedure creates jobs keyflex structures, segments and
12 -- valuesets if no regional variance are not defined.
13 -- and profiles options assigned to it.
14 -- Arguments : p_configuration_code
15 --
16 -------------------------------------------------------------------------- */
17 PROCEDURE create_jobs_no_rv_keyflex (p_configuration_code in varchar2
18 ,p_technical_summary_mode in boolean default FALSE
19 ,p_kf_job_no_rv_tab in out nocopy
20 per_ri_config_tech_summary.kf_job_no_rv_tab
21 ,p_kf_job_no_rv_seg_tab in out nocopy
22 per_ri_config_tech_summary.kf_job_no_rv_seg_tab) IS
23
24 cursor csr_config_job_no_rv (cp_configuration_code in varchar2) IS
25 select job_segment_name,
26 job_segment_type,
27 industry_attribute,
28 CONFIG_SEQUENCE
29 from per_ri_config_job_kf_seg_v
30 where configuration_code = cp_configuration_code
31 and industry_attribute = per_ri_config_main.g_global_fed_job_non_fed_att
32 order by CONFIG_SEQUENCE;
33
34 l_proc varchar2(72) := g_package || 'create_jobs_no_rv_keyflex';
35 l_log_message varchar2(360);
36 l_error_message varchar2(360);
37 l_kf_job_no_rv_count number(8) := 0;
38 l_kf_job_no_rv_tab per_ri_config_tech_summary.kf_job_no_rv_tab;
39 l_kf_job_no_rv_seg_count number(8) := 0;
40 l_kf_job_no_rv_seg_tab per_ri_config_tech_summary.kf_job_no_rv_seg_tab;
41
42 l_kf_job_no_rv_valueset_tab per_ri_config_tech_summary.valueset_tab;
43 l_value_set_tab_count number(9) := 1;
44
45 l_job_segment_name per_ri_config_information.config_information1%type;
46 l_job_segment_type per_ri_config_information.config_information1%type;
47 l_industry_attribute per_ri_config_information.config_information1%type;
48 l_jobs_keyflex_number number(9);
49 l_job_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
50
51 l_valueset_name fnd_flex_value_sets.flex_value_set_name%type;
52 l_jobs_segment_count number(9);
53 l_jobs_segment_no number(9);
54 l_jobs_segment_count_fixed number(9) := 0;
55 l_enterprise_primary_industry per_ri_config_information.config_information1%type;
56
57 l_global_job_structure_name fnd_id_flex_structures.id_flex_structure_code%type;
58
59 BEGIN
60 hr_utility.set_location('Entering:'|| l_proc, 10);
61
62 l_global_job_structure_name := per_ri_config_utilities.return_config_entity_name
63 (per_ri_config_main.g_global_job_structure_name);
64 l_enterprise_primary_industry := per_ri_config_utilities.get_ent_primary_industry
65 (p_configuration_code => p_configuration_code);
66
67 hr_utility.trace('l_enterprise_primary_industry = ' || l_enterprise_primary_industry);
68
69 -- Create Global Jobs Key flex
70 if NOT (p_technical_summary_mode) then
71 l_jobs_keyflex_number := per_ri_config_utilities.create_key_flexfield
72 (p_appl_short_name => 'PER'
73 ,p_flex_code => 'JOB'
74 ,p_structure_code => l_global_job_structure_name
75 ,p_structure_title => l_global_job_structure_name
76 ,p_description => l_global_job_structure_name
77 || per_ri_config_main.g_description_suffix_string);
78
79 else
80 p_kf_job_no_rv_tab(l_kf_job_no_rv_count).appl_short_name := 'PER';
81 p_kf_job_no_rv_tab(l_kf_job_no_rv_count).flex_code := 'JOB';
82 p_kf_job_no_rv_tab(l_kf_job_no_rv_count).structure_code := l_global_job_structure_name;
83 p_kf_job_no_rv_tab(l_kf_job_no_rv_count).structure_title := l_global_job_structure_name;
84 p_kf_job_no_rv_tab(l_kf_job_no_rv_count).description := l_global_job_structure_name
85 || per_ri_config_main.g_description_suffix_string;
86 l_kf_job_no_rv_count := l_kf_job_no_rv_count + 1 ;
87 end if;
88
89 hr_utility.set_location(l_proc, 30);
90 l_log_message := 'Created KEYFLEX PER JOB ' || l_global_job_structure_name;
91 per_ri_config_utilities.write_log(p_message => l_log_message);
92
93 if l_enterprise_primary_industry <> 'US_GOVERNMENT' then
94 hr_utility.set_location(l_proc, 20);
95 -- create segments
96 open csr_config_job_no_rv(p_configuration_code);
97 l_jobs_segment_count := 0;
98 LOOP
99 fetch csr_config_job_no_rv into l_job_segment_name
100 ,l_job_segment_type
101 ,l_industry_attribute
102 ,l_jobs_segment_no;
103
104 exit when csr_config_job_no_rv%NOTFOUND;
105
106 --
107 -- create job flex segment
108 --
109 l_jobs_segment_count := csr_config_job_no_rv%ROWCOUNT;
110 if NOT (p_technical_summary_mode) then
111 per_ri_config_utilities.create_flex_segments
112 (p_appl_short_Name => 'PER'
113 ,p_flex_code => 'JOB'
114 ,p_structure_code => l_global_job_structure_name
115 ,p_segment_name => l_job_segment_name
116 ,p_column_name => 'SEGMENT' || l_jobs_segment_count
117 ,p_segment_number => l_jobs_segment_no --l_jobs_segment_count
118 ,p_value_set => null
119 ,p_lov_prompt => l_job_segment_name
120 ,p_segment_type => l_job_segment_type
121 ,p_window_prompt => l_job_segment_name);
122
123 else
124 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).appl_short_name := 'PER';
125 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).flex_code := 'JOB';
126 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).structure_code := l_global_job_structure_name;
127 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).segment_name := l_job_segment_name;
128 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).column_name := 'SEGMENT' || l_jobs_segment_count;
129 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).segment_number := l_jobs_segment_no;
130 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).value_set := null;
131 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).lov_prompt := l_job_segment_name;
132 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).segment_type := l_job_segment_name;
133 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).window_prompt := l_job_segment_name;
134
135
136 --create technical summary data for valueset
137 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
138 ,p_valueset_type => l_job_segment_type
139 ,p_structure_code => l_global_job_structure_name
140 ,p_segment_name => l_job_segment_name
141 ,p_segment_number => l_jobs_segment_no --l_jobs_segment_count
142 ,p_valueset_tab => l_kf_job_no_rv_valueset_tab);
143
144 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_value_set_name
145 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
146 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_description
147 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).description;
148 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_security_available
149 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).security_available;
150 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_enable_longlist
151 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
152 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_format_type
153 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).format_type;
154 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_maximum_size
155 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
156 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_precision
157 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).precision;
158 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_numbers_only
159 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
160 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_uppercase_only
161 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
162 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_right_justify_zero_fill
163 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
164 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_min_value
165 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).min_value;
166 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_max_value
167 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).max_value;
168
169 l_kf_job_no_rv_seg_count := l_kf_job_no_rv_seg_count + 1 ;
170
171 end if;
172 l_log_message := 'Created KEYFLEX SEGMENT : PER JOB ' || l_job_segment_name;
173 per_ri_config_utilities.write_log(p_message => l_log_message);
174 END LOOP;
175 close csr_config_job_no_rv;
176 else
177 hr_utility.set_location(l_proc, 100);
178 hr_utility.trace('Jobs: Industry is US_GOVERNMENT');
179
180 -- create only federal job segments with specified value segment name valuesets.
181 -- First Segment 'Name' valueset '60 Characters'
182 if NOT (p_technical_summary_mode) then
183 per_ri_config_utilities.create_flex_segments
184 (p_appl_short_Name => 'PER'
185 ,p_flex_code => 'JOB'
186 ,p_structure_code => l_global_job_structure_name
187 ,p_segment_name => 'Name'
188 ,p_column_name => 'SEGMENT1'
189 ,p_segment_number => 1
190 ,p_value_set => '60 Characters'
191 ,p_lov_prompt => 'Name'
192 ,p_segment_type => 'Char'
193 ,p_window_prompt => 'Name'
194 ,p_fed_seg_attribute => 'Y');
195 else
196 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).appl_short_name := 'PER';
197 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).flex_code := 'JOB';
198 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).structure_code := l_global_job_structure_name;
199 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).segment_name := 'Name';
200 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).column_name := 'SEGMENT1';
201 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).segment_number := 1;
202 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).value_set := '60 Characters';
203 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).lov_prompt := 'Name';
204 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).segment_type := 'Char';
205 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).window_prompt := 'Name';
206
207
208 --create technical summary data for valueset
209 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => '60 Characters'
210 ,p_valueset_type => 'Char'
211 ,p_structure_code => l_global_job_structure_name
212 ,p_segment_name => 'Name'
213 ,p_segment_number => 1
214 ,p_valueset_tab => l_kf_job_no_rv_valueset_tab);
215
216 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_value_set_name
217 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
218 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_description
219 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).description;
220 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_security_available
221 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).security_available;
222 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_enable_longlist
223 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
224 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_format_type
225 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).format_type;
226 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_maximum_size
227 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
228 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_precision
229 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).precision;
230 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_numbers_only
231 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
232 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_uppercase_only
233 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
234 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_right_justify_zero_fill
235 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
236 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_min_value
237 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).min_value;
238 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_max_value
239 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).max_value;
240 l_kf_job_no_rv_seg_count := l_kf_job_no_rv_seg_count + 1 ;
241 end if;
242
243 open csr_config_job_no_rv(p_configuration_code);
244
245 --
246 -- one segment is always defined for fedral
247 --
248 l_jobs_segment_count_fixed := per_ri_config_main.g_global_fed_job_seg_count;
249 l_jobs_segment_count := 0;
250 LOOP
251 fetch csr_config_job_no_rv into l_job_segment_name
252 ,l_job_segment_type
253 ,l_industry_attribute
254 ,l_jobs_segment_no;
255 exit when csr_config_job_no_rv%NOTFOUND;
256 hr_utility.trace('l_jobs_segment_count = ' || to_char(l_jobs_segment_count));
257
258 if l_industry_attribute = per_ri_config_main.g_global_fed_job_non_fed_att then
259
260 l_jobs_segment_count := l_jobs_segment_count_fixed + csr_config_job_no_rv%ROWCOUNT;
261
262
263 hr_utility.trace('l_jobs_segment_count = ' || to_char(l_jobs_segment_count));
264 if NOT (p_technical_summary_mode) then
265 per_ri_config_utilities.create_flex_segments
266 (p_appl_short_Name => 'PER'
267 ,p_flex_code => 'JOB'
268 ,p_structure_code => l_global_job_structure_name
269 ,p_segment_name => l_job_segment_name
270 ,p_column_name => 'SEGMENT' || l_jobs_segment_count
271 ,p_segment_number => l_jobs_segment_no --l_jobs_segment_count
272 ,p_value_set => null
273 ,p_lov_prompt => l_job_segment_name
274 ,p_segment_type => l_job_segment_type
275 ,p_window_prompt => l_job_segment_name);
276
277 else
278 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).appl_short_name := 'PER';
279 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).flex_code := 'JOB';
280 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).structure_code := l_global_job_structure_name;
281 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).segment_name := l_job_segment_name;
282 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).column_name := 'SEGMENT' || l_jobs_segment_count;
283 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).segment_number := l_jobs_segment_no;
284 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).value_set := null;
285 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).lov_prompt := l_job_segment_name;
286 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).segment_type := l_job_segment_type;
287 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).window_prompt := l_job_segment_name;
288
289 --create technical summary data for valueset
290 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
291 ,p_valueset_type => l_job_segment_type
292 ,p_structure_code => l_global_job_structure_name
293 ,p_segment_name => l_job_segment_name
294 ,p_segment_number => l_jobs_segment_no --l_jobs_segment_count
295 ,p_valueset_tab => l_kf_job_no_rv_valueset_tab);
296
297 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_value_set_name
298 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
299 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_description
300 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).description;
301 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_security_available
302 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).security_available;
303 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_enable_longlist
304 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
305 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_format_type
306 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).format_type;
307 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_maximum_size
308 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
309 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_precision
310 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).precision;
311 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_numbers_only
312 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
313 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_uppercase_only
314 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
315 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_right_justify_zero_fill
316 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
317 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_min_value
318 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).min_value;
319 p_kf_job_no_rv_seg_tab(l_kf_job_no_rv_seg_count).vs_max_value
320 := l_kf_job_no_rv_valueset_tab(l_value_set_tab_count).max_value;
321 l_kf_job_no_rv_seg_count := l_kf_job_no_rv_seg_count + 1 ;
322 end if;
323
324 l_log_message := 'Created KEYFLEX SEGMENT : PER JOB ' || l_job_segment_name;
325 per_ri_config_utilities.write_log(p_message => l_log_message);
326 end if;
327 END LOOP;
328 close csr_config_job_no_rv;
329
330 end if;
331 --
332 -- freeze and compile this flexfield
333 --
334 if NOT (p_technical_summary_mode) then
335 per_ri_config_utilities.freeze_and_compile_flexfield
336 (p_appl_short_Name => 'PER'
337 ,p_flex_code => 'JOB'
338 ,p_structure_code => l_global_job_structure_name);
339 end if;
340
341 hr_utility.set_location(' Leaving:'|| l_proc, 100);
342
343 EXCEPTION
344 when others then
345 l_error_message := 'Error in ' || l_proc;
346 hr_utility.trace(l_error_message || '-' || sqlerrm);
347 hr_utility.set_location(' Leaving:'|| l_proc, 500);
348 hr_utility.raise_error;
349
350 END create_jobs_no_rv_keyflex;
351
352 /* --------------------------------------------------------------------------
353 -- Name : create_positions_no_rv_keyflex
354 -- Purpose : This procedure creates positions keyflex structures, segments and
355 -- valuesets if no regional variance are not defined.
356 -- and profiles options assigned to it.
357 -- Arguments : p_configuration_code
358 --
359 -------------------------------------------------------------------------- */
360 PROCEDURE create_positions_no_rv_keyflex (p_configuration_code in varchar2
361 ,p_technical_summary_mode in boolean default FALSE
362 ,p_kf_pos_no_rv_tab in out nocopy
363 per_ri_config_tech_summary.kf_pos_no_rv_tab
364 ,p_kf_pos_no_rv_seg_tab in out nocopy
365 per_ri_config_tech_summary.kf_pos_no_rv_seg_tab) IS
366
367 cursor csr_config_position_no_rv (cp_configuration_code in varchar2) IS
368 select position_segment_name,
369 position_segment_type,
370 industry_attribute,
371 CONFIG_SEQUENCE
372 from per_ri_config_pos_kf_seg_v
373 where configuration_code = cp_configuration_code
374 and industry_attribute = per_ri_config_main.g_global_fed_pos_non_fed_att
375 order by CONFIG_SEQUENCE;
376
377 cursor csr_config_position_no_rv_cnt (cp_configuration_code in varchar2) IS
378 select count(*)
379 from per_ri_config_pos_kf_seg_v
380 where configuration_code = cp_configuration_code
381 and industry_attribute = per_ri_config_main.g_global_fed_pos_non_fed_att;
382
383 l_proc varchar2(72) := g_package || 'create_positions_no_rv_keyflex';
384 l_log_message varchar2(360);
385 l_error_message varchar2(360);
386
387 l_kf_pos_no_rv_count number(8) := 0;
388 l_kf_pos_no_rv_tab per_ri_config_tech_summary.kf_pos_no_rv_tab;
389 l_kf_pos_no_rv_seg_count number(8) := 0;
390 l_kf_pos_no_rv_seg_tab per_ri_config_tech_summary.kf_pos_no_rv_seg_tab;
391
392 l_kf_pos_no_rv_valueset_tab per_ri_config_tech_summary.valueset_tab;
393 l_value_set_tab_count number(9) := 1;
394
395 l_pos_segment_name per_ri_config_information.config_information1%type;
396 l_pos_segment_type per_ri_config_information.config_information1%type;
397 l_industry_attribute per_ri_config_information.config_information1%type;
398 l_pos_keyflex_number number(9);
399 l_pos_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
400
401 l_valueset_name fnd_flex_value_sets.flex_value_set_name%type;
402 l_pos_segment_count number(9);
403 l_pos_segment_no number(9);
404 l_pos_segment_count_fixed number(9);
405 l_position_no_rv_no_seg_count number(9);
406 l_enterprise_primary_industry per_ri_config_information.config_information1%type;
407 l_global_pos_structure_name fnd_id_flex_structures.id_flex_structure_code%type;
408
409 BEGIN
410 hr_utility.set_location('Entering:'|| l_proc, 10);
411
412 l_global_pos_structure_name := per_ri_config_utilities.return_config_entity_name
413 (per_ri_config_main.g_global_pos_structure_name);
414
415 l_enterprise_primary_industry := per_ri_config_utilities.get_ent_primary_industry
416 (p_configuration_code => p_configuration_code);
417
418 hr_utility.trace('l_enterprise_primary_industry = ' || l_enterprise_primary_industry);
419
420 -- Create Global Position Key flex
421 if NOT (p_technical_summary_mode) then
422 l_pos_keyflex_number := per_ri_config_utilities.create_key_flexfield
423 (p_appl_short_Name => 'PER'
424 ,p_flex_code => 'POS'
425 ,p_structure_code => l_global_pos_structure_name
426 ,p_structure_title => l_global_pos_structure_name
427 ,p_description => l_global_pos_structure_name
428 || per_ri_config_main.g_description_suffix_string);
429 else
430 p_kf_pos_no_rv_tab(l_kf_pos_no_rv_count).appl_short_name := 'PER';
431 p_kf_pos_no_rv_tab(l_kf_pos_no_rv_count).flex_code := 'POS';
432 p_kf_pos_no_rv_tab(l_kf_pos_no_rv_count).structure_code := l_global_pos_structure_name;
433 p_kf_pos_no_rv_tab(l_kf_pos_no_rv_count).structure_title := l_global_pos_structure_name;
434 p_kf_pos_no_rv_tab(l_kf_pos_no_rv_count).description := l_global_pos_structure_name
435 || per_ri_config_main.g_description_suffix_string;
436 l_kf_pos_no_rv_count := l_kf_pos_no_rv_count + 1 ;
437 end if;
438
439
440 hr_utility.set_location(l_proc, 30);
441 l_log_message := 'Created KEYFLEX PER POS ' || l_global_pos_structure_name;
442 per_ri_config_utilities.write_log(p_message => l_log_message);
443
444 if l_enterprise_primary_industry <> 'US_GOVERNMENT' then
445 hr_utility.set_location(l_proc, 20);
446
447 -- create segments
448 open csr_config_position_no_rv(p_configuration_code);
449 l_pos_segment_count := 0;
450 LOOP
451 fetch csr_config_position_no_rv into l_pos_segment_name
452 ,l_pos_segment_type
453 ,l_industry_attribute
454 ,l_pos_segment_no;
455
456 exit when csr_config_position_no_rv%NOTFOUND;
457
458 -- Create Jobs Key Flex Segments
459 l_pos_segment_count := csr_config_position_no_rv%ROWCOUNT;
460 if NOT (p_technical_summary_mode) then
461 per_ri_config_utilities.create_flex_segments
462 (p_appl_short_Name => 'PER'
463 ,p_flex_code => 'POS'
464 ,p_structure_code => l_global_pos_structure_name
465 ,p_segment_name => l_pos_segment_name
466 ,p_column_name => 'SEGMENT' || l_pos_segment_count
467 ,p_segment_number => l_pos_segment_no
468 ,p_value_set => null
469 ,p_lov_prompt => l_pos_segment_name
470 ,p_segment_type => l_pos_segment_type
471 ,p_window_prompt => l_pos_segment_name);
472 else
473 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).appl_short_name := 'PER';
474 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).flex_code := 'POS';
475 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).structure_code := l_global_pos_structure_name;
476 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_name := l_pos_segment_name;
477 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).column_name := 'SEGMENT' || l_pos_segment_count;
478 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_number := l_pos_segment_no;
479 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).value_set := null;
480 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).lov_prompt := l_pos_segment_name;
481 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_type := l_pos_segment_type;
482 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).window_prompt := l_pos_segment_name;
483
484 --create technical summary data for valueset
485 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
486 ,p_valueset_type => l_pos_segment_type
487 ,p_structure_code => l_global_pos_structure_name
488 ,p_segment_name => l_pos_segment_name
489 ,p_segment_number => l_pos_segment_no
490 ,p_valueset_tab => l_kf_pos_no_rv_valueset_tab);
491
492 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_value_set_name
493 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
494 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_description
495 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).description;
496 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_security_available
497 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).security_available;
498 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_enable_longlist
499 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
500 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_format_type
501 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).format_type;
502 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_maximum_size
503 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
504 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_precision
505 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).precision;
506 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_numbers_only
507 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
508 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_uppercase_only
509 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
510 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_right_justify_zero_fill
511 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
512 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_min_value
513 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).min_value;
514 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_max_value
515 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).max_value;
516 l_kf_pos_no_rv_seg_count := l_kf_pos_no_rv_seg_count + 1 ;
517 end if;
518
519 per_ri_config_utilities.write_log(p_message => 'Created Global Position Key Flex Segment' || l_pos_segment_name);
520 hr_utility.trace('Created Position Key Flex NO RV Segment: ' || l_pos_segment_name);
521 END LOOP;
522 --
523 -- freeze and compile this flexfield
524 --
525 if NOT (p_technical_summary_mode) then
526 per_ri_config_utilities.freeze_and_compile_flexfield
527 (p_appl_short_Name => 'PER'
528 ,p_flex_code => 'POS'
529 ,p_structure_code => l_global_pos_structure_name);
530 end if;
531 else
532 hr_utility.set_location(l_proc, 100);
533 hr_utility.trace('Positions: Industry is US_GOVERNMENT');
534
535 -- create only federal job segments with specified value segment name valuesets.
536 -- First Segment
537 if NOT (p_technical_summary_mode) then
538 per_ri_config_utilities.create_flex_segments
539 (p_appl_short_Name => 'PER'
540 ,p_flex_code => 'POS'
541 ,p_structure_code => l_global_pos_structure_name
542 ,p_segment_name => 'Position Title'
543 ,p_column_name => 'SEGMENT1'
544 ,p_segment_number => 1
545 ,p_value_set => 'GHR_US_POSITION_TITLE'
546 ,p_lov_prompt => 'Position Title'
547 ,p_segment_type => 'Char'
548 ,p_window_prompt => 'Position Title'
549 ,p_fed_seg_attribute => 'Y');
550
551 else
552 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).appl_short_name := 'PER';
553 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).flex_code := 'POS';
554 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).structure_code := l_global_pos_structure_name;
555 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_name := 'Position Title';
556 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).column_name := 'SEGMENT1';
557 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_number := 1;
558 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).value_set := 'GHR_US_POSITION_TITLE';
559 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).lov_prompt := 'Position Title';
560 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_type := 'Char';
561 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).window_prompt := 'Position Title';
562
563 --create technical summary data for valueset
564 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POSITION_TITLE'
565 ,p_valueset_type => 'Char'
566 ,p_structure_code => l_global_pos_structure_name
567 ,p_segment_name => 'Position Title'
568 ,p_segment_number => 1
569 ,p_valueset_tab => l_kf_pos_no_rv_valueset_tab);
570
571 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_value_set_name
572 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
573 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_description
574 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).description;
575 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_security_available
576 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).security_available;
577 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_enable_longlist
578 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
579 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_format_type
580 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).format_type;
581 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_maximum_size
582 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
583 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_precision
584 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).precision;
585 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_numbers_only
586 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
587 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_uppercase_only
588 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
589 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_right_justify_zero_fill
590 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
591 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_min_value
592 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).min_value;
593 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_max_value
594 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).max_value;
595 l_kf_pos_no_rv_seg_count := l_kf_pos_no_rv_seg_count + 1 ;
596 end if;
597
598
599 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Position Title';
600 per_ri_config_utilities.write_log(p_message => l_log_message);
601
602 -- Second Segment
603 if NOT (p_technical_summary_mode) then
604 per_ri_config_utilities.create_flex_segments
605 (p_appl_short_Name => 'PER'
606 ,p_flex_code => 'POS'
607 ,p_structure_code => l_global_pos_structure_name
608 ,p_segment_name => 'Description'
609 ,p_column_name => 'SEGMENT2'
610 ,p_segment_number => 2
611 ,p_value_set => 'GHR_US_POS_DESC_NUM'
612 ,p_lov_prompt => 'Description'
613 ,p_segment_type => 'Char'
614 ,p_window_prompt => 'Description'
615 ,p_fed_seg_attribute => 'Y');
616 else
617 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).appl_short_name := 'PER';
618 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).flex_code := 'POS';
619 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).structure_code := l_global_pos_structure_name;
620 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_name := 'Description';
621 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).column_name := 'SEGMENT2';
622 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_number := 2;
623 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).value_set := 'GHR_US_POS_DESC_NUM';
624 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).lov_prompt := 'Description';
625 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_type := 'Char';
626 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).window_prompt := 'Description';
627
628 --create technical summary data for valueset
629 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POS_DESC_NUM'
630 ,p_valueset_type => 'Char'
631 ,p_structure_code => l_global_pos_structure_name
632 ,p_segment_name => 'Description'
633 ,p_segment_number => 2
634 ,p_valueset_tab => l_kf_pos_no_rv_valueset_tab);
635
636 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_value_set_name
637 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
638 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_description
639 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).description;
640 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_security_available
641 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).security_available;
642 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_enable_longlist
643 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
644 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_format_type
645 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).format_type;
646 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_maximum_size
647 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
648 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_precision
649 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).precision;
650 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_numbers_only
651 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
652 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_uppercase_only
653 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
654 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_right_justify_zero_fill
655 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
656 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_min_value
657 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).min_value;
658 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_max_value
659 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).max_value;
660 l_kf_pos_no_rv_seg_count := l_kf_pos_no_rv_seg_count + 1 ;
661 end if;
662
663 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Description';
664 per_ri_config_utilities.write_log(p_message => l_log_message);
665
666 -- Third Segment
667 if NOT (p_technical_summary_mode) then
668 per_ri_config_utilities.create_flex_segments
669 (p_appl_short_Name => 'PER'
670 ,p_flex_code => 'POS'
671 ,p_structure_code => l_global_pos_structure_name
672 ,p_segment_name => 'Sequence'
673 ,p_column_name => 'SEGMENT3'
674 ,p_segment_number => 3
675 ,p_value_set => 'GHR_US_SEQUENCE_NUM'
676 ,p_lov_prompt => 'Sequence'
677 ,p_segment_type => 'Char'
678 ,p_window_prompt => 'Sequence'
679 ,p_fed_seg_attribute => 'Y');
680
681 else
682 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).appl_short_name := 'PER';
683 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).flex_code := 'POS';
684 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).structure_code := l_global_pos_structure_name;
685 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_name := 'Sequence';
686 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).column_name := 'SEGMENT3';
687 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_number := 3;
688 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).value_set := 'GHR_US_POSITION_TITLE';
689 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).lov_prompt := 'Sequence';
690 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_type := 'Char';
691 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).window_prompt := 'Sequence';
692
693 --create technical summary data for valueset
694 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POSITION_TITLE'
695 ,p_valueset_type => 'Char'
696 ,p_structure_code => l_global_pos_structure_name
697 ,p_segment_name => 'Sequence'
698 ,p_segment_number => 3
699 ,p_valueset_tab => l_kf_pos_no_rv_valueset_tab);
700
701 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_value_set_name
702 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
703 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_description
704 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).description;
705 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_security_available
706 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).security_available;
707 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_enable_longlist
708 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
709 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_format_type
710 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).format_type;
711 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_maximum_size
712 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
713 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_precision
714 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).precision;
715 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_numbers_only
716 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
717 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_uppercase_only
718 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
719 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_right_justify_zero_fill
720 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
721 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_min_value
722 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).min_value;
723 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_max_value
724 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).max_value;
725 l_kf_pos_no_rv_seg_count := l_kf_pos_no_rv_seg_count + 1 ;
726 end if;
727
728 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Sequence';
729 per_ri_config_utilities.write_log(p_message => l_log_message);
730 -- Fourth Segment
731 if NOT (p_technical_summary_mode) then
732 per_ri_config_utilities.create_flex_segments
733 (p_appl_short_Name => 'PER'
734 ,p_flex_code => 'POS'
735 ,p_structure_code => l_global_pos_structure_name
736 ,p_segment_name => 'Agency Code'
737 ,p_column_name => 'SEGMENT4'
738 ,p_segment_number => 4
739 ,p_value_set => 'GHR_US_AGENCY_CODE'
740 ,p_lov_prompt => 'Agency Code'
741 ,p_segment_type => 'Char'
742 ,p_window_prompt => 'Agency Code'
743 ,p_fed_seg_attribute => 'Y');
744 else
745 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).appl_short_name := 'PER';
746 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).flex_code := 'POS';
747 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).structure_code := l_global_pos_structure_name;
748 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_name := 'Agency Code';
749 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).column_name := 'SEGMENT4';
750 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_number := 4;
751 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).value_set := 'GHR_US_AGENCY_CODE';
752 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).lov_prompt := 'Agency Code';
753 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_type := 'Char';
754 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).window_prompt := 'Agency Code';
755
756 --create technical summary data for valueset
757 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_AGENCY_CODE'
758 ,p_valueset_type => 'Char'
759 ,p_structure_code => l_global_pos_structure_name
760 ,p_segment_name => 'Agency Code'
761 ,p_segment_number => 4
762 ,p_valueset_tab => l_kf_pos_no_rv_valueset_tab);
763
764 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_value_set_name
765 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
766 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_description
767 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).description;
768 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_security_available
769 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).security_available;
770 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_enable_longlist
771 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
772 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_format_type
773 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).format_type;
774 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_maximum_size
775 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
776 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_precision
777 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).precision;
778 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_numbers_only
779 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
780 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_uppercase_only
781 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
782 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_right_justify_zero_fill
783 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
784 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_min_value
785 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).min_value;
786 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_max_value
787 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).max_value;
788 l_kf_pos_no_rv_seg_count := l_kf_pos_no_rv_seg_count + 1 ;
789 end if;
790
791
792 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Agency Code';
793 per_ri_config_utilities.write_log(p_message => l_log_message);
794
795 open csr_config_position_no_rv(p_configuration_code);
796
797 --
798 -- four segment is always defined for fedral
799 --
800
801 l_pos_segment_count_fixed := per_ri_config_main.g_global_fed_pos_seg_count;
802 l_pos_segment_count := 0;
803 LOOP
804 fetch csr_config_position_no_rv into l_pos_segment_name
805 ,l_pos_segment_type
806 ,l_industry_attribute
807 ,l_pos_segment_no;
808 exit when csr_config_position_no_rv%NOTFOUND;
809 hr_utility.trace('l_pos_segment_count = ' || to_char(l_pos_segment_count));
810
811 if l_industry_attribute = per_ri_config_main.g_global_fed_pos_non_fed_att then
812
813 l_pos_segment_count := l_pos_segment_count_fixed + csr_config_position_no_rv%ROWCOUNT;
814
815
816 hr_utility.trace('l_pos_segment_count = ' || to_char(l_pos_segment_count));
817
818 if NOT (p_technical_summary_mode) then
819 per_ri_config_utilities.create_flex_segments
820 (p_appl_short_Name => 'PER'
821 ,p_flex_code => 'POS'
822 ,p_structure_code => l_global_pos_structure_name
823 ,p_segment_name => l_pos_segment_name
824 ,p_column_name => 'SEGMENT' || l_pos_segment_count
825 ,p_segment_number => l_pos_segment_no
826 ,p_value_set => null
827 ,p_lov_prompt => l_pos_segment_name
828 ,p_segment_type => l_pos_segment_type
829 ,p_window_prompt => l_pos_segment_name);
830 else
831 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).appl_short_name := 'PER';
832 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).flex_code := 'POS';
833 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).structure_code := l_global_pos_structure_name;
834 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_name := l_pos_segment_name;
835 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).column_name := 'SEGMENT' || l_pos_segment_count;
836 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_number := l_pos_segment_no;
837 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).value_set := null;
838 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).lov_prompt := l_pos_segment_name;
839 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_type := l_pos_segment_name;
840 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).window_prompt := l_pos_segment_name;
841
842 --create technical summary data for valueset
843 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
844 ,p_valueset_type => l_pos_segment_type
845 ,p_structure_code => l_global_pos_structure_name
846 ,p_segment_name => l_pos_segment_name
847 ,p_segment_number => l_pos_segment_no
848 ,p_valueset_tab => l_kf_pos_no_rv_valueset_tab);
849
850 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_value_set_name
851 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
852 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_description
853 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).description;
854 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_security_available
855 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).security_available;
856 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_enable_longlist
857 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
858 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_format_type
859 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).format_type;
860 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_maximum_size
861 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
862 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_precision
863 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).precision;
864 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_numbers_only
865 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
866 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_uppercase_only
867 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
868 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_right_justify_zero_fill
869 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
870 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_min_value
871 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).min_value;
872 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_max_value
873 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).max_value;
874 l_kf_pos_no_rv_seg_count := l_kf_pos_no_rv_seg_count + 1 ;
875 end if;
876
877 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || l_pos_segment_name;
878 per_ri_config_utilities.write_log(p_message => l_log_message);
879 end if;
880 END LOOP;
881 close csr_config_position_no_rv;
882
883 --
884 -- freeze and compile this flexfield
885 --
886 if NOT (p_technical_summary_mode) then
887 per_ri_config_utilities.freeze_and_compile_flexfield
888 (p_appl_short_Name => 'PER'
889 ,p_flex_code => 'POS'
890 ,p_structure_code => l_global_pos_structure_name);
891 end if;
892 end if;
893
894 --
895 -- when no positions are defined, attach default segments to it.
896 --
897 open csr_config_position_no_rv_cnt(p_configuration_code);
898 fetch csr_config_position_no_rv_cnt into l_position_no_rv_no_seg_count;
899
900 hr_utility.trace('l_position_no_rv_no_seg_count = ' || l_position_no_rv_no_seg_count);
901 if l_position_no_rv_no_seg_count = 0 then
902 hr_utility.trace('Only Jobs are defined');
903 -- In case when no positions are defined
904 -- Attach default segments to it.
905 -- FED case always Jobs and Positions defined.
906 hr_utility.set_location(l_proc, 110);
907
908 -- Create Position Key Flex Segments
909 if NOT (p_technical_summary_mode) then
910 per_ri_config_utilities.create_flex_segments
911 (p_appl_short_Name => 'PER'
912 ,p_flex_code => 'POS'
913 ,p_structure_code => l_global_pos_structure_name
914 ,p_segment_name => 'Position Name'
915 ,p_column_name => 'SEGMENT1'
916 ,p_segment_number => 1
917 ,p_value_set => null
918 ,p_lov_prompt => 'Position Name'
919 ,p_window_prompt => 'Position Name');
920 else
921 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).appl_short_name := 'PER';
922 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).flex_code := 'POS';
923 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).structure_code := l_global_pos_structure_name;
924 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_name := 'Position Name';
925 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).column_name := 'SEGMENT1';
926 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_number := 1;
927 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).value_set := 'GHR_US_POSITION_TITLE';
928 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).lov_prompt := 'Position Name';
929 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).segment_type := null;
930 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).window_prompt := 'Position Name';
931
932 --create technical summary data for valueset
933 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POSITION_TITLE'
934 ,p_valueset_type => null
935 ,p_structure_code => l_global_pos_structure_name
936 ,p_segment_name => 'Position Name'
937 ,p_segment_number => 1
938 ,p_valueset_tab => l_kf_pos_no_rv_valueset_tab);
939
940 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_value_set_name
941 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
942 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_description
943 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).description;
944 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_security_available
945 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).security_available;
946 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_enable_longlist
947 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
948 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_format_type
949 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).format_type;
950 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_maximum_size
951 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
952 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_precision
953 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).precision;
954 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_numbers_only
955 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
956 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_uppercase_only
957 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
958 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_right_justify_zero_fill
959 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
960 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_min_value
961 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).min_value;
962 p_kf_pos_no_rv_seg_tab(l_kf_pos_no_rv_seg_count).vs_max_value
963 := l_kf_pos_no_rv_valueset_tab(l_value_set_tab_count).max_value;
964 l_kf_pos_no_rv_seg_count := l_kf_pos_no_rv_seg_count + 1 ;
965 end if;
966
967 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || per_ri_config_main.g_global_pos_structure_name;
968 per_ri_config_utilities.write_log(p_message => l_log_message);
969 --
970 -- freeze and compile this flexfield
971 --
972 if NOT (p_technical_summary_mode) then
973 per_ri_config_utilities.freeze_and_compile_flexfield
974 (p_appl_short_Name => 'PER'
975 ,p_flex_code => 'POS'
976 ,p_structure_code => l_global_pos_structure_name);
977 end if;
978 end if;
979
980 hr_utility.set_location(' Leaving:'|| l_proc, 40);
981
982 EXCEPTION
983 when others then
984 l_error_message := 'Error in ' || l_proc;
985 hr_utility.trace(l_error_message || '-' || sqlerrm);
986 hr_utility.set_location(' Leaving:'|| l_proc, 500);
987 hr_utility.raise_error;
988
989
990 END create_positions_no_rv_keyflex;
991
992 /* --------------------------------------------------------------------------
993 -- Name : create_grades_no_rv_keyflex
994 -- Purpose : This procedure creates jobs keyflex structures, segments and
995 -- valuesets if no regional variance are not defined.
996 -- and profiles options assigned to it.
997 -- Arguments : p_configuration_code
998 --
999 -------------------------------------------------------------------------- */
1000 PROCEDURE create_grades_no_rv_keyflex (p_configuration_code in varchar2
1001 ,p_technical_summary_mode in boolean default FALSE
1002 ,p_kf_grd_no_rv_tab in out nocopy
1003 per_ri_config_tech_summary.kf_grd_no_rv_tab
1004 ,p_kf_grd_no_rv_seg_tab in out nocopy
1005 per_ri_config_tech_summary.kf_grd_no_rv_seg_tab) IS
1006
1007 cursor csr_config_grade_no_rv (cp_configuration_code in varchar2) IS
1008 select grade_segment_name,
1009 grade_segment_type,
1010 industry_attribute,
1011 CONFIG_SEQUENCE
1012 from per_ri_config_grade_kf_seg_v
1013 where configuration_code = cp_configuration_code
1014 and industry_attribute = per_ri_config_main.g_global_fed_grd_non_fed_att
1015 order by CONFIG_SEQUENCE;
1016
1017 l_proc varchar2(72) := g_package || 'create_grades_no_rv_keyflex';
1018 l_log_message varchar2(360);
1019 l_error_message varchar2(360);
1020 l_kf_grd_no_rv_count number(8) := 0;
1021 l_kf_grd_no_rv_tab per_ri_config_tech_summary.kf_grd_no_rv_tab;
1022
1023 l_kf_grd_no_rv_seg_count number(8) := 0;
1024 l_kf_grd_no_rv_seg_tab per_ri_config_tech_summary.kf_grd_no_rv_seg_tab;
1025
1026 l_kf_grd_no_rv_valueset_tab per_ri_config_tech_summary.valueset_tab;
1027 l_value_set_tab_count number(9) := 1;
1028
1029 l_grade_segment_name per_ri_config_information.config_information1%type;
1030 l_grade_segment_type per_ri_config_information.config_information1%type;
1031 l_industry_attribute per_ri_config_information.config_information1%type;
1032 l_grade_keyflex_number number(9);
1033 l_grade_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1034
1035 l_grade_segment_count number(9) := 0;
1036 l_grade_segment_no number(9) := 0;
1037 l_grade_segment_count_fixed number(9) := 0;
1038
1039 l_enterprise_primary_industry per_ri_config_information.config_information1%type;
1040
1041 l_global_grd_structure_name fnd_id_flex_structures.id_flex_structure_code%type;
1042
1043 BEGIN
1044
1045 hr_utility.set_location('Entering:'|| l_proc, 10);
1046
1047 l_enterprise_primary_industry := per_ri_config_utilities.get_ent_primary_industry
1048 (p_configuration_code => p_configuration_code);
1049 hr_utility.trace('l_enterprise_primary_industry = ' || l_enterprise_primary_industry);
1050
1051 l_global_grd_structure_name := per_ri_config_utilities.return_config_entity_name
1052 (per_ri_config_main.g_global_grd_structure_name);
1053 if l_enterprise_primary_industry <> 'US_GOVERNMENT' then
1054 hr_utility.set_location(l_proc, 20);
1055 -- Create Global Grades Key flex
1056 if NOT (p_technical_summary_mode) then
1057 l_grade_keyflex_number := per_ri_config_utilities.create_key_flexfield
1058 (p_appl_short_Name => 'PER'
1059 ,p_flex_code => 'GRD'
1060 ,p_structure_code => l_global_grd_structure_name
1061 ,p_structure_title => l_global_grd_structure_name
1062 ,p_description => l_global_grd_structure_name
1063 || per_ri_config_main.g_description_suffix_string);
1064 else
1065 p_kf_grd_no_rv_tab(l_kf_grd_no_rv_count).appl_short_name := 'PER';
1066 p_kf_grd_no_rv_tab(l_kf_grd_no_rv_count).flex_code := 'GRD';
1067 p_kf_grd_no_rv_tab(l_kf_grd_no_rv_count).structure_code := l_global_grd_structure_name;
1068 p_kf_grd_no_rv_tab(l_kf_grd_no_rv_count).structure_title := l_global_grd_structure_name;
1069 p_kf_grd_no_rv_tab(l_kf_grd_no_rv_count).description := l_global_grd_structure_name
1070 || per_ri_config_main.g_description_suffix_string;
1071 l_kf_grd_no_rv_count := l_kf_grd_no_rv_count + 1 ;
1072 end if;
1073
1074
1075 hr_utility.set_location(l_proc, 30);
1076 l_log_message := 'Created KEYFLEX PER GRD ' || l_global_grd_structure_name;
1077 per_ri_config_utilities.write_log(p_message => l_log_message);
1078
1079 -- create segments
1080 open csr_config_grade_no_rv(p_configuration_code);
1081 l_grade_segment_count := 0;
1082 hr_utility.set_location(l_proc, 40);
1083 LOOP
1084 fetch csr_config_grade_no_rv into l_grade_segment_name
1085 ,l_grade_segment_type
1086 ,l_industry_attribute
1087 ,l_grade_segment_no;
1088 exit when csr_config_grade_no_rv%NOTFOUND;
1089
1090 -- Create Jobs Key Flex Segments
1091 l_grade_segment_count := csr_config_grade_no_rv%ROWCOUNT;
1092 if NOT (p_technical_summary_mode) then
1093 per_ri_config_utilities.create_flex_segments
1094 (p_appl_short_Name => 'PER'
1095 ,p_flex_code => 'GRD'
1096 ,p_structure_code => l_global_grd_structure_name
1097 ,p_segment_name => l_grade_segment_name
1098 ,p_column_name => 'SEGMENT' || l_grade_segment_count
1099 ,p_segment_number => l_grade_segment_no
1100 ,p_value_set => null
1101 ,p_lov_prompt => l_grade_segment_name
1102 ,p_segment_type => l_grade_segment_type
1103 ,p_window_prompt => l_grade_segment_name);
1104
1105 else
1106 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).appl_short_name := 'PER';
1107 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).flex_code := 'GRD';
1108 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).structure_code := l_global_grd_structure_name;
1109 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).segment_name := l_grade_segment_name;
1110 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).column_name := 'SEGMENT' || l_grade_segment_count;
1111 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).segment_number := l_grade_segment_no;
1112 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).value_set := null;
1113 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).lov_prompt := l_grade_segment_name;
1114 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).segment_type := l_grade_segment_type;
1115 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).window_prompt := l_grade_segment_name;
1116
1117 --create technical summary data for valueset
1118 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
1119 ,p_valueset_type => l_grade_segment_type
1120 ,p_structure_code => l_global_grd_structure_name
1121 ,p_segment_name => l_grade_segment_name
1122 ,p_segment_number => l_grade_segment_no
1123 ,p_valueset_tab => l_kf_grd_no_rv_valueset_tab);
1124
1125 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_value_set_name
1126 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
1127 hr_utility.trace('VALUESETSET_NAME = ' || l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).value_set_name);
1128 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_description
1129 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).description;
1130 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_security_available
1131 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).security_available;
1132 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_enable_longlist
1133 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
1134 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_format_type
1135 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).format_type;
1136 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_maximum_size
1137 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
1138 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_precision
1139 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).precision;
1140 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_numbers_only
1141 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
1142 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_uppercase_only
1143 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
1144 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_right_justify_zero_fill
1145 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
1146 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_min_value
1147 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).min_value;
1148 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_max_value
1149 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).max_value;
1150 l_kf_grd_no_rv_seg_count := l_kf_grd_no_rv_seg_count + 1 ;
1151 end if;
1152
1153 l_log_message := 'Created KEYFLEX SEGMENT : PER GRD ' || l_grade_segment_name;
1154 per_ri_config_utilities.write_log(p_message => l_log_message);
1155 END LOOP;
1156 hr_utility.set_location(l_proc, 50);
1157 --
1158 -- freeze and compile this flexfield
1159 --
1160 if NOT (p_technical_summary_mode) then
1161 per_ri_config_utilities.freeze_and_compile_flexfield
1162 (p_appl_short_Name => 'PER'
1163 ,p_flex_code => 'GRD'
1164 ,p_structure_code => l_global_grd_structure_name);
1165 end if;
1166 close csr_config_grade_no_rv;
1167 else
1168 hr_utility.set_location(l_proc, 100);
1169 hr_utility.trace('Grades: Industry is US_GOVERNMENT');
1170
1171 -- create Global Jobs Key flex
1172 -- do not create grade flex field use US_FEDERAL_GRADE
1173 -- create only non federal segments
1174
1175 open csr_config_grade_no_rv(p_configuration_code);
1176
1177 -- some segments (2 for now) are always defined for fedral
1178 l_grade_segment_count_fixed := per_ri_config_main.g_global_fed_grd_seg_count;
1179 l_grade_segment_count := 0;
1180 LOOP
1181 fetch csr_config_grade_no_rv into l_grade_segment_name
1182 ,l_grade_segment_type
1183 ,l_industry_attribute
1184 ,l_grade_segment_no;
1185
1186 exit when csr_config_grade_no_rv%NOTFOUND;
1187 hr_utility.trace('l_grade_segment_count = ' || to_char(l_grade_segment_count));
1188 hr_utility.trace('p_structure_code = ' || per_ri_config_main.g_global_fed_grd_struct_name);
1189
1190 if l_industry_attribute = per_ri_config_main.g_global_fed_grd_non_fed_att then
1191
1192 l_grade_segment_count := l_grade_segment_count_fixed + csr_config_grade_no_rv%ROWCOUNT;
1193
1194
1195 hr_utility.trace('l_grade_segment_count = ' || to_char(l_grade_segment_count));
1196
1197
1198 if NOT (p_technical_summary_mode) then
1199 per_ri_config_utilities.create_flex_segments
1200 (p_appl_short_Name => 'PER'
1201 ,p_flex_code => 'GRD'
1202 ,p_structure_code => per_ri_config_main.g_global_fed_grd_struct_name
1203 ,p_segment_name => l_grade_segment_name
1204 ,p_column_name => 'SEGMENT' || l_grade_segment_count
1205 ,p_segment_number => l_grade_segment_no
1206 ,p_value_set => null
1207 ,p_lov_prompt => l_grade_segment_name
1208 ,p_segment_type => l_grade_segment_type
1209 ,p_window_prompt => l_grade_segment_name);
1210 else
1211 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).appl_short_name := 'PER';
1212 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).flex_code := 'GRD';
1213 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).structure_code := per_ri_config_main.g_global_fed_grd_struct_name;
1214 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).segment_name := l_grade_segment_name;
1215 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).column_name := 'SEGMENT' || l_grade_segment_count;
1216 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).segment_number := l_grade_segment_no;
1217 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).value_set := null;
1218 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).lov_prompt := l_grade_segment_name;
1219 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).segment_type := l_grade_segment_type;
1220 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).window_prompt := l_grade_segment_name;
1221
1222 --create technical summary data for valueset
1223 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
1224 ,p_valueset_type => l_grade_segment_type
1225 ,p_structure_code => per_ri_config_main.g_global_fed_grd_struct_name
1226 ,p_segment_name => l_grade_segment_name
1227 ,p_segment_number => l_grade_segment_no
1228 ,p_valueset_tab => l_kf_grd_no_rv_valueset_tab);
1229
1230 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_value_set_name
1231 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).value_set_name;
1232 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_description
1233 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).description;
1234 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_security_available
1235 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).security_available;
1236 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_enable_longlist
1237 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
1238 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_format_type
1239 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).format_type;
1240 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_maximum_size
1241 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).maximum_size;
1242 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_precision
1243 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).precision;
1244 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_numbers_only
1245 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).numbers_only;
1246 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_uppercase_only
1247 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
1248 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_right_justify_zero_fill
1249 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
1250 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_min_value
1251 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).min_value;
1252 p_kf_grd_no_rv_seg_tab(l_kf_grd_no_rv_seg_count).vs_max_value
1253 := l_kf_grd_no_rv_valueset_tab(l_value_set_tab_count).max_value;
1254 l_kf_grd_no_rv_seg_count := l_kf_grd_no_rv_seg_count + 1 ;
1255 end if;
1256
1257
1258 l_log_message := 'Created KEYFLEX SEGMENT : PER GRD ' || l_grade_segment_name;
1259 per_ri_config_utilities.write_log(p_message => l_log_message);
1260 end if;
1261 END LOOP;
1262 --
1263 -- freeze and compile this flexfield
1264 --
1265 if NOT (p_technical_summary_mode) then
1266 per_ri_config_utilities.freeze_and_compile_flexfield
1267 (p_appl_short_Name => 'PER'
1268 ,p_flex_code => 'GRD'
1269 ,p_structure_code => per_ri_config_main.g_global_fed_grd_struct_name);
1270 end if;
1271 close csr_config_grade_no_rv;
1272 end if;
1273
1274 EXCEPTION
1275 when others then
1276 l_error_message := 'Error in ' || l_proc;
1277 hr_utility.trace(l_error_message || '-' || sqlerrm);
1278 hr_utility.set_location(' Leaving:'|| l_proc, 500);
1279 hr_utility.raise_error;
1280
1281 END create_grades_no_rv_keyflex;
1282
1283 /* --------------------------------------------------------------------------
1284 -- Name : create_jobs_rv_keyflex
1285 -- Purpose : This procedure creates jobs keyflex structures, segments and
1286 -- valuesets when regional variance are defined.
1287 -- and profiles options assigned to it.
1288 -- Arguments : p_configuration_code
1289 --
1290 -------------------------------------------------------------------------- */
1291 PROCEDURE create_jobs_rv_keyflex (p_configuration_code in varchar2
1292 ,p_technical_summary_mode in boolean default FALSE
1293 ,p_kf_job_rv_tab in out nocopy
1294 per_ri_config_tech_summary.kf_job_rv_tab
1295 ,p_kf_job_rv_seg_tab in out nocopy
1296 per_ri_config_tech_summary.kf_job_rv_seg_tab) IS
1297
1298 cursor csr_config_jobs_rv (cp_configuration_code in varchar2) IS
1299 select distinct per_ri_config_utilities.return_config_entity_name(rv.regional_variance_name),
1300 rv.regional_variance_name
1301 from per_ri_config_jp_rv_v rv,
1302 per_ri_config_job_rv_seg_v seg
1303 where rv.configuration_code = cp_configuration_code
1304 and rv.configuration_code = seg.configuration_code
1305 and rv.regional_variance_name = seg.regional_variance_name
1306 and seg.global_structure_indicator = 'N';
1307
1308 cursor csr_config_jobs_rv_seg (cp_configuration_code in varchar2
1309 ,cp_jobs_rv_name in varchar2) IS
1310 select distinct segment_type
1311 ,segment_name
1312 ,CONFIG_SEQUENCE
1313 from per_ri_config_job_rv_seg_v
1314 where configuration_code = cp_configuration_code
1315 and regional_variance_name = cp_jobs_rv_name
1316 order by CONFIG_SEQUENCE;
1317
1318 l_proc varchar2(72) := g_package || 'create_jobs_rv_keyflex';
1319 l_error_message varchar2(360);
1320 l_kf_job_rv_count number(8) := 0;
1321 l_kf_job_rv_tab per_ri_config_tech_summary.kf_job_rv_tab;
1322
1323 l_kf_job_rv_seg_count number(8) := 0;
1324 l_kf_job_rv_seg_tab per_ri_config_tech_summary.kf_job_rv_tab;
1325
1326 l_jobs_rv_name per_ri_config_information.config_information1%type;
1327 l_jobs_rv_name_orig per_ri_config_information.config_information1%type;
1328
1329 l_kf_job_rv_valueset_tab per_ri_config_tech_summary.valueset_tab;
1330 l_value_set_tab_count number(9) := 1;
1331
1332 l_rv_jobs_segment_type per_ri_config_information.config_information1%type;
1333 l_rv_jobs_segment_name per_ri_config_information.config_information1%type;
1334 l_jobs_keyflex_number number(9);
1335 l_jobs_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1336
1337 l_jobs_segment_count number(9);
1338 l_jobs_segment_no number(9);
1339
1340 BEGIN
1341 hr_utility.set_location('Entering:'|| l_proc, 10);
1342
1343 open csr_config_jobs_rv(p_configuration_code);
1344 LOOP
1345 fetch csr_config_jobs_rv into l_jobs_rv_name,l_jobs_rv_name_orig;
1346
1347 exit when csr_config_jobs_rv%NOTFOUND;
1348
1349 hr_utility.set_location(l_proc, 20);
1350 -- Create Jobs RV Key flex
1351 if NOT (p_technical_summary_mode) then
1352 l_jobs_keyflex_number := per_ri_config_utilities.create_key_flexfield
1353 (p_appl_short_Name => 'PER'
1354 ,p_flex_code => 'JOB'
1355 ,p_structure_code => l_jobs_rv_name || per_ri_config_main.g_job_rv_struct_def_string
1356 ,p_structure_title => l_jobs_rv_name || per_ri_config_main.g_job_rv_struct_def_string
1357 ,p_description => l_jobs_rv_name || per_ri_config_main.g_job_rv_struct_def_string
1358 || per_ri_config_main.g_description_suffix_string);
1359 else
1360 p_kf_job_rv_tab(l_kf_job_rv_count).appl_short_name := 'PER';
1361 p_kf_job_rv_tab(l_kf_job_rv_count).flex_code := 'JOB';
1362 p_kf_job_rv_tab(l_kf_job_rv_count).structure_code := l_jobs_rv_name || per_ri_config_main.g_job_rv_struct_def_string;
1363 p_kf_job_rv_tab(l_kf_job_rv_count).structure_title := l_jobs_rv_name || per_ri_config_main.g_job_rv_struct_def_string;
1364 p_kf_job_rv_tab(l_kf_job_rv_count).description := l_jobs_rv_name || per_ri_config_main.g_job_rv_struct_def_string
1365 || per_ri_config_main.g_description_suffix_string;
1366 l_kf_job_rv_count := l_kf_job_rv_count + 1 ;
1367 end if;
1368
1369 per_ri_config_utilities.write_log(p_message => 'Created Jobs RV Keyflex ' || l_jobs_rv_name
1370 || per_ri_config_main.g_job_rv_struct_def_string );
1371 hr_utility.trace('Created Jobs RV Keyflex ' || l_jobs_rv_name
1372 || per_ri_config_main.g_job_rv_struct_def_string);
1373
1374 open csr_config_jobs_rv_seg(p_configuration_code
1375 ,l_jobs_rv_name_orig);
1376 l_jobs_segment_count := 0;
1377 LOOP
1378 fetch csr_config_jobs_rv_seg into l_rv_jobs_segment_type
1379 ,l_rv_jobs_segment_name
1380 ,l_jobs_segment_no;
1381 exit when csr_config_jobs_rv_seg%NOTFOUND;
1382
1383 -- Create Jobs Key Flex Segments
1384 l_jobs_segment_count := csr_config_jobs_rv_seg%ROWCOUNT;
1385 if NOT (p_technical_summary_mode) then
1386 per_ri_config_utilities.create_flex_segments
1387 (p_appl_short_Name => 'PER'
1388 ,p_flex_code => 'JOB'
1389 ,p_structure_code => l_jobs_rv_name
1390 || per_ri_config_main.g_job_rv_struct_def_string
1391 ,p_segment_name => l_rv_jobs_segment_name
1392 ,p_column_name => 'SEGMENT' || l_jobs_segment_count
1393 ,p_segment_number => l_jobs_segment_no --l_jobs_segment_count
1394 ,p_value_set => null
1395 ,p_lov_prompt => l_rv_jobs_segment_name
1396 ,p_segment_type => l_rv_jobs_segment_type
1397 ,p_window_prompt => l_rv_jobs_segment_name);
1398 else
1399 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).appl_short_name := 'PER';
1400 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).flex_code := 'JOB';
1401 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).structure_code := l_jobs_rv_name
1402 || per_ri_config_main.g_job_rv_struct_def_string;
1403 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).segment_name := l_rv_jobs_segment_name;
1404 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).column_name := 'SEGMENT' || l_jobs_segment_count;
1405 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).segment_number := l_jobs_segment_no;
1406 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).value_set := null;
1407 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).lov_prompt := l_rv_jobs_segment_name;
1408 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).segment_type := l_rv_jobs_segment_type;
1409 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).window_prompt := l_rv_jobs_segment_name;
1410
1411 --create technical summary data for valueset
1412 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
1413 ,p_valueset_type => l_rv_jobs_segment_type
1414 ,p_structure_code => l_jobs_rv_name
1415 || per_ri_config_main.g_job_rv_struct_def_string
1416 ,p_segment_name => l_jobs_rv_name
1417 ,p_segment_number => l_jobs_segment_no
1418 ,p_valueset_tab => l_kf_job_rv_valueset_tab);
1419
1420 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_value_set_name
1421 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).value_set_name;
1422 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_description
1423 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).description;
1424 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_security_available
1425 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).security_available;
1426 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_enable_longlist
1427 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
1428 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_format_type
1429 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).format_type;
1430 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_maximum_size
1431 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).maximum_size;
1432 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_precision
1433 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).precision;
1434 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_numbers_only
1435 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).numbers_only;
1436 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_uppercase_only
1437 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
1438 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_right_justify_zero_fill
1439 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
1440 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_min_value
1441 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).min_value;
1442 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_max_value
1443 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).max_value;
1444 l_kf_job_rv_seg_count := l_kf_job_rv_seg_count + 1 ;
1445 end if;
1446
1447 per_ri_config_utilities.write_log(p_message => 'Created Grade Key Flex RV Segment' || l_rv_jobs_segment_name);
1448 hr_utility.trace('Created Job Key Flex RV Segment: ' || l_rv_jobs_segment_name);
1449 END LOOP;
1450 --
1451 -- freeze and compile this flexfield
1452 --
1453 if NOT (p_technical_summary_mode) then
1454 per_ri_config_utilities.freeze_and_compile_flexfield
1455 (p_appl_short_Name => 'PER'
1456 ,p_flex_code => 'JOB'
1457 ,p_structure_code => l_jobs_rv_name
1458 || per_ri_config_main.g_job_rv_struct_def_string);
1459 end if;
1460 close csr_config_jobs_rv_seg;
1461 END LOOP;
1462 close csr_config_jobs_rv;
1463
1464 EXCEPTION
1465 when others then
1466 l_error_message := 'Error in ' || l_proc;
1467 hr_utility.trace(l_error_message || '-' || sqlerrm);
1468 hr_utility.set_location(' Leaving:'|| l_proc, 500);
1469 hr_utility.raise_error;
1470
1471 END create_jobs_rv_keyflex;
1472
1473 /* --------------------------------------------------------------------------
1474 -- Name : create_positions_rv_keyflex
1475 -- Purpose : This procedure creates positions keyflex structures, segments and
1476 -- valuesets when regional variance are not defined.
1477 -- and profiles options assigned to it.
1478 -- Arguments : p_configuration_code
1479 --
1480 -------------------------------------------------------------------------- */
1481
1482 PROCEDURE create_positions_rv_keyflex (p_configuration_code in varchar2
1483 ,p_technical_summary_mode in boolean default FALSE
1484 ,p_kf_pos_rv_tab in out nocopy
1485 per_ri_config_tech_summary.kf_pos_rv_tab
1486 ,p_kf_pos_rv_seg_tab in out nocopy
1487 per_ri_config_tech_summary.kf_pos_rv_seg_tab) IS
1488
1489 cursor csr_config_positions_rv (cp_configuration_code in varchar2) IS
1490 select distinct per_ri_config_utilities.return_config_entity_name(regional_variance_name),
1491 regional_variance_name
1492 from per_ri_config_jp_rv_v
1493 where configuration_code = cp_configuration_code
1494 and exists (select configuration_code
1495 from per_ri_config_pos_rv_seg_v
1496 where configuration_code = cp_configuration_code);
1497
1498 cursor csr_config_positions_rv_seg (cp_configuration_code in varchar2
1499 ,cp_positions_rv_name in varchar2) IS
1500 select distinct segment_type
1501 ,segment_name
1502 ,CONFIG_SEQUENCE
1503 from per_ri_config_pos_rv_seg_v
1504 where configuration_code = cp_configuration_code
1505 and regional_variance_name = cp_positions_rv_name
1506 order by CONFIG_SEQUENCE;
1507
1508 l_proc varchar2(72) := g_package || 'create_positions_rv_keyflex';
1509 l_error_message varchar2(360);
1510 l_kf_pos_rv_count number(8) := 0;
1511 l_kf_pos_rv_tab per_ri_config_tech_summary.kf_pos_rv_tab;
1512
1513 l_kf_pos_rv_seg_count number(8) := 0;
1514 l_kf_pos_rv_seg_tab per_ri_config_tech_summary.kf_pos_rv_tab;
1515
1516 l_kf_pos_rv_valueset_tab per_ri_config_tech_summary.valueset_tab;
1517 l_value_set_tab_count number(9) := 1;
1518
1519 l_positions_rv_name per_ri_config_information.config_information1%type;
1520 l_positions_rv_name_orig per_ri_config_information.config_information1%type;
1521
1522 l_rv_positions_segment_type per_ri_config_information.config_information1%type;
1523 l_rv_positions_segment_name per_ri_config_information.config_information1%type;
1524 l_positions_keyflex_number number(9);
1525 l_positions_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1526
1527 l_positions_segment_count number(9);
1528 l_positions_segment_no number(9);
1529 BEGIN
1530 hr_utility.set_location('Entering:'|| l_proc, 10);
1531
1532 open csr_config_positions_rv(p_configuration_code);
1533 LOOP
1534 fetch csr_config_positions_rv into l_positions_rv_name,l_positions_rv_name_orig;
1535
1536 exit when csr_config_positions_rv%NOTFOUND;
1537
1538 hr_utility.set_location(l_proc, 20);
1539 -- Create Jobs RV Key flex
1540 if NOT (p_technical_summary_mode) then
1541 l_positions_keyflex_number := per_ri_config_utilities.create_key_flexfield
1542 (p_appl_short_Name => 'PER'
1543 ,p_flex_code => 'POS'
1544 ,p_structure_code => l_positions_rv_name || per_ri_config_main.g_pos_rv_struct_def_string
1545 ,p_structure_title => l_positions_rv_name || per_ri_config_main.g_pos_rv_struct_def_string
1546 ,p_description => l_positions_rv_name || per_ri_config_main.g_pos_rv_struct_def_string
1547 || per_ri_config_main.g_description_suffix_string);
1548
1549 else
1550 p_kf_pos_rv_tab(l_kf_pos_rv_count).appl_short_name := 'PER';
1551 p_kf_pos_rv_tab(l_kf_pos_rv_count).flex_code := 'POS';
1552 p_kf_pos_rv_tab(l_kf_pos_rv_count).structure_code := l_positions_rv_name || per_ri_config_main.g_pos_rv_struct_def_string;
1553 p_kf_pos_rv_tab(l_kf_pos_rv_count).structure_title := l_positions_rv_name || per_ri_config_main.g_pos_rv_struct_def_string;
1554 p_kf_pos_rv_tab(l_kf_pos_rv_count).description := l_positions_rv_name || per_ri_config_main.g_pos_rv_struct_def_string
1555 || per_ri_config_main.g_description_suffix_string;
1556 l_kf_pos_rv_count := l_kf_pos_rv_count + 1 ;
1557 end if;
1558 per_ri_config_utilities.write_log(p_message => 'Created Positions RV Keyflex ' || l_positions_rv_name
1559 || per_ri_config_main.g_pos_rv_struct_def_string );
1560 hr_utility.trace('Created Positions RV Keyflex ' || l_positions_rv_name
1561 || per_ri_config_main.g_pos_rv_struct_def_string);
1562
1563 open csr_config_positions_rv_seg(p_configuration_code
1564 ,l_positions_rv_name_orig);
1565 l_positions_segment_count := 0;
1566 LOOP
1567 fetch csr_config_positions_rv_seg into l_rv_positions_segment_type
1568 ,l_rv_positions_segment_name
1569 ,l_positions_segment_no;
1570 exit when csr_config_positions_rv_seg%NOTFOUND;
1571
1572 -- Create Jobs Key Flex Segments
1573 l_positions_segment_count := csr_config_positions_rv_seg%ROWCOUNT;
1574 if NOT (p_technical_summary_mode) then
1575 per_ri_config_utilities.create_flex_segments
1576 (p_appl_short_Name => 'PER'
1577 ,p_flex_code => 'POS'
1578 ,p_structure_code => l_positions_rv_name
1579 || per_ri_config_main.g_pos_rv_struct_def_string
1580 ,p_segment_name => l_rv_positions_segment_name
1581 ,p_column_name => 'SEGMENT' || l_positions_segment_count
1582 ,p_segment_number => l_positions_segment_no
1583 ,p_value_set => null
1584 ,p_lov_prompt => l_rv_positions_segment_name
1585 ,p_segment_type => l_rv_positions_segment_type
1586 ,p_window_prompt => l_rv_positions_segment_name);
1587
1588 else
1589 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).appl_short_name := 'PER';
1590 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).flex_code := 'POS';
1591 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).structure_code := l_positions_rv_name
1592 || per_ri_config_main.g_pos_rv_struct_def_string;
1593 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).segment_name := l_rv_positions_segment_name;
1594 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).column_name := 'SEGMENT' || l_positions_segment_count;
1595 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).segment_number := l_positions_segment_no;
1596 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).value_set := null;
1597 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).lov_prompt := l_rv_positions_segment_name;
1598 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).segment_type := l_rv_positions_segment_type;
1599 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).window_prompt := l_rv_positions_segment_name;
1600
1601 --create technical summary data for valueset
1602 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
1603 ,p_valueset_type => l_rv_positions_segment_type
1604 ,p_structure_code => l_positions_rv_name
1605 || per_ri_config_main.g_pos_rv_struct_def_string
1606 ,p_segment_name => l_rv_positions_segment_name
1607 ,p_segment_number => l_positions_segment_no
1608 ,p_valueset_tab => l_kf_pos_rv_valueset_tab);
1609
1610 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_value_set_name
1611 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).value_set_name;
1612 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_description
1613 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).description;
1614 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_security_available
1615 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).security_available;
1616 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_enable_longlist
1617 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
1618 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_format_type
1619 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).format_type;
1620 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_maximum_size
1621 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).maximum_size;
1622 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_precision
1623 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).precision;
1624 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_numbers_only
1625 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).numbers_only;
1626 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_uppercase_only
1627 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
1628 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_right_justify_zero_fill
1629 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
1630 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_min_value
1631 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).min_value;
1632 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_max_value
1633 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).max_value;
1634 l_kf_pos_rv_seg_count := l_kf_pos_rv_seg_count + 1 ;
1635 end if;
1636 per_ri_config_utilities.write_log(p_message => 'Created Positions Key Flex RV Segment' || l_rv_positions_segment_name);
1637 hr_utility.trace('Created Positions Key Flex RV Segment: ' || l_rv_positions_segment_name);
1638 END LOOP;
1639 --
1640 -- freeze and compile this flexfield
1641 --
1642 if NOT (p_technical_summary_mode) then
1643 per_ri_config_utilities.freeze_and_compile_flexfield
1644 (p_appl_short_Name => 'PER'
1645 ,p_flex_code => 'POS'
1646 ,p_structure_code => l_positions_rv_name
1647 || per_ri_config_main.g_pos_rv_struct_def_string);
1648 end if;
1649 close csr_config_positions_rv_seg;
1650 END LOOP;
1651 close csr_config_positions_rv;
1652 hr_utility.set_location('Leaving:'|| l_proc, 100);
1653 EXCEPTION
1654 when others then
1655 l_error_message := 'Error in ' || l_proc;
1656 hr_utility.trace(l_error_message || '-' || sqlerrm);
1657 hr_utility.set_location(' Leaving:'|| l_proc, 500);
1658 hr_utility.raise_error;
1659
1660 END create_positions_rv_keyflex;
1661
1662 /* --------------------------------------------------------------------------
1663 -- Name : create_grades_rv_keyflex
1664 -- Purpose : This procedure creates grades keyflex structures, segments and
1665 -- valuesets when regional variance are not defined.
1666 -- and profiles options assigned to it.
1667 -- Arguments : p_configuration_code
1668 --
1669 -------------------------------------------------------------------------- */
1670
1671 PROCEDURE create_grades_rv_keyflex (p_configuration_code in varchar2
1672 ,p_technical_summary_mode in boolean default FALSE
1673 ,p_kf_grd_rv_tab in out nocopy
1674 per_ri_config_tech_summary.kf_grd_rv_tab
1675 ,p_kf_grd_rv_seg_tab in out nocopy
1676 per_ri_config_tech_summary.kf_grd_rv_seg_tab) IS
1677
1678 cursor csr_config_grade_rv (cp_configuration_code in varchar2) IS
1679 select distinct per_ri_config_utilities.return_config_entity_name(regional_variance_name),
1680 regional_variance_name
1681 from per_ri_config_grd_rv_v
1682 where configuration_code = cp_configuration_code;
1683
1684 cursor csr_config_grade_rv_seg (cp_configuration_code in varchar2
1685 ,cp_grade_rv_name in varchar2) IS
1686 select distinct segment_type
1687 ,segment_name
1688 ,CONFIG_SEQUENCE
1689 from per_ri_config_grd_rv_seg_v
1690 where configuration_code = cp_configuration_code
1691 and regional_variance_name = cp_grade_rv_name
1692 order by CONFIG_SEQUENCE;
1693
1694 l_proc varchar2(72) := g_package || 'create_grades_rv_keyflex';
1695 l_error_message varchar2(360);
1696
1697 l_kf_grd_rv_count number(8) := 0;
1698 l_kf_grd_rv_tab per_ri_config_tech_summary.kf_grd_rv_tab;
1699 l_kf_grd_rv_seg_count number(8) := 0;
1700 l_kf_grd_rv_seg_tab per_ri_config_tech_summary.kf_grd_rv_tab;
1701
1702 l_kf_grd_rv_valueset_tab per_ri_config_tech_summary.valueset_tab;
1703 l_value_set_tab_count number(9) := 1;
1704
1705 l_grade_rv_name per_ri_config_information.config_information1%type;
1706 l_grade_rv_name_orig per_ri_config_information.config_information1%type;
1707
1708 l_rv_grade_segment_name per_ri_config_information.config_information1%type;
1709 l_rv_grade_segment_type per_ri_config_information.config_information1%type;
1710 l_grades_keyflex_number number(9);
1711 l_grade_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1712
1713 l_grades_segment_count number(9);
1714 l_grades_segment_no number(9);
1715 BEGIN
1716 hr_utility.set_location('Entering:'|| l_proc, 10);
1717
1718 open csr_config_grade_rv(p_configuration_code);
1719 LOOP
1720 fetch csr_config_grade_rv into l_grade_rv_name,l_grade_rv_name_orig;
1721
1722 exit when csr_config_grade_rv%NOTFOUND;
1723
1724 -- Create Grades RV Key Flex
1725 hr_utility.set_location(l_proc, 20);
1726 if NOT (p_technical_summary_mode) then
1727 l_grades_keyflex_number :=
1728 per_ri_config_utilities.create_key_flexfield
1729 (p_appl_short_Name => 'PER'
1730 ,p_flex_code => 'GRD'
1731 ,p_structure_code => l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string
1732 ,p_structure_title => l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string
1733 ,p_description => l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string
1734 || per_ri_config_main.g_description_suffix_string);
1735
1736 else
1737 p_kf_grd_rv_tab(l_kf_grd_rv_count).appl_short_name := 'PER';
1738 p_kf_grd_rv_tab(l_kf_grd_rv_count).flex_code := 'GRD';
1739 p_kf_grd_rv_tab(l_kf_grd_rv_count).structure_code := l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string;
1740 p_kf_grd_rv_tab(l_kf_grd_rv_count).structure_title := l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string;
1741 p_kf_grd_rv_tab(l_kf_grd_rv_count).description := l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string
1742 || per_ri_config_main.g_description_suffix_string;
1743 l_kf_grd_rv_count := l_kf_grd_rv_count + 1 ;
1744 end if;
1745 per_ri_config_utilities.write_log(p_message => 'Created Grades RV Keyflex '
1746 || per_ri_config_main.g_grd_rv_struct_def_string );
1747 hr_utility.trace('Created Grades RV Keyflex ' || per_ri_config_main.g_grd_rv_struct_def_string);
1748
1749 open csr_config_grade_rv_seg(p_configuration_code
1750 ,l_grade_rv_name_orig);
1751 l_grades_segment_count := 0;
1752 LOOP
1753 fetch csr_config_grade_rv_seg into l_rv_grade_segment_type
1754 ,l_rv_grade_segment_name
1755 ,l_grades_segment_no;
1756 exit when csr_config_grade_rv_seg%NOTFOUND;
1757
1758 -- Create Jobs Key Flex Segments
1759 l_grades_segment_count := csr_config_grade_rv_seg%ROWCOUNT;
1760 if NOT (p_technical_summary_mode) then
1761 per_ri_config_utilities.create_flex_segments
1762 (p_appl_short_Name => 'PER'
1763 ,p_flex_code => 'GRD'
1764 ,p_structure_code => l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string
1765 ,p_segment_name => l_rv_grade_segment_name
1766 ,p_column_name => 'SEGMENT' || l_grades_segment_count
1767 ,p_segment_number => l_grades_segment_no
1768 ,p_value_set => null
1769 ,p_lov_prompt => l_rv_grade_segment_name
1770 ,p_segment_type => l_rv_grade_segment_type
1771 ,p_window_prompt => l_rv_grade_segment_name);
1772 else
1773 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).appl_short_name := 'PER';
1774 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).flex_code := 'GRD';
1775 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).structure_code := l_grade_rv_name
1776 || per_ri_config_main.g_grd_rv_struct_def_string;
1777 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).segment_name := l_rv_grade_segment_name;
1778 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).column_name := 'SEGMENT' || l_grades_segment_count;
1779 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).segment_number := l_grades_segment_no;
1780 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).value_set := null;
1781 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).lov_prompt := l_rv_grade_segment_name;
1782 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).segment_type := l_rv_grade_segment_type;
1783 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).window_prompt := l_rv_grade_segment_name;
1784
1785 --create technical summary data for valueset
1786 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
1787 ,p_valueset_type => l_rv_grade_segment_type
1788 ,p_structure_code => l_grade_rv_name
1789 || per_ri_config_main.g_grd_rv_struct_def_string
1790 ,p_segment_name => l_rv_grade_segment_name
1791 ,p_segment_number => l_grades_segment_no
1792 ,p_valueset_tab => l_kf_grd_rv_valueset_tab);
1793
1794 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_value_set_name
1795 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).value_set_name;
1796 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_description
1797 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).description;
1798 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_security_available
1799 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).security_available;
1800 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_enable_longlist
1801 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
1802 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_format_type
1803 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).format_type;
1804 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_maximum_size
1805 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).maximum_size;
1806 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_precision
1807 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).precision;
1808 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_numbers_only
1809 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).numbers_only;
1810 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_uppercase_only
1811 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
1812 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_right_justify_zero_fill
1813 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
1814 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_min_value
1815 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).min_value;
1816 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_max_value
1817 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).max_value;
1818 l_kf_grd_rv_seg_count := l_kf_grd_rv_seg_count + 1 ;
1819 end if;
1820 per_ri_config_utilities.write_log(p_message => 'Created Grade Key Flex RV Segment' || l_rv_grade_segment_name);
1821 hr_utility.trace('Created Job Key Flex RV Segment: ' || l_rv_grade_segment_name);
1822 END LOOP;
1823 close csr_config_grade_rv_seg;
1824 --
1825 -- freeze and compile this flexfield
1826 --
1827 if NOT (p_technical_summary_mode) then
1828 per_ri_config_utilities.freeze_and_compile_flexfield
1829 (p_appl_short_Name => 'PER'
1830 ,p_flex_code => 'GRD'
1831 ,p_structure_code => l_grade_rv_name
1832 || per_ri_config_main.g_grd_rv_struct_def_string);
1833 end if;
1834 END LOOP;
1835 close csr_config_grade_rv;
1836
1837 EXCEPTION
1838 when others then
1839 l_error_message := 'Error in ' || l_proc;
1840 hr_utility.trace(l_error_message || '-' || sqlerrm);
1841 hr_utility.set_location(' Leaving:'|| l_proc, 500);
1842 hr_utility.raise_error;
1843
1844 END create_grades_rv_keyflex;
1845
1846 /* --------------------------------------------------------------------------
1847 -- Name : create_global_grp_cmp_cost_kf
1848 -- Purpose : This procedure creates global People Group, Competence and
1849 -- Cost allocation key flex structures, segments and
1850 -- valuesets.
1851 -- Arguments : p_configuration_code
1852 --
1853 -------------------------------------------------------------------------- */
1854 PROCEDURE create_global_grp_cmp_cost_kf (p_configuration_code in varchar2
1855 ,p_technical_summary_mode in boolean default FALSE
1856 ,p_kf_grp_tab in out nocopy
1857 per_ri_config_tech_summary.kf_grp_tab
1858 ,p_kf_cmp_tab in out nocopy
1859 per_ri_config_tech_summary.kf_cmp_tab
1860 ,p_kf_cost_tab in out nocopy
1861 per_ri_config_tech_summary.kf_cost_tab
1862 ,p_kf_grp_seg_tab in out nocopy
1863 per_ri_config_tech_summary.kf_grp_seg_tab
1864 ,p_kf_cmp_seg_tab in out nocopy
1865 per_ri_config_tech_summary.kf_cmp_seg_tab
1866 ,p_kf_cost_seg_tab in out nocopy
1867 per_ri_config_tech_summary.kf_cost_seg_tab) IS
1868
1869 l_kf_grp_tab per_ri_config_tech_summary.kf_grp_tab;
1870 l_kf_cmp_tab per_ri_config_tech_summary.kf_cmp_tab;
1871 l_kf_cost_tab per_ri_config_tech_summary.kf_cost_tab;
1872
1873 l_kf_grp_seg_tab per_ri_config_tech_summary.kf_grp_seg_tab;
1874 l_kf_cmp_seg_tab per_ri_config_tech_summary.kf_cmp_seg_tab;
1875 l_kf_cost_seg_tab per_ri_config_tech_summary.kf_cost_seg_tab;
1876
1877 l_kf_grp_valueset_tab per_ri_config_tech_summary.valueset_tab;
1878 l_kf_cmp_valueset_tab per_ri_config_tech_summary.valueset_tab;
1879 l_kf_cost_valueset_tab per_ri_config_tech_summary.valueset_tab;
1880 l_value_set_tab_count number(9) := 1;
1881
1882 l_proc varchar2(72) := g_package || 'create_global_grp_cmp_cost_kf';
1883 l_error_message varchar2(360);
1884 l_configuration_code per_ri_config_information.configuration_code%type;
1885 l_people_group_fk_number number(9);
1886 l_competence_fk_number number(9);
1887 l_cost_allocation_number number(9);
1888
1889 l_enterprise_short_name per_ri_config_information.configuration_code%type;
1890
1891 l_grp_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1892 l_cmp_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1893 l_cost_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1894
1895 l_kf_grp_count number(8) := 0;
1896 l_kf_cmp_count number(8) := 0;
1897 l_kf_cost_count number(8) := 0;
1898
1899 l_kf_grp_seg_count number(8) :=0;
1900 l_kf_cmp_seg_count number(8) :=0;
1901 l_kf_cost_seg_count number(8) :=0;
1902 BEGIN
1903
1904 hr_utility.set_location('Entering:'|| l_proc, 10);
1905
1906 --
1907 -- create people group key flex
1908 --
1909 l_grp_structures_code := per_ri_config_main.g_global_pea_structure_name;
1910 if NOT (p_technical_summary_mode) then
1911 l_people_group_fk_number := per_ri_config_utilities.create_key_flexfield
1912 (p_appl_short_Name => 'PAY'
1913 ,p_flex_code => 'GRP'
1914 ,p_structure_code => l_grp_structures_code
1915 ,p_structure_title => l_grp_structures_code
1916 ,p_description => l_grp_structures_code);
1917
1918 else
1919 p_kf_grp_tab(l_kf_grp_count).appl_short_name := 'PAY';
1920 p_kf_grp_tab(l_kf_grp_count).flex_code := 'GRP';
1921 p_kf_grp_tab(l_kf_grp_count).structure_code := l_grp_structures_code;
1922 p_kf_grp_tab(l_kf_grp_count).structure_title := l_grp_structures_code;
1923 p_kf_grp_tab(l_kf_grp_count).description := l_grp_structures_code;
1924 end if;
1925
1926 hr_utility.trace('Created People Group Key Flex: ' || l_grp_structures_code );
1927
1928 --
1929 -- create people group flex segments
1930 --
1931 if NOT (p_technical_summary_mode) then
1932 per_ri_config_utilities.create_flex_segments
1933 (p_appl_short_Name => 'PAY'
1934 ,p_flex_code => 'GRP'
1935 ,p_structure_code => l_grp_structures_code
1936 ,p_segment_name => 'People Group Name'
1937 ,p_column_name => 'SEGMENT1'
1938 ,p_segment_number => 1
1939 ,p_value_set => null
1940 ,p_lov_prompt => 'People Group'
1941 ,p_window_prompt => 'People Group');
1942
1943 else
1944 p_kf_grp_seg_tab(l_kf_grp_seg_count).appl_short_name := 'PAY';
1945 p_kf_grp_seg_tab(l_kf_grp_seg_count).flex_code := 'GRP';
1946 p_kf_grp_seg_tab(l_kf_grp_seg_count).structure_code := l_grp_structures_code;
1947 p_kf_grp_seg_tab(l_kf_grp_seg_count).segment_name := 'People Group Name';
1948 p_kf_grp_seg_tab(l_kf_grp_seg_count).column_name := 'SEGMENT1';
1949 p_kf_grp_seg_tab(l_kf_grp_seg_count).segment_number := 1;
1950 p_kf_grp_seg_tab(l_kf_grp_seg_count).value_set := null;
1951 p_kf_grp_seg_tab(l_kf_grp_seg_count).lov_prompt := 'People Group';
1952 p_kf_grp_seg_tab(l_kf_grp_seg_count).segment_type := null;
1953 p_kf_grp_seg_tab(l_kf_grp_seg_count).window_prompt := 'People Group';
1954
1955 --create technical summary data for valueset
1956 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
1957 ,p_valueset_type => null
1958 ,p_structure_code => l_grp_structures_code
1959 ,p_segment_name => 'People Group Name'
1960 ,p_segment_number => 1
1961 ,p_valueset_tab => l_kf_grp_valueset_tab);
1962
1963
1964 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_value_set_name
1965 := l_kf_grp_valueset_tab(l_value_set_tab_count).value_set_name;
1966 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_description
1967 := l_kf_grp_valueset_tab(l_value_set_tab_count).description;
1968 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_security_available
1969 := l_kf_grp_valueset_tab(l_value_set_tab_count).security_available;
1970 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_enable_longlist
1971 := l_kf_grp_valueset_tab(l_value_set_tab_count).enable_longlist;
1972 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_format_type
1973 := l_kf_grp_valueset_tab(l_value_set_tab_count).format_type;
1974 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_maximum_size
1975 := l_kf_grp_valueset_tab(l_value_set_tab_count).maximum_size;
1976 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_precision
1977 := l_kf_grp_valueset_tab(l_value_set_tab_count).precision;
1978 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_numbers_only
1979 := l_kf_grp_valueset_tab(l_value_set_tab_count).numbers_only;
1980 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_uppercase_only
1981 := l_kf_grp_valueset_tab(l_value_set_tab_count).uppercase_only;
1982 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_right_justify_zero_fill
1983 := l_kf_grp_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
1984 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_min_value
1985 := l_kf_grp_valueset_tab(l_value_set_tab_count).min_value;
1986 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_max_value
1987 := l_kf_grp_valueset_tab(l_value_set_tab_count).max_value;
1988 l_kf_grp_seg_count := l_kf_grp_seg_count + 1 ;
1989 end if;
1990
1991 hr_utility.trace('Created People Group Key Flex Segment: ' || l_grp_structures_code);
1992
1993 --
1994 -- freeze and compile this flexfield
1995 --
1996 if NOT (p_technical_summary_mode) then
1997 per_ri_config_utilities.freeze_and_compile_flexfield
1998 (p_appl_short_Name => 'PAY'
1999 ,p_flex_code => 'GRP'
2000 ,p_structure_code => l_grp_structures_code);
2001 end if;
2002
2003
2004
2005 --
2006 -- create competence key flex
2007 --
2008 l_cmp_structures_code := per_ri_config_main.g_global_cmp_structure_name;
2009 if NOT (p_technical_summary_mode) then
2010 l_competence_fk_number := per_ri_config_utilities.create_key_flexfield
2011 (p_appl_short_Name => 'PER'
2012 ,p_flex_code => 'CMP'
2013 ,p_structure_code => l_cmp_structures_code
2014 ,p_structure_title => l_cmp_structures_code
2015 ,p_description => l_cmp_structures_code);
2016
2017 else
2018 p_kf_cmp_tab(l_kf_cmp_count).appl_short_name := 'PER';
2019 p_kf_cmp_tab(l_kf_cmp_count).flex_code := 'CMP';
2020 p_kf_cmp_tab(l_kf_cmp_count).structure_code := l_cmp_structures_code;
2021 p_kf_cmp_tab(l_kf_cmp_count).structure_title := l_cmp_structures_code;
2022 p_kf_cmp_tab(l_kf_cmp_count).description := l_cmp_structures_code;
2023 end if;
2024
2025 hr_utility.trace('Created Competence Group Key Flex: ' || l_cmp_structures_code);
2026
2027 --
2028 -- create competence flex segments
2029 --
2030 if NOT (p_technical_summary_mode) then
2031 per_ri_config_utilities.create_flex_segments
2032 (p_appl_short_Name => 'PER'
2033 ,p_flex_code => 'CMP'
2034 ,p_structure_code => l_cmp_structures_code
2035 ,p_segment_name => 'Competence Name'
2036 ,p_column_name => 'SEGMENT1'
2037 ,p_segment_number => 1
2038 ,p_value_set => null
2039 ,p_lov_prompt => 'Competence Name'
2040 ,p_window_prompt => 'Competence Name');
2041 else
2042 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).appl_short_name := 'PER';
2043 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).flex_code := 'CMP';
2044 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).structure_code := l_cmp_structures_code;
2045 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).segment_name := 'Competence Name';
2046 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).column_name := 'SEGMENT1';
2047 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).segment_number := 1;
2048 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).value_set := null;
2049 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).lov_prompt := 'Competence Name';
2050 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).segment_type := null;
2051 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).window_prompt := 'Competence Name';
2052
2053 --create technical summary data for valueset
2054 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2055 ,p_valueset_type => null
2056 ,p_structure_code => l_cmp_structures_code
2057 ,p_segment_name => 'Competence Name'
2058 ,p_segment_number => 1
2059 ,p_valueset_tab => l_kf_cmp_valueset_tab);
2060
2061 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_value_set_name
2062 := l_kf_cmp_valueset_tab(l_value_set_tab_count).value_set_name;
2063 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_description
2064 := l_kf_cmp_valueset_tab(l_value_set_tab_count).description;
2065 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_security_available
2066 := l_kf_cmp_valueset_tab(l_value_set_tab_count).security_available;
2067 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_enable_longlist
2068 := l_kf_cmp_valueset_tab(l_value_set_tab_count).enable_longlist;
2069 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_format_type
2070 := l_kf_cmp_valueset_tab(l_value_set_tab_count).format_type;
2071 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_maximum_size
2072 := l_kf_cmp_valueset_tab(l_value_set_tab_count).maximum_size;
2073 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_precision
2074 := l_kf_cmp_valueset_tab(l_value_set_tab_count).precision;
2075 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_numbers_only
2076 := l_kf_cmp_valueset_tab(l_value_set_tab_count).numbers_only;
2077 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_uppercase_only
2078 := l_kf_cmp_valueset_tab(l_value_set_tab_count).uppercase_only;
2079 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_right_justify_zero_fill
2080 := l_kf_cmp_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2081 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_min_value
2082 := l_kf_cmp_valueset_tab(l_value_set_tab_count).min_value;
2083 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_max_value
2084 := l_kf_cmp_valueset_tab(l_value_set_tab_count).max_value;
2085 l_kf_cmp_seg_count := l_kf_cmp_seg_count + 1 ;
2086 end if;
2087
2088 hr_utility.trace('Created Competence Key Flex Segment: l_cmp_structures_code' );
2089
2090 --
2091 -- freeze and compile this flexfield
2092 --
2093 if NOT (p_technical_summary_mode) then
2094 per_ri_config_utilities.freeze_and_compile_flexfield
2095 (p_appl_short_Name => 'PER'
2096 ,p_flex_code => 'CMP'
2097 ,p_structure_code => l_cmp_structures_code);
2098 end if;
2099
2100 --
2101 -- create cost allocation key flex
2102 --
2103 l_cost_structures_code := per_ri_config_main.g_global_cst_structure_name;
2104 if NOT (p_technical_summary_mode) then
2105 l_cost_allocation_number := per_ri_config_utilities.create_key_flexfield
2106 (p_appl_short_Name => 'PAY'
2107 ,p_flex_code => 'COST'
2108 ,p_structure_code => l_cost_structures_code
2109 ,p_structure_title => l_cost_structures_code
2110 ,p_description => l_cost_structures_code);
2111
2112 else
2113 p_kf_cost_tab(l_kf_cost_count).appl_short_name := 'PAY';
2114 p_kf_cost_tab(l_kf_cost_count).flex_code := 'COST';
2115 p_kf_cost_tab(l_kf_cost_count).structure_code := l_cost_structures_code;
2116 p_kf_cost_tab(l_kf_cost_count).structure_title := l_cost_structures_code;
2117 p_kf_cost_tab(l_kf_cost_count).description := l_cost_structures_code;
2118 end if;
2119
2120 hr_utility.trace('Created Cost Allocation Key Flex: ' || l_cost_structures_code);
2121
2122 --
2123 -- create cost allocation flex segments
2124 --
2125 if NOT (p_technical_summary_mode) then
2126 per_ri_config_utilities.create_flex_segments
2127 (p_appl_short_Name => 'PAY'
2128 ,p_flex_code => 'COST'
2129 ,p_structure_code => l_cost_structures_code
2130 ,p_segment_name => 'Account'
2131 ,p_column_name => 'SEGMENT1'
2132 ,p_segment_number => 1
2133 ,p_value_set => null
2134 ,p_lov_prompt => 'Account'
2135 ,p_window_prompt => 'Account');
2136 else
2137 p_kf_cost_seg_tab(l_kf_cost_seg_count).appl_short_name := 'PAY';
2138 p_kf_cost_seg_tab(l_kf_cost_seg_count).flex_code := 'COST';
2139 p_kf_cost_seg_tab(l_kf_cost_seg_count).structure_code := l_cost_structures_code;
2140 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_name := 'Account';
2141 p_kf_cost_seg_tab(l_kf_cost_seg_count).column_name := 'SEGMENT1';
2142 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_number := 1;
2143 p_kf_cost_seg_tab(l_kf_cost_seg_count).value_set := null;
2144 p_kf_cost_seg_tab(l_kf_cost_seg_count).lov_prompt := 'Account';
2145 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_type := null;
2146 p_kf_cost_seg_tab(l_kf_cost_seg_count).window_prompt := 'Account';
2147
2148 --create technical summary data for valueset
2149 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2150 ,p_valueset_type => null
2151 ,p_structure_code => l_cost_structures_code
2152 ,p_segment_name => 'Account'
2153 ,p_segment_number => 1
2154 ,p_valueset_tab => l_kf_cost_valueset_tab);
2155
2156 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_value_set_name
2157 := l_kf_cost_valueset_tab(l_value_set_tab_count).value_set_name;
2158 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_description
2159 := l_kf_cost_valueset_tab(l_value_set_tab_count).description;
2160 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_security_available
2161 := l_kf_cost_valueset_tab(l_value_set_tab_count).security_available;
2162 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_enable_longlist
2163 := l_kf_cost_valueset_tab(l_value_set_tab_count).enable_longlist;
2164 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_format_type
2165 := l_kf_cost_valueset_tab(l_value_set_tab_count).format_type;
2166 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_maximum_size
2167 := l_kf_cost_valueset_tab(l_value_set_tab_count).maximum_size;
2168 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_precision
2169 := l_kf_cost_valueset_tab(l_value_set_tab_count).precision;
2170 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_numbers_only
2171 := l_kf_cost_valueset_tab(l_value_set_tab_count).numbers_only;
2172 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_uppercase_only
2173 := l_kf_cost_valueset_tab(l_value_set_tab_count).uppercase_only;
2174 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_right_justify_zero_fill
2175 := l_kf_cost_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2176 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_min_value
2177 := l_kf_cost_valueset_tab(l_value_set_tab_count).min_value;
2178 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_max_value
2179 := l_kf_cmp_valueset_tab(l_value_set_tab_count).max_value;
2180 l_kf_cost_seg_count := l_kf_cost_seg_count + 1 ;
2181 hr_utility.trace('ENABLELONGLIST := ' || l_kf_cost_valueset_tab(l_value_set_tab_count).enable_longlist);
2182 end if;
2183
2184 if NOT (p_technical_summary_mode) then
2185 per_ri_config_utilities.create_flex_segments
2186 (p_appl_short_Name => 'PAY'
2187 ,p_flex_code => 'COST'
2188 ,p_structure_code => l_cost_structures_code
2189 ,p_segment_name => 'Company'
2190 ,p_column_name => 'SEGMENT2'
2191 ,p_segment_number => 2
2192 ,p_value_set => null
2193 ,p_lov_prompt => 'Company'
2194 ,p_window_prompt => 'Company');
2195 else
2196 p_kf_cost_seg_tab(l_kf_cost_seg_count).appl_short_name := 'PAY';
2197 p_kf_cost_seg_tab(l_kf_cost_seg_count).flex_code := 'COST';
2198 p_kf_cost_seg_tab(l_kf_cost_seg_count).structure_code := l_cost_structures_code;
2199 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_name := 'Company';
2200 p_kf_cost_seg_tab(l_kf_cost_seg_count).column_name := 'SEGMENT2';
2201 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_number := 2;
2202 p_kf_cost_seg_tab(l_kf_cost_seg_count).value_set := null;
2203 p_kf_cost_seg_tab(l_kf_cost_seg_count).lov_prompt := 'Company';
2204 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_type := null;
2205 p_kf_cost_seg_tab(l_kf_cost_seg_count).window_prompt := 'Company';
2206
2207 --create technical summary data for valueset
2208 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2209 ,p_valueset_type => null
2210 ,p_structure_code => l_cost_structures_code
2211 ,p_segment_name => 'Company'
2212 ,p_segment_number => 2
2213 ,p_valueset_tab => l_kf_cost_valueset_tab);
2214
2215 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_value_set_name
2216 := l_kf_cost_valueset_tab(l_value_set_tab_count).value_set_name;
2217 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_description
2218 := l_kf_cost_valueset_tab(l_value_set_tab_count).description;
2219 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_security_available
2220 := l_kf_cost_valueset_tab(l_value_set_tab_count).security_available;
2221 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_enable_longlist
2222 := l_kf_cost_valueset_tab(l_value_set_tab_count).enable_longlist;
2223 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_format_type
2224 := l_kf_cost_valueset_tab(l_value_set_tab_count).format_type;
2225 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_maximum_size
2226 := l_kf_cost_valueset_tab(l_value_set_tab_count).maximum_size;
2227 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_precision
2228 := l_kf_cost_valueset_tab(l_value_set_tab_count).precision;
2229 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_numbers_only
2230 := l_kf_cost_valueset_tab(l_value_set_tab_count).numbers_only;
2231 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_uppercase_only
2232 := l_kf_cost_valueset_tab(l_value_set_tab_count).uppercase_only;
2233 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_right_justify_zero_fill
2234 := l_kf_cost_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2235 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_min_value
2236 := l_kf_cost_valueset_tab(l_value_set_tab_count).min_value;
2237 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_max_value
2238 := l_kf_cmp_valueset_tab(l_value_set_tab_count).max_value;
2239 l_kf_cost_seg_count := l_kf_cost_seg_count + 1 ;
2240 end if;
2241
2242 if NOT (p_technical_summary_mode) then
2243 per_ri_config_utilities.create_flex_segments
2244 (p_appl_short_Name => 'PAY'
2245 ,p_flex_code => 'COST'
2246 ,p_structure_code => l_cost_structures_code
2247 ,p_segment_name => 'Cost Center'
2248 ,p_column_name => 'SEGMENT3'
2249 ,p_segment_number => 3
2250 ,p_value_set => null
2251 ,p_lov_prompt => 'Cost Center'
2252 ,p_window_prompt => 'Cost Center');
2253
2254 else
2255 p_kf_cost_seg_tab(l_kf_cost_seg_count).appl_short_name := 'PAY';
2256 p_kf_cost_seg_tab(l_kf_cost_seg_count).flex_code := 'COST';
2257 p_kf_cost_seg_tab(l_kf_cost_seg_count).structure_code := l_cost_structures_code;
2258 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_name := 'Cost Center';
2259 p_kf_cost_seg_tab(l_kf_cost_seg_count).column_name := 'SEGMENT3';
2260 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_number := 3;
2261 p_kf_cost_seg_tab(l_kf_cost_seg_count).value_set := null;
2262 p_kf_cost_seg_tab(l_kf_cost_seg_count).lov_prompt := 'Cost Center';
2263 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_type := null;
2264 p_kf_cost_seg_tab(l_kf_cost_seg_count).window_prompt := 'Cost Center';
2265
2266 --create technical summary data for valueset
2267 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2268 ,p_valueset_type => null
2269 ,p_structure_code => l_cost_structures_code
2270 ,p_segment_name => 'Cost Center'
2271 ,p_segment_number => 3
2272 ,p_valueset_tab => l_kf_cost_valueset_tab);
2273
2274 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_value_set_name
2275 := l_kf_cost_valueset_tab(l_value_set_tab_count).value_set_name;
2276 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_description
2277 := l_kf_cost_valueset_tab(l_value_set_tab_count).description;
2278 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_security_available
2279 := l_kf_cost_valueset_tab(l_value_set_tab_count).security_available;
2280 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_enable_longlist
2281 := l_kf_cost_valueset_tab(l_value_set_tab_count).enable_longlist;
2282 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_format_type
2283 := l_kf_cost_valueset_tab(l_value_set_tab_count).format_type;
2284 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_maximum_size
2285 := l_kf_cost_valueset_tab(l_value_set_tab_count).maximum_size;
2286 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_precision
2287 := l_kf_cost_valueset_tab(l_value_set_tab_count).precision;
2288 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_numbers_only
2289 := l_kf_cost_valueset_tab(l_value_set_tab_count).numbers_only;
2290 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_uppercase_only
2291 := l_kf_cost_valueset_tab(l_value_set_tab_count).uppercase_only;
2292 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_right_justify_zero_fill
2293 := l_kf_cost_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2294 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_min_value
2295 := l_kf_cost_valueset_tab(l_value_set_tab_count).min_value;
2296 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_max_value
2297 := l_kf_cmp_valueset_tab(l_value_set_tab_count).max_value;
2298
2299 l_kf_cost_seg_count := l_kf_cost_seg_count + 1 ;
2300 end if;
2301 --
2302 -- freeze and compile this flexfield
2303 --
2304 if NOT (p_technical_summary_mode) then
2305 per_ri_config_utilities.freeze_and_compile_flexfield
2306 (p_appl_short_Name => 'PAY'
2307 ,p_flex_code => 'COST'
2308 ,p_structure_code => l_cost_structures_code);
2309 end if;
2310 EXCEPTION
2311 when others then
2312 l_error_message := 'Error in ' || l_proc;
2313 hr_utility.trace(l_error_message || '-' || sqlerrm);
2314 hr_utility.set_location(' Leaving:'|| l_proc, 500);
2315 hr_utility.raise_error;
2316
2317 END create_global_grp_cmp_cost_kf;
2318
2319 /* --------------------------------------------------------------------------
2320 -- Name : create_global_job_pos_kf
2321 -- Purpose : This procedure creates global jobs and positions keyflex structures,
2322 -- segments and valuesets when jobs/positions are not defined.
2323 -- Arguments : p_configuration_code
2324 --
2325 -------------------------------------------------------------------------- */
2326
2327 PROCEDURE create_global_job_pos_kf (p_configuration_code in varchar2
2328 ,p_technical_summary_mode in boolean default FALSE
2329 ,p_kf_job_tab in out nocopy
2330 per_ri_config_tech_summary.kf_job_tab
2331 ,p_kf_pos_tab in out nocopy
2332 per_ri_config_tech_summary.kf_pos_tab
2333 ,p_kf_job_seg_tab in out nocopy
2334 per_ri_config_tech_summary.kf_job_seg_tab
2335 ,p_kf_pos_seg_tab in out nocopy
2336 per_ri_config_tech_summary.kf_pos_seg_tab) IS
2337
2338 l_proc varchar2(72) := g_package || 'create_global_job_pos_kf';
2339 l_configuration_code per_ri_config_information.configuration_code%type;
2340 l_jobs_fk_number number(9);
2341 l_position_fk_number number(9);
2342
2343 l_enterprise_short_name per_ri_config_information.configuration_code%type;
2344
2345 l_job_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
2346 l_pos_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
2347 l_enterprise_primary_industry per_ri_config_information.config_information1%type;
2348
2349 l_kf_job_tab per_ri_config_tech_summary.kf_job_tab;
2350 l_kf_pos_tab per_ri_config_tech_summary.kf_pos_tab;
2351 l_kf_job_count number(8) :=0;
2352 l_kf_pos_count number(8) :=0;
2353
2354 l_kf_job_seg_tab per_ri_config_tech_summary.kf_job_seg_tab;
2355 l_kf_pos_seg_tab per_ri_config_tech_summary.kf_pos_seg_tab;
2356 l_kf_job_seg_count number(8) :=0;
2357 l_kf_pos_seg_count number(8) :=0;
2358
2359 l_kf_job_valueset_tab per_ri_config_tech_summary.valueset_tab;
2360 l_kf_pos_valueset_tab per_ri_config_tech_summary.valueset_tab;
2361 l_value_set_tab_count number(9) := 1;
2362
2363 l_log_message varchar2(360);
2364 l_error_message varchar2(360);
2365
2366 BEGIN
2367 hr_utility.set_location('Entering:'|| l_proc, 10);
2368
2369 l_enterprise_short_name := per_ri_config_utilities.get_enterprise_short_name(p_configuration_code);
2370
2371 -- Create Global Jobs Key flex
2372 hr_utility.set_location(l_proc, 20);
2373 l_job_structures_code := per_ri_config_utilities.return_config_entity_name
2374 (per_ri_config_main.g_global_job_structure_name);
2375
2376
2377 if NOT (p_technical_summary_mode) then
2378 l_jobs_fk_number := per_ri_config_utilities.create_key_flexfield
2379 (p_appl_short_name => 'PER'
2380 ,p_flex_code => 'JOB'
2381 ,p_structure_code => l_job_structures_code
2382 ,p_structure_title => l_job_structures_code
2383 ,p_description => l_job_structures_code);
2384
2385
2386 else
2387 p_kf_job_tab(l_kf_job_count).appl_short_name := 'PER';
2388 p_kf_job_tab(l_kf_job_count).flex_code := 'JOB';
2389 p_kf_job_tab(l_kf_job_count).structure_code := l_job_structures_code;
2390 p_kf_job_tab(l_kf_job_count).structure_title := l_job_structures_code;
2391 p_kf_job_tab(l_kf_job_count).description := l_job_structures_code;
2392 l_kf_job_count := l_kf_job_count + 1 ;
2393 end if;
2394
2395 l_enterprise_primary_industry := per_ri_config_utilities.get_ent_primary_industry
2396 (p_configuration_code => p_configuration_code);
2397
2398 l_log_message := 'Created KEYFLEX PER JOB ' || l_job_structures_code;
2399 per_ri_config_utilities.write_log(p_message => l_log_message);
2400
2401 -- Create Position Key flex
2402 hr_utility.set_location(l_proc, 30);
2403 l_pos_structures_code := per_ri_config_utilities.return_config_entity_name
2404 (per_ri_config_main.g_global_pos_structure_name);
2405 if NOT (p_technical_summary_mode) then
2406 l_position_fk_number := per_ri_config_utilities.create_key_flexfield
2407 (p_appl_short_Name => 'PER'
2408 ,p_flex_code => 'POS'
2409 ,p_structure_code => l_pos_structures_code
2410 ,p_structure_title => l_pos_structures_code
2411 ,p_description => l_pos_structures_code);
2412 else
2413 p_kf_pos_tab(l_kf_pos_count).appl_short_name := 'PER';
2414 p_kf_pos_tab(l_kf_pos_count).flex_code := 'POS';
2415 p_kf_pos_tab(l_kf_pos_count).structure_code := l_pos_structures_code;
2416 p_kf_pos_tab(l_kf_pos_count).structure_title := l_pos_structures_code;
2417 p_kf_pos_tab(l_kf_pos_count).description := l_pos_structures_code;
2418 l_kf_pos_count := l_kf_pos_count + 1 ;
2419 end if;
2420
2421
2422 l_log_message := 'Created KEYFLEX PER POS ' || l_pos_structures_code;
2423 per_ri_config_utilities.write_log(p_message => l_log_message);
2424
2425 hr_utility.set_location(l_proc, 40);
2426
2427 if l_enterprise_primary_industry <> 'US_GOVERNMENT' then
2428 hr_utility.set_location(l_proc, 50);
2429
2430 -- Create Jobs Key Flex Segments
2431
2432 if NOT (p_technical_summary_mode) then
2433 per_ri_config_utilities.create_flex_segments
2434 (p_appl_short_Name => 'PER'
2435 ,p_flex_code => 'JOB'
2436 ,p_structure_code => l_job_structures_code
2437 ,p_segment_name => 'Job Name'
2438 ,p_column_name => 'SEGMENT1'
2439 ,p_segment_number => 1
2440 ,p_value_set => null
2441 ,p_lov_prompt => 'Job Name'
2442 ,p_window_prompt => 'Job Name');
2443 else
2444 p_kf_job_seg_tab(l_kf_job_seg_count).appl_short_name := 'PER';
2445 p_kf_job_seg_tab(l_kf_job_seg_count).flex_code := 'JOB';
2446 p_kf_job_seg_tab(l_kf_job_seg_count).structure_code := l_job_structures_code;
2447 p_kf_job_seg_tab(l_kf_job_seg_count).segment_name := 'Job Name';
2448 p_kf_job_seg_tab(l_kf_job_seg_count).column_name := 'SEGMENT1';
2449 p_kf_job_seg_tab(l_kf_job_seg_count).segment_number := 1;
2450 p_kf_job_seg_tab(l_kf_job_seg_count).value_set := null;
2451 p_kf_job_seg_tab(l_kf_job_seg_count).lov_prompt := 'Job Name';
2452 p_kf_job_seg_tab(l_kf_job_seg_count).segment_type := null;
2453 p_kf_job_seg_tab(l_kf_job_seg_count).window_prompt := 'Job Name';
2454
2455 --create technical summary data for valueset
2456 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2457 ,p_valueset_type => null
2458 ,p_structure_code => l_job_structures_code
2459 ,p_segment_name => 'Job Name'
2460 ,p_segment_number => 1
2461 ,p_valueset_tab => l_kf_job_valueset_tab);
2462
2463 p_kf_job_seg_tab(l_kf_job_seg_count).vs_value_set_name
2464 := l_kf_job_valueset_tab(l_value_set_tab_count).value_set_name;
2465 p_kf_job_seg_tab(l_kf_job_seg_count).vs_description
2466 := l_kf_job_valueset_tab(l_value_set_tab_count).description;
2467 p_kf_job_seg_tab(l_kf_job_seg_count).vs_security_available
2468 := l_kf_job_valueset_tab(l_value_set_tab_count).security_available;
2469 p_kf_job_seg_tab(l_kf_job_seg_count).vs_enable_longlist
2470 := l_kf_job_valueset_tab(l_value_set_tab_count).enable_longlist;
2471 p_kf_job_seg_tab(l_kf_job_seg_count).vs_format_type
2472 := l_kf_job_valueset_tab(l_value_set_tab_count).format_type;
2473 p_kf_job_seg_tab(l_kf_job_seg_count).vs_maximum_size
2474 := l_kf_job_valueset_tab(l_value_set_tab_count).maximum_size;
2475 p_kf_job_seg_tab(l_kf_job_seg_count).vs_precision
2476 := l_kf_job_valueset_tab(l_value_set_tab_count).precision;
2477 p_kf_job_seg_tab(l_kf_job_seg_count).vs_numbers_only
2478 := l_kf_job_valueset_tab(l_value_set_tab_count).numbers_only;
2479 p_kf_job_seg_tab(l_kf_job_seg_count).vs_uppercase_only
2480 := l_kf_job_valueset_tab(l_value_set_tab_count).uppercase_only;
2481 p_kf_job_seg_tab(l_kf_job_seg_count).vs_right_justify_zero_fill
2482 := l_kf_job_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2483 p_kf_job_seg_tab(l_kf_job_seg_count).vs_min_value
2484 := l_kf_job_valueset_tab(l_value_set_tab_count).min_value;
2485 p_kf_job_seg_tab(l_kf_job_seg_count).vs_max_value
2486 := l_kf_job_valueset_tab(l_value_set_tab_count).max_value;
2487 l_kf_job_seg_count := l_kf_job_seg_count + 1 ;
2488 end if;
2489
2490 l_log_message := 'Created KEYFLEX SEGMENT : PER JOB ' || 'Job Name';
2491 per_ri_config_utilities.write_log(p_message => l_log_message);
2492
2493 -- Create Position Key Flex Segments
2494 if NOT (p_technical_summary_mode) then
2495 per_ri_config_utilities.create_flex_segments
2496 (p_appl_short_Name => 'PER'
2497 ,p_flex_code => 'POS'
2498 ,p_structure_code => l_pos_structures_code
2499 ,p_segment_name => 'Position Name'
2500 ,p_column_name => 'SEGMENT1'
2501 ,p_segment_number => 1
2502 ,p_value_set => null
2503 ,p_lov_prompt => 'Position Name'
2504 ,p_window_prompt => 'Position Name');
2505 else
2506 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2507 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2508 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2509 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Position Name';
2510 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT1';
2511 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 1;
2512 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := null;
2513 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Position Name';
2514 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := null;
2515 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Position Name';
2516
2517 --create technical summary data for valueset
2518 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2519 ,p_valueset_type => null
2520 ,p_structure_code => l_pos_structures_code
2521 ,p_segment_name => 'Position Name'
2522 ,p_segment_number => 1
2523 ,p_valueset_tab => l_kf_pos_valueset_tab);
2524
2525 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2526 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2527 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2528 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2529 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2530 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2531 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2532 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2533 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2534 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2535 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2536 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2537 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2538 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2539 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2540 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2541 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2542 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2543 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2544 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2545 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2546 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2547 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2548 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2549 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2550 end if;
2551
2552 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || l_pos_structures_code;
2553 per_ri_config_utilities.write_log(p_message => l_log_message);
2554
2555 hr_utility.set_location(l_proc, 60);
2556 else
2557 hr_utility.set_location(l_proc, 70);
2558 hr_utility.trace('Positions : Industry is US_GOVERNMENT');
2559
2560 -- create only federal job segments with specified value segment name valuesets.
2561 -- First Segment 'Name' valueset '60 Characters'
2562 if NOT (p_technical_summary_mode) then
2563 per_ri_config_utilities.create_flex_segments
2564 (p_appl_short_Name => 'PER'
2565 ,p_flex_code => 'JOB'
2566 ,p_structure_code => l_job_structures_code
2567 ,p_segment_name => 'Name'
2568 ,p_column_name => 'SEGMENT1'
2569 ,p_segment_number => 1
2570 ,p_value_set => '60 Characters'
2571 ,p_lov_prompt => 'Name'
2572 ,p_segment_type => 'Char'
2573 ,p_window_prompt => 'Name'
2574 ,p_fed_seg_attribute => 'Y');
2575
2576 else
2577 p_kf_job_seg_tab(l_kf_job_seg_count).appl_short_name := 'PER';
2578 p_kf_job_seg_tab(l_kf_job_seg_count).flex_code := 'JOB';
2579 p_kf_job_seg_tab(l_kf_job_seg_count).structure_code := l_job_structures_code;
2580 p_kf_job_seg_tab(l_kf_job_seg_count).segment_name := 'Name';
2581 p_kf_job_seg_tab(l_kf_job_seg_count).column_name := 'SEGMENT1';
2582 p_kf_job_seg_tab(l_kf_job_seg_count).segment_number := 1;
2583 p_kf_job_seg_tab(l_kf_job_seg_count).value_set := '60 Characters';
2584 p_kf_job_seg_tab(l_kf_job_seg_count).lov_prompt := 'Name';
2585 p_kf_job_seg_tab(l_kf_job_seg_count).segment_type := 'Char';
2586 p_kf_job_seg_tab(l_kf_job_seg_count).window_prompt := 'Name';
2587
2588 --create technical summary data for valueset
2589 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2590 ,p_valueset_type => 'Char'
2591 ,p_structure_code => l_job_structures_code
2592 ,p_segment_name => 'Name'
2593 ,p_segment_number => 1
2594 ,p_valueset_tab => l_kf_job_valueset_tab);
2595
2596 p_kf_job_seg_tab(l_kf_job_seg_count).vs_value_set_name
2597 := l_kf_job_valueset_tab(l_value_set_tab_count).value_set_name;
2598 p_kf_job_seg_tab(l_kf_job_seg_count).vs_description
2599 := l_kf_job_valueset_tab(l_value_set_tab_count).description;
2600 p_kf_job_seg_tab(l_kf_job_seg_count).vs_security_available
2601 := l_kf_job_valueset_tab(l_value_set_tab_count).security_available;
2602 p_kf_job_seg_tab(l_kf_job_seg_count).vs_enable_longlist
2603 := l_kf_job_valueset_tab(l_value_set_tab_count).enable_longlist;
2604 p_kf_job_seg_tab(l_kf_job_seg_count).vs_format_type
2605 := l_kf_job_valueset_tab(l_value_set_tab_count).format_type;
2606 p_kf_job_seg_tab(l_kf_job_seg_count).vs_maximum_size
2607 := l_kf_job_valueset_tab(l_value_set_tab_count).maximum_size;
2608 p_kf_job_seg_tab(l_kf_job_seg_count).vs_precision
2609 := l_kf_job_valueset_tab(l_value_set_tab_count).precision;
2610 p_kf_job_seg_tab(l_kf_job_seg_count).vs_numbers_only
2611 := l_kf_job_valueset_tab(l_value_set_tab_count).numbers_only;
2612 p_kf_job_seg_tab(l_kf_job_seg_count).vs_uppercase_only
2613 := l_kf_job_valueset_tab(l_value_set_tab_count).uppercase_only;
2614 p_kf_job_seg_tab(l_kf_job_seg_count).vs_right_justify_zero_fill
2615 := l_kf_job_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2616 p_kf_job_seg_tab(l_kf_job_seg_count).vs_min_value
2617 := l_kf_job_valueset_tab(l_value_set_tab_count).min_value;
2618 p_kf_job_seg_tab(l_kf_job_seg_count).vs_max_value
2619 := l_kf_job_valueset_tab(l_value_set_tab_count).max_value;
2620 l_kf_job_seg_count := l_kf_job_seg_count + 1 ;
2621 end if;
2622
2623 -- create only federal position segments with specified value segment name valuesets.
2624 -- First Segment
2625 if NOT (p_technical_summary_mode) then
2626 per_ri_config_utilities.create_flex_segments
2627 (p_appl_short_Name => 'PER'
2628 ,p_flex_code => 'POS'
2629 ,p_structure_code => l_pos_structures_code
2630 ,p_segment_name => 'Position Title'
2631 ,p_column_name => 'SEGMENT1'
2632 ,p_segment_number => 1
2633 ,p_value_set => 'GHR_US_POSITION_TITLE'
2634 ,p_lov_prompt => 'Position Title'
2635 ,p_segment_type => 'Char'
2636 ,p_window_prompt => 'Position Title'
2637 ,p_fed_seg_attribute => 'Y');
2638
2639 else
2640 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2641 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2642 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2643 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Position Title';
2644 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT1';
2645 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 1;
2646 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_POSITION_TITLE';
2647 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Position Title';
2648 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
2649 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Position Title';
2650
2651 --create technical summary data for valueset
2652 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POSITION_TITLE'
2653 ,p_valueset_type => 'Char'
2654 ,p_structure_code => l_pos_structures_code
2655 ,p_segment_name => 'Position Title'
2656 ,p_segment_number => 1
2657 ,p_valueset_tab => l_kf_pos_valueset_tab);
2658
2659 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2660 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2661 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2662 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2663 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2664 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2665 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2666 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2667 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2668 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2669 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2670 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2671 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2672 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2673 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2674 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2675 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2676 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2677 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2678 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2679 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2680 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2681 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2682 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2683 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2684 end if;
2685
2686 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Position Title';
2687 per_ri_config_utilities.write_log(p_message => l_log_message);
2688
2689 -- Second Segment
2690 if NOT (p_technical_summary_mode) then
2691 per_ri_config_utilities.create_flex_segments
2692 (p_appl_short_Name => 'PER'
2693 ,p_flex_code => 'POS'
2694 ,p_structure_code => l_pos_structures_code
2695 ,p_segment_name => 'Description'
2696 ,p_column_name => 'SEGMENT2'
2697 ,p_segment_number => 2
2698 ,p_value_set => 'GHR_US_POS_DESC_NUM'
2699 ,p_lov_prompt => 'Description'
2700 ,p_segment_type => 'Char'
2701 ,p_window_prompt => 'Description'
2702 ,p_fed_seg_attribute => 'Y');
2703 else
2704 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2705 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2706 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2707 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Description';
2708 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT2';
2709 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 2;
2710 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_POS_DESC_NUM';
2711 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Description';
2712 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
2713 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Description';
2714
2715 --create technical summary data for valueset
2716 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POS_DESC_NUM'
2717 ,p_valueset_type => 'Char'
2718 ,p_structure_code => l_pos_structures_code
2719 ,p_segment_name => 'Description'
2720 ,p_segment_number => 2
2721 ,p_valueset_tab => l_kf_pos_valueset_tab);
2722
2723 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2724 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2725 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2726 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2727 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2728 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2729 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2730 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2731 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2732 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2733 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2734 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2735 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2736 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2737 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2738 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2739 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2740 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2741 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2742 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2743 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2744 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2745 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2746 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2747 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2748 end if;
2749
2750 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Description';
2751 per_ri_config_utilities.write_log(p_message => l_log_message);
2752
2753 -- Third Segment
2754 if NOT (p_technical_summary_mode) then
2755 per_ri_config_utilities.create_flex_segments
2756 (p_appl_short_Name => 'PER'
2757 ,p_flex_code => 'POS'
2758 ,p_structure_code => l_pos_structures_code
2759 ,p_segment_name => 'Sequence'
2760 ,p_column_name => 'SEGMENT3'
2761 ,p_segment_number => 3
2762 ,p_value_set => 'GHR_US_SEQUENCE_NUM'
2763 ,p_lov_prompt => 'Sequence'
2764 ,p_segment_type => 'Char'
2765 ,p_window_prompt => 'Sequence'
2766 ,p_fed_seg_attribute => 'Y');
2767 else
2768 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2769 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2770 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2771 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Sequence';
2772 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT3';
2773 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 3;
2774 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_SEQUENCE_NUM';
2775 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Sequence';
2776 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
2777 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Sequence';
2778
2779 --create technical summary data for valueset
2780 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_SEQUENCE_NUM'
2781 ,p_valueset_type => 'Char'
2782 ,p_structure_code => l_pos_structures_code
2783 ,p_segment_name => 'Sequence'
2784 ,p_segment_number => 3
2785 ,p_valueset_tab => l_kf_pos_valueset_tab);
2786
2787 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2788 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2789 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2790 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2791 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2792 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2793 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2794 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2795 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2796 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2797 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2798 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2799 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2800 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2801 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2802 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2803 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2804 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2805 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2806 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2807 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2808 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2809 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2810 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2811 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2812 end if;
2813
2814 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Sequence';
2815 per_ri_config_utilities.write_log(p_message => l_log_message);
2816 -- Fourth Segment
2817 if NOT (p_technical_summary_mode) then
2818 per_ri_config_utilities.create_flex_segments
2819 (p_appl_short_Name => 'PER'
2820 ,p_flex_code => 'POS'
2821 ,p_structure_code => l_pos_structures_code
2822 ,p_segment_name => 'Agency Code'
2823 ,p_column_name => 'SEGMENT4'
2824 ,p_segment_number => 4
2825 ,p_value_set => 'GHR_US_AGENCY_CODE'
2826 ,p_lov_prompt => 'Agency Code'
2827 ,p_segment_type => 'Char'
2828 ,p_window_prompt => 'Agency Code'
2829 ,p_fed_seg_attribute => 'Y');
2830 else
2831 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2832 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2833 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2834 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Agency Code';
2835 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT4';
2836 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 4;
2837 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_AGENCY_CODE';
2838 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Agency Code';
2839 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
2840 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Agency Code';
2841
2842 --create technical summary data for valueset
2843 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_AGENCY_CODE'
2844 ,p_valueset_type => 'Char'
2845 ,p_structure_code => l_pos_structures_code
2846 ,p_segment_name => 'Agency Code'
2847 ,p_segment_number => 4
2848 ,p_valueset_tab => l_kf_pos_valueset_tab);
2849
2850 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2851 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2852 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2853 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2854 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2855 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2856 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2857 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2858 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2859 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2860 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2861 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2862 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2863 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2864 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2865 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2866 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2867 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2868 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2869 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2870 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2871 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2872 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2873 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2874 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2875 end if;
2876
2877 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Agency Code';
2878 per_ri_config_utilities.write_log(p_message => l_log_message);
2879 hr_utility.set_location(l_proc, 90);
2880 end if;
2881
2882 --
2883 -- freeze and compile this flexfield
2884 --
2885 if NOT (p_technical_summary_mode) then
2886 per_ri_config_utilities.freeze_and_compile_flexfield
2887 (p_appl_short_Name => 'PER'
2888 ,p_flex_code => 'JOB'
2889 ,p_structure_code => l_job_structures_code);
2890 end if;
2891
2892 --
2893 -- freeze and compile this flexfield
2894 --
2895 if NOT (p_technical_summary_mode) then
2896 per_ri_config_utilities.freeze_and_compile_flexfield
2897 (p_appl_short_Name => 'PER'
2898 ,p_flex_code => 'POS'
2899 ,p_structure_code => l_pos_structures_code);
2900 end if;
2901
2902 hr_utility.set_location(' Leaving:'|| l_proc, 100);
2903
2904 EXCEPTION
2905 when others then
2906 l_error_message := 'Error in ' || l_proc;
2907 hr_utility.trace(l_error_message || '-' || sqlerrm);
2908 hr_utility.set_location(' Leaving:'|| l_proc, 500);
2909 hr_utility.raise_error;
2910
2911 END create_global_job_pos_kf;
2912
2913 /* --------------------------------------------------------------------------
2914 -- Name : create_global_pos_kf
2915 -- Purpose : This procedure creates global positions keyflex structures,
2916 -- segments and valuesets when positions are not defined.
2917 -- Arguments : p_configuration_code
2918 --
2919 -------------------------------------------------------------------------- */
2920
2921 PROCEDURE create_global_pos_kf (p_configuration_code in varchar2
2922 ,p_technical_summary_mode in boolean default FALSE
2923 ,p_kf_pos_tab in out nocopy
2924 per_ri_config_tech_summary.kf_pos_tab
2925 ,p_kf_pos_seg_tab in out nocopy
2926 per_ri_config_tech_summary.kf_pos_seg_tab) IS
2927
2928 l_proc varchar2(72) := g_package || 'create_global_pos_kf';
2929 l_configuration_code per_ri_config_information.configuration_code%type;
2930 l_position_fk_number number(9);
2931
2932 l_enterprise_short_name per_ri_config_information.configuration_code%type;
2933
2934 l_pos_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
2935 l_enterprise_primary_industry per_ri_config_information.config_information1%type;
2936 l_log_message varchar2(360);
2937 l_error_message varchar2(360);
2938
2939 l_kf_pos_tab per_ri_config_tech_summary.kf_pos_tab;
2940 l_kf_pos_count number(8) :=0;
2941 l_kf_pos_seg_tab per_ri_config_tech_summary.kf_pos_seg_tab;
2942 l_kf_pos_seg_count number(8) :=0;
2943
2944 l_kf_pos_valueset_tab per_ri_config_tech_summary.valueset_tab;
2945 l_value_set_tab_count number(9) := 1;
2946
2947
2948 BEGIN
2949 hr_utility.set_location('Entering:'|| l_proc, 10);
2950
2951 l_enterprise_short_name := per_ri_config_utilities.get_enterprise_short_name(p_configuration_code);
2952
2953 l_enterprise_primary_industry := per_ri_config_utilities.get_ent_primary_industry
2954 (p_configuration_code => p_configuration_code);
2955
2956 -- Create Position Key flex
2957 hr_utility.set_location(l_proc, 20);
2958
2959 l_pos_structures_code := per_ri_config_utilities.return_config_entity_name
2960 (per_ri_config_main.g_global_pos_structure_name);
2961 if NOT (p_technical_summary_mode) then
2962 l_position_fk_number := per_ri_config_utilities.create_key_flexfield
2963 (p_appl_short_Name => 'PER'
2964 ,p_flex_code => 'POS'
2965 ,p_structure_code => l_pos_structures_code
2966 ,p_structure_title => l_pos_structures_code
2967 ,p_description => l_pos_structures_code);
2968 else
2969 p_kf_pos_tab(l_kf_pos_count).appl_short_name := 'PER';
2970 p_kf_pos_tab(l_kf_pos_count).flex_code := 'POS';
2971 p_kf_pos_tab(l_kf_pos_count).structure_code := l_pos_structures_code;
2972 p_kf_pos_tab(l_kf_pos_count).structure_title := l_pos_structures_code;
2973 p_kf_pos_tab(l_kf_pos_count).description := l_pos_structures_code;
2974 l_kf_pos_count := l_kf_pos_count + 1 ;
2975 end if;
2976
2977 l_log_message := 'Created KEYFLEX PER POS ' || l_pos_structures_code;
2978 per_ri_config_utilities.write_log(p_message => l_log_message);
2979
2980 hr_utility.set_location(l_proc, 30);
2981
2982 if l_enterprise_primary_industry <> 'US_GOVERNMENT' then
2983 hr_utility.set_location(l_proc, 50);
2984
2985 -- Create Position Key Flex Segments
2986 if NOT (p_technical_summary_mode) then
2987 per_ri_config_utilities.create_flex_segments
2988 (p_appl_short_Name => 'PER'
2989 ,p_flex_code => 'POS'
2990 ,p_structure_code => l_pos_structures_code
2991 ,p_segment_name => 'Position Name'
2992 ,p_column_name => 'SEGMENT1'
2993 ,p_segment_number => 1
2994 ,p_value_set => null
2995 ,p_lov_prompt => 'Position Name'
2996 ,p_window_prompt => 'Position Name');
2997 else
2998 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2999 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3000 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3001 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Position Name';
3002 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT1';
3003 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 1;
3004 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := null;
3005 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Position Name';
3006 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := null;
3007 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Position Name';
3008
3009 --create technical summary data for valueset
3010 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
3011 ,p_valueset_type => null
3012 ,p_structure_code => l_pos_structures_code
3013 ,p_segment_name => 'Position Name'
3014 ,p_segment_number => 1
3015 ,p_valueset_tab => l_kf_pos_valueset_tab);
3016
3017 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3018 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3019 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3020 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3021 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3022 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3023 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3024 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3025 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3026 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3027 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3028 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3029 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3030 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3031 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3032 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3033 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3034 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3035 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3036 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3037 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3038 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3039 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3040 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3041 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3042 end if;
3043
3044 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || l_pos_structures_code;
3045 per_ri_config_utilities.write_log(p_message => l_log_message);
3046
3047 hr_utility.set_location(l_proc, 60);
3048 else
3049 hr_utility.set_location(l_proc, 70);
3050 hr_utility.trace('Positions : Industry is US_GOVERNMENT');
3051
3052 -- create only federal position segments with specified value segment name valuesets.
3053 -- First Segment
3054 if NOT (p_technical_summary_mode) then
3055 per_ri_config_utilities.create_flex_segments
3056 (p_appl_short_Name => 'PER'
3057 ,p_flex_code => 'POS'
3058 ,p_structure_code => l_pos_structures_code
3059 ,p_segment_name => 'Position Title'
3060 ,p_column_name => 'SEGMENT1'
3061 ,p_segment_number => 1
3062 ,p_value_set => 'GHR_US_POSITION_TITLE'
3063 ,p_lov_prompt => 'Position Title'
3064 ,p_segment_type => 'Char'
3065 ,p_window_prompt => 'Position Title'
3066 ,p_fed_seg_attribute => 'Y');
3067 else
3068 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
3069 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3070 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3071 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Position Title';
3072 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT1';
3073 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 1;
3074 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_POSITION_TITLE';
3075 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Position Title';
3076 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
3077 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Position Title';
3078
3079 --create technical summary data for valueset
3080 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POSITION_TITLE'
3081 ,p_valueset_type => 'Char'
3082 ,p_structure_code => l_pos_structures_code
3083 ,p_segment_name => 'Position Title'
3084 ,p_segment_number => 1
3085 ,p_valueset_tab => l_kf_pos_valueset_tab);
3086
3087 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3088 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3089 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3090 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3091 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3092 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3093 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3094 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3095 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3096 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3097 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3098 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3099 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3100 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3101 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3102 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3103 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3104 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3105 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3106 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3107 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3108 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3109 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3110 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3111 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3112 end if;
3113
3114 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Position Title';
3115 per_ri_config_utilities.write_log(p_message => l_log_message);
3116
3117 -- Second Segment
3118 if NOT (p_technical_summary_mode) then
3119 per_ri_config_utilities.create_flex_segments
3120 (p_appl_short_Name => 'PER'
3121 ,p_flex_code => 'POS'
3122 ,p_structure_code => l_pos_structures_code
3123 ,p_segment_name => 'Description'
3124 ,p_column_name => 'SEGMENT2'
3125 ,p_segment_number => 2
3126 ,p_value_set => 'GHR_US_POS_DESC_NUM'
3127 ,p_lov_prompt => 'Description'
3128 ,p_segment_type => 'Char'
3129 ,p_window_prompt => 'Description'
3130 ,p_fed_seg_attribute => 'Y');
3131 else
3132 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
3133 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3134 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3135 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Description';
3136 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT2';
3137 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 2;
3138 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_POS_DESC_NUM';
3139 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Description';
3140 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
3141 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Description';
3142
3143 --create technical summary data for valueset
3144 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POS_DESC_NUM'
3145 ,p_valueset_type => 'Char'
3146 ,p_structure_code => l_pos_structures_code
3147 ,p_segment_name => 'Description'
3148 ,p_segment_number => 2
3149 ,p_valueset_tab => l_kf_pos_valueset_tab);
3150
3151 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3152 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3153 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3154 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3155 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3156 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3157 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3158 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3159 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3160 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3161 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3162 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3163 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3164 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3165 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3166 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3167 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3168 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3169 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3170 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3171 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3172 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3173 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3174 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3175 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3176 end if;
3177
3178 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Description';
3179 per_ri_config_utilities.write_log(p_message => l_log_message);
3180
3181 -- Third Segment
3182 if NOT (p_technical_summary_mode) then
3183 per_ri_config_utilities.create_flex_segments
3184 (p_appl_short_Name => 'PER'
3185 ,p_flex_code => 'POS'
3186 ,p_structure_code => l_pos_structures_code
3187 ,p_segment_name => 'Sequence'
3188 ,p_column_name => 'SEGMENT3'
3189 ,p_segment_number => 3
3190 ,p_value_set => 'GHR_US_SEQUENCE_NUM'
3191 ,p_lov_prompt => 'Sequence'
3192 ,p_segment_type => 'Char'
3193 ,p_window_prompt => 'Sequence'
3194 ,p_fed_seg_attribute => 'Y');
3195
3196 else
3197 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
3198 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3199 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3200 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Sequence';
3201 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT3';
3202 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 3;
3203 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_SEQUENCE_NUM';
3204 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Sequence';
3205 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
3206 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Sequence';
3207
3208 --create technical summary data for valueset
3209 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_SEQUENCE_NUM'
3210 ,p_valueset_type => 'Char'
3211 ,p_structure_code => l_pos_structures_code
3212 ,p_segment_name => 'Sequence'
3213 ,p_segment_number => 3
3214 ,p_valueset_tab => l_kf_pos_valueset_tab);
3215
3216 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3217 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3218 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3219 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3220 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3221 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3222 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3223 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3224 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3225 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3226 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3227 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3228 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3229 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3230 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3231 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3232 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3233 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3234 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3235 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3236 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3237 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3238 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3239 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3240 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3241 end if;
3242 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Sequence';
3243 per_ri_config_utilities.write_log(p_message => l_log_message);
3244 -- Fourth Segment
3245 if NOT (p_technical_summary_mode) then
3246 per_ri_config_utilities.create_flex_segments
3247 (p_appl_short_Name => 'PER'
3248 ,p_flex_code => 'POS'
3249 ,p_structure_code => l_pos_structures_code
3250 ,p_segment_name => 'Agency Code'
3251 ,p_column_name => 'SEGMENT4'
3252 ,p_segment_number => 4
3253 ,p_value_set => 'GHR_US_AGENCY_CODE'
3254 ,p_lov_prompt => 'Agency Code'
3255 ,p_segment_type => 'Char'
3256 ,p_window_prompt => 'Agency Code'
3257 ,p_fed_seg_attribute => 'Y');
3258 else
3259 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
3260 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3261 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3262 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Agency Code';
3263 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT4';
3264 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 4;
3265 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_AGENCY_CODE';
3266 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Agency Code';
3267 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
3268 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Agency Code';
3269
3270 --create technical summary data for valueset
3271 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_AGENCY_CODE'
3272 ,p_valueset_type => 'Char'
3273 ,p_structure_code => l_pos_structures_code
3274 ,p_segment_name => 'Agency Code'
3275 ,p_segment_number => 4
3276 ,p_valueset_tab => l_kf_pos_valueset_tab);
3277
3278 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3279 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3280 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3281 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3282 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3283 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3284 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3285 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3286 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3287 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3288 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3289 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3290 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3291 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3292 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3293 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3294 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3295 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3296 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3297 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3298 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3299 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3300 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3301 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3302 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3303 end if;
3304
3305 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Agency Code';
3306 per_ri_config_utilities.write_log(p_message => l_log_message);
3307 hr_utility.set_location(l_proc, 90);
3308 end if;
3309
3310 --
3311 -- freeze and compile this flexfield
3312 --
3313 per_ri_config_utilities.freeze_and_compile_flexfield
3314 (p_appl_short_Name => 'PER'
3315 ,p_flex_code => 'POS'
3316 ,p_structure_code => l_pos_structures_code);
3317
3318 hr_utility.set_location(' Leaving:'|| l_proc, 100);
3319
3320 EXCEPTION
3321 when others then
3322 l_error_message := 'Error in ' || l_proc;
3323 hr_utility.trace(l_error_message || '-' || sqlerrm);
3324 hr_utility.set_location(' Leaving:'|| l_proc, 500);
3325 hr_utility.raise_error;
3326
3327 END create_global_pos_kf;
3328
3329 /* --------------------------------------------------------------------------
3330 -- Name : create_global_grd_kf
3331 -- Purpose : This procedure creates grades keyflex structures, segments and
3332 -- valuesets when grades are not defined.
3333 -- Arguments : p_configuration_code
3334 --
3335 -------------------------------------------------------------------------- */
3336 PROCEDURE create_global_grd_kf (p_configuration_code in varchar2
3337 ,p_technical_summary_mode in boolean default FALSE
3338 ,p_kf_grd_tab in out nocopy
3339 per_ri_config_tech_summary.kf_grd_tab
3340 ,p_kf_grd_seg_tab in out nocopy
3341 per_ri_config_tech_summary.kf_grd_seg_tab) IS
3342
3343 l_proc varchar2(72) := g_package || 'create_global_grd_kf';
3344 l_log_message varchar2(360);
3345 l_kf_grd_tab per_ri_config_tech_summary.kf_grd_tab;
3346 l_kf_grd_count number(8) := 0;
3347 l_error_message varchar2(360);
3348 l_kf_grd_seg_tab per_ri_config_tech_summary.kf_grd_seg_tab;
3349 l_kf_grd_seg_count number(8) := 0;
3350
3351 l_configuration_code per_ri_config_information.configuration_code%type;
3352 l_grade_number number(9);
3353
3354 l_kf_grd_valueset_tab per_ri_config_tech_summary.valueset_tab;
3355 l_value_set_tab_count number(9) := 1;
3356
3357 l_enterprise_short_name per_ri_config_information.configuration_code%type;
3358
3359 l_grd_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
3360 l_enterprise_primary_industry per_ri_config_information.config_information1%type;
3361
3362 BEGIN
3363 hr_utility.set_location('Entering:'|| l_proc, 10);
3364
3365 l_enterprise_primary_industry := per_ri_config_utilities.get_ent_primary_industry
3366 (p_configuration_code => p_configuration_code);
3367
3368 l_enterprise_short_name := per_ri_config_utilities.get_enterprise_short_name(p_configuration_code);
3369
3370 if l_enterprise_primary_industry <> 'US_GOVERNMENT' then
3371 hr_utility.set_location(l_proc, 20);
3372 -- Create Grade Key Flex
3373 l_grd_structures_code := per_ri_config_utilities.return_config_entity_name
3374 (per_ri_config_main.g_global_grd_structure_name);
3375 if NOT (p_technical_summary_mode) then
3376 l_grade_number := per_ri_config_utilities.create_key_flexfield
3377 (p_appl_short_Name => 'PER'
3378 ,p_flex_code => 'GRD'
3379 ,p_structure_code => l_grd_structures_code
3380 ,p_structure_title => l_grd_structures_code
3381 ,p_description => l_grd_structures_code);
3382
3383 else
3384 p_kf_grd_tab(l_kf_grd_count).appl_short_name := 'PER';
3385 p_kf_grd_tab(l_kf_grd_count).flex_code := 'GRD';
3386 p_kf_grd_tab(l_kf_grd_count).structure_code := l_grd_structures_code;
3387 p_kf_grd_tab(l_kf_grd_count).structure_title := l_grd_structures_code;
3388 p_kf_grd_tab(l_kf_grd_count).description := l_grd_structures_code;
3389
3390 l_kf_grd_count := l_kf_grd_count + 1 ;
3391 end if;
3392 l_log_message := 'Created KEYFLEX PER GRD ' || l_grd_structures_code;
3393 per_ri_config_utilities.write_log(p_message => l_log_message);
3394
3395 -- Create Grade Key Flex Segments
3396 if NOT (p_technical_summary_mode) then
3397 per_ri_config_utilities.create_flex_segments
3398 (p_appl_short_Name => 'PER'
3399 ,p_flex_code => 'GRD'
3400 ,p_structure_code => l_grd_structures_code
3401 ,p_segment_name => 'Grade'
3402 ,p_column_name => 'SEGMENT1'
3403 ,p_segment_number => 1
3404 ,p_value_set => null
3405 ,p_lov_prompt => 'Grade'
3406 ,p_window_prompt => 'Grade');
3407 else
3408 p_kf_grd_seg_tab(l_kf_grd_seg_count).appl_short_name := 'PER';
3409 p_kf_grd_seg_tab(l_kf_grd_seg_count).flex_code := 'GRD';
3410 p_kf_grd_seg_tab(l_kf_grd_seg_count).structure_code := l_grd_structures_code;
3411 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_name := 'Grade';
3412 p_kf_grd_seg_tab(l_kf_grd_seg_count).column_name := 'SEGMENT1';
3413 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_number := 1;
3414 p_kf_grd_seg_tab(l_kf_grd_seg_count).value_set := null;
3415 p_kf_grd_seg_tab(l_kf_grd_seg_count).lov_prompt := 'Grade';
3416 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_type := 'Grade';
3417 p_kf_grd_seg_tab(l_kf_grd_seg_count).window_prompt := 'Grade';
3418
3419 --create technical summary data for valueset
3420 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
3421 ,p_valueset_type => null
3422 ,p_structure_code => l_grd_structures_code
3423 ,p_segment_name => 'Grade'
3424 ,p_segment_number => 1
3425 ,p_valueset_tab => l_kf_grd_valueset_tab);
3426
3427 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_value_set_name
3428 := l_kf_grd_valueset_tab(l_value_set_tab_count).value_set_name;
3429 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_description
3430 := l_kf_grd_valueset_tab(l_value_set_tab_count).description;
3431 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_security_available
3432 := l_kf_grd_valueset_tab(l_value_set_tab_count).security_available;
3433 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_enable_longlist
3434 := l_kf_grd_valueset_tab(l_value_set_tab_count).enable_longlist;
3435 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_format_type
3436 := l_kf_grd_valueset_tab(l_value_set_tab_count).format_type;
3437 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_maximum_size
3438 := l_kf_grd_valueset_tab(l_value_set_tab_count).maximum_size;
3439 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_precision
3440 := l_kf_grd_valueset_tab(l_value_set_tab_count).precision;
3441 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_numbers_only
3442 := l_kf_grd_valueset_tab(l_value_set_tab_count).numbers_only;
3443 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_uppercase_only
3444 := l_kf_grd_valueset_tab(l_value_set_tab_count).uppercase_only;
3445 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_right_justify_zero_fill
3446 := l_kf_grd_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3447 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_min_value
3448 := l_kf_grd_valueset_tab(l_value_set_tab_count).min_value;
3449 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_max_value
3450 := l_kf_grd_valueset_tab(l_value_set_tab_count).max_value;
3451
3452 l_kf_grd_seg_count := l_kf_grd_seg_count + 1 ;
3453 end if;
3454
3455 l_log_message := 'Created KEYFLEX SEGMENT : PER GRD ' || 'Grade';
3456 per_ri_config_utilities.write_log(p_message => l_log_message);
3457
3458 if NOT (p_technical_summary_mode) then
3459 per_ri_config_utilities.create_flex_segments
3460 (p_appl_short_Name => 'PER'
3461 ,p_flex_code => 'GRD'
3462 ,p_structure_code => l_grd_structures_code
3463 ,p_segment_name => 'Level'
3464 ,p_column_name => 'SEGMENT2'
3465 ,p_segment_number => 2
3466 ,p_value_set => null
3467 ,p_lov_prompt => 'Level'
3468 ,p_window_prompt => 'Level');
3469 else
3470 p_kf_grd_seg_tab(l_kf_grd_seg_count).appl_short_name := 'PER';
3471 p_kf_grd_seg_tab(l_kf_grd_seg_count).flex_code := 'GRD';
3472 p_kf_grd_seg_tab(l_kf_grd_seg_count).structure_code := l_grd_structures_code;
3473 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_name := 'Level';
3474 p_kf_grd_seg_tab(l_kf_grd_seg_count).column_name := 'SEGMENT2';
3475 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_number := 2;
3476 p_kf_grd_seg_tab(l_kf_grd_seg_count).value_set := null;
3477 p_kf_grd_seg_tab(l_kf_grd_seg_count).lov_prompt := 'Level';
3478 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_type := 'Level';
3479 p_kf_grd_seg_tab(l_kf_grd_seg_count).window_prompt := 'Level';
3480
3481 --create technical summary data for valueset
3482 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
3483 ,p_valueset_type => null
3484 ,p_structure_code => l_grd_structures_code
3485 ,p_segment_name => 'Level'
3486 ,p_segment_number => 2
3487 ,p_valueset_tab => l_kf_grd_valueset_tab);
3488
3489 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_value_set_name
3490 := l_kf_grd_valueset_tab(l_value_set_tab_count).value_set_name;
3491 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_description
3492 := l_kf_grd_valueset_tab(l_value_set_tab_count).description;
3493 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_security_available
3494 := l_kf_grd_valueset_tab(l_value_set_tab_count).security_available;
3495 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_enable_longlist
3496 := l_kf_grd_valueset_tab(l_value_set_tab_count).enable_longlist;
3497 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_format_type
3498 := l_kf_grd_valueset_tab(l_value_set_tab_count).format_type;
3499 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_maximum_size
3500 := l_kf_grd_valueset_tab(l_value_set_tab_count).maximum_size;
3501 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_precision
3502 := l_kf_grd_valueset_tab(l_value_set_tab_count).precision;
3503 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_numbers_only
3504 := l_kf_grd_valueset_tab(l_value_set_tab_count).numbers_only;
3505 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_uppercase_only
3506 := l_kf_grd_valueset_tab(l_value_set_tab_count).uppercase_only;
3507 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_right_justify_zero_fill
3508 := l_kf_grd_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3509 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_min_value
3510 := l_kf_grd_valueset_tab(l_value_set_tab_count).min_value;
3511 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_max_value
3512 := l_kf_grd_valueset_tab(l_value_set_tab_count).max_value;
3513
3514 l_kf_grd_seg_count := l_kf_grd_seg_count + 1 ;
3515 end if;
3516
3517 l_log_message := 'Created KEYFLEX SEGMENT : PER GRD ' || 'Level';
3518 per_ri_config_utilities.write_log(p_message => l_log_message);
3519 --
3520 -- freeze and compile this flexfield
3521 --
3522 if NOT (p_technical_summary_mode) then
3523 per_ri_config_utilities.freeze_and_compile_flexfield
3524 (p_appl_short_Name => 'PER'
3525 ,p_flex_code => 'GRD'
3526 ,p_structure_code => l_grd_structures_code);
3527 end if;
3528 else
3529 -- Since GRD Keyflex and segments are already defined.
3530 Null;
3531 end if;
3532
3533 EXCEPTION
3534 when others then
3535 l_error_message := 'Error in ' || l_proc;
3536 hr_utility.trace(l_error_message || '-' || sqlerrm);
3537 hr_utility.set_location(' Leaving:'|| l_proc, 500);
3538 hr_utility.raise_error;
3539
3540 END create_global_grd_kf;
3541
3542 /* --------------------------------------------------------------------------
3543 -- Name : create_default_value_sets
3544 -- Purpose : This procedure creates default valuests.
3545 -- Arguments : p_configuration_code
3546 --
3547 -------------------------------------------------------------------------- */
3548 PROCEDURE create_default_value_sets (p_configuration_code in varchar2) IS
3549
3550 l_proc varchar2(72) := g_package || 'create_default_value_sets';
3551 l_log_message varchar2(360);
3552 l_error_message varchar2(360);
3553
3554 l_security_available varchar2(1) default 'N';
3555 l_enable_longlist varchar2(1) default 'Y';
3556 l_format_type varchar2(1) default 'C';
3557 l_maximum_size number(9) default 60;
3558 l_precision number(2) default null;
3559 l_numbers_only varchar2(1) default 'N';
3560 l_uppercase_only varchar2(1) default 'N';
3561 l_right_justify_zero_fill varchar2(1) default 'N';
3562 l_min_value varchar2(150) default null;
3563 l_max_value varchar2(150) default null;
3564 l_description varchar2(240);
3565 l_value_set_exists boolean;
3566
3567 BEGIN
3568
3569 hr_utility.set_location('Entering:'|| l_proc, 10);
3570
3571 fnd_flex_val_api.set_session_mode('customer_data');
3572
3573 -- Create PER_RI_DEFAULT_GRADES
3574 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_GRADES');
3575 if not (l_value_set_exists) then
3576 hr_utility.set_location(l_proc, 20);
3577 l_description := 'The default Grades Value Set is generated by Enterprise Structures Configuration '
3578 || 'and used in Grade flexfield validation. This will initially be empty and can '
3579 || 'be populated using the load reference data';
3580 fnd_flex_val_api.create_valueset_independent
3581 (value_set_name => 'PER_RI_CONFIG_DEFAULT_GRADES'
3582 ,description => l_description
3583 ,security_available => l_security_available
3584 ,enable_longlist => l_enable_longlist
3585 ,format_type => l_format_type
3586 ,maximum_size => l_maximum_size
3587 ,precision => l_precision
3588 ,numbers_only => l_numbers_only
3589 ,uppercase_only => l_uppercase_only
3590 ,right_justify_zero_fill => l_right_justify_zero_fill
3591 ,min_value => l_min_value
3592 ,max_value => l_max_value);
3593 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_GRADES';
3594 per_ri_config_utilities.write_log(p_message => l_log_message);
3595 end if;
3596 hr_utility.set_location(l_proc, 30);
3597 -- Create PER_RI_DEFAULT_GRADES
3598 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_LEVELS');
3599 if not (l_value_set_exists) then
3600 hr_utility.set_location(l_proc, 40);
3601 l_description := 'The default Grades Level Value Set is generated by Enterprise Structures Configuration '
3602 || 'and used in Grade flexfield validation. This will initially be empty and can '
3603 || 'be populated using the load reference data';
3604 fnd_flex_val_api.create_valueset_independent
3605 (value_set_name => 'PER_RI_CONFIG_DEFAULT_LEVELS'
3606 ,description => l_description
3607 ,security_available => l_security_available
3608 ,enable_longlist => l_enable_longlist
3609 ,format_type => l_format_type
3610 ,maximum_size => l_maximum_size
3611 ,precision => l_precision
3612 ,numbers_only => l_numbers_only
3613 ,uppercase_only => l_uppercase_only
3614 ,right_justify_zero_fill => l_right_justify_zero_fill
3615 ,min_value => l_min_value
3616 ,max_value => l_max_value);
3617 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_LEVELS';
3618 end if;
3619 hr_utility.set_location(l_proc, 50);
3620
3621 -- Create PER_RI_DEFAULT_GRADES
3622 l_description := 'The default Account Number Value Set is generated by Enterprise Structures Configuration '
3623 || 'and used in Grade flexfield validation. This will initially be empty and can '
3624 || 'be populated using the load reference data';
3625 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_ACCOUNT');
3626 if not (l_value_set_exists) then
3627 hr_utility.set_location(l_proc, 60);
3628 fnd_flex_val_api.create_valueset_independent
3629 (value_set_name => 'PER_RI_CONFIG_DEFAULT_ACCOUNT'
3630 ,description => l_description
3631 ,security_available => l_security_available
3632 ,enable_longlist => l_enable_longlist
3633 ,format_type => l_format_type
3634 ,maximum_size => l_maximum_size
3635 ,precision => l_precision
3636 ,numbers_only => l_numbers_only
3637 ,uppercase_only => l_uppercase_only
3638 ,right_justify_zero_fill => l_right_justify_zero_fill
3639 ,min_value => l_min_value
3640 ,max_value => l_max_value);
3641 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_ACCOUNT';
3642 end if;
3643 hr_utility.set_location(l_proc, 70);
3644 -- Create PER_RI_DEFAULT_GRADES
3645 l_description := 'The default Company Value Set is generated by Enterprise Structures Configuration '
3646 || 'and used in Grade flexfield validation. This will initially be empty and can '
3647 || 'be populated using the load reference data';
3648 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_COMPANY');
3649 if not (l_value_set_exists) then
3650 hr_utility.set_location(l_proc, 80);
3651 fnd_flex_val_api.create_valueset_independent
3652 (value_set_name => 'PER_RI_CONFIG_DEFAULT_COMPANY'
3653 ,description => l_description
3654 ,security_available => l_security_available
3655 ,enable_longlist => l_enable_longlist
3656 ,format_type => l_format_type
3657 ,maximum_size => l_maximum_size
3658 ,precision => l_precision
3659 ,numbers_only => l_numbers_only
3660 ,uppercase_only => l_uppercase_only
3661 ,right_justify_zero_fill => l_right_justify_zero_fill
3662 ,min_value => l_min_value
3663 ,max_value => l_max_value);
3664 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_COMPANY';
3665 end if;
3666 hr_utility.set_location(l_proc, 90);
3667 -- Create PER_RI_DEFAULT_GRADES
3668 l_description := 'The default Cost Center Value Set is generated by Enterprise Structures Configuration '
3669 || 'and used in Grade flexfield validation. This will initially be empty and can '
3670 || 'be populated using the load reference data';
3671 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_CC');
3672 if not (l_value_set_exists) then
3673 hr_utility.set_location(l_proc, 100);
3674 fnd_flex_val_api.create_valueset_independent
3675 (value_set_name => 'PER_RI_CONFIG_DEFAULT_CC'
3676 ,description => l_description
3677 ,security_available => l_security_available
3678 ,enable_longlist => l_enable_longlist
3679 ,format_type => l_format_type
3680 ,maximum_size => l_maximum_size
3681 ,precision => l_precision
3682 ,numbers_only => l_numbers_only
3683 ,uppercase_only => l_uppercase_only
3684 ,right_justify_zero_fill => l_right_justify_zero_fill
3685 ,min_value => l_min_value
3686 ,max_value => l_max_value);
3687 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_CC';
3688 end if;
3689
3690 hr_utility.set_location(' Leaving:'|| l_proc, 120);
3691
3692 EXCEPTION
3693 when others then
3694 l_error_message := 'Error in ' || l_proc;
3695 hr_utility.trace(l_error_message || '-' || sqlerrm);
3696 hr_utility.set_location(' Leaving:'|| l_proc, 500);
3697 hr_utility.raise_error;
3698
3699
3700 END create_default_value_sets;
3701
3702 /* --------------------------------------------------------------------------
3703 -- Name : create_hrms_responsibility
3704 -- Purpose : This procedure creates hrms responsibilities and assign them to
3705 -- the super user created by the enterprise structures configuration
3706 -- loader program. Responsibilities attached are based on the product
3707 -- country selection list.
3708 -- Arguments : p_configuration_code
3709 -- p_security_profile_tab
3710 -------------------------------------------------------------------------- */
3711
3712 PROCEDURE create_hrms_responsibility (p_configuration_code in varchar2
3713 ,p_security_profile_tab in out nocopy security_profile_tab
3714 ,p_technical_summary_mode in boolean default FALSE
3715 ,p_hrms_resp_tab in out nocopy per_ri_config_tech_summary.hrms_resp_tab) IS
3716
3717 cursor csr_get_country (cp_configuration_code in varchar2) IS
3718 select country_code
3719 from per_ri_config_country_v
3720 where configuration_code = cp_configuration_code
3721 and country_code in (select distinct territory_code
3722 from per_ri_config_responsibility)
3723 and country_code in (select per_ri_config_utilities.business_group_decision
3724 (cp_configuration_code
3725 ,country_code)
3726 from per_ri_config_country_v where configuration_code = cp_configuration_code);
3727
3728 /*
3729 cursor csr_get_country (cp_configuration_code in varchar2) IS
3730 select country_code
3731 from per_ri_config_country_v
3732 where configuration_code = cp_configuration_code
3733 and country_code in (select distinct territory_code
3734 from per_ri_config_responsibility);
3735 */
3736
3737 cursor csr_get_product (cp_configuration_code in varchar2) IS
3738 select product_name
3739 from per_ri_config_prod_selection_v
3740 where configuration_code = cp_configuration_code;
3741
3742 cursor csr_get_responsibility (cp_territory_code in varchar2
3743 ,cp_responsibility_application in varchar2) IS
3744 select distinct resp.responsibility_key,
3745 apps.application_short_name
3746 from fnd_application apps,
3747 fnd_responsibility resp,
3748 per_ri_config_responsibility con,
3749 per_ri_config_country_v cont
3750 where apps.application_id = resp.application_id
3751 and con.responsibility_key = resp.responsibility_key
3752 and resp.responsibility_key = con.responsibility_key
3753 and resp.responsibility_key = con.responsibility_key
3754 and con.territory_code = cp_territory_code
3755 and con.responsibility_application = cp_responsibility_application
3756 and con.territory_code = cont.country_code
3757 and cont.country_code in (select distinct territory_code
3758 from per_ri_config_responsibility);
3759
3760 cursor csr_global_responsibility(cp_configuration_code in varchar2) IS
3761 select country_code
3762 from per_ri_config_country_v con
3763 where con.configuration_code = cp_configuration_code
3764 and con.country_code not in (select distinct territory_code
3765 from per_ri_config_responsibility)
3766 and per_ri_config_utilities.business_group_decision
3767 (cp_configuration_code
3768 ,country_code) <> 'INT' ;
3769
3770 l_proc varchar2(72) := g_package || 'create_hrms_responsibility';
3771 l_error_message varchar2(360);
3772 l_country_code per_ri_config_information.config_information1%type;
3773 l_product_name per_ri_config_information.config_information1%type;
3774 l_fnd_application_short_name varchar2(30);
3775
3776 l_country_code_global per_ri_config_information.config_information1%type;
3777 l_responsibility_key varchar2(60);
3778 l_application_short_name per_ri_config_information.configuration_code%type;
3779 l_assign_responsibility varchar2(30);
3780 l_assign_global_responsibility boolean default FALSE;
3781 l_assign_global_resp_key varchar2(60);
3782 l_assign_glb_resp_key_app_name varchar2(30);
3783
3784 l_assign_determined_resp varchar2(30);
3785 l_hr boolean default FALSE;
3786 l_hrms boolean default FALSE;
3787 l_benefits boolean default FALSE;
3788 l_self_service boolean default FALSE;
3789
3790 l_business_group_name per_business_groups.name%type;
3791 l_business_group_name_main per_business_groups.name%type;
3792 l_business_group_name_global per_business_groups.name%type;
3793 l_start_date varchar2(240) := to_char(per_ri_config_fnd_hr_entity.g_config_effective_date,'YYYY/MM/DD');
3794 l_end_date varchar2(240) := to_char(per_ri_config_fnd_hr_entity.g_config_effective_end_date,'YYYY/MM/DD');
3795 l_row_count number(9) default 0 ;
3796 l_earlier_row_count number(9) default 0 ;
3797
3798 l_configuration_user_name fnd_user.user_name%type;
3799
3800 l_hrms_resp_count number(9) := 0;
3801 l_hrms_bgsgut_profile_resp_tab per_ri_config_tech_summary.profile_resp_tab;
3802 l_profile_resp_main_tab per_ri_config_tech_summary.profile_resp_tab;
3803
3804 BEGIN
3805
3806 hr_utility.set_location('Entering:'|| l_proc, 10);
3807
3808 l_configuration_user_name := upper(per_ri_config_utilities.return_config_entity_name_pre
3809 (per_ri_config_main.g_configuration_user_name));
3810 open csr_get_product(p_configuration_code);
3811
3812 loop
3813 fetch csr_get_product into l_product_name;
3814 exit when csr_get_product%NOTFOUND;
3815 hr_utility.trace('l_product_name = ' || l_product_name);
3816
3817 if l_product_name = 'PER' then
3818 l_hr := TRUE;
3819 end if;
3820 if l_product_name = 'PAY' then
3821 l_hrms := TRUE;
3822 end if;
3823 if l_product_name = 'BEN' then
3824 l_benefits := TRUE;
3825 end if;
3826 if l_product_name = 'SSHR' then
3827 l_self_service := TRUE;
3828 end if;
3829 end loop;
3830
3831 close csr_get_product;
3832
3833 hr_utility.set_location(l_proc, 30);
3834
3835 --
3836 -- assign hrms self service responsibilities
3837 --
3838
3839 if l_self_service then
3840
3841 if NOT (p_technical_summary_mode) then
3842 fnd_user_resp_groups_api.load_row(
3843 x_user_name => l_configuration_user_name,
3844 x_resp_key => 'EMPLOYEE_DIRECT_ACCESS_V4.0',
3845 x_app_short_name => 'PER',
3846 x_security_group => 'STANDARD',
3847 x_owner => 'SEED',
3848 x_start_date => l_start_date,
3849 x_end_date => l_end_date,
3850 x_description => per_ri_config_main.g_description_string);
3851 hr_utility.trace('Assigned Responsibility: ' || 'EMPLOYEE_DIRECT_ACCESS');
3852 hr_utility.set_location(l_proc, 40);
3853 else
3854 p_hrms_resp_tab(l_hrms_resp_count).user_name := l_configuration_user_name;
3855 p_hrms_resp_tab(l_hrms_resp_count).resp_key := 'EMPLOYEE_DIRECT_ACCESS_V4';
3856 p_hrms_resp_tab(l_hrms_resp_count).app_short_name := 'PER';
3857 p_hrms_resp_tab(l_hrms_resp_count).security_group := 'STANDARD';
3858 p_hrms_resp_tab(l_hrms_resp_count).owner := 'SEED';
3859 p_hrms_resp_tab(l_hrms_resp_count).start_date := l_start_date;
3860 p_hrms_resp_tab(l_hrms_resp_count).end_date := l_end_date;
3861 p_hrms_resp_tab(l_hrms_resp_count).description := per_ri_config_main.g_description_string;
3862
3863 l_hrms_resp_count := l_hrms_resp_count + 1 ;
3864 end if;
3865
3866 if NOT (p_technical_summary_mode) then
3867 fnd_user_resp_groups_api.load_row(
3868 x_user_name => l_configuration_user_name,
3869 x_resp_key => 'LINE_MANAGER_ACCESS_V4.0',
3870 x_app_short_name => 'PER',
3871 x_security_group => 'STANDARD',
3872 x_owner => 'SEED',
3873 x_start_date => l_start_date,
3874 x_end_date => l_end_date,
3875 x_description => per_ri_config_main.g_description_string);
3876 else
3877 p_hrms_resp_tab(l_hrms_resp_count).user_name := l_configuration_user_name;
3878 p_hrms_resp_tab(l_hrms_resp_count).resp_key := 'LINE_MANAGER_ACCESS_V4';
3879 p_hrms_resp_tab(l_hrms_resp_count).app_short_name := 'PER';
3880 p_hrms_resp_tab(l_hrms_resp_count).security_group := 'STANDARD';
3881 p_hrms_resp_tab(l_hrms_resp_count).owner := 'SEED';
3882 p_hrms_resp_tab(l_hrms_resp_count).start_date := l_start_date;
3883 p_hrms_resp_tab(l_hrms_resp_count).end_date := l_end_date;
3884 p_hrms_resp_tab(l_hrms_resp_count).description := per_ri_config_main.g_description_string;
3885
3886 l_hrms_resp_count := l_hrms_resp_count + 1 ;
3887 end if;
3888 hr_utility.trace('Assigned Responsibility: ' || 'LINE_MANAGER_DIRECT_ACCESS');
3889 hr_utility.set_location(l_proc, 50);
3890 end if;
3891
3892 --decide on the responsibility to be assigned.
3893
3894 hr_utility.set_location(l_proc, 60);
3895 l_assign_responsibility := 'PER';
3896
3897 if l_hr and not l_hrms and not l_benefits then
3898 l_assign_responsibility := 'PER';
3899 end if;
3900 if l_hr and l_hrms and not l_benefits then
3901 l_assign_responsibility := 'HRMS';
3902 end if;
3903 if l_hr and l_hrms and l_benefits then
3904 l_assign_responsibility := 'SHRMS';
3905 end if;
3906
3907 open csr_get_country(p_configuration_code);
3908 loop
3909 fetch csr_get_country into l_country_code;
3910 exit when csr_get_country%NOTFOUND;
3911
3912 l_assign_determined_resp
3913 := per_ri_config_utilities.determine_country_resp
3914 (p_country_code => l_country_code
3915 ,p_assign_responsibility => l_assign_responsibility);
3916
3917 hr_utility.trace('l_assign_responsibility = ' || l_assign_responsibility);
3918 hr_utility.trace('l_assign_determined_resp = ' || l_assign_determined_resp);
3919 --open csr_get_responsibility(l_country_code
3920 -- ,l_assign_responsibility);
3921
3922 open csr_get_responsibility(l_country_code
3923 ,l_assign_determined_resp);
3924 loop
3925 fetch csr_get_responsibility into l_responsibility_key
3926 ,l_fnd_application_short_name;
3927
3928 exit when csr_get_responsibility%NOTFOUND;
3929
3930 hr_utility.trace('l_country_code : ' || l_country_code);
3931 hr_utility.trace('l_responsibility_key : ' || l_responsibility_key);
3932 hr_utility.trace('l_fnd_application_short_name : ' || l_fnd_application_short_name);
3933
3934 -- Security Group Removal Changes
3935 -- This is taken care by security_profile_assignment creation
3936 --assign responsibility
3937 /* fnd_user_resp_groups_api.load_row(
3938 x_user_name => l_configuration_user_name,
3939 x_resp_key => l_responsibility_key,
3940 x_app_short_name => l_fnd_application_short_name,
3941 x_security_group => 'STANDARD',
3942 x_owner => 'SEED',
3943 x_start_date => l_start_date,
3944 x_end_date => l_end_date,
3945 x_description => per_ri_config_main.g_description_string);
3946 hr_utility.trace('Assigned Responsibility:' || l_responsibility_key || ':' || l_fnd_application_short_name);
3947 */
3948 -- get business group name for given country code
3949 l_business_group_name_main := per_ri_config_utilities.get_enterprise_short_name
3950 (p_configuration_code => p_configuration_code)
3951 || ' ' || l_country_code || per_ri_config_main.g_bg_name_suffix_string;
3952
3953 per_ri_config_fnd_hr_entity.create_resp_level_profile
3954 (p_configuration_code => p_configuration_code
3955 ,p_responsibility_key => l_responsibility_key
3956 ,p_technical_summary_mode => p_technical_summary_mode
3957 ,p_profile_resp_tab => l_profile_resp_main_tab);
3958 -- this need special processing
3959 --once data is populated we need to populate this main table to show data.
3960
3961
3962 if NOT (p_technical_summary_mode) then
3963 p_security_profile_tab(csr_get_responsibility%ROWCOUNT + l_row_count).security_profile_name
3964 := l_business_group_name_main;
3965 p_security_profile_tab(csr_get_responsibility%ROWCOUNT + l_row_count).responsibility_key
3966 := l_responsibility_key;
3967
3968 -- This procedure can be used to populate technical summary records.
3969 else
3970 --this table is also needed now for security group changes
3971 p_security_profile_tab(csr_get_responsibility%ROWCOUNT + l_row_count).security_profile_name
3972 := l_business_group_name_main;
3973 p_security_profile_tab(csr_get_responsibility%ROWCOUNT + l_row_count).responsibility_key
3974 := l_responsibility_key;
3975 --
3976 p_hrms_resp_tab(l_hrms_resp_count).user_name := l_configuration_user_name;
3977 p_hrms_resp_tab(l_hrms_resp_count).resp_key := l_responsibility_key;
3978 p_hrms_resp_tab(l_hrms_resp_count).app_short_name := null;
3979 p_hrms_resp_tab(l_hrms_resp_count).security_group := l_business_group_name_main;
3980 p_hrms_resp_tab(l_hrms_resp_count).owner := null;
3981 p_hrms_resp_tab(l_hrms_resp_count).start_date := l_start_date;
3982 p_hrms_resp_tab(l_hrms_resp_count).end_date := l_end_date;
3983 p_hrms_resp_tab(l_hrms_resp_count).description := per_ri_config_main.g_description_string;
3984
3985 l_hrms_resp_count := l_hrms_resp_count + 1;
3986 end if;
3987
3988
3989 hr_utility.trace('l_business_group_name_main : ' || l_business_group_name_main);
3990 hr_utility.trace('l_responsibility_key : ' || l_responsibility_key);
3991
3992 hr_utility.trace('l_row_count inside = ' || to_char(l_row_count));
3993
3994 end loop;
3995 l_row_count := l_row_count + (csr_get_responsibility%ROWCOUNT);
3996 hr_utility.trace('l_row_count outside = ' || to_char(l_row_count));
3997 close csr_get_responsibility;
3998 end loop;
3999 close csr_get_country;
4000
4001 --process gobal responsibility
4002 hr_utility.set_location('Entering:'|| l_proc, 210);
4003 l_assign_glb_resp_key_app_name := 'PER';
4004
4005 if l_hr and not l_hrms and not l_benefits then
4006 l_assign_global_resp_key := 'GLOBAL HR MANAGER';
4007 l_assign_glb_resp_key_app_name := 'PER';
4008 end if;
4009
4010 if l_hr and l_hrms and not l_benefits then
4011 l_assign_global_resp_key := 'GLOBAL_HRMS_MANAGER';
4012 l_assign_glb_resp_key_app_name := 'PER';
4013 end if;
4014
4015 if l_hr and l_hrms and l_benefits then
4016 l_assign_global_resp_key := 'GLB_SHRMS_MANAGER';
4017 l_assign_glb_resp_key_app_name := 'PER';
4018 end if;
4019
4020 if l_hr and not l_hrms and l_benefits then
4021 l_assign_global_resp_key := 'US_BEN_MANAGER';
4022 l_assign_glb_resp_key_app_name := 'BEN';
4023 end if;
4024
4025 hr_utility.set_location('Entering:'|| l_proc, 220);
4026 hr_utility.trace('l_assign_glb_resp_key_app_name : ' || l_assign_glb_resp_key_app_name);
4027 hr_utility.trace('l_assign_global_resp_key : ' || l_assign_global_resp_key);
4028
4029 l_earlier_row_count := p_security_profile_tab.count + 1;
4030 hr_utility.trace('GLOBAL l_earlier_row_count : ' || l_earlier_row_count);
4031
4032 open csr_global_responsibility(p_configuration_code);
4033 loop
4034 fetch csr_global_responsibility into l_country_code_global;
4035 exit when csr_global_responsibility%NOTFOUND;
4036
4037 hr_utility.trace('Assigned Global Responsibility:' || l_assign_global_resp_key );
4038
4039 -- get business group name for given country code
4040 -- business group name and security profile names are same
4041 l_business_group_name_global := per_ri_config_utilities.get_enterprise_short_name
4042 (p_configuration_code => p_configuration_code)
4043 || ' ' || l_country_code_global || per_ri_config_main.g_bg_name_suffix_string;
4044
4045 p_security_profile_tab(l_earlier_row_count).security_profile_name
4046 := l_business_group_name_global;
4047 p_security_profile_tab(l_earlier_row_count).responsibility_key
4048 := l_assign_global_resp_key;
4049 -- Populate the data for TS
4050 p_hrms_resp_tab(l_earlier_row_count).user_name := l_configuration_user_name;
4051 p_hrms_resp_tab(l_earlier_row_count).resp_key := l_assign_global_resp_key;
4052 p_hrms_resp_tab(l_earlier_row_count).app_short_name := null;
4053 p_hrms_resp_tab(l_earlier_row_count).security_group := null;
4054 p_hrms_resp_tab(l_earlier_row_count).owner := null;
4055 p_hrms_resp_tab(l_earlier_row_count).start_date := l_start_date;
4056 p_hrms_resp_tab(l_earlier_row_count).end_date := l_end_date;
4057 p_hrms_resp_tab(l_earlier_row_count).description := per_ri_config_main.g_description_string;
4058
4059 l_earlier_row_count := 1 + l_earlier_row_count;
4060 end loop;
4061 close csr_global_responsibility;
4062
4063 --assign global responsibility
4064 /* MSG Changes BEGIN
4065 /* if NOT (p_technical_summary_mode) then
4066 fnd_user_resp_groups_api.load_row(
4067 x_user_name => l_configuration_user_name,
4068 x_resp_key => l_assign_global_resp_key,
4069 x_app_short_name => l_assign_glb_resp_key_app_name,
4070 x_security_group => 'STANDARD',
4071 x_owner => 'SEED',
4072 x_start_date => l_start_date,
4073 x_end_date => l_end_date,
4074 x_description => per_ri_config_main.g_description_string);
4075 else
4076 p_hrms_resp_tab(l_hrms_resp_count).user_name := l_configuration_user_name;
4077 p_hrms_resp_tab(l_hrms_resp_count).resp_key := l_assign_global_resp_key;
4078 p_hrms_resp_tab(l_hrms_resp_count).app_short_name := l_assign_glb_resp_key_app_name;
4079 p_hrms_resp_tab(l_hrms_resp_count).security_group := 'STANDARD';
4080 p_hrms_resp_tab(l_hrms_resp_count).owner := 'SEED';
4081 p_hrms_resp_tab(l_hrms_resp_count).start_date := l_start_date;
4082 p_hrms_resp_tab(l_hrms_resp_count).end_date := l_end_date;
4083 p_hrms_resp_tab(l_hrms_resp_count).description := per_ri_config_main.g_description_string;
4084
4085 l_hrms_resp_count := l_hrms_resp_count + 1 ;
4086 end if;
4087
4088 per_ri_config_fnd_hr_entity.create_resp_level_profile
4089 (p_configuration_code => p_configuration_code
4090 ,p_responsibility_key => l_assign_global_resp_key
4091 ,p_technical_summary_mode => p_technical_summary_mode
4092 ,p_profile_resp_tab => l_profile_resp_main_tab);
4093
4094 -- get business group name for given country code
4095 l_business_group_name_global := per_ri_config_utilities.get_enterprise_short_name
4096 (p_configuration_code => p_configuration_code)
4097 || ' ' || l_country_code_global || per_ri_config_main.g_bg_name_suffix_string;
4098
4099 hr_utility.trace('Security Group Removal Changes');
4100 per_ri_config_fnd_hr_entity.create_bg_id_and_sg_id_profile
4101 (p_configuration_code => p_configuration_code
4102 ,p_responsibility_key => l_assign_global_resp_key
4103 ,p_responsibility_name => l_assign_global_resp_name
4104 ,p_business_group_name => l_business_group_name_global
4105 ,p_technical_summary_mode => p_technical_summary_mode
4106 ,p_bg_sg_ut_profile_resp_tab => l_hrms_bgsgut_profile_resp_tab);
4107 MSG Changes END */
4108
4109 EXCEPTION
4110 when others then
4111 l_error_message := 'Error in ' || l_proc;
4112 hr_utility.trace(l_error_message || '-' || sqlerrm);
4113 hr_utility.set_location(' Leaving:'|| l_proc, 500);
4114 hr_utility.raise_error;
4115
4116 END create_hrms_responsibility;
4117
4118 /* --------------------------------------------------------------------------
4119 -- Name : create_application_level_resp
4120 -- Purpose : This procedure creates application level profile options.
4121 -- Arguments : p_configuration_code
4122 --
4123 -------------------------------------------------------------------------- */
4124 PROCEDURE create_application_level_resp(p_configuration_code in varchar2
4125 ,p_technical_summary_mode in boolean default FALSE
4126 ,p_profile_apps_tab in out nocopy
4127 per_ri_config_tech_summary.profile_apps_tab) IS
4128
4129
4130 cursor csr_get_product (cp_configuration_code in varchar2) IS
4131 select product_name
4132 from per_ri_config_prod_selection_v
4133 where configuration_code = cp_configuration_code;
4134
4135 l_product_name per_ri_config_information.config_information1%type;
4136
4137 l_profile_apps_count number(8) := 0;
4138 l_proc varchar2(72) := g_package || 'create_application_level_resp';
4139 l_log_message varchar2(360);
4140 l_error_message varchar2(360);
4141
4142 BEGIN
4143 hr_utility.set_location('Entering:'|| l_proc, 10);
4144
4145 open csr_get_product(p_configuration_code);
4146
4147 loop
4148 fetch csr_get_product into l_product_name;
4149 exit when csr_get_product%NOTFOUND;
4150
4151
4152 /* DGARG MSG Changes
4153 -- For each product selected set application level profile option
4154 -- ENABLE_SECURITY_GROUPS
4155 if l_product_name in ('PER','PAY','BEN') then
4156 hr_utility.trace('l_product_name ' || l_product_name);
4157 if NOT (p_technical_summary_mode) then
4158 per_ri_config_utilities.set_profile_option_value
4159 (p_level => 10002
4160 ,p_level_value => l_product_name
4161 ,p_level_value_app => l_product_name
4162 ,p_profile_name => 'ENABLE_SECURITY_GROUPS'
4163 ,p_profile_option_value => 'Y');
4164 else
4165 p_profile_apps_tab(l_profile_apps_count).level := 1002;
4166 p_profile_apps_tab(l_profile_apps_count).level_value := l_product_name;
4167 p_profile_apps_tab(l_profile_apps_count).level_value_app := l_product_name;
4168 p_profile_apps_tab(l_profile_apps_count).profile_name := 'ENABLE_SECURITY_GROUPS';
4169 p_profile_apps_tab(l_profile_apps_count).profile_option_value := 'Y';
4170
4171 l_profile_apps_count := l_profile_apps_count + 1;
4172
4173 end if;
4174
4175 l_log_message := 'Created PROFILE_OPTION ENABLE_SECURITY_GROUPS ' || l_product_name;
4176 per_ri_config_utilities.write_log(p_message => l_log_message);
4177 end if;
4178 ** */
4179 end loop;
4180 close csr_get_product;
4181
4182 /* DGARG - Multiple Security Groups Removal chnages
4183 --
4184 -- Set ENABLE_SECURITY_GROUPS all all HRMS application
4185 --
4186 for rec in ( select application_id
4187 from fnd_application
4188 where hr_general.chk_application_id(application_id) = 'TRUE'
4189 Order by Application_short_name)
4190 loop
4191
4192 if fnd_profile.save ('ENABLE_SECURITY_GROUPS'
4193 ,'Y'
4194 ,'APPL'
4195 ,rec.application_id ) then
4196
4197 l_log_message := 'Setting the Enable Security Groups Profile to the application '
4198 || rec.application_id;
4199
4200 else
4201 l_log_message := 'The profile setting has errored out for application '
4202 || rec.application_id;
4203 end if;
4204 per_ri_config_utilities.write_log(p_message => l_log_message);
4205 hr_utility.trace(l_log_message);
4206 end loop;
4207 --
4208 */
4209
4210 EXCEPTION
4211 when others then
4212 l_error_message := 'Error in ' || l_proc;
4213 hr_utility.trace(l_error_message || '-' || sqlerrm);
4214 hr_utility.set_location(' Leaving:'|| l_proc, 500);
4215 hr_utility.raise_error;
4216
4217 END create_application_level_resp;
4218 /* --------------------------------------------------------------------------
4219 -- Name : create_resp_level_profile
4220 -- Purpose : This procedure creates application level profile options.
4221 -- Arguments : p_configuration_code
4222 -- p_responsibility_key
4223 -------------------------------------------------------------------------- */
4224
4225 PROCEDURE create_resp_level_profile(p_configuration_code in varchar2
4226 ,p_responsibility_key in varchar2
4227 ,p_technical_summary_mode in boolean default FALSE
4228 ,p_profile_resp_tab in out nocopy
4229 per_ri_config_tech_summary.profile_resp_tab) IS
4230
4231
4232 cursor csr_get_product (cp_configuration_code in varchar2) IS
4233 select product_name
4234 from per_ri_config_prod_selection_v
4235 where configuration_code = cp_configuration_code;
4236
4237 cursor csr_get_resp_key_app (cp_responsibility_key in varchar2) IS
4238 select apps.application_short_name
4239 from fnd_responsibility resp,
4240 fnd_application apps
4241 where apps.application_id = resp.application_id
4242 and resp.responsibility_key = cp_responsibility_key;
4243
4244 l_application_short_name fnd_application.application_short_name%type;
4245 l_hr_user_type varchar2(30);
4246 l_product_name varchar2(30);
4247
4248 l_hr boolean default TRUE;
4249 l_hrms boolean default FALSE;
4250 l_profile_resp_count number(8) := 0;
4251
4252 l_proc varchar2(72) := g_package || 'create_resp_level_profile';
4253 l_error_message varchar2(360);
4254
4255 BEGIN
4256 hr_utility.set_location('Entering:'|| l_proc, 10);
4257
4258 -- only one row is there
4259 open csr_get_resp_key_app(p_responsibility_key);
4260 fetch csr_get_resp_key_app into l_application_short_name;
4261 close csr_get_resp_key_app;
4262
4263 open csr_get_product(p_configuration_code);
4264 loop
4265 fetch csr_get_product into l_product_name;
4266 exit when csr_get_product%NOTFOUND;
4267 if l_product_name = 'PER' then
4268 l_hr := TRUE;
4269 end if;
4270 if l_product_name = 'PAY' then
4271 l_hrms := TRUE;
4272 end if;
4273 end loop;
4274 close csr_get_product;
4275
4276 if l_hr and l_hrms then
4277 l_hr_user_type := 'INT';
4278 else
4279 l_hr_user_type := 'PER';
4280 end if;
4281
4282 hr_utility.trace('p_responsibility_key ' || p_responsibility_key);
4283 hr_utility.trace('l_hr_user_type ' || l_hr_user_type);
4284 if NOT (p_technical_summary_mode) then
4285 per_ri_config_utilities.set_profile_option_value
4286 (p_level => 10003
4287 ,p_level_value => p_responsibility_key
4288 ,p_level_value_app => l_application_short_name
4289 ,p_profile_name => 'HR_USER_TYPE'
4290 ,p_profile_option_value => l_hr_user_type);
4291 else
4292 p_profile_resp_tab(l_profile_resp_count).level := 1003;
4293 p_profile_resp_tab(l_profile_resp_count).level_value := p_responsibility_key;
4294 p_profile_resp_tab(l_profile_resp_count).level_value_app := l_application_short_name;
4295 p_profile_resp_tab(l_profile_resp_count).profile_name := 'HR_USER_TYPE';
4296 p_profile_resp_tab(l_profile_resp_count).profile_option_value := l_hr_user_type;
4297
4298 l_profile_resp_count := l_profile_resp_count + 1;
4299
4300 end if;
4301
4302
4303 hr_utility.trace('Created HR_USER_TYPE for '|| l_product_name);
4304 hr_utility.set_location('Leaving:'|| l_proc, 40);
4305
4306 EXCEPTION
4307 when others then
4308 l_error_message := 'Error in ' || l_proc;
4309 hr_utility.trace(l_error_message || '-' || sqlerrm);
4310 hr_utility.set_location(' Leaving:'|| l_proc, 500);
4311 hr_utility.raise_error;
4312
4313 END create_resp_level_profile;
4314
4315 /* --------------------------------------------------------------------------
4316 -- Name : create_bg_id_and_sg_id_profile
4317 -- Purpose : This procedure creates profile option values for
4318 -- PER_BUSINESS_GROUP_ID
4319 -- PER_SECURITY_GROUP_ID
4320 -- HR_USER_TYPE
4321 -- Arguments : p_configuration_code
4322 -- p_responsibility_key
4323 -- p_business_group_name
4324 -------------------------------------------------------------------------- */
4325
4326 PROCEDURE create_bg_id_and_sg_id_profile(p_configuration_code in varchar2
4327 ,p_responsibility_key in varchar2
4328 ,p_business_group_name in varchar2
4329 ,p_technical_summary_mode in boolean default FALSE
4330 ,p_bg_sg_ut_profile_resp_tab in out nocopy
4331 per_ri_config_tech_summary.profile_resp_tab) IS
4332
4333
4334 cursor csr_get_resp_key_app (cp_responsibility_key in varchar2) IS
4335 select apps.application_short_name,resp.responsibility_id
4336 from fnd_responsibility resp,
4337 fnd_application apps
4338 where apps.application_id = resp.application_id
4339 and resp.responsibility_key = cp_responsibility_key;
4340
4341 cursor csr_bg_id (cp_business_group_name in varchar2) IS
4342 select business_group_id
4343 from per_business_groups
4344 where name = cp_business_group_name;
4345
4346 cursor csr_sg_id (cp_business_group_name in varchar2) IS
4347 select security_profile_id
4348 from per_security_profiles
4349 where security_profile_name = cp_business_group_name;
4350
4351 cursor csr_get_product (cp_configuration_code in varchar2) IS
4352 select product_name
4353 from per_ri_config_prod_selection_v
4354 where configuration_code = cp_configuration_code;
4355
4356 l_application_short_name fnd_application.application_short_name%type;
4357 l_hr_user_type varchar2(30);
4358 l_product_name varchar2(30);
4359
4360 l_bg_id varchar2(30);
4361 l_sg_id varchar2(30);
4362 l_responsibility_id number(9);
4363
4364 l_hr boolean default TRUE;
4365 l_hrms boolean default FALSE;
4366
4367 l_profile_count number(10) := 0;
4368 l_proc varchar2(72) := g_package || 'create_bg_id_and_sg_id_profile';
4369 l_error_message varchar2(360);
4370 l_log_message varchar2(360);
4371
4372 BEGIN
4373 hr_utility.set_location('Entering:'|| l_proc, 10);
4374
4375 if NOT (p_technical_summary_mode) then
4376 -- only one row is there
4377 open csr_get_resp_key_app(p_responsibility_key);
4378 fetch csr_get_resp_key_app into l_application_short_name,l_responsibility_id;
4379 close csr_get_resp_key_app;
4380
4381
4382 open csr_bg_id(p_business_group_name);
4383 fetch csr_bg_id into l_bg_id;
4384 close csr_bg_id;
4385
4386 open csr_sg_id(p_business_group_name);
4387 fetch csr_sg_id into l_sg_id;
4388 close csr_sg_id;
4389
4390 hr_utility.trace('l_responsibility_id ' || l_responsibility_id);
4391 hr_utility.trace('l_bg_id ' || l_bg_id);
4392 hr_utility.trace('l_sg_id ' || l_sg_id);
4393 hr_utility.trace('p_responsibility_key ' || p_responsibility_key);
4394 hr_utility.trace('p_business_group_name ' || p_business_group_name);
4395
4396 --
4397 -- Create PER_BUSINESS_GROUP_ID
4398 --
4399 if fnd_profile.save ('PER_BUSINESS_GROUP_ID',
4400 l_bg_id,
4401 'RESP',
4402 l_responsibility_id,
4403 '800') then
4404 null;
4405 end if;
4406 l_log_message := 'Created Profile Option Value PER_BUSINESS_GROUP_ID ' || l_bg_id;
4407 per_ri_config_utilities.write_log(p_message => l_log_message);
4408 hr_utility.set_location(l_proc, 20);
4409
4410 --
4411 -- Create PER_SECURITY_PROFILE_ID
4412 --
4413 if fnd_profile.save ('PER_SECURITY_PROFILE_ID',
4414 l_sg_id,
4415 'RESP',
4416 l_responsibility_id,
4417 '800') then
4418 null;
4419 end if;
4420 l_log_message := 'Created Profile Option Value PER_SECURITY_PROFILE_ID ' || l_sg_id;
4421 per_ri_config_utilities.write_log(p_message => l_log_message);
4422 hr_utility.set_location(l_proc, 30);
4423
4424 open csr_get_product(p_configuration_code);
4425 loop
4426 fetch csr_get_product into l_product_name;
4427 exit when csr_get_product%NOTFOUND;
4428 if l_product_name = 'PER' then
4429 l_hr := TRUE;
4430 end if;
4431 if l_product_name = 'PAY' then
4432 l_hrms := TRUE;
4433 end if;
4434 end loop;
4435 close csr_get_product;
4436
4437 if l_hr and l_hrms then
4438 l_hr_user_type := 'INT';
4439 else
4440 l_hr_user_type := 'PER';
4441 end if;
4442 --
4443 -- Create HR_USER_TYPE
4444 --
4445 if fnd_profile.save ('HR_USER_TYPE',
4446 l_hr_user_type,
4447 'RESP',
4448 l_responsibility_id,
4449 '800') then
4450 null;
4451 end if;
4452 l_log_message := 'Created Profile Option Value HR_USER_TYPE ' || l_hr_user_type;
4453 per_ri_config_utilities.write_log(p_message => l_log_message);
4454 hr_utility.set_location(' Leaving:'|| l_proc, 50);
4455
4456 else
4457 hr_utility.set_location(l_proc, 110);
4458 open csr_get_product(p_configuration_code);
4459 loop
4460 fetch csr_get_product into l_product_name;
4461 exit when csr_get_product%NOTFOUND;
4462 if l_product_name = 'PER' then
4463 l_hr := TRUE;
4464 end if;
4465 if l_product_name = 'PAY' then
4466 l_hrms := TRUE;
4467 end if;
4468 end loop;
4469 close csr_get_product;
4470
4471 if l_hr and l_hrms then
4472 l_hr_user_type := 'INT';
4473 else
4474 l_hr_user_type := 'PER';
4475 end if;
4476 hr_utility.set_location(l_proc, 120);
4477 p_bg_sg_ut_profile_resp_tab(l_profile_count).level := 10003;
4478 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value := p_responsibility_key;
4479 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value_app := 'PER';
4480 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_name := 'PER_BUSINESS_GROUP_ID';
4481 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_option_value := p_business_group_name;
4482 l_profile_count := l_profile_count + 1;
4483
4484 p_bg_sg_ut_profile_resp_tab(l_profile_count).level := 10003;
4485 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value := p_responsibility_key;
4486 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value_app := 'PER';
4487 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_name := 'PER_SECURITY_PROFILE_ID';
4488 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_option_value := p_business_group_name;
4489 l_profile_count := l_profile_count + 1;
4490
4491 p_bg_sg_ut_profile_resp_tab(l_profile_count).level := 10003;
4492 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value := p_responsibility_key;
4493 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value_app := 'PER';
4494 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_name := 'HR_USER_TYPE';
4495 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_option_value := l_hr_user_type;
4496
4497 l_profile_count := l_profile_count + 1;
4498
4499 hr_utility.set_location(l_proc, 130);
4500 end if;
4501 EXCEPTION
4502 when others then
4503 l_error_message := 'Error in ' || l_proc;
4504 hr_utility.trace(l_error_message || '-' || sqlerrm);
4505 hr_utility.set_location(' Leaving:'|| l_proc, 500);
4506 hr_utility.raise_error;
4507
4508 END create_bg_id_and_sg_id_profile;
4509
4510 END per_ri_config_fnd_hr_entity;