[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.4.12010000.3 2009/09/01 05:56:45 psengupt ship $ */
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, rv.REG_VARIANCE_COUNTRY_CODE
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 l_country_selected varchar2(10);
1341 l_rv_country_code varchar2(10);
1342 l_multi_tenancy boolean default false;
1343 l_system_model varchar2(10) := 'N';
1344 l_sec_group_id varchar2(10);
1345
1346 BEGIN
1347 hr_utility.set_location('Entering:'|| l_proc, 10);
1348
1349 select legislation_code into l_country_selected from per_business_groups
1350 where business_group_id = fnd_profile.value('PER_BUSINESS_GROUP_ID');
1351
1352 l_multi_tenancy := hr_multi_tenancy_pkg.is_multi_tenant_system;
1353 l_sec_group_id := fnd_global.security_group_id;
1354 if l_multi_tenancy then
1355 l_system_model := hr_multi_tenancy_pkg.get_system_model;
1356 end if;
1357
1358 open csr_config_jobs_rv(p_configuration_code);
1359 LOOP
1360 fetch csr_config_jobs_rv into l_jobs_rv_name,l_jobs_rv_name_orig,l_rv_country_code;
1361
1362 exit when csr_config_jobs_rv%NOTFOUND;
1363
1364 hr_utility.set_location(l_proc, 20);
1365 IF l_multi_tenancy AND l_system_model = 'B' AND l_sec_group_id <> '0'
1366 AND l_rv_country_code = l_country_selected THEN
1367 hr_utility.set_location('skip the creation of the flexfield structure', 90);
1368 ELSE
1369 -- Create Jobs RV Key flex
1370 if NOT (p_technical_summary_mode) then
1371 l_jobs_keyflex_number := per_ri_config_utilities.create_key_flexfield
1372 (p_appl_short_Name => 'PER'
1373 ,p_flex_code => 'JOB'
1374 ,p_structure_code => l_jobs_rv_name || per_ri_config_main.g_job_rv_struct_def_string
1375 ,p_structure_title => l_jobs_rv_name || per_ri_config_main.g_job_rv_struct_def_string
1376 ,p_description => l_jobs_rv_name || per_ri_config_main.g_job_rv_struct_def_string
1377 || per_ri_config_main.g_description_suffix_string);
1378 else
1379 p_kf_job_rv_tab(l_kf_job_rv_count).appl_short_name := 'PER';
1380 p_kf_job_rv_tab(l_kf_job_rv_count).flex_code := 'JOB';
1381 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;
1382 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;
1383 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
1384 || per_ri_config_main.g_description_suffix_string;
1385 l_kf_job_rv_count := l_kf_job_rv_count + 1 ;
1386 end if;
1387
1388 per_ri_config_utilities.write_log(p_message => 'Created Jobs RV Keyflex ' || l_jobs_rv_name
1389 || per_ri_config_main.g_job_rv_struct_def_string );
1390 hr_utility.trace('Created Jobs RV Keyflex ' || l_jobs_rv_name
1391 || per_ri_config_main.g_job_rv_struct_def_string);
1392
1393 open csr_config_jobs_rv_seg(p_configuration_code
1394 ,l_jobs_rv_name_orig);
1395 l_jobs_segment_count := 0;
1396 LOOP
1397 fetch csr_config_jobs_rv_seg into l_rv_jobs_segment_type
1398 ,l_rv_jobs_segment_name
1399 ,l_jobs_segment_no;
1400 exit when csr_config_jobs_rv_seg%NOTFOUND;
1401
1402 -- Create Jobs Key Flex Segments
1403 l_jobs_segment_count := csr_config_jobs_rv_seg%ROWCOUNT;
1404 if NOT (p_technical_summary_mode) then
1405 per_ri_config_utilities.create_flex_segments
1406 (p_appl_short_Name => 'PER'
1407 ,p_flex_code => 'JOB'
1408 ,p_structure_code => l_jobs_rv_name
1409 || per_ri_config_main.g_job_rv_struct_def_string
1410 ,p_segment_name => l_rv_jobs_segment_name
1411 ,p_column_name => 'SEGMENT' || l_jobs_segment_count
1412 ,p_segment_number => l_jobs_segment_no --l_jobs_segment_count
1413 ,p_value_set => null
1414 ,p_lov_prompt => l_rv_jobs_segment_name
1415 ,p_segment_type => l_rv_jobs_segment_type
1416 ,p_window_prompt => l_rv_jobs_segment_name);
1417 else
1418 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).appl_short_name := 'PER';
1419 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).flex_code := 'JOB';
1420 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).structure_code := l_jobs_rv_name
1421 || per_ri_config_main.g_job_rv_struct_def_string;
1422 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).segment_name := l_rv_jobs_segment_name;
1423 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).column_name := 'SEGMENT' || l_jobs_segment_count;
1424 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).segment_number := l_jobs_segment_no;
1425 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).value_set := null;
1426 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).lov_prompt := l_rv_jobs_segment_name;
1427 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).segment_type := l_rv_jobs_segment_type;
1428 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).window_prompt := l_rv_jobs_segment_name;
1429
1430 --create technical summary data for valueset
1431 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
1432 ,p_valueset_type => l_rv_jobs_segment_type
1433 ,p_structure_code => l_jobs_rv_name
1434 || per_ri_config_main.g_job_rv_struct_def_string
1435 ,p_segment_name => l_jobs_rv_name
1436 ,p_segment_number => l_jobs_segment_no
1437 ,p_valueset_tab => l_kf_job_rv_valueset_tab);
1438
1439 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_value_set_name
1440 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).value_set_name;
1441 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_description
1442 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).description;
1443 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_security_available
1444 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).security_available;
1445 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_enable_longlist
1446 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
1447 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_format_type
1448 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).format_type;
1449 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_maximum_size
1450 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).maximum_size;
1451 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_precision
1452 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).precision;
1453 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_numbers_only
1454 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).numbers_only;
1455 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_uppercase_only
1456 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
1457 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_right_justify_zero_fill
1458 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
1459 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_min_value
1460 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).min_value;
1461 p_kf_job_rv_seg_tab(l_kf_job_rv_seg_count).vs_max_value
1462 := l_kf_job_rv_valueset_tab(l_value_set_tab_count).max_value;
1463 l_kf_job_rv_seg_count := l_kf_job_rv_seg_count + 1 ;
1464 end if;
1465
1466 per_ri_config_utilities.write_log(p_message => 'Created Grade Key Flex RV Segment' || l_rv_jobs_segment_name);
1467 hr_utility.trace('Created Job Key Flex RV Segment: ' || l_rv_jobs_segment_name);
1468 END LOOP;
1469 --
1470 -- freeze and compile this flexfield
1471 --
1472 if NOT (p_technical_summary_mode) then
1473 per_ri_config_utilities.freeze_and_compile_flexfield
1474 (p_appl_short_Name => 'PER'
1475 ,p_flex_code => 'JOB'
1476 ,p_structure_code => l_jobs_rv_name
1477 || per_ri_config_main.g_job_rv_struct_def_string);
1478 end if;
1479 close csr_config_jobs_rv_seg;
1480 END IF;
1481 END LOOP;
1482 close csr_config_jobs_rv;
1483
1484 EXCEPTION
1485 when others then
1486 l_error_message := 'Error in ' || l_proc;
1487 hr_utility.trace(l_error_message || '-' || sqlerrm);
1488 hr_utility.set_location(' Leaving:'|| l_proc, 500);
1489 hr_utility.raise_error;
1490
1491 END create_jobs_rv_keyflex;
1492
1493 /* --------------------------------------------------------------------------
1494 -- Name : create_positions_rv_keyflex
1495 -- Purpose : This procedure creates positions keyflex structures, segments and
1496 -- valuesets when regional variance are not defined.
1497 -- and profiles options assigned to it.
1498 -- Arguments : p_configuration_code
1499 --
1500 -------------------------------------------------------------------------- */
1501
1502 PROCEDURE create_positions_rv_keyflex (p_configuration_code in varchar2
1503 ,p_technical_summary_mode in boolean default FALSE
1504 ,p_kf_pos_rv_tab in out nocopy
1505 per_ri_config_tech_summary.kf_pos_rv_tab
1506 ,p_kf_pos_rv_seg_tab in out nocopy
1507 per_ri_config_tech_summary.kf_pos_rv_seg_tab) IS
1508
1509 cursor csr_config_positions_rv (cp_configuration_code in varchar2) IS
1510 select distinct per_ri_config_utilities.return_config_entity_name(regional_variance_name),
1511 regional_variance_name, REG_VARIANCE_COUNTRY_CODE
1512 from per_ri_config_jp_rv_v
1513 where configuration_code = cp_configuration_code
1514 and exists (select configuration_code
1515 from per_ri_config_pos_rv_seg_v
1516 where configuration_code = cp_configuration_code);
1517
1518 cursor csr_config_positions_rv_seg (cp_configuration_code in varchar2
1519 ,cp_positions_rv_name in varchar2) IS
1520 select distinct segment_type
1521 ,segment_name
1522 ,CONFIG_SEQUENCE
1523 from per_ri_config_pos_rv_seg_v
1524 where configuration_code = cp_configuration_code
1525 and regional_variance_name = cp_positions_rv_name
1526 order by CONFIG_SEQUENCE;
1527
1528 l_proc varchar2(72) := g_package || 'create_positions_rv_keyflex';
1529 l_error_message varchar2(360);
1530 l_kf_pos_rv_count number(8) := 0;
1531 l_kf_pos_rv_tab per_ri_config_tech_summary.kf_pos_rv_tab;
1532
1533 l_kf_pos_rv_seg_count number(8) := 0;
1534 l_kf_pos_rv_seg_tab per_ri_config_tech_summary.kf_pos_rv_tab;
1535
1536 l_kf_pos_rv_valueset_tab per_ri_config_tech_summary.valueset_tab;
1537 l_value_set_tab_count number(9) := 1;
1538
1539 l_positions_rv_name per_ri_config_information.config_information1%type;
1540 l_positions_rv_name_orig per_ri_config_information.config_information1%type;
1541
1542 l_rv_positions_segment_type per_ri_config_information.config_information1%type;
1543 l_rv_positions_segment_name per_ri_config_information.config_information1%type;
1544 l_positions_keyflex_number number(9);
1545 l_positions_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1546
1547 l_positions_segment_count number(9);
1548 l_positions_segment_no number(9);
1549
1550 l_country_selected varchar2(10);
1551 l_rv_country_code varchar2(10);
1552 l_multi_tenancy boolean default false;
1553 l_system_model varchar2(10) := 'N';
1554 l_sec_group_id varchar2(10);
1555 BEGIN
1556 hr_utility.set_location('Entering:'|| l_proc, 10);
1557
1558 select legislation_code into l_country_selected from per_business_groups
1559 where business_group_id = fnd_profile.value('PER_BUSINESS_GROUP_ID');
1560
1561 l_multi_tenancy := hr_multi_tenancy_pkg.is_multi_tenant_system;
1562 l_sec_group_id := fnd_global.security_group_id;
1563 if l_multi_tenancy then
1564 l_system_model := hr_multi_tenancy_pkg.get_system_model;
1565 end if;
1566
1567 open csr_config_positions_rv(p_configuration_code);
1568 LOOP
1569 fetch csr_config_positions_rv into l_positions_rv_name,l_positions_rv_name_orig,l_rv_country_code;
1570
1571 exit when csr_config_positions_rv%NOTFOUND;
1572
1573 hr_utility.set_location(l_proc, 20);
1574 IF l_multi_tenancy AND l_system_model = 'B' AND l_sec_group_id <> '0'
1575 AND l_rv_country_code = l_country_selected THEN
1576 hr_utility.set_location('skip the creation of the flexfield structure', 90);
1577 ELSE
1578 -- Create Jobs RV Key flex
1579 if NOT (p_technical_summary_mode) then
1580 l_positions_keyflex_number := per_ri_config_utilities.create_key_flexfield
1581 (p_appl_short_Name => 'PER'
1582 ,p_flex_code => 'POS'
1583 ,p_structure_code => l_positions_rv_name || per_ri_config_main.g_pos_rv_struct_def_string
1584 ,p_structure_title => l_positions_rv_name || per_ri_config_main.g_pos_rv_struct_def_string
1585 ,p_description => l_positions_rv_name || per_ri_config_main.g_pos_rv_struct_def_string
1586 || per_ri_config_main.g_description_suffix_string);
1587
1588 else
1589 p_kf_pos_rv_tab(l_kf_pos_rv_count).appl_short_name := 'PER';
1590 p_kf_pos_rv_tab(l_kf_pos_rv_count).flex_code := 'POS';
1591 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;
1592 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;
1593 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
1594 || per_ri_config_main.g_description_suffix_string;
1595 l_kf_pos_rv_count := l_kf_pos_rv_count + 1 ;
1596 end if;
1597 per_ri_config_utilities.write_log(p_message => 'Created Positions RV Keyflex ' || l_positions_rv_name
1598 || per_ri_config_main.g_pos_rv_struct_def_string );
1599 hr_utility.trace('Created Positions RV Keyflex ' || l_positions_rv_name
1600 || per_ri_config_main.g_pos_rv_struct_def_string);
1601
1602 open csr_config_positions_rv_seg(p_configuration_code
1603 ,l_positions_rv_name_orig);
1604 l_positions_segment_count := 0;
1605 LOOP
1606 fetch csr_config_positions_rv_seg into l_rv_positions_segment_type
1607 ,l_rv_positions_segment_name
1608 ,l_positions_segment_no;
1609 exit when csr_config_positions_rv_seg%NOTFOUND;
1610
1611 -- Create Jobs Key Flex Segments
1612 l_positions_segment_count := csr_config_positions_rv_seg%ROWCOUNT;
1613 if NOT (p_technical_summary_mode) then
1614 per_ri_config_utilities.create_flex_segments
1615 (p_appl_short_Name => 'PER'
1616 ,p_flex_code => 'POS'
1617 ,p_structure_code => l_positions_rv_name
1618 || per_ri_config_main.g_pos_rv_struct_def_string
1619 ,p_segment_name => l_rv_positions_segment_name
1620 ,p_column_name => 'SEGMENT' || l_positions_segment_count
1621 ,p_segment_number => l_positions_segment_no
1622 ,p_value_set => null
1623 ,p_lov_prompt => l_rv_positions_segment_name
1624 ,p_segment_type => l_rv_positions_segment_type
1625 ,p_window_prompt => l_rv_positions_segment_name);
1626
1627 else
1628 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).appl_short_name := 'PER';
1629 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).flex_code := 'POS';
1630 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).structure_code := l_positions_rv_name
1631 || per_ri_config_main.g_pos_rv_struct_def_string;
1632 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).segment_name := l_rv_positions_segment_name;
1633 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).column_name := 'SEGMENT' || l_positions_segment_count;
1634 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).segment_number := l_positions_segment_no;
1635 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).value_set := null;
1636 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).lov_prompt := l_rv_positions_segment_name;
1637 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).segment_type := l_rv_positions_segment_type;
1638 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).window_prompt := l_rv_positions_segment_name;
1639
1640 --create technical summary data for valueset
1641 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
1642 ,p_valueset_type => l_rv_positions_segment_type
1643 ,p_structure_code => l_positions_rv_name
1644 || per_ri_config_main.g_pos_rv_struct_def_string
1645 ,p_segment_name => l_rv_positions_segment_name
1646 ,p_segment_number => l_positions_segment_no
1647 ,p_valueset_tab => l_kf_pos_rv_valueset_tab);
1648
1649 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_value_set_name
1650 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).value_set_name;
1651 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_description
1652 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).description;
1653 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_security_available
1654 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).security_available;
1655 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_enable_longlist
1656 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
1657 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_format_type
1658 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).format_type;
1659 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_maximum_size
1660 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).maximum_size;
1661 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_precision
1662 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).precision;
1663 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_numbers_only
1664 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).numbers_only;
1665 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_uppercase_only
1666 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
1667 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_right_justify_zero_fill
1668 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
1669 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_min_value
1670 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).min_value;
1671 p_kf_pos_rv_seg_tab(l_kf_pos_rv_seg_count).vs_max_value
1672 := l_kf_pos_rv_valueset_tab(l_value_set_tab_count).max_value;
1673 l_kf_pos_rv_seg_count := l_kf_pos_rv_seg_count + 1 ;
1674 end if;
1675 per_ri_config_utilities.write_log(p_message => 'Created Positions Key Flex RV Segment' || l_rv_positions_segment_name);
1676 hr_utility.trace('Created Positions Key Flex RV Segment: ' || l_rv_positions_segment_name);
1677 END LOOP;
1678 --
1679 -- freeze and compile this flexfield
1680 --
1681 if NOT (p_technical_summary_mode) then
1682 per_ri_config_utilities.freeze_and_compile_flexfield
1683 (p_appl_short_Name => 'PER'
1684 ,p_flex_code => 'POS'
1685 ,p_structure_code => l_positions_rv_name
1686 || per_ri_config_main.g_pos_rv_struct_def_string);
1687 end if;
1688 close csr_config_positions_rv_seg;
1689 END IF;
1690 END LOOP;
1691 close csr_config_positions_rv;
1692 hr_utility.set_location('Leaving:'|| l_proc, 100);
1693 EXCEPTION
1694 when others then
1695 l_error_message := 'Error in ' || l_proc;
1696 hr_utility.trace(l_error_message || '-' || sqlerrm);
1697 hr_utility.set_location(' Leaving:'|| l_proc, 500);
1698 hr_utility.raise_error;
1699
1700 END create_positions_rv_keyflex;
1701
1702 /* --------------------------------------------------------------------------
1703 -- Name : create_grades_rv_keyflex
1704 -- Purpose : This procedure creates grades keyflex structures, segments and
1705 -- valuesets when regional variance are not defined.
1706 -- and profiles options assigned to it.
1707 -- Arguments : p_configuration_code
1708 --
1709 -------------------------------------------------------------------------- */
1710
1711 PROCEDURE create_grades_rv_keyflex (p_configuration_code in varchar2
1712 ,p_technical_summary_mode in boolean default FALSE
1713 ,p_kf_grd_rv_tab in out nocopy
1714 per_ri_config_tech_summary.kf_grd_rv_tab
1715 ,p_kf_grd_rv_seg_tab in out nocopy
1716 per_ri_config_tech_summary.kf_grd_rv_seg_tab) IS
1717
1718 cursor csr_config_grade_rv (cp_configuration_code in varchar2) IS
1719 select distinct per_ri_config_utilities.return_config_entity_name(regional_variance_name),
1720 regional_variance_name, REG_VARIANCE_COUNTRY_CODE
1721 from per_ri_config_grd_rv_v
1722 where configuration_code = cp_configuration_code;
1723
1724 cursor csr_config_grade_rv_seg (cp_configuration_code in varchar2
1725 ,cp_grade_rv_name in varchar2) IS
1726 select distinct segment_type
1727 ,segment_name
1728 ,CONFIG_SEQUENCE
1729 from per_ri_config_grd_rv_seg_v
1730 where configuration_code = cp_configuration_code
1731 and regional_variance_name = cp_grade_rv_name
1732 order by CONFIG_SEQUENCE;
1733
1734 l_proc varchar2(72) := g_package || 'create_grades_rv_keyflex';
1735 l_error_message varchar2(360);
1736
1737 l_kf_grd_rv_count number(8) := 0;
1738 l_kf_grd_rv_tab per_ri_config_tech_summary.kf_grd_rv_tab;
1739 l_kf_grd_rv_seg_count number(8) := 0;
1740 l_kf_grd_rv_seg_tab per_ri_config_tech_summary.kf_grd_rv_tab;
1741
1742 l_kf_grd_rv_valueset_tab per_ri_config_tech_summary.valueset_tab;
1743 l_value_set_tab_count number(9) := 1;
1744
1745 l_grade_rv_name per_ri_config_information.config_information1%type;
1746 l_grade_rv_name_orig per_ri_config_information.config_information1%type;
1747
1748 l_rv_grade_segment_name per_ri_config_information.config_information1%type;
1749 l_rv_grade_segment_type per_ri_config_information.config_information1%type;
1750 l_grades_keyflex_number number(9);
1751 l_grade_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1752
1753 l_grades_segment_count number(9);
1754 l_grades_segment_no number(9);
1755
1756 l_country_selected varchar2(10);
1757 l_rv_country_code varchar2(10);
1758 l_multi_tenancy boolean default false;
1759 l_system_model varchar2(10) := 'N';
1760 l_sec_group_id varchar2(10);
1761 BEGIN
1762 hr_utility.set_location('Entering:'|| l_proc, 10);
1763
1764 select legislation_code into l_country_selected from per_business_groups
1765 where business_group_id = fnd_profile.value('PER_BUSINESS_GROUP_ID');
1766
1767 l_multi_tenancy := hr_multi_tenancy_pkg.is_multi_tenant_system;
1768 l_sec_group_id := fnd_global.security_group_id;
1769 if l_multi_tenancy then
1770 l_system_model := hr_multi_tenancy_pkg.get_system_model;
1771 end if;
1772
1773 open csr_config_grade_rv(p_configuration_code);
1774 LOOP
1775 fetch csr_config_grade_rv into l_grade_rv_name,l_grade_rv_name_orig,l_rv_country_code;
1776
1777 exit when csr_config_grade_rv%NOTFOUND;
1778
1779 -- Create Grades RV Key Flex
1780 hr_utility.set_location(l_proc, 20);
1781 IF l_multi_tenancy AND l_system_model = 'B' AND l_sec_group_id <> '0'
1782 AND l_rv_country_code = l_country_selected THEN
1783 hr_utility.set_location('skip the creation of the flexfield structure', 90);
1784 ELSE
1785 if NOT (p_technical_summary_mode) then
1786 l_grades_keyflex_number :=
1787 per_ri_config_utilities.create_key_flexfield
1788 (p_appl_short_Name => 'PER'
1789 ,p_flex_code => 'GRD'
1790 ,p_structure_code => l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string
1791 ,p_structure_title => l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string
1792 ,p_description => l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string
1793 || per_ri_config_main.g_description_suffix_string);
1794
1795 else
1796 p_kf_grd_rv_tab(l_kf_grd_rv_count).appl_short_name := 'PER';
1797 p_kf_grd_rv_tab(l_kf_grd_rv_count).flex_code := 'GRD';
1798 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;
1799 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;
1800 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
1801 || per_ri_config_main.g_description_suffix_string;
1802 l_kf_grd_rv_count := l_kf_grd_rv_count + 1 ;
1803 end if;
1804 per_ri_config_utilities.write_log(p_message => 'Created Grades RV Keyflex '
1805 || per_ri_config_main.g_grd_rv_struct_def_string );
1806 hr_utility.trace('Created Grades RV Keyflex ' || per_ri_config_main.g_grd_rv_struct_def_string);
1807
1808 open csr_config_grade_rv_seg(p_configuration_code
1809 ,l_grade_rv_name_orig);
1810 l_grades_segment_count := 0;
1811 LOOP
1812 fetch csr_config_grade_rv_seg into l_rv_grade_segment_type
1813 ,l_rv_grade_segment_name
1814 ,l_grades_segment_no;
1815 exit when csr_config_grade_rv_seg%NOTFOUND;
1816
1817 -- Create Jobs Key Flex Segments
1818 l_grades_segment_count := csr_config_grade_rv_seg%ROWCOUNT;
1819 if NOT (p_technical_summary_mode) then
1820 per_ri_config_utilities.create_flex_segments
1821 (p_appl_short_Name => 'PER'
1822 ,p_flex_code => 'GRD'
1823 ,p_structure_code => l_grade_rv_name || per_ri_config_main.g_grd_rv_struct_def_string
1824 ,p_segment_name => l_rv_grade_segment_name
1825 ,p_column_name => 'SEGMENT' || l_grades_segment_count
1826 ,p_segment_number => l_grades_segment_no
1827 ,p_value_set => null
1828 ,p_lov_prompt => l_rv_grade_segment_name
1829 ,p_segment_type => l_rv_grade_segment_type
1830 ,p_window_prompt => l_rv_grade_segment_name);
1831 else
1832 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).appl_short_name := 'PER';
1833 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).flex_code := 'GRD';
1834 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).structure_code := l_grade_rv_name
1835 || per_ri_config_main.g_grd_rv_struct_def_string;
1836 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).segment_name := l_rv_grade_segment_name;
1837 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).column_name := 'SEGMENT' || l_grades_segment_count;
1838 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).segment_number := l_grades_segment_no;
1839 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).value_set := null;
1840 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).lov_prompt := l_rv_grade_segment_name;
1841 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).segment_type := l_rv_grade_segment_type;
1842 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).window_prompt := l_rv_grade_segment_name;
1843
1844 --create technical summary data for valueset
1845 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
1846 ,p_valueset_type => l_rv_grade_segment_type
1847 ,p_structure_code => l_grade_rv_name
1848 || per_ri_config_main.g_grd_rv_struct_def_string
1849 ,p_segment_name => l_rv_grade_segment_name
1850 ,p_segment_number => l_grades_segment_no
1851 ,p_valueset_tab => l_kf_grd_rv_valueset_tab);
1852
1853 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_value_set_name
1854 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).value_set_name;
1855 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_description
1856 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).description;
1857 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_security_available
1858 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).security_available;
1859 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_enable_longlist
1860 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).enable_longlist;
1861 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_format_type
1862 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).format_type;
1863 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_maximum_size
1864 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).maximum_size;
1865 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_precision
1866 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).precision;
1867 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_numbers_only
1868 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).numbers_only;
1869 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_uppercase_only
1870 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).uppercase_only;
1871 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_right_justify_zero_fill
1872 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
1873 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_min_value
1874 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).min_value;
1875 p_kf_grd_rv_seg_tab(l_kf_grd_rv_seg_count).vs_max_value
1876 := l_kf_grd_rv_valueset_tab(l_value_set_tab_count).max_value;
1877 l_kf_grd_rv_seg_count := l_kf_grd_rv_seg_count + 1 ;
1878 end if;
1879 per_ri_config_utilities.write_log(p_message => 'Created Grade Key Flex RV Segment' || l_rv_grade_segment_name);
1880 hr_utility.trace('Created Job Key Flex RV Segment: ' || l_rv_grade_segment_name);
1881 END LOOP;
1882 close csr_config_grade_rv_seg;
1883 --
1884 -- freeze and compile this flexfield
1885 --
1886 if NOT (p_technical_summary_mode) then
1887 per_ri_config_utilities.freeze_and_compile_flexfield
1888 (p_appl_short_Name => 'PER'
1889 ,p_flex_code => 'GRD'
1890 ,p_structure_code => l_grade_rv_name
1891 || per_ri_config_main.g_grd_rv_struct_def_string);
1892 end if;
1893 END IF;
1894 END LOOP;
1895 close csr_config_grade_rv;
1896
1897 EXCEPTION
1898 when others then
1899 l_error_message := 'Error in ' || l_proc;
1900 hr_utility.trace(l_error_message || '-' || sqlerrm);
1901 hr_utility.set_location(' Leaving:'|| l_proc, 500);
1902 hr_utility.raise_error;
1903
1904 END create_grades_rv_keyflex;
1905
1906 /* --------------------------------------------------------------------------
1907 -- Name : create_global_grp_cmp_cost_kf
1908 -- Purpose : This procedure creates global People Group, Competence and
1909 -- Cost allocation key flex structures, segments and
1910 -- valuesets.
1911 -- Arguments : p_configuration_code
1912 --
1913 -------------------------------------------------------------------------- */
1914 PROCEDURE create_global_grp_cmp_cost_kf (p_configuration_code in varchar2
1915 ,p_technical_summary_mode in boolean default FALSE
1916 ,p_kf_grp_tab in out nocopy
1917 per_ri_config_tech_summary.kf_grp_tab
1918 ,p_kf_cmp_tab in out nocopy
1919 per_ri_config_tech_summary.kf_cmp_tab
1920 ,p_kf_cost_tab in out nocopy
1921 per_ri_config_tech_summary.kf_cost_tab
1922 ,p_kf_grp_seg_tab in out nocopy
1923 per_ri_config_tech_summary.kf_grp_seg_tab
1924 ,p_kf_cmp_seg_tab in out nocopy
1925 per_ri_config_tech_summary.kf_cmp_seg_tab
1926 ,p_kf_cost_seg_tab in out nocopy
1927 per_ri_config_tech_summary.kf_cost_seg_tab) IS
1928
1929 l_kf_grp_tab per_ri_config_tech_summary.kf_grp_tab;
1930 l_kf_cmp_tab per_ri_config_tech_summary.kf_cmp_tab;
1931 l_kf_cost_tab per_ri_config_tech_summary.kf_cost_tab;
1932
1933 l_kf_grp_seg_tab per_ri_config_tech_summary.kf_grp_seg_tab;
1934 l_kf_cmp_seg_tab per_ri_config_tech_summary.kf_cmp_seg_tab;
1935 l_kf_cost_seg_tab per_ri_config_tech_summary.kf_cost_seg_tab;
1936
1937 l_kf_grp_valueset_tab per_ri_config_tech_summary.valueset_tab;
1938 l_kf_cmp_valueset_tab per_ri_config_tech_summary.valueset_tab;
1939 l_kf_cost_valueset_tab per_ri_config_tech_summary.valueset_tab;
1940 l_value_set_tab_count number(9) := 1;
1941
1942 l_proc varchar2(72) := g_package || 'create_global_grp_cmp_cost_kf';
1943 l_error_message varchar2(360);
1944 l_configuration_code per_ri_config_information.configuration_code%type;
1945 l_people_group_fk_number number(9);
1946 l_competence_fk_number number(9);
1947 l_cost_allocation_number number(9);
1948
1949 l_enterprise_short_name per_ri_config_information.configuration_code%type;
1950
1951 l_grp_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1952 l_cmp_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1953 l_cost_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
1954
1955 l_kf_grp_count number(8) := 0;
1956 l_kf_cmp_count number(8) := 0;
1957 l_kf_cost_count number(8) := 0;
1958
1959 l_kf_grp_seg_count number(8) :=0;
1960 l_kf_cmp_seg_count number(8) :=0;
1961 l_kf_cost_seg_count number(8) :=0;
1962 BEGIN
1963
1964 hr_utility.set_location('Entering:'|| l_proc, 10);
1965
1966 --
1967 -- create people group key flex
1968 --
1969 l_grp_structures_code := per_ri_config_main.g_global_pea_structure_name;
1970 if NOT (p_technical_summary_mode) then
1971 l_people_group_fk_number := per_ri_config_utilities.create_key_flexfield
1972 (p_appl_short_Name => 'PAY'
1973 ,p_flex_code => 'GRP'
1974 ,p_structure_code => l_grp_structures_code
1975 ,p_structure_title => l_grp_structures_code
1976 ,p_description => l_grp_structures_code);
1977
1978 else
1979 p_kf_grp_tab(l_kf_grp_count).appl_short_name := 'PAY';
1980 p_kf_grp_tab(l_kf_grp_count).flex_code := 'GRP';
1981 p_kf_grp_tab(l_kf_grp_count).structure_code := l_grp_structures_code;
1982 p_kf_grp_tab(l_kf_grp_count).structure_title := l_grp_structures_code;
1983 p_kf_grp_tab(l_kf_grp_count).description := l_grp_structures_code;
1984 end if;
1985
1986 hr_utility.trace('Created People Group Key Flex: ' || l_grp_structures_code );
1987
1988 --
1989 -- create people group flex segments
1990 --
1991 if NOT (p_technical_summary_mode) then
1992 per_ri_config_utilities.create_flex_segments
1993 (p_appl_short_Name => 'PAY'
1994 ,p_flex_code => 'GRP'
1995 ,p_structure_code => l_grp_structures_code
1996 ,p_segment_name => 'People Group Name'
1997 ,p_column_name => 'SEGMENT1'
1998 ,p_segment_number => 1
1999 ,p_value_set => null
2000 ,p_lov_prompt => 'People Group'
2001 ,p_window_prompt => 'People Group');
2002
2003 else
2004 p_kf_grp_seg_tab(l_kf_grp_seg_count).appl_short_name := 'PAY';
2005 p_kf_grp_seg_tab(l_kf_grp_seg_count).flex_code := 'GRP';
2006 p_kf_grp_seg_tab(l_kf_grp_seg_count).structure_code := l_grp_structures_code;
2007 p_kf_grp_seg_tab(l_kf_grp_seg_count).segment_name := 'People Group Name';
2008 p_kf_grp_seg_tab(l_kf_grp_seg_count).column_name := 'SEGMENT1';
2009 p_kf_grp_seg_tab(l_kf_grp_seg_count).segment_number := 1;
2010 p_kf_grp_seg_tab(l_kf_grp_seg_count).value_set := null;
2011 p_kf_grp_seg_tab(l_kf_grp_seg_count).lov_prompt := 'People Group';
2012 p_kf_grp_seg_tab(l_kf_grp_seg_count).segment_type := null;
2013 p_kf_grp_seg_tab(l_kf_grp_seg_count).window_prompt := 'People Group';
2014
2015 --create technical summary data for valueset
2016 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2017 ,p_valueset_type => null
2018 ,p_structure_code => l_grp_structures_code
2019 ,p_segment_name => 'People Group Name'
2020 ,p_segment_number => 1
2021 ,p_valueset_tab => l_kf_grp_valueset_tab);
2022
2023
2024 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_value_set_name
2025 := l_kf_grp_valueset_tab(l_value_set_tab_count).value_set_name;
2026 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_description
2027 := l_kf_grp_valueset_tab(l_value_set_tab_count).description;
2028 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_security_available
2029 := l_kf_grp_valueset_tab(l_value_set_tab_count).security_available;
2030 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_enable_longlist
2031 := l_kf_grp_valueset_tab(l_value_set_tab_count).enable_longlist;
2032 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_format_type
2033 := l_kf_grp_valueset_tab(l_value_set_tab_count).format_type;
2034 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_maximum_size
2035 := l_kf_grp_valueset_tab(l_value_set_tab_count).maximum_size;
2036 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_precision
2037 := l_kf_grp_valueset_tab(l_value_set_tab_count).precision;
2038 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_numbers_only
2039 := l_kf_grp_valueset_tab(l_value_set_tab_count).numbers_only;
2040 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_uppercase_only
2041 := l_kf_grp_valueset_tab(l_value_set_tab_count).uppercase_only;
2042 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_right_justify_zero_fill
2043 := l_kf_grp_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2044 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_min_value
2045 := l_kf_grp_valueset_tab(l_value_set_tab_count).min_value;
2046 p_kf_grp_seg_tab(l_kf_grp_seg_count).vs_max_value
2047 := l_kf_grp_valueset_tab(l_value_set_tab_count).max_value;
2048 l_kf_grp_seg_count := l_kf_grp_seg_count + 1 ;
2049 end if;
2050
2051 hr_utility.trace('Created People Group Key Flex Segment: ' || l_grp_structures_code);
2052
2053 --
2054 -- freeze and compile this flexfield
2055 --
2056 if NOT (p_technical_summary_mode) then
2057 per_ri_config_utilities.freeze_and_compile_flexfield
2058 (p_appl_short_Name => 'PAY'
2059 ,p_flex_code => 'GRP'
2060 ,p_structure_code => l_grp_structures_code);
2061 end if;
2062
2063
2064
2065 --
2066 -- create competence key flex
2067 --
2068 l_cmp_structures_code := per_ri_config_main.g_global_cmp_structure_name;
2069 if NOT (p_technical_summary_mode) then
2070 l_competence_fk_number := per_ri_config_utilities.create_key_flexfield
2071 (p_appl_short_Name => 'PER'
2072 ,p_flex_code => 'CMP'
2073 ,p_structure_code => l_cmp_structures_code
2074 ,p_structure_title => l_cmp_structures_code
2075 ,p_description => l_cmp_structures_code);
2076
2077 else
2078 p_kf_cmp_tab(l_kf_cmp_count).appl_short_name := 'PER';
2079 p_kf_cmp_tab(l_kf_cmp_count).flex_code := 'CMP';
2080 p_kf_cmp_tab(l_kf_cmp_count).structure_code := l_cmp_structures_code;
2081 p_kf_cmp_tab(l_kf_cmp_count).structure_title := l_cmp_structures_code;
2082 p_kf_cmp_tab(l_kf_cmp_count).description := l_cmp_structures_code;
2083 end if;
2084
2085 hr_utility.trace('Created Competence Group Key Flex: ' || l_cmp_structures_code);
2086
2087 --
2088 -- create competence flex segments
2089 --
2090 if NOT (p_technical_summary_mode) then
2091 per_ri_config_utilities.create_flex_segments
2092 (p_appl_short_Name => 'PER'
2093 ,p_flex_code => 'CMP'
2094 ,p_structure_code => l_cmp_structures_code
2095 ,p_segment_name => 'Competence Name'
2096 ,p_column_name => 'SEGMENT1'
2097 ,p_segment_number => 1
2098 ,p_value_set => null
2099 ,p_lov_prompt => 'Competence Name'
2100 ,p_window_prompt => 'Competence Name');
2101 else
2102 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).appl_short_name := 'PER';
2103 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).flex_code := 'CMP';
2104 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).structure_code := l_cmp_structures_code;
2105 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).segment_name := 'Competence Name';
2106 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).column_name := 'SEGMENT1';
2107 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).segment_number := 1;
2108 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).value_set := null;
2109 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).lov_prompt := 'Competence Name';
2110 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).segment_type := null;
2111 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).window_prompt := 'Competence Name';
2112
2113 --create technical summary data for valueset
2114 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2115 ,p_valueset_type => null
2116 ,p_structure_code => l_cmp_structures_code
2117 ,p_segment_name => 'Competence Name'
2118 ,p_segment_number => 1
2119 ,p_valueset_tab => l_kf_cmp_valueset_tab);
2120
2121 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_value_set_name
2122 := l_kf_cmp_valueset_tab(l_value_set_tab_count).value_set_name;
2123 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_description
2124 := l_kf_cmp_valueset_tab(l_value_set_tab_count).description;
2125 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_security_available
2126 := l_kf_cmp_valueset_tab(l_value_set_tab_count).security_available;
2127 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_enable_longlist
2128 := l_kf_cmp_valueset_tab(l_value_set_tab_count).enable_longlist;
2129 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_format_type
2130 := l_kf_cmp_valueset_tab(l_value_set_tab_count).format_type;
2131 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_maximum_size
2132 := l_kf_cmp_valueset_tab(l_value_set_tab_count).maximum_size;
2133 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_precision
2134 := l_kf_cmp_valueset_tab(l_value_set_tab_count).precision;
2135 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_numbers_only
2136 := l_kf_cmp_valueset_tab(l_value_set_tab_count).numbers_only;
2137 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_uppercase_only
2138 := l_kf_cmp_valueset_tab(l_value_set_tab_count).uppercase_only;
2139 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_right_justify_zero_fill
2140 := l_kf_cmp_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2141 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_min_value
2142 := l_kf_cmp_valueset_tab(l_value_set_tab_count).min_value;
2143 p_kf_cmp_seg_tab(l_kf_cmp_seg_count).vs_max_value
2144 := l_kf_cmp_valueset_tab(l_value_set_tab_count).max_value;
2145 l_kf_cmp_seg_count := l_kf_cmp_seg_count + 1 ;
2146 end if;
2147
2148 hr_utility.trace('Created Competence Key Flex Segment: l_cmp_structures_code' );
2149
2150 --
2151 -- freeze and compile this flexfield
2152 --
2153 if NOT (p_technical_summary_mode) then
2154 per_ri_config_utilities.freeze_and_compile_flexfield
2155 (p_appl_short_Name => 'PER'
2156 ,p_flex_code => 'CMP'
2157 ,p_structure_code => l_cmp_structures_code);
2158 end if;
2159
2160 --
2161 -- create cost allocation key flex
2162 --
2163 l_cost_structures_code := per_ri_config_main.g_global_cst_structure_name;
2164 if NOT (p_technical_summary_mode) then
2165 l_cost_allocation_number := per_ri_config_utilities.create_key_flexfield
2166 (p_appl_short_Name => 'PAY'
2167 ,p_flex_code => 'COST'
2168 ,p_structure_code => l_cost_structures_code
2169 ,p_structure_title => l_cost_structures_code
2170 ,p_description => l_cost_structures_code);
2171
2172 else
2173 p_kf_cost_tab(l_kf_cost_count).appl_short_name := 'PAY';
2174 p_kf_cost_tab(l_kf_cost_count).flex_code := 'COST';
2175 p_kf_cost_tab(l_kf_cost_count).structure_code := l_cost_structures_code;
2176 p_kf_cost_tab(l_kf_cost_count).structure_title := l_cost_structures_code;
2177 p_kf_cost_tab(l_kf_cost_count).description := l_cost_structures_code;
2178 end if;
2179
2180 hr_utility.trace('Created Cost Allocation Key Flex: ' || l_cost_structures_code);
2181
2182 --
2183 -- create cost allocation flex segments
2184 --
2185 if NOT (p_technical_summary_mode) then
2186 per_ri_config_utilities.create_flex_segments
2187 (p_appl_short_Name => 'PAY'
2188 ,p_flex_code => 'COST'
2189 ,p_structure_code => l_cost_structures_code
2190 ,p_segment_name => 'Account'
2191 ,p_column_name => 'SEGMENT1'
2192 ,p_segment_number => 1
2193 ,p_value_set => null
2194 ,p_lov_prompt => 'Account'
2195 ,p_window_prompt => 'Account');
2196 else
2197 p_kf_cost_seg_tab(l_kf_cost_seg_count).appl_short_name := 'PAY';
2198 p_kf_cost_seg_tab(l_kf_cost_seg_count).flex_code := 'COST';
2199 p_kf_cost_seg_tab(l_kf_cost_seg_count).structure_code := l_cost_structures_code;
2200 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_name := 'Account';
2201 p_kf_cost_seg_tab(l_kf_cost_seg_count).column_name := 'SEGMENT1';
2202 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_number := 1;
2203 p_kf_cost_seg_tab(l_kf_cost_seg_count).value_set := null;
2204 p_kf_cost_seg_tab(l_kf_cost_seg_count).lov_prompt := 'Account';
2205 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_type := null;
2206 p_kf_cost_seg_tab(l_kf_cost_seg_count).window_prompt := 'Account';
2207
2208 --create technical summary data for valueset
2209 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2210 ,p_valueset_type => null
2211 ,p_structure_code => l_cost_structures_code
2212 ,p_segment_name => 'Account'
2213 ,p_segment_number => 1
2214 ,p_valueset_tab => l_kf_cost_valueset_tab);
2215
2216 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_value_set_name
2217 := l_kf_cost_valueset_tab(l_value_set_tab_count).value_set_name;
2218 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_description
2219 := l_kf_cost_valueset_tab(l_value_set_tab_count).description;
2220 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_security_available
2221 := l_kf_cost_valueset_tab(l_value_set_tab_count).security_available;
2222 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_enable_longlist
2223 := l_kf_cost_valueset_tab(l_value_set_tab_count).enable_longlist;
2224 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_format_type
2225 := l_kf_cost_valueset_tab(l_value_set_tab_count).format_type;
2226 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_maximum_size
2227 := l_kf_cost_valueset_tab(l_value_set_tab_count).maximum_size;
2228 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_precision
2229 := l_kf_cost_valueset_tab(l_value_set_tab_count).precision;
2230 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_numbers_only
2231 := l_kf_cost_valueset_tab(l_value_set_tab_count).numbers_only;
2232 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_uppercase_only
2233 := l_kf_cost_valueset_tab(l_value_set_tab_count).uppercase_only;
2234 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_right_justify_zero_fill
2235 := l_kf_cost_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2236 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_min_value
2237 := l_kf_cost_valueset_tab(l_value_set_tab_count).min_value;
2238 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_max_value
2239 := l_kf_cmp_valueset_tab(l_value_set_tab_count).max_value;
2240 l_kf_cost_seg_count := l_kf_cost_seg_count + 1 ;
2241 hr_utility.trace('ENABLELONGLIST := ' || l_kf_cost_valueset_tab(l_value_set_tab_count).enable_longlist);
2242 end if;
2243
2244 if NOT (p_technical_summary_mode) then
2245 per_ri_config_utilities.create_flex_segments
2246 (p_appl_short_Name => 'PAY'
2247 ,p_flex_code => 'COST'
2248 ,p_structure_code => l_cost_structures_code
2249 ,p_segment_name => 'Company'
2250 ,p_column_name => 'SEGMENT2'
2251 ,p_segment_number => 2
2252 ,p_value_set => null
2253 ,p_lov_prompt => 'Company'
2254 ,p_window_prompt => 'Company');
2255 else
2256 p_kf_cost_seg_tab(l_kf_cost_seg_count).appl_short_name := 'PAY';
2257 p_kf_cost_seg_tab(l_kf_cost_seg_count).flex_code := 'COST';
2258 p_kf_cost_seg_tab(l_kf_cost_seg_count).structure_code := l_cost_structures_code;
2259 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_name := 'Company';
2260 p_kf_cost_seg_tab(l_kf_cost_seg_count).column_name := 'SEGMENT2';
2261 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_number := 2;
2262 p_kf_cost_seg_tab(l_kf_cost_seg_count).value_set := null;
2263 p_kf_cost_seg_tab(l_kf_cost_seg_count).lov_prompt := 'Company';
2264 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_type := null;
2265 p_kf_cost_seg_tab(l_kf_cost_seg_count).window_prompt := 'Company';
2266
2267 --create technical summary data for valueset
2268 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2269 ,p_valueset_type => null
2270 ,p_structure_code => l_cost_structures_code
2271 ,p_segment_name => 'Company'
2272 ,p_segment_number => 2
2273 ,p_valueset_tab => l_kf_cost_valueset_tab);
2274
2275 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_value_set_name
2276 := l_kf_cost_valueset_tab(l_value_set_tab_count).value_set_name;
2277 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_description
2278 := l_kf_cost_valueset_tab(l_value_set_tab_count).description;
2279 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_security_available
2280 := l_kf_cost_valueset_tab(l_value_set_tab_count).security_available;
2281 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_enable_longlist
2282 := l_kf_cost_valueset_tab(l_value_set_tab_count).enable_longlist;
2283 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_format_type
2284 := l_kf_cost_valueset_tab(l_value_set_tab_count).format_type;
2285 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_maximum_size
2286 := l_kf_cost_valueset_tab(l_value_set_tab_count).maximum_size;
2287 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_precision
2288 := l_kf_cost_valueset_tab(l_value_set_tab_count).precision;
2289 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_numbers_only
2290 := l_kf_cost_valueset_tab(l_value_set_tab_count).numbers_only;
2291 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_uppercase_only
2292 := l_kf_cost_valueset_tab(l_value_set_tab_count).uppercase_only;
2293 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_right_justify_zero_fill
2294 := l_kf_cost_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2295 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_min_value
2296 := l_kf_cost_valueset_tab(l_value_set_tab_count).min_value;
2297 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_max_value
2298 := l_kf_cmp_valueset_tab(l_value_set_tab_count).max_value;
2299 l_kf_cost_seg_count := l_kf_cost_seg_count + 1 ;
2300 end if;
2301
2302 if NOT (p_technical_summary_mode) then
2303 per_ri_config_utilities.create_flex_segments
2304 (p_appl_short_Name => 'PAY'
2305 ,p_flex_code => 'COST'
2306 ,p_structure_code => l_cost_structures_code
2307 ,p_segment_name => 'Cost Center'
2308 ,p_column_name => 'SEGMENT3'
2309 ,p_segment_number => 3
2310 ,p_value_set => null
2311 ,p_lov_prompt => 'Cost Center'
2312 ,p_window_prompt => 'Cost Center');
2313
2314 else
2315 p_kf_cost_seg_tab(l_kf_cost_seg_count).appl_short_name := 'PAY';
2316 p_kf_cost_seg_tab(l_kf_cost_seg_count).flex_code := 'COST';
2317 p_kf_cost_seg_tab(l_kf_cost_seg_count).structure_code := l_cost_structures_code;
2318 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_name := 'Cost Center';
2319 p_kf_cost_seg_tab(l_kf_cost_seg_count).column_name := 'SEGMENT3';
2320 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_number := 3;
2321 p_kf_cost_seg_tab(l_kf_cost_seg_count).value_set := null;
2322 p_kf_cost_seg_tab(l_kf_cost_seg_count).lov_prompt := 'Cost Center';
2323 p_kf_cost_seg_tab(l_kf_cost_seg_count).segment_type := null;
2324 p_kf_cost_seg_tab(l_kf_cost_seg_count).window_prompt := 'Cost Center';
2325
2326 --create technical summary data for valueset
2327 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2328 ,p_valueset_type => null
2329 ,p_structure_code => l_cost_structures_code
2330 ,p_segment_name => 'Cost Center'
2331 ,p_segment_number => 3
2332 ,p_valueset_tab => l_kf_cost_valueset_tab);
2333
2334 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_value_set_name
2335 := l_kf_cost_valueset_tab(l_value_set_tab_count).value_set_name;
2336 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_description
2337 := l_kf_cost_valueset_tab(l_value_set_tab_count).description;
2338 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_security_available
2339 := l_kf_cost_valueset_tab(l_value_set_tab_count).security_available;
2340 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_enable_longlist
2341 := l_kf_cost_valueset_tab(l_value_set_tab_count).enable_longlist;
2342 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_format_type
2343 := l_kf_cost_valueset_tab(l_value_set_tab_count).format_type;
2344 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_maximum_size
2345 := l_kf_cost_valueset_tab(l_value_set_tab_count).maximum_size;
2346 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_precision
2347 := l_kf_cost_valueset_tab(l_value_set_tab_count).precision;
2348 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_numbers_only
2349 := l_kf_cost_valueset_tab(l_value_set_tab_count).numbers_only;
2350 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_uppercase_only
2351 := l_kf_cost_valueset_tab(l_value_set_tab_count).uppercase_only;
2352 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_right_justify_zero_fill
2353 := l_kf_cost_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2354 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_min_value
2355 := l_kf_cost_valueset_tab(l_value_set_tab_count).min_value;
2356 p_kf_cost_seg_tab(l_kf_cost_seg_count).vs_max_value
2357 := l_kf_cmp_valueset_tab(l_value_set_tab_count).max_value;
2358
2359 l_kf_cost_seg_count := l_kf_cost_seg_count + 1 ;
2360 end if;
2361 --
2362 -- freeze and compile this flexfield
2363 --
2364 if NOT (p_technical_summary_mode) then
2365 per_ri_config_utilities.freeze_and_compile_flexfield
2366 (p_appl_short_Name => 'PAY'
2367 ,p_flex_code => 'COST'
2368 ,p_structure_code => l_cost_structures_code);
2369 end if;
2370 EXCEPTION
2371 when others then
2372 l_error_message := 'Error in ' || l_proc;
2373 hr_utility.trace(l_error_message || '-' || sqlerrm);
2374 hr_utility.set_location(' Leaving:'|| l_proc, 500);
2375 hr_utility.raise_error;
2376
2377 END create_global_grp_cmp_cost_kf;
2378
2379 /* --------------------------------------------------------------------------
2380 -- Name : create_global_job_pos_kf
2381 -- Purpose : This procedure creates global jobs and positions keyflex structures,
2382 -- segments and valuesets when jobs/positions are not defined.
2383 -- Arguments : p_configuration_code
2384 --
2385 -------------------------------------------------------------------------- */
2386
2387 PROCEDURE create_global_job_pos_kf (p_configuration_code in varchar2
2388 ,p_technical_summary_mode in boolean default FALSE
2389 ,p_kf_job_tab in out nocopy
2390 per_ri_config_tech_summary.kf_job_tab
2391 ,p_kf_pos_tab in out nocopy
2392 per_ri_config_tech_summary.kf_pos_tab
2393 ,p_kf_job_seg_tab in out nocopy
2394 per_ri_config_tech_summary.kf_job_seg_tab
2395 ,p_kf_pos_seg_tab in out nocopy
2396 per_ri_config_tech_summary.kf_pos_seg_tab) IS
2397
2398 l_proc varchar2(72) := g_package || 'create_global_job_pos_kf';
2399 l_configuration_code per_ri_config_information.configuration_code%type;
2400 l_jobs_fk_number number(9);
2401 l_position_fk_number number(9);
2402
2403 l_enterprise_short_name per_ri_config_information.configuration_code%type;
2404
2405 l_job_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
2406 l_pos_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
2407 l_enterprise_primary_industry per_ri_config_information.config_information1%type;
2408
2409 l_kf_job_tab per_ri_config_tech_summary.kf_job_tab;
2410 l_kf_pos_tab per_ri_config_tech_summary.kf_pos_tab;
2411 l_kf_job_count number(8) :=0;
2412 l_kf_pos_count number(8) :=0;
2413
2414 l_kf_job_seg_tab per_ri_config_tech_summary.kf_job_seg_tab;
2415 l_kf_pos_seg_tab per_ri_config_tech_summary.kf_pos_seg_tab;
2416 l_kf_job_seg_count number(8) :=0;
2417 l_kf_pos_seg_count number(8) :=0;
2418
2419 l_kf_job_valueset_tab per_ri_config_tech_summary.valueset_tab;
2420 l_kf_pos_valueset_tab per_ri_config_tech_summary.valueset_tab;
2421 l_value_set_tab_count number(9) := 1;
2422
2423 l_log_message varchar2(360);
2424 l_error_message varchar2(360);
2425
2426 BEGIN
2427 hr_utility.set_location('Entering:'|| l_proc, 10);
2428
2429 l_enterprise_short_name := per_ri_config_utilities.get_enterprise_short_name(p_configuration_code);
2430
2431 -- Create Global Jobs Key flex
2432 hr_utility.set_location(l_proc, 20);
2433 l_job_structures_code := per_ri_config_utilities.return_config_entity_name
2434 (per_ri_config_main.g_global_job_structure_name);
2435
2436
2437 if NOT (p_technical_summary_mode) then
2438 l_jobs_fk_number := per_ri_config_utilities.create_key_flexfield
2439 (p_appl_short_name => 'PER'
2440 ,p_flex_code => 'JOB'
2441 ,p_structure_code => l_job_structures_code
2442 ,p_structure_title => l_job_structures_code
2443 ,p_description => l_job_structures_code);
2444
2445
2446 else
2447 p_kf_job_tab(l_kf_job_count).appl_short_name := 'PER';
2448 p_kf_job_tab(l_kf_job_count).flex_code := 'JOB';
2449 p_kf_job_tab(l_kf_job_count).structure_code := l_job_structures_code;
2450 p_kf_job_tab(l_kf_job_count).structure_title := l_job_structures_code;
2451 p_kf_job_tab(l_kf_job_count).description := l_job_structures_code;
2452 l_kf_job_count := l_kf_job_count + 1 ;
2453 end if;
2454
2455 l_enterprise_primary_industry := per_ri_config_utilities.get_ent_primary_industry
2456 (p_configuration_code => p_configuration_code);
2457
2458 l_log_message := 'Created KEYFLEX PER JOB ' || l_job_structures_code;
2459 per_ri_config_utilities.write_log(p_message => l_log_message);
2460
2461 -- Create Position Key flex
2462 hr_utility.set_location(l_proc, 30);
2463 l_pos_structures_code := per_ri_config_utilities.return_config_entity_name
2464 (per_ri_config_main.g_global_pos_structure_name);
2465 if NOT (p_technical_summary_mode) then
2466 l_position_fk_number := per_ri_config_utilities.create_key_flexfield
2467 (p_appl_short_Name => 'PER'
2468 ,p_flex_code => 'POS'
2469 ,p_structure_code => l_pos_structures_code
2470 ,p_structure_title => l_pos_structures_code
2471 ,p_description => l_pos_structures_code);
2472 else
2473 p_kf_pos_tab(l_kf_pos_count).appl_short_name := 'PER';
2474 p_kf_pos_tab(l_kf_pos_count).flex_code := 'POS';
2475 p_kf_pos_tab(l_kf_pos_count).structure_code := l_pos_structures_code;
2476 p_kf_pos_tab(l_kf_pos_count).structure_title := l_pos_structures_code;
2477 p_kf_pos_tab(l_kf_pos_count).description := l_pos_structures_code;
2478 l_kf_pos_count := l_kf_pos_count + 1 ;
2479 end if;
2480
2481
2482 l_log_message := 'Created KEYFLEX PER POS ' || l_pos_structures_code;
2483 per_ri_config_utilities.write_log(p_message => l_log_message);
2484
2485 hr_utility.set_location(l_proc, 40);
2486
2487 if l_enterprise_primary_industry <> 'US_GOVERNMENT' then
2488 hr_utility.set_location(l_proc, 50);
2489
2490 -- Create Jobs Key Flex Segments
2491
2492 if NOT (p_technical_summary_mode) then
2493 per_ri_config_utilities.create_flex_segments
2494 (p_appl_short_Name => 'PER'
2495 ,p_flex_code => 'JOB'
2496 ,p_structure_code => l_job_structures_code
2497 ,p_segment_name => 'Job Name'
2498 ,p_column_name => 'SEGMENT1'
2499 ,p_segment_number => 1
2500 ,p_value_set => null
2501 ,p_lov_prompt => 'Job Name'
2502 ,p_window_prompt => 'Job Name');
2503 else
2504 p_kf_job_seg_tab(l_kf_job_seg_count).appl_short_name := 'PER';
2505 p_kf_job_seg_tab(l_kf_job_seg_count).flex_code := 'JOB';
2506 p_kf_job_seg_tab(l_kf_job_seg_count).structure_code := l_job_structures_code;
2507 p_kf_job_seg_tab(l_kf_job_seg_count).segment_name := 'Job Name';
2508 p_kf_job_seg_tab(l_kf_job_seg_count).column_name := 'SEGMENT1';
2509 p_kf_job_seg_tab(l_kf_job_seg_count).segment_number := 1;
2510 p_kf_job_seg_tab(l_kf_job_seg_count).value_set := null;
2511 p_kf_job_seg_tab(l_kf_job_seg_count).lov_prompt := 'Job Name';
2512 p_kf_job_seg_tab(l_kf_job_seg_count).segment_type := null;
2513 p_kf_job_seg_tab(l_kf_job_seg_count).window_prompt := 'Job Name';
2514
2515 --create technical summary data for valueset
2516 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2517 ,p_valueset_type => null
2518 ,p_structure_code => l_job_structures_code
2519 ,p_segment_name => 'Job Name'
2520 ,p_segment_number => 1
2521 ,p_valueset_tab => l_kf_job_valueset_tab);
2522
2523 p_kf_job_seg_tab(l_kf_job_seg_count).vs_value_set_name
2524 := l_kf_job_valueset_tab(l_value_set_tab_count).value_set_name;
2525 p_kf_job_seg_tab(l_kf_job_seg_count).vs_description
2526 := l_kf_job_valueset_tab(l_value_set_tab_count).description;
2527 p_kf_job_seg_tab(l_kf_job_seg_count).vs_security_available
2528 := l_kf_job_valueset_tab(l_value_set_tab_count).security_available;
2529 p_kf_job_seg_tab(l_kf_job_seg_count).vs_enable_longlist
2530 := l_kf_job_valueset_tab(l_value_set_tab_count).enable_longlist;
2531 p_kf_job_seg_tab(l_kf_job_seg_count).vs_format_type
2532 := l_kf_job_valueset_tab(l_value_set_tab_count).format_type;
2533 p_kf_job_seg_tab(l_kf_job_seg_count).vs_maximum_size
2534 := l_kf_job_valueset_tab(l_value_set_tab_count).maximum_size;
2535 p_kf_job_seg_tab(l_kf_job_seg_count).vs_precision
2536 := l_kf_job_valueset_tab(l_value_set_tab_count).precision;
2537 p_kf_job_seg_tab(l_kf_job_seg_count).vs_numbers_only
2538 := l_kf_job_valueset_tab(l_value_set_tab_count).numbers_only;
2539 p_kf_job_seg_tab(l_kf_job_seg_count).vs_uppercase_only
2540 := l_kf_job_valueset_tab(l_value_set_tab_count).uppercase_only;
2541 p_kf_job_seg_tab(l_kf_job_seg_count).vs_right_justify_zero_fill
2542 := l_kf_job_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2543 p_kf_job_seg_tab(l_kf_job_seg_count).vs_min_value
2544 := l_kf_job_valueset_tab(l_value_set_tab_count).min_value;
2545 p_kf_job_seg_tab(l_kf_job_seg_count).vs_max_value
2546 := l_kf_job_valueset_tab(l_value_set_tab_count).max_value;
2547 l_kf_job_seg_count := l_kf_job_seg_count + 1 ;
2548 end if;
2549
2550 l_log_message := 'Created KEYFLEX SEGMENT : PER JOB ' || 'Job Name';
2551 per_ri_config_utilities.write_log(p_message => l_log_message);
2552
2553 -- Create Position Key Flex Segments
2554 if NOT (p_technical_summary_mode) then
2555 per_ri_config_utilities.create_flex_segments
2556 (p_appl_short_Name => 'PER'
2557 ,p_flex_code => 'POS'
2558 ,p_structure_code => l_pos_structures_code
2559 ,p_segment_name => 'Position Name'
2560 ,p_column_name => 'SEGMENT1'
2561 ,p_segment_number => 1
2562 ,p_value_set => null
2563 ,p_lov_prompt => 'Position Name'
2564 ,p_window_prompt => 'Position Name');
2565 else
2566 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2567 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2568 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2569 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Position Name';
2570 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT1';
2571 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 1;
2572 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := null;
2573 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Position Name';
2574 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := null;
2575 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Position Name';
2576
2577 --create technical summary data for valueset
2578 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2579 ,p_valueset_type => null
2580 ,p_structure_code => l_pos_structures_code
2581 ,p_segment_name => 'Position Name'
2582 ,p_segment_number => 1
2583 ,p_valueset_tab => l_kf_pos_valueset_tab);
2584
2585 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2586 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2587 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2588 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2589 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2590 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2591 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2592 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2593 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2594 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2595 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2596 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2597 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2598 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2599 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2600 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2601 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2602 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2603 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2604 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2605 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2606 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2607 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2608 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2609 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2610 end if;
2611
2612 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || l_pos_structures_code;
2613 per_ri_config_utilities.write_log(p_message => l_log_message);
2614
2615 hr_utility.set_location(l_proc, 60);
2616 else
2617 hr_utility.set_location(l_proc, 70);
2618 hr_utility.trace('Positions : Industry is US_GOVERNMENT');
2619
2620 -- create only federal job segments with specified value segment name valuesets.
2621 -- First Segment 'Name' valueset '60 Characters'
2622 if NOT (p_technical_summary_mode) then
2623 per_ri_config_utilities.create_flex_segments
2624 (p_appl_short_Name => 'PER'
2625 ,p_flex_code => 'JOB'
2626 ,p_structure_code => l_job_structures_code
2627 ,p_segment_name => 'Name'
2628 ,p_column_name => 'SEGMENT1'
2629 ,p_segment_number => 1
2630 ,p_value_set => '60 Characters'
2631 ,p_lov_prompt => 'Name'
2632 ,p_segment_type => 'Char'
2633 ,p_window_prompt => 'Name'
2634 ,p_fed_seg_attribute => 'Y');
2635
2636 else
2637 p_kf_job_seg_tab(l_kf_job_seg_count).appl_short_name := 'PER';
2638 p_kf_job_seg_tab(l_kf_job_seg_count).flex_code := 'JOB';
2639 p_kf_job_seg_tab(l_kf_job_seg_count).structure_code := l_job_structures_code;
2640 p_kf_job_seg_tab(l_kf_job_seg_count).segment_name := 'Name';
2641 p_kf_job_seg_tab(l_kf_job_seg_count).column_name := 'SEGMENT1';
2642 p_kf_job_seg_tab(l_kf_job_seg_count).segment_number := 1;
2643 p_kf_job_seg_tab(l_kf_job_seg_count).value_set := '60 Characters';
2644 p_kf_job_seg_tab(l_kf_job_seg_count).lov_prompt := 'Name';
2645 p_kf_job_seg_tab(l_kf_job_seg_count).segment_type := 'Char';
2646 p_kf_job_seg_tab(l_kf_job_seg_count).window_prompt := 'Name';
2647
2648 --create technical summary data for valueset
2649 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
2650 ,p_valueset_type => 'Char'
2651 ,p_structure_code => l_job_structures_code
2652 ,p_segment_name => 'Name'
2653 ,p_segment_number => 1
2654 ,p_valueset_tab => l_kf_job_valueset_tab);
2655
2656 p_kf_job_seg_tab(l_kf_job_seg_count).vs_value_set_name
2657 := l_kf_job_valueset_tab(l_value_set_tab_count).value_set_name;
2658 p_kf_job_seg_tab(l_kf_job_seg_count).vs_description
2659 := l_kf_job_valueset_tab(l_value_set_tab_count).description;
2660 p_kf_job_seg_tab(l_kf_job_seg_count).vs_security_available
2661 := l_kf_job_valueset_tab(l_value_set_tab_count).security_available;
2662 p_kf_job_seg_tab(l_kf_job_seg_count).vs_enable_longlist
2663 := l_kf_job_valueset_tab(l_value_set_tab_count).enable_longlist;
2664 p_kf_job_seg_tab(l_kf_job_seg_count).vs_format_type
2665 := l_kf_job_valueset_tab(l_value_set_tab_count).format_type;
2666 p_kf_job_seg_tab(l_kf_job_seg_count).vs_maximum_size
2667 := l_kf_job_valueset_tab(l_value_set_tab_count).maximum_size;
2668 p_kf_job_seg_tab(l_kf_job_seg_count).vs_precision
2669 := l_kf_job_valueset_tab(l_value_set_tab_count).precision;
2670 p_kf_job_seg_tab(l_kf_job_seg_count).vs_numbers_only
2671 := l_kf_job_valueset_tab(l_value_set_tab_count).numbers_only;
2672 p_kf_job_seg_tab(l_kf_job_seg_count).vs_uppercase_only
2673 := l_kf_job_valueset_tab(l_value_set_tab_count).uppercase_only;
2674 p_kf_job_seg_tab(l_kf_job_seg_count).vs_right_justify_zero_fill
2675 := l_kf_job_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2676 p_kf_job_seg_tab(l_kf_job_seg_count).vs_min_value
2677 := l_kf_job_valueset_tab(l_value_set_tab_count).min_value;
2678 p_kf_job_seg_tab(l_kf_job_seg_count).vs_max_value
2679 := l_kf_job_valueset_tab(l_value_set_tab_count).max_value;
2680 l_kf_job_seg_count := l_kf_job_seg_count + 1 ;
2681 end if;
2682
2683 -- create only federal position segments with specified value segment name valuesets.
2684 -- First Segment
2685 if NOT (p_technical_summary_mode) then
2686 per_ri_config_utilities.create_flex_segments
2687 (p_appl_short_Name => 'PER'
2688 ,p_flex_code => 'POS'
2689 ,p_structure_code => l_pos_structures_code
2690 ,p_segment_name => 'Position Title'
2691 ,p_column_name => 'SEGMENT1'
2692 ,p_segment_number => 1
2693 ,p_value_set => 'GHR_US_POSITION_TITLE'
2694 ,p_lov_prompt => 'Position Title'
2695 ,p_segment_type => 'Char'
2696 ,p_window_prompt => 'Position Title'
2697 ,p_fed_seg_attribute => 'Y');
2698
2699 else
2700 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2701 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2702 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2703 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Position Title';
2704 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT1';
2705 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 1;
2706 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_POSITION_TITLE';
2707 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Position Title';
2708 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
2709 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Position Title';
2710
2711 --create technical summary data for valueset
2712 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POSITION_TITLE'
2713 ,p_valueset_type => 'Char'
2714 ,p_structure_code => l_pos_structures_code
2715 ,p_segment_name => 'Position Title'
2716 ,p_segment_number => 1
2717 ,p_valueset_tab => l_kf_pos_valueset_tab);
2718
2719 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2720 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2721 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2722 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2723 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2724 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2725 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2726 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2727 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2728 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2729 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2730 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2731 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2732 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2733 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2734 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2735 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2736 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2737 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2738 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2739 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2740 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2741 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2742 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2743 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2744 end if;
2745
2746 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Position Title';
2747 per_ri_config_utilities.write_log(p_message => l_log_message);
2748
2749 -- Second Segment
2750 if NOT (p_technical_summary_mode) then
2751 per_ri_config_utilities.create_flex_segments
2752 (p_appl_short_Name => 'PER'
2753 ,p_flex_code => 'POS'
2754 ,p_structure_code => l_pos_structures_code
2755 ,p_segment_name => 'Description'
2756 ,p_column_name => 'SEGMENT2'
2757 ,p_segment_number => 2
2758 ,p_value_set => 'GHR_US_POS_DESC_NUM'
2759 ,p_lov_prompt => 'Description'
2760 ,p_segment_type => 'Char'
2761 ,p_window_prompt => 'Description'
2762 ,p_fed_seg_attribute => 'Y');
2763 else
2764 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2765 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2766 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2767 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Description';
2768 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT2';
2769 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 2;
2770 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_POS_DESC_NUM';
2771 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Description';
2772 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
2773 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Description';
2774
2775 --create technical summary data for valueset
2776 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POS_DESC_NUM'
2777 ,p_valueset_type => 'Char'
2778 ,p_structure_code => l_pos_structures_code
2779 ,p_segment_name => 'Description'
2780 ,p_segment_number => 2
2781 ,p_valueset_tab => l_kf_pos_valueset_tab);
2782
2783 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2784 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2785 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2786 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2787 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2788 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2789 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2790 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2791 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2792 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2793 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2794 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2795 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2796 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2797 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2798 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2799 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2800 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2801 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2802 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2803 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2804 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2805 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2806 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2807 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2808 end if;
2809
2810 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Description';
2811 per_ri_config_utilities.write_log(p_message => l_log_message);
2812
2813 -- Third Segment
2814 if NOT (p_technical_summary_mode) then
2815 per_ri_config_utilities.create_flex_segments
2816 (p_appl_short_Name => 'PER'
2817 ,p_flex_code => 'POS'
2818 ,p_structure_code => l_pos_structures_code
2819 ,p_segment_name => 'Sequence'
2820 ,p_column_name => 'SEGMENT3'
2821 ,p_segment_number => 3
2822 ,p_value_set => 'GHR_US_SEQUENCE_NUM'
2823 ,p_lov_prompt => 'Sequence'
2824 ,p_segment_type => 'Char'
2825 ,p_window_prompt => 'Sequence'
2826 ,p_fed_seg_attribute => 'Y');
2827 else
2828 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2829 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2830 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2831 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Sequence';
2832 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT3';
2833 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 3;
2834 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_SEQUENCE_NUM';
2835 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Sequence';
2836 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
2837 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Sequence';
2838
2839 --create technical summary data for valueset
2840 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_SEQUENCE_NUM'
2841 ,p_valueset_type => 'Char'
2842 ,p_structure_code => l_pos_structures_code
2843 ,p_segment_name => 'Sequence'
2844 ,p_segment_number => 3
2845 ,p_valueset_tab => l_kf_pos_valueset_tab);
2846
2847 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2848 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2849 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2850 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2851 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2852 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2853 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2854 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2855 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2856 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2857 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2858 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2859 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2860 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2861 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2862 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2863 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2864 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2865 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2866 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2867 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2868 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2869 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2870 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2871 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2872 end if;
2873
2874 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Sequence';
2875 per_ri_config_utilities.write_log(p_message => l_log_message);
2876 -- Fourth Segment
2877 if NOT (p_technical_summary_mode) then
2878 per_ri_config_utilities.create_flex_segments
2879 (p_appl_short_Name => 'PER'
2880 ,p_flex_code => 'POS'
2881 ,p_structure_code => l_pos_structures_code
2882 ,p_segment_name => 'Agency Code'
2883 ,p_column_name => 'SEGMENT4'
2884 ,p_segment_number => 4
2885 ,p_value_set => 'GHR_US_AGENCY_CODE'
2886 ,p_lov_prompt => 'Agency Code'
2887 ,p_segment_type => 'Char'
2888 ,p_window_prompt => 'Agency Code'
2889 ,p_fed_seg_attribute => 'Y');
2890 else
2891 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
2892 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
2893 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
2894 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Agency Code';
2895 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT4';
2896 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 4;
2897 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_AGENCY_CODE';
2898 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Agency Code';
2899 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
2900 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Agency Code';
2901
2902 --create technical summary data for valueset
2903 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_AGENCY_CODE'
2904 ,p_valueset_type => 'Char'
2905 ,p_structure_code => l_pos_structures_code
2906 ,p_segment_name => 'Agency Code'
2907 ,p_segment_number => 4
2908 ,p_valueset_tab => l_kf_pos_valueset_tab);
2909
2910 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
2911 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
2912 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
2913 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
2914 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
2915 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
2916 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
2917 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
2918 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
2919 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
2920 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
2921 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
2922 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
2923 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
2924 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
2925 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
2926 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
2927 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
2928 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
2929 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
2930 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
2931 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
2932 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
2933 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
2934 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
2935 end if;
2936
2937 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Agency Code';
2938 per_ri_config_utilities.write_log(p_message => l_log_message);
2939 hr_utility.set_location(l_proc, 90);
2940 end if;
2941
2942 --
2943 -- freeze and compile this flexfield
2944 --
2945 if NOT (p_technical_summary_mode) then
2946 per_ri_config_utilities.freeze_and_compile_flexfield
2947 (p_appl_short_Name => 'PER'
2948 ,p_flex_code => 'JOB'
2949 ,p_structure_code => l_job_structures_code);
2950 end if;
2951
2952 --
2953 -- freeze and compile this flexfield
2954 --
2955 if NOT (p_technical_summary_mode) then
2956 per_ri_config_utilities.freeze_and_compile_flexfield
2957 (p_appl_short_Name => 'PER'
2958 ,p_flex_code => 'POS'
2959 ,p_structure_code => l_pos_structures_code);
2960 end if;
2961
2962 hr_utility.set_location(' Leaving:'|| l_proc, 100);
2963
2964 EXCEPTION
2965 when others then
2966 l_error_message := 'Error in ' || l_proc;
2967 hr_utility.trace(l_error_message || '-' || sqlerrm);
2968 hr_utility.set_location(' Leaving:'|| l_proc, 500);
2969 hr_utility.raise_error;
2970
2971 END create_global_job_pos_kf;
2972
2973 /* --------------------------------------------------------------------------
2974 -- Name : create_global_pos_kf
2975 -- Purpose : This procedure creates global positions keyflex structures,
2976 -- segments and valuesets when positions are not defined.
2977 -- Arguments : p_configuration_code
2978 --
2979 -------------------------------------------------------------------------- */
2980
2981 PROCEDURE create_global_pos_kf (p_configuration_code in varchar2
2982 ,p_technical_summary_mode in boolean default FALSE
2983 ,p_kf_pos_tab in out nocopy
2984 per_ri_config_tech_summary.kf_pos_tab
2985 ,p_kf_pos_seg_tab in out nocopy
2986 per_ri_config_tech_summary.kf_pos_seg_tab) IS
2987
2988 l_proc varchar2(72) := g_package || 'create_global_pos_kf';
2989 l_configuration_code per_ri_config_information.configuration_code%type;
2990 l_position_fk_number number(9);
2991
2992 l_enterprise_short_name per_ri_config_information.configuration_code%type;
2993
2994 l_pos_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
2995 l_enterprise_primary_industry per_ri_config_information.config_information1%type;
2996 l_log_message varchar2(360);
2997 l_error_message varchar2(360);
2998
2999 l_kf_pos_tab per_ri_config_tech_summary.kf_pos_tab;
3000 l_kf_pos_count number(8) :=0;
3001 l_kf_pos_seg_tab per_ri_config_tech_summary.kf_pos_seg_tab;
3002 l_kf_pos_seg_count number(8) :=0;
3003
3004 l_kf_pos_valueset_tab per_ri_config_tech_summary.valueset_tab;
3005 l_value_set_tab_count number(9) := 1;
3006
3007
3008 BEGIN
3009 hr_utility.set_location('Entering:'|| l_proc, 10);
3010
3011 l_enterprise_short_name := per_ri_config_utilities.get_enterprise_short_name(p_configuration_code);
3012
3013 l_enterprise_primary_industry := per_ri_config_utilities.get_ent_primary_industry
3014 (p_configuration_code => p_configuration_code);
3015
3016 -- Create Position Key flex
3017 hr_utility.set_location(l_proc, 20);
3018
3019 l_pos_structures_code := per_ri_config_utilities.return_config_entity_name
3020 (per_ri_config_main.g_global_pos_structure_name);
3021 if NOT (p_technical_summary_mode) then
3022 l_position_fk_number := per_ri_config_utilities.create_key_flexfield
3023 (p_appl_short_Name => 'PER'
3024 ,p_flex_code => 'POS'
3025 ,p_structure_code => l_pos_structures_code
3026 ,p_structure_title => l_pos_structures_code
3027 ,p_description => l_pos_structures_code);
3028 else
3029 p_kf_pos_tab(l_kf_pos_count).appl_short_name := 'PER';
3030 p_kf_pos_tab(l_kf_pos_count).flex_code := 'POS';
3031 p_kf_pos_tab(l_kf_pos_count).structure_code := l_pos_structures_code;
3032 p_kf_pos_tab(l_kf_pos_count).structure_title := l_pos_structures_code;
3033 p_kf_pos_tab(l_kf_pos_count).description := l_pos_structures_code;
3034 l_kf_pos_count := l_kf_pos_count + 1 ;
3035 end if;
3036
3037 l_log_message := 'Created KEYFLEX PER POS ' || l_pos_structures_code;
3038 per_ri_config_utilities.write_log(p_message => l_log_message);
3039
3040 hr_utility.set_location(l_proc, 30);
3041
3042 if l_enterprise_primary_industry <> 'US_GOVERNMENT' then
3043 hr_utility.set_location(l_proc, 50);
3044
3045 -- Create Position Key Flex Segments
3046 if NOT (p_technical_summary_mode) then
3047 per_ri_config_utilities.create_flex_segments
3048 (p_appl_short_Name => 'PER'
3049 ,p_flex_code => 'POS'
3050 ,p_structure_code => l_pos_structures_code
3051 ,p_segment_name => 'Position Name'
3052 ,p_column_name => 'SEGMENT1'
3053 ,p_segment_number => 1
3054 ,p_value_set => null
3055 ,p_lov_prompt => 'Position Name'
3056 ,p_window_prompt => 'Position Name');
3057 else
3058 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
3059 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3060 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3061 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Position Name';
3062 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT1';
3063 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 1;
3064 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := null;
3065 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Position Name';
3066 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := null;
3067 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Position Name';
3068
3069 --create technical summary data for valueset
3070 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
3071 ,p_valueset_type => null
3072 ,p_structure_code => l_pos_structures_code
3073 ,p_segment_name => 'Position Name'
3074 ,p_segment_number => 1
3075 ,p_valueset_tab => l_kf_pos_valueset_tab);
3076
3077 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3078 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3079 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3080 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3081 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3082 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3083 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3084 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3085 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3086 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3087 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3088 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3089 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3090 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3091 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3092 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3093 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3094 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3095 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3096 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3097 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3098 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3099 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3100 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3101 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3102 end if;
3103
3104 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || l_pos_structures_code;
3105 per_ri_config_utilities.write_log(p_message => l_log_message);
3106
3107 hr_utility.set_location(l_proc, 60);
3108 else
3109 hr_utility.set_location(l_proc, 70);
3110 hr_utility.trace('Positions : Industry is US_GOVERNMENT');
3111
3112 -- create only federal position segments with specified value segment name valuesets.
3113 -- First Segment
3114 if NOT (p_technical_summary_mode) then
3115 per_ri_config_utilities.create_flex_segments
3116 (p_appl_short_Name => 'PER'
3117 ,p_flex_code => 'POS'
3118 ,p_structure_code => l_pos_structures_code
3119 ,p_segment_name => 'Position Title'
3120 ,p_column_name => 'SEGMENT1'
3121 ,p_segment_number => 1
3122 ,p_value_set => 'GHR_US_POSITION_TITLE'
3123 ,p_lov_prompt => 'Position Title'
3124 ,p_segment_type => 'Char'
3125 ,p_window_prompt => 'Position Title'
3126 ,p_fed_seg_attribute => 'Y');
3127 else
3128 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
3129 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3130 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3131 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Position Title';
3132 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT1';
3133 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 1;
3134 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_POSITION_TITLE';
3135 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Position Title';
3136 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
3137 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Position Title';
3138
3139 --create technical summary data for valueset
3140 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POSITION_TITLE'
3141 ,p_valueset_type => 'Char'
3142 ,p_structure_code => l_pos_structures_code
3143 ,p_segment_name => 'Position Title'
3144 ,p_segment_number => 1
3145 ,p_valueset_tab => l_kf_pos_valueset_tab);
3146
3147 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3148 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3149 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3150 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3151 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3152 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3153 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3154 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3155 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3156 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3157 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3158 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3159 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3160 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3161 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3162 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3163 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3164 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3165 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3166 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3167 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3168 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3169 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3170 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3171 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3172 end if;
3173
3174 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Position Title';
3175 per_ri_config_utilities.write_log(p_message => l_log_message);
3176
3177 -- Second Segment
3178 if NOT (p_technical_summary_mode) then
3179 per_ri_config_utilities.create_flex_segments
3180 (p_appl_short_Name => 'PER'
3181 ,p_flex_code => 'POS'
3182 ,p_structure_code => l_pos_structures_code
3183 ,p_segment_name => 'Description'
3184 ,p_column_name => 'SEGMENT2'
3185 ,p_segment_number => 2
3186 ,p_value_set => 'GHR_US_POS_DESC_NUM'
3187 ,p_lov_prompt => 'Description'
3188 ,p_segment_type => 'Char'
3189 ,p_window_prompt => 'Description'
3190 ,p_fed_seg_attribute => 'Y');
3191 else
3192 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
3193 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3194 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3195 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Description';
3196 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT2';
3197 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 2;
3198 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_POS_DESC_NUM';
3199 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Description';
3200 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
3201 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Description';
3202
3203 --create technical summary data for valueset
3204 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_POS_DESC_NUM'
3205 ,p_valueset_type => 'Char'
3206 ,p_structure_code => l_pos_structures_code
3207 ,p_segment_name => 'Description'
3208 ,p_segment_number => 2
3209 ,p_valueset_tab => l_kf_pos_valueset_tab);
3210
3211 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3212 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3213 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3214 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3215 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3216 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3217 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3218 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3219 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3220 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3221 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3222 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3223 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3224 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3225 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3226 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3227 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3228 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3229 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3230 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3231 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3232 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3233 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3234 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3235 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3236 end if;
3237
3238 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Description';
3239 per_ri_config_utilities.write_log(p_message => l_log_message);
3240
3241 -- Third Segment
3242 if NOT (p_technical_summary_mode) then
3243 per_ri_config_utilities.create_flex_segments
3244 (p_appl_short_Name => 'PER'
3245 ,p_flex_code => 'POS'
3246 ,p_structure_code => l_pos_structures_code
3247 ,p_segment_name => 'Sequence'
3248 ,p_column_name => 'SEGMENT3'
3249 ,p_segment_number => 3
3250 ,p_value_set => 'GHR_US_SEQUENCE_NUM'
3251 ,p_lov_prompt => 'Sequence'
3252 ,p_segment_type => 'Char'
3253 ,p_window_prompt => 'Sequence'
3254 ,p_fed_seg_attribute => 'Y');
3255
3256 else
3257 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
3258 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3259 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3260 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Sequence';
3261 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT3';
3262 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 3;
3263 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_SEQUENCE_NUM';
3264 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Sequence';
3265 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
3266 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Sequence';
3267
3268 --create technical summary data for valueset
3269 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_SEQUENCE_NUM'
3270 ,p_valueset_type => 'Char'
3271 ,p_structure_code => l_pos_structures_code
3272 ,p_segment_name => 'Sequence'
3273 ,p_segment_number => 3
3274 ,p_valueset_tab => l_kf_pos_valueset_tab);
3275
3276 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3277 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3278 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3279 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3280 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3281 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3282 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3283 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3284 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3285 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3286 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3287 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3288 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3289 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3290 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3291 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3292 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3293 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3294 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3295 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3296 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3297 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3298 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3299 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3300 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3301 end if;
3302 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Sequence';
3303 per_ri_config_utilities.write_log(p_message => l_log_message);
3304 -- Fourth Segment
3305 if NOT (p_technical_summary_mode) then
3306 per_ri_config_utilities.create_flex_segments
3307 (p_appl_short_Name => 'PER'
3308 ,p_flex_code => 'POS'
3309 ,p_structure_code => l_pos_structures_code
3310 ,p_segment_name => 'Agency Code'
3311 ,p_column_name => 'SEGMENT4'
3312 ,p_segment_number => 4
3313 ,p_value_set => 'GHR_US_AGENCY_CODE'
3314 ,p_lov_prompt => 'Agency Code'
3315 ,p_segment_type => 'Char'
3316 ,p_window_prompt => 'Agency Code'
3317 ,p_fed_seg_attribute => 'Y');
3318 else
3319 p_kf_pos_seg_tab(l_kf_pos_seg_count).appl_short_name := 'PER';
3320 p_kf_pos_seg_tab(l_kf_pos_seg_count).flex_code := 'POS';
3321 p_kf_pos_seg_tab(l_kf_pos_seg_count).structure_code := l_pos_structures_code;
3322 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_name := 'Agency Code';
3323 p_kf_pos_seg_tab(l_kf_pos_seg_count).column_name := 'SEGMENT4';
3324 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_number := 4;
3325 p_kf_pos_seg_tab(l_kf_pos_seg_count).value_set := 'GHR_US_AGENCY_CODE';
3326 p_kf_pos_seg_tab(l_kf_pos_seg_count).lov_prompt := 'Agency Code';
3327 p_kf_pos_seg_tab(l_kf_pos_seg_count).segment_type := 'Char';
3328 p_kf_pos_seg_tab(l_kf_pos_seg_count).window_prompt := 'Agency Code';
3329
3330 --create technical summary data for valueset
3331 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => 'GHR_US_AGENCY_CODE'
3332 ,p_valueset_type => 'Char'
3333 ,p_structure_code => l_pos_structures_code
3334 ,p_segment_name => 'Agency Code'
3335 ,p_segment_number => 4
3336 ,p_valueset_tab => l_kf_pos_valueset_tab);
3337
3338 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_value_set_name
3339 := l_kf_pos_valueset_tab(l_value_set_tab_count).value_set_name;
3340 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_description
3341 := l_kf_pos_valueset_tab(l_value_set_tab_count).description;
3342 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_security_available
3343 := l_kf_pos_valueset_tab(l_value_set_tab_count).security_available;
3344 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_enable_longlist
3345 := l_kf_pos_valueset_tab(l_value_set_tab_count).enable_longlist;
3346 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_format_type
3347 := l_kf_pos_valueset_tab(l_value_set_tab_count).format_type;
3348 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_maximum_size
3349 := l_kf_pos_valueset_tab(l_value_set_tab_count).maximum_size;
3350 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_precision
3351 := l_kf_pos_valueset_tab(l_value_set_tab_count).precision;
3352 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_numbers_only
3353 := l_kf_pos_valueset_tab(l_value_set_tab_count).numbers_only;
3354 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_uppercase_only
3355 := l_kf_pos_valueset_tab(l_value_set_tab_count).uppercase_only;
3356 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_right_justify_zero_fill
3357 := l_kf_pos_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3358 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_min_value
3359 := l_kf_pos_valueset_tab(l_value_set_tab_count).min_value;
3360 p_kf_pos_seg_tab(l_kf_pos_seg_count).vs_max_value
3361 := l_kf_pos_valueset_tab(l_value_set_tab_count).max_value;
3362 l_kf_pos_seg_count := l_kf_pos_seg_count + 1 ;
3363 end if;
3364
3365 l_log_message := 'Created KEYFLEX SEGMENT : PER POS ' || 'Agency Code';
3366 per_ri_config_utilities.write_log(p_message => l_log_message);
3367 hr_utility.set_location(l_proc, 90);
3368 end if;
3369
3370 --
3371 -- freeze and compile this flexfield
3372 --
3373 per_ri_config_utilities.freeze_and_compile_flexfield
3374 (p_appl_short_Name => 'PER'
3375 ,p_flex_code => 'POS'
3376 ,p_structure_code => l_pos_structures_code);
3377
3378 hr_utility.set_location(' Leaving:'|| l_proc, 100);
3379
3380 EXCEPTION
3381 when others then
3382 l_error_message := 'Error in ' || l_proc;
3383 hr_utility.trace(l_error_message || '-' || sqlerrm);
3384 hr_utility.set_location(' Leaving:'|| l_proc, 500);
3385 hr_utility.raise_error;
3386
3387 END create_global_pos_kf;
3388
3389 /* --------------------------------------------------------------------------
3390 -- Name : create_global_grd_kf
3391 -- Purpose : This procedure creates grades keyflex structures, segments and
3392 -- valuesets when grades are not defined.
3393 -- Arguments : p_configuration_code
3394 --
3395 -------------------------------------------------------------------------- */
3396 PROCEDURE create_global_grd_kf (p_configuration_code in varchar2
3397 ,p_technical_summary_mode in boolean default FALSE
3398 ,p_kf_grd_tab in out nocopy
3399 per_ri_config_tech_summary.kf_grd_tab
3400 ,p_kf_grd_seg_tab in out nocopy
3401 per_ri_config_tech_summary.kf_grd_seg_tab) IS
3402
3403 l_proc varchar2(72) := g_package || 'create_global_grd_kf';
3404 l_log_message varchar2(360);
3405 l_kf_grd_tab per_ri_config_tech_summary.kf_grd_tab;
3406 l_kf_grd_count number(8) := 0;
3407 l_error_message varchar2(360);
3408 l_kf_grd_seg_tab per_ri_config_tech_summary.kf_grd_seg_tab;
3409 l_kf_grd_seg_count number(8) := 0;
3410
3411 l_configuration_code per_ri_config_information.configuration_code%type;
3412 l_grade_number number(9);
3413
3414 l_kf_grd_valueset_tab per_ri_config_tech_summary.valueset_tab;
3415 l_value_set_tab_count number(9) := 1;
3416
3417 l_enterprise_short_name per_ri_config_information.configuration_code%type;
3418
3419 l_grd_structures_code fnd_id_flex_structures.id_flex_structure_code%type;
3420 l_enterprise_primary_industry per_ri_config_information.config_information1%type;
3421
3422 BEGIN
3423 hr_utility.set_location('Entering:'|| l_proc, 10);
3424
3425 l_enterprise_primary_industry := per_ri_config_utilities.get_ent_primary_industry
3426 (p_configuration_code => p_configuration_code);
3427
3428 l_enterprise_short_name := per_ri_config_utilities.get_enterprise_short_name(p_configuration_code);
3429
3430 if l_enterprise_primary_industry <> 'US_GOVERNMENT' then
3431 hr_utility.set_location(l_proc, 20);
3432 -- Create Grade Key Flex
3433 l_grd_structures_code := per_ri_config_utilities.return_config_entity_name
3434 (per_ri_config_main.g_global_grd_structure_name);
3435 if NOT (p_technical_summary_mode) then
3436 l_grade_number := per_ri_config_utilities.create_key_flexfield
3437 (p_appl_short_Name => 'PER'
3438 ,p_flex_code => 'GRD'
3439 ,p_structure_code => l_grd_structures_code
3440 ,p_structure_title => l_grd_structures_code
3441 ,p_description => l_grd_structures_code);
3442
3443 else
3444 p_kf_grd_tab(l_kf_grd_count).appl_short_name := 'PER';
3445 p_kf_grd_tab(l_kf_grd_count).flex_code := 'GRD';
3446 p_kf_grd_tab(l_kf_grd_count).structure_code := l_grd_structures_code;
3447 p_kf_grd_tab(l_kf_grd_count).structure_title := l_grd_structures_code;
3448 p_kf_grd_tab(l_kf_grd_count).description := l_grd_structures_code;
3449
3450 l_kf_grd_count := l_kf_grd_count + 1 ;
3451 end if;
3452 l_log_message := 'Created KEYFLEX PER GRD ' || l_grd_structures_code;
3453 per_ri_config_utilities.write_log(p_message => l_log_message);
3454
3455 -- Create Grade Key Flex Segments
3456 if NOT (p_technical_summary_mode) then
3457 per_ri_config_utilities.create_flex_segments
3458 (p_appl_short_Name => 'PER'
3459 ,p_flex_code => 'GRD'
3460 ,p_structure_code => l_grd_structures_code
3461 ,p_segment_name => 'Grade'
3462 ,p_column_name => 'SEGMENT1'
3463 ,p_segment_number => 1
3464 ,p_value_set => null
3465 ,p_lov_prompt => 'Grade'
3466 ,p_window_prompt => 'Grade');
3467 else
3468 p_kf_grd_seg_tab(l_kf_grd_seg_count).appl_short_name := 'PER';
3469 p_kf_grd_seg_tab(l_kf_grd_seg_count).flex_code := 'GRD';
3470 p_kf_grd_seg_tab(l_kf_grd_seg_count).structure_code := l_grd_structures_code;
3471 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_name := 'Grade';
3472 p_kf_grd_seg_tab(l_kf_grd_seg_count).column_name := 'SEGMENT1';
3473 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_number := 1;
3474 p_kf_grd_seg_tab(l_kf_grd_seg_count).value_set := null;
3475 p_kf_grd_seg_tab(l_kf_grd_seg_count).lov_prompt := 'Grade';
3476 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_type := 'Grade';
3477 p_kf_grd_seg_tab(l_kf_grd_seg_count).window_prompt := 'Grade';
3478
3479 --create technical summary data for valueset
3480 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
3481 ,p_valueset_type => null
3482 ,p_structure_code => l_grd_structures_code
3483 ,p_segment_name => 'Grade'
3484 ,p_segment_number => 1
3485 ,p_valueset_tab => l_kf_grd_valueset_tab);
3486
3487 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_value_set_name
3488 := l_kf_grd_valueset_tab(l_value_set_tab_count).value_set_name;
3489 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_description
3490 := l_kf_grd_valueset_tab(l_value_set_tab_count).description;
3491 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_security_available
3492 := l_kf_grd_valueset_tab(l_value_set_tab_count).security_available;
3493 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_enable_longlist
3494 := l_kf_grd_valueset_tab(l_value_set_tab_count).enable_longlist;
3495 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_format_type
3496 := l_kf_grd_valueset_tab(l_value_set_tab_count).format_type;
3497 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_maximum_size
3498 := l_kf_grd_valueset_tab(l_value_set_tab_count).maximum_size;
3499 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_precision
3500 := l_kf_grd_valueset_tab(l_value_set_tab_count).precision;
3501 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_numbers_only
3502 := l_kf_grd_valueset_tab(l_value_set_tab_count).numbers_only;
3503 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_uppercase_only
3504 := l_kf_grd_valueset_tab(l_value_set_tab_count).uppercase_only;
3505 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_right_justify_zero_fill
3506 := l_kf_grd_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3507 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_min_value
3508 := l_kf_grd_valueset_tab(l_value_set_tab_count).min_value;
3509 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_max_value
3510 := l_kf_grd_valueset_tab(l_value_set_tab_count).max_value;
3511
3512 l_kf_grd_seg_count := l_kf_grd_seg_count + 1 ;
3513 end if;
3514
3515 l_log_message := 'Created KEYFLEX SEGMENT : PER GRD ' || 'Grade';
3516 per_ri_config_utilities.write_log(p_message => l_log_message);
3517
3518 if NOT (p_technical_summary_mode) then
3519 per_ri_config_utilities.create_flex_segments
3520 (p_appl_short_Name => 'PER'
3521 ,p_flex_code => 'GRD'
3522 ,p_structure_code => l_grd_structures_code
3523 ,p_segment_name => 'Level'
3524 ,p_column_name => 'SEGMENT2'
3525 ,p_segment_number => 2
3526 ,p_value_set => null
3527 ,p_lov_prompt => 'Level'
3528 ,p_window_prompt => 'Level');
3529 else
3530 p_kf_grd_seg_tab(l_kf_grd_seg_count).appl_short_name := 'PER';
3531 p_kf_grd_seg_tab(l_kf_grd_seg_count).flex_code := 'GRD';
3532 p_kf_grd_seg_tab(l_kf_grd_seg_count).structure_code := l_grd_structures_code;
3533 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_name := 'Level';
3534 p_kf_grd_seg_tab(l_kf_grd_seg_count).column_name := 'SEGMENT2';
3535 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_number := 2;
3536 p_kf_grd_seg_tab(l_kf_grd_seg_count).value_set := null;
3537 p_kf_grd_seg_tab(l_kf_grd_seg_count).lov_prompt := 'Level';
3538 p_kf_grd_seg_tab(l_kf_grd_seg_count).segment_type := 'Level';
3539 p_kf_grd_seg_tab(l_kf_grd_seg_count).window_prompt := 'Level';
3540
3541 --create technical summary data for valueset
3542 per_ri_config_utilities.create_valueset_ts_data(p_valueset_name => null
3543 ,p_valueset_type => null
3544 ,p_structure_code => l_grd_structures_code
3545 ,p_segment_name => 'Level'
3546 ,p_segment_number => 2
3547 ,p_valueset_tab => l_kf_grd_valueset_tab);
3548
3549 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_value_set_name
3550 := l_kf_grd_valueset_tab(l_value_set_tab_count).value_set_name;
3551 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_description
3552 := l_kf_grd_valueset_tab(l_value_set_tab_count).description;
3553 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_security_available
3554 := l_kf_grd_valueset_tab(l_value_set_tab_count).security_available;
3555 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_enable_longlist
3556 := l_kf_grd_valueset_tab(l_value_set_tab_count).enable_longlist;
3557 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_format_type
3558 := l_kf_grd_valueset_tab(l_value_set_tab_count).format_type;
3559 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_maximum_size
3560 := l_kf_grd_valueset_tab(l_value_set_tab_count).maximum_size;
3561 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_precision
3562 := l_kf_grd_valueset_tab(l_value_set_tab_count).precision;
3563 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_numbers_only
3564 := l_kf_grd_valueset_tab(l_value_set_tab_count).numbers_only;
3565 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_uppercase_only
3566 := l_kf_grd_valueset_tab(l_value_set_tab_count).uppercase_only;
3567 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_right_justify_zero_fill
3568 := l_kf_grd_valueset_tab(l_value_set_tab_count).right_justify_zero_fill;
3569 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_min_value
3570 := l_kf_grd_valueset_tab(l_value_set_tab_count).min_value;
3571 p_kf_grd_seg_tab(l_kf_grd_seg_count).vs_max_value
3572 := l_kf_grd_valueset_tab(l_value_set_tab_count).max_value;
3573
3574 l_kf_grd_seg_count := l_kf_grd_seg_count + 1 ;
3575 end if;
3576
3577 l_log_message := 'Created KEYFLEX SEGMENT : PER GRD ' || 'Level';
3578 per_ri_config_utilities.write_log(p_message => l_log_message);
3579 --
3580 -- freeze and compile this flexfield
3581 --
3582 if NOT (p_technical_summary_mode) then
3583 per_ri_config_utilities.freeze_and_compile_flexfield
3584 (p_appl_short_Name => 'PER'
3585 ,p_flex_code => 'GRD'
3586 ,p_structure_code => l_grd_structures_code);
3587 end if;
3588 else
3589 -- Since GRD Keyflex and segments are already defined.
3590 Null;
3591 end if;
3592
3593 EXCEPTION
3594 when others then
3595 l_error_message := 'Error in ' || l_proc;
3596 hr_utility.trace(l_error_message || '-' || sqlerrm);
3597 hr_utility.set_location(' Leaving:'|| l_proc, 500);
3598 hr_utility.raise_error;
3599
3600 END create_global_grd_kf;
3601
3602 /* --------------------------------------------------------------------------
3603 -- Name : create_default_value_sets
3604 -- Purpose : This procedure creates default valuests.
3605 -- Arguments : p_configuration_code
3606 --
3607 -------------------------------------------------------------------------- */
3608 PROCEDURE create_default_value_sets (p_configuration_code in varchar2) IS
3609
3610 l_proc varchar2(72) := g_package || 'create_default_value_sets';
3611 l_log_message varchar2(360);
3612 l_error_message varchar2(360);
3613
3614 l_security_available varchar2(1) default 'N';
3615 l_enable_longlist varchar2(1) default 'Y';
3616 l_format_type varchar2(1) default 'C';
3617 l_maximum_size number(9) default 60;
3618 l_precision number(2) default null;
3619 l_numbers_only varchar2(1) default 'N';
3620 l_uppercase_only varchar2(1) default 'N';
3621 l_right_justify_zero_fill varchar2(1) default 'N';
3622 l_min_value varchar2(150) default null;
3623 l_max_value varchar2(150) default null;
3624 l_description varchar2(240);
3625 l_value_set_exists boolean;
3626
3627 BEGIN
3628
3629 hr_utility.set_location('Entering:'|| l_proc, 10);
3630
3631 fnd_flex_val_api.set_session_mode('customer_data');
3632
3633 -- Create PER_RI_DEFAULT_GRADES
3634 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_GRADES');
3635 if not (l_value_set_exists) then
3636 hr_utility.set_location(l_proc, 20);
3637 l_description := 'The default Grades Value Set is generated by Enterprise Structures Configuration '
3638 || 'and used in Grade flexfield validation. This will initially be empty and can '
3639 || 'be populated using the load reference data';
3640 fnd_flex_val_api.create_valueset_independent
3641 (value_set_name => 'PER_RI_CONFIG_DEFAULT_GRADES'
3642 ,description => l_description
3643 ,security_available => l_security_available
3644 ,enable_longlist => l_enable_longlist
3645 ,format_type => l_format_type
3646 ,maximum_size => l_maximum_size
3647 ,precision => l_precision
3648 ,numbers_only => l_numbers_only
3649 ,uppercase_only => l_uppercase_only
3650 ,right_justify_zero_fill => l_right_justify_zero_fill
3651 ,min_value => l_min_value
3652 ,max_value => l_max_value);
3653 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_GRADES';
3654 per_ri_config_utilities.write_log(p_message => l_log_message);
3655 end if;
3656 hr_utility.set_location(l_proc, 30);
3657 -- Create PER_RI_DEFAULT_GRADES
3658 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_LEVELS');
3659 if not (l_value_set_exists) then
3660 hr_utility.set_location(l_proc, 40);
3661 l_description := 'The default Grades Level Value Set is generated by Enterprise Structures Configuration '
3662 || 'and used in Grade flexfield validation. This will initially be empty and can '
3663 || 'be populated using the load reference data';
3664 fnd_flex_val_api.create_valueset_independent
3665 (value_set_name => 'PER_RI_CONFIG_DEFAULT_LEVELS'
3666 ,description => l_description
3667 ,security_available => l_security_available
3668 ,enable_longlist => l_enable_longlist
3669 ,format_type => l_format_type
3670 ,maximum_size => l_maximum_size
3671 ,precision => l_precision
3672 ,numbers_only => l_numbers_only
3673 ,uppercase_only => l_uppercase_only
3674 ,right_justify_zero_fill => l_right_justify_zero_fill
3675 ,min_value => l_min_value
3676 ,max_value => l_max_value);
3677 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_LEVELS';
3678 end if;
3679 hr_utility.set_location(l_proc, 50);
3680
3681 -- Create PER_RI_DEFAULT_GRADES
3682 l_description := 'The default Account Number Value Set is generated by Enterprise Structures Configuration '
3683 || 'and used in Grade flexfield validation. This will initially be empty and can '
3684 || 'be populated using the load reference data';
3685 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_ACCOUNT');
3686 if not (l_value_set_exists) then
3687 hr_utility.set_location(l_proc, 60);
3688 fnd_flex_val_api.create_valueset_independent
3689 (value_set_name => 'PER_RI_CONFIG_DEFAULT_ACCOUNT'
3690 ,description => l_description
3691 ,security_available => l_security_available
3692 ,enable_longlist => l_enable_longlist
3693 ,format_type => l_format_type
3694 ,maximum_size => l_maximum_size
3695 ,precision => l_precision
3696 ,numbers_only => l_numbers_only
3697 ,uppercase_only => l_uppercase_only
3698 ,right_justify_zero_fill => l_right_justify_zero_fill
3699 ,min_value => l_min_value
3700 ,max_value => l_max_value);
3701 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_ACCOUNT';
3702 end if;
3703 hr_utility.set_location(l_proc, 70);
3704 -- Create PER_RI_DEFAULT_GRADES
3705 l_description := 'The default Company Value Set is generated by Enterprise Structures Configuration '
3706 || 'and used in Grade flexfield validation. This will initially be empty and can '
3707 || 'be populated using the load reference data';
3708 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_COMPANY');
3709 if not (l_value_set_exists) then
3710 hr_utility.set_location(l_proc, 80);
3711 fnd_flex_val_api.create_valueset_independent
3712 (value_set_name => 'PER_RI_CONFIG_DEFAULT_COMPANY'
3713 ,description => l_description
3714 ,security_available => l_security_available
3715 ,enable_longlist => l_enable_longlist
3716 ,format_type => l_format_type
3717 ,maximum_size => l_maximum_size
3718 ,precision => l_precision
3719 ,numbers_only => l_numbers_only
3720 ,uppercase_only => l_uppercase_only
3721 ,right_justify_zero_fill => l_right_justify_zero_fill
3722 ,min_value => l_min_value
3723 ,max_value => l_max_value);
3724 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_COMPANY';
3725 end if;
3726 hr_utility.set_location(l_proc, 90);
3727 -- Create PER_RI_DEFAULT_GRADES
3728 l_description := 'The default Cost Center Value Set is generated by Enterprise Structures Configuration '
3729 || 'and used in Grade flexfield validation. This will initially be empty and can '
3730 || 'be populated using the load reference data';
3731 l_value_set_exists := fnd_flex_val_api.valueset_exists(value_set => 'PER_RI_CONFIG_DEFAULT_CC');
3732 if not (l_value_set_exists) then
3733 hr_utility.set_location(l_proc, 100);
3734 fnd_flex_val_api.create_valueset_independent
3735 (value_set_name => 'PER_RI_CONFIG_DEFAULT_CC'
3736 ,description => l_description
3737 ,security_available => l_security_available
3738 ,enable_longlist => l_enable_longlist
3739 ,format_type => l_format_type
3740 ,maximum_size => l_maximum_size
3741 ,precision => l_precision
3742 ,numbers_only => l_numbers_only
3743 ,uppercase_only => l_uppercase_only
3744 ,right_justify_zero_fill => l_right_justify_zero_fill
3745 ,min_value => l_min_value
3746 ,max_value => l_max_value);
3747 l_log_message := 'Created DEFAULT VALUESET ' || 'PER_RI_CONFIG_DEFAULT_CC';
3748 end if;
3749
3750 hr_utility.set_location(' Leaving:'|| l_proc, 120);
3751
3752 EXCEPTION
3753 when others then
3754 l_error_message := 'Error in ' || l_proc;
3755 hr_utility.trace(l_error_message || '-' || sqlerrm);
3756 hr_utility.set_location(' Leaving:'|| l_proc, 500);
3757 hr_utility.raise_error;
3758
3759
3760 END create_default_value_sets;
3761
3762 /* --------------------------------------------------------------------------
3763 -- Name : create_hrms_responsibility
3764 -- Purpose : This procedure creates hrms responsibilities and assign them to
3765 -- the super user created by the enterprise structures configuration
3766 -- loader program. Responsibilities attached are based on the product
3767 -- country selection list.
3768 -- Arguments : p_configuration_code
3769 -- p_security_profile_tab
3770 -------------------------------------------------------------------------- */
3771
3772 PROCEDURE create_hrms_responsibility (p_configuration_code in varchar2
3773 ,p_security_profile_tab in out nocopy security_profile_tab
3774 ,p_technical_summary_mode in boolean default FALSE
3775 ,p_hrms_resp_tab in out nocopy per_ri_config_tech_summary.hrms_resp_tab) IS
3776
3777 cursor csr_get_country (cp_configuration_code in varchar2) IS
3778 select country_code
3779 from per_ri_config_country_v
3780 where configuration_code = cp_configuration_code
3781 and country_code in (select distinct territory_code
3782 from per_ri_config_responsibility)
3783 and country_code in (select per_ri_config_utilities.business_group_decision
3784 (cp_configuration_code
3785 ,country_code)
3786 from per_ri_config_country_v where configuration_code = cp_configuration_code);
3787
3788 /*
3789 cursor csr_get_country (cp_configuration_code in varchar2) IS
3790 select country_code
3791 from per_ri_config_country_v
3792 where configuration_code = cp_configuration_code
3793 and country_code in (select distinct territory_code
3794 from per_ri_config_responsibility);
3795 */
3796
3797 cursor csr_get_product (cp_configuration_code in varchar2) IS
3798 select product_name
3799 from per_ri_config_prod_selection_v
3800 where configuration_code = cp_configuration_code;
3801
3802 cursor csr_get_responsibility (cp_territory_code in varchar2
3803 ,cp_responsibility_application in varchar2) IS
3804 select distinct resp.responsibility_key,
3805 apps.application_short_name
3806 from fnd_application apps,
3807 fnd_responsibility resp,
3808 per_ri_config_responsibility con,
3809 per_ri_config_country_v cont
3810 where apps.application_id = resp.application_id
3811 and con.responsibility_key = resp.responsibility_key
3812 and resp.responsibility_key = con.responsibility_key
3813 and resp.responsibility_key = con.responsibility_key
3814 and con.territory_code = cp_territory_code
3815 and con.responsibility_application = cp_responsibility_application
3816 and con.territory_code = cont.country_code
3817 and cont.country_code in (select distinct territory_code
3818 from per_ri_config_responsibility);
3819
3820 cursor csr_global_responsibility(cp_configuration_code in varchar2) IS
3821 select country_code
3822 from per_ri_config_country_v con
3823 where con.configuration_code = cp_configuration_code
3824 and con.country_code not in (select distinct territory_code
3825 from per_ri_config_responsibility)
3826 and per_ri_config_utilities.business_group_decision
3827 (cp_configuration_code
3828 ,country_code) <> 'INT' ;
3829
3830 l_proc varchar2(72) := g_package || 'create_hrms_responsibility';
3831 l_error_message varchar2(360);
3832 l_country_code per_ri_config_information.config_information1%type;
3833 l_product_name per_ri_config_information.config_information1%type;
3834 l_fnd_application_short_name varchar2(30);
3835
3836 l_country_code_global per_ri_config_information.config_information1%type;
3837 l_responsibility_key varchar2(60);
3838 l_application_short_name per_ri_config_information.configuration_code%type;
3839 l_assign_responsibility varchar2(30);
3840 l_assign_global_responsibility boolean default FALSE;
3841 l_assign_global_resp_key varchar2(60);
3842 l_assign_glb_resp_key_app_name varchar2(30);
3843
3844 l_assign_determined_resp varchar2(30);
3845 l_hr boolean default FALSE;
3846 l_hrms boolean default FALSE;
3847 l_benefits boolean default FALSE;
3848 l_self_service boolean default FALSE;
3849
3850 l_business_group_name per_business_groups.name%type;
3851 l_business_group_name_main per_business_groups.name%type;
3852 l_business_group_name_global per_business_groups.name%type;
3853 l_start_date varchar2(240) := to_char(per_ri_config_fnd_hr_entity.g_config_effective_date,'YYYY/MM/DD');
3854 l_end_date varchar2(240) := to_char(per_ri_config_fnd_hr_entity.g_config_effective_end_date,'YYYY/MM/DD');
3855 l_row_count number(9) default 0 ;
3856 l_earlier_row_count number(9) default 0 ;
3857
3858 l_configuration_user_name fnd_user.user_name%type;
3859
3860 l_hrms_resp_count number(9) := 0;
3861 l_hrms_bgsgut_profile_resp_tab per_ri_config_tech_summary.profile_resp_tab;
3862 l_profile_resp_main_tab per_ri_config_tech_summary.profile_resp_tab;
3863
3864 BEGIN
3865
3866 hr_utility.set_location('Entering:'|| l_proc, 10);
3867
3868 l_configuration_user_name := upper(per_ri_config_utilities.return_config_entity_name_pre
3869 (per_ri_config_main.g_configuration_user_name));
3870 open csr_get_product(p_configuration_code);
3871
3872 loop
3873 fetch csr_get_product into l_product_name;
3874 exit when csr_get_product%NOTFOUND;
3875 hr_utility.trace('l_product_name = ' || l_product_name);
3876
3877 if l_product_name = 'PER' then
3878 l_hr := TRUE;
3879 end if;
3880 if l_product_name = 'PAY' then
3881 l_hrms := TRUE;
3882 end if;
3883 if l_product_name = 'BEN' then
3884 l_benefits := TRUE;
3885 end if;
3886 if l_product_name = 'SSHR' then
3887 l_self_service := TRUE;
3888 end if;
3889 end loop;
3890
3891 close csr_get_product;
3892
3893 hr_utility.set_location(l_proc, 30);
3894
3895 --
3896 -- assign hrms self service responsibilities
3897 --
3898
3899 if l_self_service then
3900
3901 if NOT (p_technical_summary_mode) then
3902 fnd_user_resp_groups_api.load_row(
3903 x_user_name => l_configuration_user_name,
3904 x_resp_key => 'EMPLOYEE_DIRECT_ACCESS_V4.0',
3905 x_app_short_name => 'PER',
3906 x_security_group => 'STANDARD',
3907 x_owner => 'SEED',
3908 x_start_date => l_start_date,
3909 x_end_date => l_end_date,
3910 x_description => per_ri_config_main.g_description_string);
3911 hr_utility.trace('Assigned Responsibility: ' || 'EMPLOYEE_DIRECT_ACCESS');
3912 hr_utility.set_location(l_proc, 40);
3913 else
3914 p_hrms_resp_tab(l_hrms_resp_count).user_name := l_configuration_user_name;
3915 p_hrms_resp_tab(l_hrms_resp_count).resp_key := 'EMPLOYEE_DIRECT_ACCESS_V4';
3916 p_hrms_resp_tab(l_hrms_resp_count).app_short_name := 'PER';
3917 p_hrms_resp_tab(l_hrms_resp_count).security_group := 'STANDARD';
3918 p_hrms_resp_tab(l_hrms_resp_count).owner := 'SEED';
3919 p_hrms_resp_tab(l_hrms_resp_count).start_date := l_start_date;
3920 p_hrms_resp_tab(l_hrms_resp_count).end_date := l_end_date;
3921 p_hrms_resp_tab(l_hrms_resp_count).description := per_ri_config_main.g_description_string;
3922
3923 l_hrms_resp_count := l_hrms_resp_count + 1 ;
3924 end if;
3925
3926 if NOT (p_technical_summary_mode) then
3927 fnd_user_resp_groups_api.load_row(
3928 x_user_name => l_configuration_user_name,
3929 x_resp_key => 'LINE_MANAGER_ACCESS_V4.0',
3930 x_app_short_name => 'PER',
3931 x_security_group => 'STANDARD',
3932 x_owner => 'SEED',
3933 x_start_date => l_start_date,
3934 x_end_date => l_end_date,
3935 x_description => per_ri_config_main.g_description_string);
3936 else
3937 p_hrms_resp_tab(l_hrms_resp_count).user_name := l_configuration_user_name;
3938 p_hrms_resp_tab(l_hrms_resp_count).resp_key := 'LINE_MANAGER_ACCESS_V4';
3939 p_hrms_resp_tab(l_hrms_resp_count).app_short_name := 'PER';
3940 p_hrms_resp_tab(l_hrms_resp_count).security_group := 'STANDARD';
3941 p_hrms_resp_tab(l_hrms_resp_count).owner := 'SEED';
3942 p_hrms_resp_tab(l_hrms_resp_count).start_date := l_start_date;
3943 p_hrms_resp_tab(l_hrms_resp_count).end_date := l_end_date;
3944 p_hrms_resp_tab(l_hrms_resp_count).description := per_ri_config_main.g_description_string;
3945
3946 l_hrms_resp_count := l_hrms_resp_count + 1 ;
3947 end if;
3948 hr_utility.trace('Assigned Responsibility: ' || 'LINE_MANAGER_DIRECT_ACCESS');
3949 hr_utility.set_location(l_proc, 50);
3950 end if;
3951
3952 --decide on the responsibility to be assigned.
3953
3954 hr_utility.set_location(l_proc, 60);
3955 l_assign_responsibility := 'PER';
3956
3957 if l_hr and not l_hrms and not l_benefits then
3958 l_assign_responsibility := 'PER';
3959 end if;
3960 if l_hr and l_hrms and not l_benefits then
3961 l_assign_responsibility := 'HRMS';
3962 end if;
3963 if l_hr and l_hrms and l_benefits then
3964 l_assign_responsibility := 'SHRMS';
3965 end if;
3966
3967 open csr_get_country(p_configuration_code);
3968 loop
3969 fetch csr_get_country into l_country_code;
3970 exit when csr_get_country%NOTFOUND;
3971
3972 l_assign_determined_resp
3973 := per_ri_config_utilities.determine_country_resp
3974 (p_country_code => l_country_code
3975 ,p_assign_responsibility => l_assign_responsibility);
3976
3977 hr_utility.trace('l_assign_responsibility = ' || l_assign_responsibility);
3978 hr_utility.trace('l_assign_determined_resp = ' || l_assign_determined_resp);
3979 --open csr_get_responsibility(l_country_code
3980 -- ,l_assign_responsibility);
3981
3982 open csr_get_responsibility(l_country_code
3983 ,l_assign_determined_resp);
3984 loop
3985 fetch csr_get_responsibility into l_responsibility_key
3986 ,l_fnd_application_short_name;
3987
3988 exit when csr_get_responsibility%NOTFOUND;
3989
3990 hr_utility.trace('l_country_code : ' || l_country_code);
3991 hr_utility.trace('l_responsibility_key : ' || l_responsibility_key);
3992 hr_utility.trace('l_fnd_application_short_name : ' || l_fnd_application_short_name);
3993
3994 -- Security Group Removal Changes
3995 -- This is taken care by security_profile_assignment creation
3996 --assign responsibility
3997 /* fnd_user_resp_groups_api.load_row(
3998 x_user_name => l_configuration_user_name,
3999 x_resp_key => l_responsibility_key,
4000 x_app_short_name => l_fnd_application_short_name,
4001 x_security_group => 'STANDARD',
4002 x_owner => 'SEED',
4003 x_start_date => l_start_date,
4004 x_end_date => l_end_date,
4005 x_description => per_ri_config_main.g_description_string);
4006 hr_utility.trace('Assigned Responsibility:' || l_responsibility_key || ':' || l_fnd_application_short_name);
4007 */
4008 -- get business group name for given country code
4009 l_business_group_name_main := per_ri_config_utilities.get_enterprise_short_name
4010 (p_configuration_code => p_configuration_code)
4011 || ' ' || l_country_code || per_ri_config_main.g_bg_name_suffix_string;
4012
4013 per_ri_config_fnd_hr_entity.create_resp_level_profile
4014 (p_configuration_code => p_configuration_code
4015 ,p_responsibility_key => l_responsibility_key
4016 ,p_technical_summary_mode => p_technical_summary_mode
4017 ,p_profile_resp_tab => l_profile_resp_main_tab);
4018 -- this need special processing
4019 --once data is populated we need to populate this main table to show data.
4020
4021
4022 if NOT (p_technical_summary_mode) then
4023 p_security_profile_tab(csr_get_responsibility%ROWCOUNT + l_row_count).security_profile_name
4024 := l_business_group_name_main;
4025 p_security_profile_tab(csr_get_responsibility%ROWCOUNT + l_row_count).responsibility_key
4026 := l_responsibility_key;
4027
4028 -- This procedure can be used to populate technical summary records.
4029 else
4030 --this table is also needed now for security group changes
4031 p_security_profile_tab(csr_get_responsibility%ROWCOUNT + l_row_count).security_profile_name
4032 := l_business_group_name_main;
4033 p_security_profile_tab(csr_get_responsibility%ROWCOUNT + l_row_count).responsibility_key
4034 := l_responsibility_key;
4035 --
4036 p_hrms_resp_tab(l_hrms_resp_count).user_name := l_configuration_user_name;
4037 p_hrms_resp_tab(l_hrms_resp_count).resp_key := l_responsibility_key;
4038 p_hrms_resp_tab(l_hrms_resp_count).app_short_name := null;
4039 p_hrms_resp_tab(l_hrms_resp_count).security_group := l_business_group_name_main;
4040 p_hrms_resp_tab(l_hrms_resp_count).owner := null;
4041 p_hrms_resp_tab(l_hrms_resp_count).start_date := l_start_date;
4042 p_hrms_resp_tab(l_hrms_resp_count).end_date := l_end_date;
4043 p_hrms_resp_tab(l_hrms_resp_count).description := per_ri_config_main.g_description_string;
4044
4045 l_hrms_resp_count := l_hrms_resp_count + 1;
4046 end if;
4047
4048
4049 hr_utility.trace('l_business_group_name_main : ' || l_business_group_name_main);
4050 hr_utility.trace('l_responsibility_key : ' || l_responsibility_key);
4051
4052 hr_utility.trace('l_row_count inside = ' || to_char(l_row_count));
4053
4054 end loop;
4055 l_row_count := l_row_count + (csr_get_responsibility%ROWCOUNT);
4056 hr_utility.trace('l_row_count outside = ' || to_char(l_row_count));
4057 close csr_get_responsibility;
4058 end loop;
4059 close csr_get_country;
4060
4061 --process gobal responsibility
4062 hr_utility.set_location('Entering:'|| l_proc, 210);
4063 l_assign_glb_resp_key_app_name := 'PER';
4064
4065 if l_hr and not l_hrms and not l_benefits then
4066 l_assign_global_resp_key := 'GLOBAL HR MANAGER';
4067 l_assign_glb_resp_key_app_name := 'PER';
4068 end if;
4069
4070 if l_hr and l_hrms and not l_benefits then
4071 l_assign_global_resp_key := 'GLOBAL_HRMS_MANAGER';
4072 l_assign_glb_resp_key_app_name := 'PER';
4073 end if;
4074
4075 if l_hr and l_hrms and l_benefits then
4076 l_assign_global_resp_key := 'GLB_SHRMS_MANAGER';
4077 l_assign_glb_resp_key_app_name := 'PER';
4078 end if;
4079
4080 if l_hr and not l_hrms and l_benefits then
4081 l_assign_global_resp_key := 'US_BEN_MANAGER';
4082 l_assign_glb_resp_key_app_name := 'BEN';
4083 end if;
4084
4085 hr_utility.set_location('Entering:'|| l_proc, 220);
4086 hr_utility.trace('l_assign_glb_resp_key_app_name : ' || l_assign_glb_resp_key_app_name);
4087 hr_utility.trace('l_assign_global_resp_key : ' || l_assign_global_resp_key);
4088
4089 l_earlier_row_count := p_security_profile_tab.count + 1;
4090 hr_utility.trace('GLOBAL l_earlier_row_count : ' || l_earlier_row_count);
4091
4092 open csr_global_responsibility(p_configuration_code);
4093 loop
4094 fetch csr_global_responsibility into l_country_code_global;
4095 exit when csr_global_responsibility%NOTFOUND;
4096
4097 hr_utility.trace('Assigned Global Responsibility:' || l_assign_global_resp_key );
4098
4099 -- get business group name for given country code
4100 -- business group name and security profile names are same
4101 l_business_group_name_global := per_ri_config_utilities.get_enterprise_short_name
4102 (p_configuration_code => p_configuration_code)
4103 || ' ' || l_country_code_global || per_ri_config_main.g_bg_name_suffix_string;
4104
4105 p_security_profile_tab(l_earlier_row_count).security_profile_name
4106 := l_business_group_name_global;
4107 p_security_profile_tab(l_earlier_row_count).responsibility_key
4108 := l_assign_global_resp_key;
4109 -- Populate the data for TS
4110 p_hrms_resp_tab(l_earlier_row_count).user_name := l_configuration_user_name;
4111 p_hrms_resp_tab(l_earlier_row_count).resp_key := l_assign_global_resp_key;
4112 p_hrms_resp_tab(l_earlier_row_count).app_short_name := null;
4113 p_hrms_resp_tab(l_earlier_row_count).security_group := null;
4114 p_hrms_resp_tab(l_earlier_row_count).owner := null;
4115 p_hrms_resp_tab(l_earlier_row_count).start_date := l_start_date;
4116 p_hrms_resp_tab(l_earlier_row_count).end_date := l_end_date;
4117 p_hrms_resp_tab(l_earlier_row_count).description := per_ri_config_main.g_description_string;
4118
4119 l_earlier_row_count := 1 + l_earlier_row_count;
4120 end loop;
4121 close csr_global_responsibility;
4122
4123 --assign global responsibility
4124 /* MSG Changes BEGIN
4125 /* if NOT (p_technical_summary_mode) then
4126 fnd_user_resp_groups_api.load_row(
4127 x_user_name => l_configuration_user_name,
4128 x_resp_key => l_assign_global_resp_key,
4129 x_app_short_name => l_assign_glb_resp_key_app_name,
4130 x_security_group => 'STANDARD',
4131 x_owner => 'SEED',
4132 x_start_date => l_start_date,
4133 x_end_date => l_end_date,
4134 x_description => per_ri_config_main.g_description_string);
4135 else
4136 p_hrms_resp_tab(l_hrms_resp_count).user_name := l_configuration_user_name;
4137 p_hrms_resp_tab(l_hrms_resp_count).resp_key := l_assign_global_resp_key;
4138 p_hrms_resp_tab(l_hrms_resp_count).app_short_name := l_assign_glb_resp_key_app_name;
4139 p_hrms_resp_tab(l_hrms_resp_count).security_group := 'STANDARD';
4140 p_hrms_resp_tab(l_hrms_resp_count).owner := 'SEED';
4141 p_hrms_resp_tab(l_hrms_resp_count).start_date := l_start_date;
4142 p_hrms_resp_tab(l_hrms_resp_count).end_date := l_end_date;
4143 p_hrms_resp_tab(l_hrms_resp_count).description := per_ri_config_main.g_description_string;
4144
4145 l_hrms_resp_count := l_hrms_resp_count + 1 ;
4146 end if;
4147
4148 per_ri_config_fnd_hr_entity.create_resp_level_profile
4149 (p_configuration_code => p_configuration_code
4150 ,p_responsibility_key => l_assign_global_resp_key
4151 ,p_technical_summary_mode => p_technical_summary_mode
4152 ,p_profile_resp_tab => l_profile_resp_main_tab);
4153
4154 -- get business group name for given country code
4155 l_business_group_name_global := per_ri_config_utilities.get_enterprise_short_name
4156 (p_configuration_code => p_configuration_code)
4157 || ' ' || l_country_code_global || per_ri_config_main.g_bg_name_suffix_string;
4158
4159 hr_utility.trace('Security Group Removal Changes');
4160 per_ri_config_fnd_hr_entity.create_bg_id_and_sg_id_profile
4161 (p_configuration_code => p_configuration_code
4162 ,p_responsibility_key => l_assign_global_resp_key
4163 ,p_responsibility_name => l_assign_global_resp_name
4164 ,p_business_group_name => l_business_group_name_global
4165 ,p_technical_summary_mode => p_technical_summary_mode
4166 ,p_bg_sg_ut_profile_resp_tab => l_hrms_bgsgut_profile_resp_tab);
4167 MSG Changes END */
4168
4169 EXCEPTION
4170 when others then
4171 l_error_message := 'Error in ' || l_proc;
4172 hr_utility.trace(l_error_message || '-' || sqlerrm);
4173 hr_utility.set_location(' Leaving:'|| l_proc, 500);
4174 hr_utility.raise_error;
4175
4176 END create_hrms_responsibility;
4177
4178 /* --------------------------------------------------------------------------
4179 -- Name : create_application_level_resp
4180 -- Purpose : This procedure creates application level profile options.
4181 -- Arguments : p_configuration_code
4182 --
4183 -------------------------------------------------------------------------- */
4184 PROCEDURE create_application_level_resp(p_configuration_code in varchar2
4185 ,p_technical_summary_mode in boolean default FALSE
4186 ,p_profile_apps_tab in out nocopy
4187 per_ri_config_tech_summary.profile_apps_tab) IS
4188
4189
4190 cursor csr_get_product (cp_configuration_code in varchar2) IS
4191 select product_name
4192 from per_ri_config_prod_selection_v
4193 where configuration_code = cp_configuration_code;
4194
4195 l_product_name per_ri_config_information.config_information1%type;
4196
4197 l_profile_apps_count number(8) := 0;
4198 l_proc varchar2(72) := g_package || 'create_application_level_resp';
4199 l_log_message varchar2(360);
4200 l_error_message varchar2(360);
4201
4202 BEGIN
4203 hr_utility.set_location('Entering:'|| l_proc, 10);
4204
4205 open csr_get_product(p_configuration_code);
4206
4207 loop
4208 fetch csr_get_product into l_product_name;
4209 exit when csr_get_product%NOTFOUND;
4210
4211
4212 /* DGARG MSG Changes
4213 -- For each product selected set application level profile option
4214 -- ENABLE_SECURITY_GROUPS
4215 if l_product_name in ('PER','PAY','BEN') then
4216 hr_utility.trace('l_product_name ' || l_product_name);
4217 if NOT (p_technical_summary_mode) then
4218 per_ri_config_utilities.set_profile_option_value
4219 (p_level => 10002
4220 ,p_level_value => l_product_name
4221 ,p_level_value_app => l_product_name
4222 ,p_profile_name => 'ENABLE_SECURITY_GROUPS'
4223 ,p_profile_option_value => 'Y');
4224 else
4225 p_profile_apps_tab(l_profile_apps_count).level := 1002;
4226 p_profile_apps_tab(l_profile_apps_count).level_value := l_product_name;
4227 p_profile_apps_tab(l_profile_apps_count).level_value_app := l_product_name;
4228 p_profile_apps_tab(l_profile_apps_count).profile_name := 'ENABLE_SECURITY_GROUPS';
4229 p_profile_apps_tab(l_profile_apps_count).profile_option_value := 'Y';
4230
4231 l_profile_apps_count := l_profile_apps_count + 1;
4232
4233 end if;
4234
4235 l_log_message := 'Created PROFILE_OPTION ENABLE_SECURITY_GROUPS ' || l_product_name;
4236 per_ri_config_utilities.write_log(p_message => l_log_message);
4237 end if;
4238 ** */
4239 end loop;
4240 close csr_get_product;
4241
4242 /* DGARG - Multiple Security Groups Removal chnages
4243 --
4244 -- Set ENABLE_SECURITY_GROUPS all all HRMS application
4245 --
4246 for rec in ( select application_id
4247 from fnd_application
4248 where hr_general.chk_application_id(application_id) = 'TRUE'
4249 Order by Application_short_name)
4250 loop
4251
4252 if fnd_profile.save ('ENABLE_SECURITY_GROUPS'
4253 ,'Y'
4254 ,'APPL'
4255 ,rec.application_id ) then
4256
4257 l_log_message := 'Setting the Enable Security Groups Profile to the application '
4258 || rec.application_id;
4259
4260 else
4261 l_log_message := 'The profile setting has errored out for application '
4262 || rec.application_id;
4263 end if;
4264 per_ri_config_utilities.write_log(p_message => l_log_message);
4265 hr_utility.trace(l_log_message);
4266 end loop;
4267 --
4268 */
4269
4270 EXCEPTION
4271 when others then
4272 l_error_message := 'Error in ' || l_proc;
4273 hr_utility.trace(l_error_message || '-' || sqlerrm);
4274 hr_utility.set_location(' Leaving:'|| l_proc, 500);
4275 hr_utility.raise_error;
4276
4277 END create_application_level_resp;
4278 /* --------------------------------------------------------------------------
4279 -- Name : create_resp_level_profile
4280 -- Purpose : This procedure creates application level profile options.
4281 -- Arguments : p_configuration_code
4282 -- p_responsibility_key
4283 -------------------------------------------------------------------------- */
4284
4285 PROCEDURE create_resp_level_profile(p_configuration_code in varchar2
4286 ,p_responsibility_key in varchar2
4287 ,p_technical_summary_mode in boolean default FALSE
4288 ,p_profile_resp_tab in out nocopy
4289 per_ri_config_tech_summary.profile_resp_tab) IS
4290
4291
4292 cursor csr_get_product (cp_configuration_code in varchar2) IS
4293 select product_name
4294 from per_ri_config_prod_selection_v
4295 where configuration_code = cp_configuration_code;
4296
4297 cursor csr_get_resp_key_app (cp_responsibility_key in varchar2) IS
4298 select apps.application_short_name
4299 from fnd_responsibility resp,
4300 fnd_application apps
4301 where apps.application_id = resp.application_id
4302 and resp.responsibility_key = cp_responsibility_key;
4303
4304 l_application_short_name fnd_application.application_short_name%type;
4305 l_hr_user_type varchar2(30);
4306 l_product_name varchar2(30);
4307
4308 l_hr boolean default TRUE;
4309 l_hrms boolean default FALSE;
4310 l_profile_resp_count number(8) := 0;
4311
4312 l_proc varchar2(72) := g_package || 'create_resp_level_profile';
4313 l_error_message varchar2(360);
4314
4315 BEGIN
4316 hr_utility.set_location('Entering:'|| l_proc, 10);
4317
4318 -- only one row is there
4319 open csr_get_resp_key_app(p_responsibility_key);
4320 fetch csr_get_resp_key_app into l_application_short_name;
4321 close csr_get_resp_key_app;
4322
4323 open csr_get_product(p_configuration_code);
4324 loop
4325 fetch csr_get_product into l_product_name;
4326 exit when csr_get_product%NOTFOUND;
4327 if l_product_name = 'PER' then
4328 l_hr := TRUE;
4329 end if;
4330 if l_product_name = 'PAY' then
4331 l_hrms := TRUE;
4332 end if;
4333 end loop;
4334 close csr_get_product;
4335
4336 if l_hr and l_hrms then
4337 l_hr_user_type := 'INT';
4338 else
4339 l_hr_user_type := 'PER';
4340 end if;
4341
4342 hr_utility.trace('p_responsibility_key ' || p_responsibility_key);
4343 hr_utility.trace('l_hr_user_type ' || l_hr_user_type);
4344 if NOT (p_technical_summary_mode) then
4345 per_ri_config_utilities.set_profile_option_value
4346 (p_level => 10003
4347 ,p_level_value => p_responsibility_key
4348 ,p_level_value_app => l_application_short_name
4349 ,p_profile_name => 'HR_USER_TYPE'
4350 ,p_profile_option_value => l_hr_user_type);
4351 else
4352 p_profile_resp_tab(l_profile_resp_count).level := 1003;
4353 p_profile_resp_tab(l_profile_resp_count).level_value := p_responsibility_key;
4354 p_profile_resp_tab(l_profile_resp_count).level_value_app := l_application_short_name;
4355 p_profile_resp_tab(l_profile_resp_count).profile_name := 'HR_USER_TYPE';
4356 p_profile_resp_tab(l_profile_resp_count).profile_option_value := l_hr_user_type;
4357
4358 l_profile_resp_count := l_profile_resp_count + 1;
4359
4360 end if;
4361
4362
4363 hr_utility.trace('Created HR_USER_TYPE for '|| l_product_name);
4364 hr_utility.set_location('Leaving:'|| l_proc, 40);
4365
4366 EXCEPTION
4367 when others then
4368 l_error_message := 'Error in ' || l_proc;
4369 hr_utility.trace(l_error_message || '-' || sqlerrm);
4370 hr_utility.set_location(' Leaving:'|| l_proc, 500);
4371 hr_utility.raise_error;
4372
4373 END create_resp_level_profile;
4374
4375 /* --------------------------------------------------------------------------
4376 -- Name : create_bg_id_and_sg_id_profile
4377 -- Purpose : This procedure creates profile option values for
4378 -- PER_BUSINESS_GROUP_ID
4379 -- PER_SECURITY_GROUP_ID
4380 -- HR_USER_TYPE
4381 -- Arguments : p_configuration_code
4382 -- p_responsibility_key
4383 -- p_business_group_name
4384 -------------------------------------------------------------------------- */
4385
4386 PROCEDURE create_bg_id_and_sg_id_profile(p_configuration_code in varchar2
4387 ,p_responsibility_key in varchar2
4388 ,p_business_group_name in varchar2
4389 ,p_technical_summary_mode in boolean default FALSE
4390 ,p_bg_sg_ut_profile_resp_tab in out nocopy
4391 per_ri_config_tech_summary.profile_resp_tab) IS
4392
4393
4394 cursor csr_get_resp_key_app (cp_responsibility_key in varchar2) IS
4395 select apps.application_short_name,resp.responsibility_id
4396 from fnd_responsibility resp,
4397 fnd_application apps
4398 where apps.application_id = resp.application_id
4399 and resp.responsibility_key = cp_responsibility_key;
4400
4401 cursor csr_bg_id (cp_business_group_name in varchar2) IS
4402 select business_group_id
4403 from per_business_groups
4404 where name = cp_business_group_name;
4405
4406 cursor csr_sg_id (cp_business_group_name in varchar2) IS
4407 select security_profile_id
4408 from per_security_profiles
4409 where security_profile_name = cp_business_group_name;
4410
4411 cursor csr_get_product (cp_configuration_code in varchar2) IS
4412 select product_name
4413 from per_ri_config_prod_selection_v
4414 where configuration_code = cp_configuration_code;
4415
4416 l_application_short_name fnd_application.application_short_name%type;
4417 l_hr_user_type varchar2(30);
4418 l_product_name varchar2(30);
4419
4420 l_bg_id varchar2(30);
4421 l_sg_id varchar2(30);
4422 l_responsibility_id number(9);
4423
4424 l_hr boolean default TRUE;
4425 l_hrms boolean default FALSE;
4426
4427 l_profile_count number(10) := 0;
4428 l_proc varchar2(72) := g_package || 'create_bg_id_and_sg_id_profile';
4429 l_error_message varchar2(360);
4430 l_log_message varchar2(360);
4431
4432 BEGIN
4433 hr_utility.set_location('Entering:'|| l_proc, 10);
4434
4435 if NOT (p_technical_summary_mode) then
4436 -- only one row is there
4437 open csr_get_resp_key_app(p_responsibility_key);
4438 fetch csr_get_resp_key_app into l_application_short_name,l_responsibility_id;
4439 close csr_get_resp_key_app;
4440
4441
4442 open csr_bg_id(p_business_group_name);
4443 fetch csr_bg_id into l_bg_id;
4444 close csr_bg_id;
4445
4446 open csr_sg_id(p_business_group_name);
4447 fetch csr_sg_id into l_sg_id;
4448 close csr_sg_id;
4449
4450 hr_utility.trace('l_responsibility_id ' || l_responsibility_id);
4451 hr_utility.trace('l_bg_id ' || l_bg_id);
4452 hr_utility.trace('l_sg_id ' || l_sg_id);
4453 hr_utility.trace('p_responsibility_key ' || p_responsibility_key);
4454 hr_utility.trace('p_business_group_name ' || p_business_group_name);
4455
4456 --
4457 -- Create PER_BUSINESS_GROUP_ID
4458 --
4459 if fnd_profile.save ('PER_BUSINESS_GROUP_ID',
4460 l_bg_id,
4461 'RESP',
4462 l_responsibility_id,
4463 '800') then
4464 null;
4465 end if;
4466 l_log_message := 'Created Profile Option Value PER_BUSINESS_GROUP_ID ' || l_bg_id;
4467 per_ri_config_utilities.write_log(p_message => l_log_message);
4468 hr_utility.set_location(l_proc, 20);
4469
4470 --
4471 -- Create PER_SECURITY_PROFILE_ID
4472 --
4473 if fnd_profile.save ('PER_SECURITY_PROFILE_ID',
4474 l_sg_id,
4475 'RESP',
4476 l_responsibility_id,
4477 '800') then
4478 null;
4479 end if;
4480 l_log_message := 'Created Profile Option Value PER_SECURITY_PROFILE_ID ' || l_sg_id;
4481 per_ri_config_utilities.write_log(p_message => l_log_message);
4482 hr_utility.set_location(l_proc, 30);
4483
4484 open csr_get_product(p_configuration_code);
4485 loop
4486 fetch csr_get_product into l_product_name;
4487 exit when csr_get_product%NOTFOUND;
4488 if l_product_name = 'PER' then
4489 l_hr := TRUE;
4490 end if;
4491 if l_product_name = 'PAY' then
4492 l_hrms := TRUE;
4493 end if;
4494 end loop;
4495 close csr_get_product;
4496
4497 if l_hr and l_hrms then
4498 l_hr_user_type := 'INT';
4499 else
4500 l_hr_user_type := 'PER';
4501 end if;
4502 --
4503 -- Create HR_USER_TYPE
4504 --
4505 if fnd_profile.save ('HR_USER_TYPE',
4506 l_hr_user_type,
4507 'RESP',
4508 l_responsibility_id,
4509 '800') then
4510 null;
4511 end if;
4512 l_log_message := 'Created Profile Option Value HR_USER_TYPE ' || l_hr_user_type;
4513 per_ri_config_utilities.write_log(p_message => l_log_message);
4514 hr_utility.set_location(' Leaving:'|| l_proc, 50);
4515
4516 else
4517 hr_utility.set_location(l_proc, 110);
4518 open csr_get_product(p_configuration_code);
4519 loop
4520 fetch csr_get_product into l_product_name;
4521 exit when csr_get_product%NOTFOUND;
4522 if l_product_name = 'PER' then
4523 l_hr := TRUE;
4524 end if;
4525 if l_product_name = 'PAY' then
4526 l_hrms := TRUE;
4527 end if;
4528 end loop;
4529 close csr_get_product;
4530
4531 if l_hr and l_hrms then
4532 l_hr_user_type := 'INT';
4533 else
4534 l_hr_user_type := 'PER';
4535 end if;
4536 hr_utility.set_location(l_proc, 120);
4537 p_bg_sg_ut_profile_resp_tab(l_profile_count).level := 10003;
4538 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value := p_responsibility_key;
4539 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value_app := 'PER';
4540 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_name := 'PER_BUSINESS_GROUP_ID';
4541 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_option_value := p_business_group_name;
4542 l_profile_count := l_profile_count + 1;
4543
4544 p_bg_sg_ut_profile_resp_tab(l_profile_count).level := 10003;
4545 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value := p_responsibility_key;
4546 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value_app := 'PER';
4547 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_name := 'PER_SECURITY_PROFILE_ID';
4548 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_option_value := p_business_group_name;
4549 l_profile_count := l_profile_count + 1;
4550
4551 p_bg_sg_ut_profile_resp_tab(l_profile_count).level := 10003;
4552 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value := p_responsibility_key;
4553 p_bg_sg_ut_profile_resp_tab(l_profile_count).level_value_app := 'PER';
4554 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_name := 'HR_USER_TYPE';
4555 p_bg_sg_ut_profile_resp_tab(l_profile_count).profile_option_value := l_hr_user_type;
4556
4557 l_profile_count := l_profile_count + 1;
4558
4559 hr_utility.set_location(l_proc, 130);
4560 end if;
4561 EXCEPTION
4562 when others then
4563 l_error_message := 'Error in ' || l_proc;
4564 hr_utility.trace(l_error_message || '-' || sqlerrm);
4565 hr_utility.set_location(' Leaving:'|| l_proc, 500);
4566 hr_utility.raise_error;
4567
4568 END create_bg_id_and_sg_id_profile;
4569
4570 END per_ri_config_fnd_hr_entity;