DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_PUMP_GET

Source


1 package body hr_pump_get as
2 /* $Header: hrdpget.pkb 120.1 2005/07/08 20:10:10 ssattini noship $ */
3 /*
4   NOTES
5     Please refer to the package header for documentation on these
6     functions.
7 */
8 /*---------------------------------------------------------------------------*/
9 /*----------------------- constant definitions ------------------------------*/
10 /*---------------------------------------------------------------------------*/
11 END_OF_TIME   constant date := to_date('4712/12/31', 'YYYY/MM/DD');
12 START_OF_TIME constant date := to_date('0001/01/01', 'YYYY/MM/DD');
13 HR_API_G_VARCHAR2 constant varchar2(128) := hr_api.g_varchar2;
14 HR_API_G_NUMBER constant number := hr_api.g_number;
15 HR_API_G_DATE constant date := hr_api.g_date;
16 
17 /*---------------------------------------------------------------------------*/
18 /*------------- internal Get ID functions data structures -------------------*/
19 /*---------------------------------------------------------------------------*/
20 
21 ------------------------------ user_key_to_id ----------------------------------
22 /*
23   NAME
24     user_key_to_id
25   DESCRIPTION
26     Returns an ID value from hr_pump_batch_line_user_keys alone.
27   NOTES
28     Utility function to get _ID functions.
29 */
30 function user_key_to_id( p_user_key_value in varchar2 )
31 return number is
32    l_id number;
33 begin
34    select unique_key_id
35    into   l_id
36    from   hr_pump_batch_line_user_keys
37    where  user_key_value = p_user_key_value;
38    return(l_id);
39 end user_key_to_id;
40 
41 /*---------------------------------------------------------------------------*/
42 /*----------------------- Get ID function globals ---------------------------*/
43 /*---------------------------------------------------------------------------*/
44 
45 /*---------------------------------------------------------------------------*/
46 /*------------------ local functions and procedures -------------------------*/
47 /*---------------------------------------------------------------------------*/
48 
49 /*---------------------------------------------------------------------------*/
50 /*----------------------------- get id functions ----------------------------*/
51 /*---------------------------------------------------------------------------*/
52 
53 /* returns a position definition id  */
54 function get_position_definition_id
55 (
56    p_position_name     in varchar2,
57    p_business_group_id in number,
58    p_effective_date    in date
59 ) return number is
60    l_position_definition_id number;
61 begin
62    return(l_position_definition_id);
63 exception
64 when others then
65    hr_data_pump.fail('get_position_definition_id', sqlerrm, p_position_name,
66                      p_business_group_id, p_effective_date);
67    raise;
68 end get_position_definition_id;
69 /*--------------------- get_collective_agreement_id ------------------------*/
70 function get_collective_agreement_id
71 (p_business_group_id in number
72 ,p_cagr_name         in varchar2
73 ,p_effective_date    in date
74 ) return number is
75   l_collective_agreement_id number;
76 begin
77   select pc.collective_agreement_id
78   into   l_collective_agreement_id
79   from   per_collective_agreements pc
80   where  pc.business_group_id = p_business_group_id
81   and    pc.name = p_cagr_name
82   and    p_effective_date between
83          nvl(start_date,START_OF_TIME) and nvl(end_date,END_OF_TIME);
84   return l_collective_agreement_id;
85 exception
86   when others then
87     hr_data_pump.fail('get_collective_agreement_id', sqlerrm,
88                       p_business_group_id, p_cagr_name, p_effective_date);
89     raise;
90 end get_collective_agreement_id;
91 
92 /*------------------------------ get_contract_id ---------------------------*/
93 function get_contract_id
94 (p_contract_user_key in varchar2
95 ) return number is
96   l_contract_id number;
97 begin
98    l_contract_id := user_key_to_id( p_contract_user_key );
99    return(l_contract_id);
100 exception
101   when others then
102     hr_data_pump.fail('get_contract_id', sqlerrm, p_contract_user_key);
103     raise;
104 end get_contract_id;
105 
106 /*---------------------------- get_establishment_id ---------------------------*/
107 function get_establishment_id
108 (p_establishment_name in varchar2
109 ,p_location           in varchar2
110 ) return number is
111   l_establishment_id number;
112 begin
113   select pe.establishment_id
114   into   l_establishment_id
115   from   per_establishments pe
116   where  pe.location = p_location
117   and    pe.name = p_establishment_name;
118   return l_establishment_id;
119 exception
120   when others then
121     hr_data_pump.fail('get_establishment_id', sqlerrm,
122                        p_establishment_name, p_location);
123     raise;
124 end get_establishment_id;
125 
126 /*------------------------- get_cagr_id_flex_num ------------------------------*/
127 function get_cagr_id_flex_num
128 (p_cagr_id_flex_num_user_key varchar2
129 ) return number is
130    l_cagr_id_flex_num number;
131 begin
132    l_cagr_id_flex_num := user_key_to_id( p_cagr_id_flex_num_user_key );
133    return(l_cagr_id_flex_num);
134 exception
135 when others then
136    hr_data_pump.fail('get_cagr_id_flex_num', sqlerrm, p_cagr_id_flex_num_user_key);
137    raise;
138 end get_cagr_id_flex_num;
139 
140 /* get element_entry_id - requires user key */
141 function get_element_entry_id
142 (
143    p_element_entry_user_key in varchar2
144 ) return number is
145    l_element_entry_id number;
146 begin
147    l_element_entry_id := user_key_to_id( p_element_entry_user_key );
148    return(l_element_entry_id);
149 exception
150 when others then
151    hr_data_pump.fail('get_element_entry_id', sqlerrm, p_element_entry_user_key);
152    raise;
153 end get_element_entry_id;
154 
155 /* get original element_entry_id - requires user key */
156 function get_original_entry_id
157 (
158    p_original_entry_user_key in varchar2
159 ) return number is
160    l_original_entry_id number;
161 begin
162    l_original_entry_id := get_element_entry_id( p_original_entry_user_key );
163    return(l_original_entry_id);
164 exception
165 when others then
166    hr_data_pump.fail('get_original_entry_id', sqlerrm,
167                      p_original_entry_user_key);
168    raise;
169 end get_original_entry_id;
170 
171 /* get target element_entry_id - requires user key */
172 function get_target_entry_id
173 (
174    p_target_entry_user_key in varchar2
175 ) return number is
176    l_target_entry_id number;
177 begin
178    l_target_entry_id := get_element_entry_id( p_target_entry_user_key );
179    return(l_target_entry_id);
180 exception
181 when others then
182    hr_data_pump.fail('get_target_entry_id', sqlerrm, p_target_entry_user_key);
183    raise;
184 end get_target_entry_id;
185 
186 /* get_element_link_id - requires user key */
187 function get_element_link_id
188 (
189    p_element_link_user_key in varchar2
190 ) return number is
191    l_element_link_id number;
192 begin
193    l_element_link_id := user_key_to_id( p_element_link_user_key );
194    return(l_element_link_id);
195 exception
196 when others then
197    hr_data_pump.fail('get_element_link_id', sqlerrm, p_element_link_user_key);
198    raise;
199 end get_element_link_id;
200 
201 /* get_cost_allocation_key_flex_id - requires user key */
202 function get_cost_allocation_keyflex_id
203 (
204    p_cost_alloc_keyflex_user_key in varchar2
205 ) return number is
206    l_cost_allocation_keyflex_id number;
207 begin
208    l_cost_allocation_keyflex_id :=
209    user_key_to_id( p_cost_alloc_keyflex_user_key );
210    return(l_cost_allocation_keyflex_id);
211 exception
212 when others then
213    hr_data_pump.fail('get_cost_allocation_keyflex_id', sqlerrm,
214                      p_cost_alloc_keyflex_user_key);
215    raise;
216 end get_cost_allocation_keyflex_id;
217 
218 /* get_comment_id - requires user key */
219 function get_comment_id( p_comment_user_key in varchar2 )
220 return number is
221    l_comment_id number;
222 begin
223    l_comment_id := user_key_to_id( p_comment_user_key );
224    return(l_comment_id);
225 exception
226 when others then
227    hr_data_pump.fail('get_comment_id', sqlerrm, p_comment_user_key);
228    raise;
229 end get_comment_id;
230 
231 /* get_assignment_action_id - requires user key */
232 function get_assignment_action_id( p_assignment_action_user_key in varchar2 )
233 return number is
234    l_assignment_action_id number;
235 begin
236    l_assignment_action_id := user_key_to_id( p_assignment_action_user_key );
237    return(l_assignment_action_id);
238 exception
239 when others then
240    hr_data_pump.fail('get_assignment_action_id', sqlerrm,
241                      p_assignment_action_user_key);
242    raise;
243 end get_assignment_action_id;
244 
245 /* get updating assignment_action_id - requires user key */
246 function get_updating_action_id( p_updating_action_user_key in varchar2 )
247 return number is
248    l_updating_action_id number;
249 begin
250    l_updating_action_id :=
251    get_assignment_action_id( p_updating_action_user_key );
252    return(l_updating_action_id);
253 exception
254 when others then
255    hr_data_pump.fail('get_updating_action_id', sqlerrm,
256                      p_updating_action_user_key);
257    raise;
258 end get_updating_action_id;
259 
260 /* get_input_value_id */
261 function get_input_value_id
262 (
263    p_input_value_name  in varchar2,
264    p_element_name      in varchar2,
265    p_business_group_id in number,
266    p_effective_date    in date,
267    p_language_code     in varchar2
268 ) return number is
269    l_input_value_id number;
270 begin
271    select piv.input_value_id
272    into   l_input_value_id
273    from   pay_input_values_f_tl pivtl,
274           pay_input_values_f piv,
275           pay_element_types_f pet,
276           pay_element_types_f_tl pettl,
277           per_business_groups pbg
278    where  pbg.business_group_id = p_business_group_id
279    and    pettl.element_name = p_element_name
280    and    pettl.language = p_language_code
281    and    pet.element_type_id = pettl.element_type_id
282    and    p_effective_date between
283           pet.effective_start_date and pet.effective_end_date
284    and
285    (
286       (pet.business_group_id is null and pet.legislation_code is null) or
287       (pet.business_group_id is null
288        and pet.legislation_code = pbg.legislation_code) or
289       (pet.legislation_code is null
290        and pet.business_group_id = p_business_group_id)
291    )
292    and    piv.element_type_id = pet.element_type_id
293    and    p_effective_date between
294           piv.effective_start_date and piv.effective_end_date
295    and pivtl.input_value_id = piv.input_value_id
296    and pivtl.name = p_input_value_name
297    and pivtl.LANGUAGE = p_language_code;
298    return(l_input_value_id);
299 exception
300 when others then
301    hr_data_pump.fail('get_input_value_id', sqlerrm, p_input_value_name,
302                      p_element_name, p_business_group_id, p_effective_date,
303                      p_language_code);
304    raise;
305 end get_input_value_id;
306 
307 /* get_input_value_id1 */
308 function get_input_value_id1
309 (
310    p_input_value_name1 in varchar2,
311    p_element_name      in varchar2,
312    p_business_group_id in number,
313    p_effective_date    in date,
314    p_language_code     in varchar2
315 ) return number is
316    l_input_value_id1 number;
317 begin
318    l_input_value_id1 :=
319    get_input_value_id( p_input_value_name1, p_element_name,
320                        p_business_group_id, p_effective_date,
321                        p_language_code );
322    return(l_input_value_id1);
323 exception
324 when others then
325    hr_data_pump.fail('get_input_value_id1', sqlerrm, p_input_value_name1,
326                      p_element_name, p_business_group_id, p_effective_date,
327                      p_language_code);
328    raise;
329 end get_input_value_id1;
330 
331 /* get_input_value_id2 */
332 function get_input_value_id2
333 (
334    p_input_value_name2 in varchar2,
335    p_element_name      in varchar2,
336    p_business_group_id in number,
337    p_effective_date    in date,
338    p_language_code     in varchar2
339 ) return number is
340    l_input_value_id2 number;
341 begin
342    l_input_value_id2 :=
343    get_input_value_id( p_input_value_name2, p_element_name,
344                        p_business_group_id, p_effective_date,
345                        p_language_code );
346    return(l_input_value_id2);
347 exception
348 when others then
349    hr_data_pump.fail('get_input_value_id2', sqlerrm, p_input_value_name2,
350                      p_element_name, p_business_group_id, p_effective_date,
351                      p_language_code);
352    raise;
353 end get_input_value_id2;
354 
355 /* get_input_value_id3 */
356 function get_input_value_id3
357 (
358    p_input_value_name3 in varchar2,
359    p_element_name      in varchar2,
360    p_business_group_id in number,
361    p_effective_date    in date,
362    p_language_code     in varchar2
363 ) return number is
364    l_input_value_id3 number;
365 begin
366    l_input_value_id3 :=
367    get_input_value_id( p_input_value_name3, p_element_name,
368                        p_business_group_id, p_effective_date,
369                        p_language_code );
370    return(l_input_value_id3);
371 exception
372 when others then
373    hr_data_pump.fail('get_input_value_id3', sqlerrm, p_input_value_name3,
374                      p_element_name, p_business_group_id, p_effective_date,
375                      p_language_code);
376    raise;
377 end get_input_value_id3;
378 
379 /* get_input_value_id4 */
380 function get_input_value_id4
381 (
382    p_input_value_name4 in varchar2,
383    p_element_name      in varchar2,
384    p_business_group_id in number,
385    p_effective_date    in date,
386    p_language_code     in varchar2
387 ) return number is
388    l_input_value_id4 number;
389 begin
390    l_input_value_id4 :=
391    get_input_value_id( p_input_value_name4, p_element_name,
392                        p_business_group_id, p_effective_date,
393                        p_language_code );
394    return(l_input_value_id4);
395 exception
396 when others then
397    hr_data_pump.fail('get_input_value_id4', sqlerrm, p_input_value_name4,
398                      p_element_name, p_business_group_id, p_effective_date,
399                      p_language_code);
400    raise;
401 end get_input_value_id4;
402 
403 /* get_input_value_id5 */
404 function get_input_value_id5
405 (
406    p_input_value_name5 in varchar2,
407    p_element_name      in varchar2,
408    p_business_group_id in number,
409    p_effective_date    in date,
410    p_language_code     in varchar2
411 ) return number is
412    l_input_value_id5 number;
413 begin
414    l_input_value_id5 :=
415    get_input_value_id( p_input_value_name5, p_element_name,
416                        p_business_group_id, p_effective_date,
417                        p_language_code );
418    return(l_input_value_id5);
419 exception
420 when others then
421    hr_data_pump.fail('get_input_value_id5', sqlerrm, p_input_value_name5,
422                      p_element_name, p_business_group_id, p_effective_date,
423                      p_language_code);
424    raise;
425 end get_input_value_id5;
426 
427 /* get_input_value_id6 */
428 function get_input_value_id6
429 (
430    p_input_value_name6 in varchar2,
431    p_element_name      in varchar2,
432    p_business_group_id in number,
433    p_effective_date    in date,
434    p_language_code     in varchar2
435 ) return number is
436    l_input_value_id6 number;
437 begin
438    l_input_value_id6 :=
439    get_input_value_id( p_input_value_name6, p_element_name,
440                        p_business_group_id, p_effective_date,
441                        p_language_code );
442    return(l_input_value_id6);
443 exception
444 when others then
445    hr_data_pump.fail('get_input_value_id6', sqlerrm, p_input_value_name6,
446                      p_element_name, p_business_group_id, p_effective_date,
447                      p_language_code);
448    raise;
449 end get_input_value_id6;
450 
451 /* get_input_value_id7 */
452 function get_input_value_id7
453 (
454    p_input_value_name7 in varchar2,
455    p_element_name      in varchar2,
456    p_business_group_id in number,
457    p_effective_date    in date,
458    p_language_code     in varchar2
459 ) return number is
460    l_input_value_id7 number;
461 begin
462    l_input_value_id7 :=
463    get_input_value_id( p_input_value_name7, p_element_name,
464                        p_business_group_id, p_effective_date,
465                        p_language_code );
466    return(l_input_value_id7);
467 exception
468 when others then
469    hr_data_pump.fail('get_input_value_id7', sqlerrm, p_input_value_name7,
470                      p_element_name, p_business_group_id, p_effective_date,
471                      p_language_code);
472    raise;
473 end get_input_value_id7;
474 
475 /* get_input_value_id8 */
476 function get_input_value_id8
477 (
478    p_input_value_name8 in varchar2,
479    p_element_name      in varchar2,
480    p_business_group_id in number,
481    p_effective_date    in date,
482    p_language_code     in varchar2
483 ) return number is
484    l_input_value_id8 number;
485 begin
486    l_input_value_id8 :=
487    get_input_value_id( p_input_value_name8, p_element_name,
488                        p_business_group_id, p_effective_date,
489                        p_language_code );
490    return(l_input_value_id8);
491 exception
492 when others then
493    hr_data_pump.fail('get_input_value_id8', sqlerrm, p_input_value_name8,
494                      p_element_name, p_business_group_id, p_effective_date,
495                      p_language_code);
496    raise;
497 end get_input_value_id8;
498 
499 /* get_input_value_id9 */
500 function get_input_value_id9
501 (
502    p_input_value_name9 in varchar2,
503    p_element_name      in varchar2,
504    p_business_group_id in number,
505    p_effective_date    in date,
506    p_language_code     in varchar2
507 ) return number is
508    l_input_value_id9 number;
509 begin
510    l_input_value_id9 :=
511    get_input_value_id( p_input_value_name9, p_element_name,
512                        p_business_group_id, p_effective_date,
513                        p_language_code );
514    return(l_input_value_id9);
515 exception
516 when others then
517    hr_data_pump.fail('get_input_value_id9', sqlerrm, p_input_value_name9,
518                      p_element_name, p_business_group_id, p_effective_date,
519                      p_language_code);
520    raise;
521 end get_input_value_id9;
522 
523 /* get_input_value_id10 */
524 function get_input_value_id10
525 (
526    p_input_value_name10 in varchar2,
527    p_element_name       in varchar2,
528    p_business_group_id  in number,
529    p_effective_date     in date,
530    p_language_code     in varchar2
531 ) return number is
532    l_input_value_id10 number;
533 begin
534    l_input_value_id10 :=
535    get_input_value_id( p_input_value_name10, p_element_name,
536                        p_business_group_id, p_effective_date,
537                        p_language_code );
538    return(l_input_value_id10);
539 exception
540 when others then
541    hr_data_pump.fail('get_input_value_id10', sqlerrm, p_input_value_name10,
542                      p_element_name, p_business_group_id, p_effective_date,
543                      p_language_code);
544    raise;
545 end get_input_value_id10;
546 
547 /* get_input_value_id11 */
548 function get_input_value_id11
549 (
550    p_input_value_name11 in varchar2,
551    p_element_name       in varchar2,
552    p_business_group_id  in number,
553    p_effective_date     in date,
554    p_language_code     in varchar2
555 ) return number is
556    l_input_value_id11 number;
557 begin
558    l_input_value_id11 :=
559    get_input_value_id( p_input_value_name11, p_element_name,
560                        p_business_group_id, p_effective_date,
561                        p_language_code );
562    return(l_input_value_id11);
563 exception
564 when others then
565    hr_data_pump.fail('get_input_value_id11', sqlerrm, p_input_value_name11,
566                      p_element_name, p_business_group_id, p_effective_date,
567                      p_language_code);
568    raise;
569 end get_input_value_id11;
570 
571 /* get_input_value_id12 */
572 function get_input_value_id12
573 (
574    p_input_value_name12 in varchar2,
575    p_element_name       in varchar2,
576    p_business_group_id  in number,
577    p_effective_date     in date,
578    p_language_code     in varchar2
579 ) return number is
580    l_input_value_id12 number;
581 begin
582    l_input_value_id12 :=
583    get_input_value_id( p_input_value_name12, p_element_name,
584                        p_business_group_id, p_effective_date,
585                        p_language_code );
586    return(l_input_value_id12);
587 exception
588 when others then
589    hr_data_pump.fail('get_input_value_id12', sqlerrm, p_input_value_name12,
590                      p_element_name, p_business_group_id, p_effective_date,
591                      p_language_code);
592    raise;
593 end get_input_value_id12;
594 
595 /* get_input_value_id13 */
596 function get_input_value_id13
597 (
598    p_input_value_name13 in varchar2,
599    p_element_name       in varchar2,
600    p_business_group_id  in number,
601    p_effective_date     in date,
602    p_language_code     in varchar2
603 ) return number is
604    l_input_value_id13 number;
605 begin
606    l_input_value_id13 :=
607    get_input_value_id( p_input_value_name13, p_element_name,
608                        p_business_group_id, p_effective_date,
609                        p_language_code );
610    return(l_input_value_id13);
611 exception
612 when others then
613    hr_data_pump.fail('get_input_value_id13', sqlerrm, p_input_value_name13,
614                      p_element_name, p_business_group_id, p_effective_date,
615                      p_language_code);
616    raise;
617 end get_input_value_id13;
618 
619 /* get_input_value_id14 */
620 function get_input_value_id14
621 (
622    p_input_value_name14 in varchar2,
623    p_element_name       in varchar2,
624    p_business_group_id  in number,
625    p_effective_date     in date,
626    p_language_code     in varchar2
627 ) return number is
628    l_input_value_id14 number;
629 begin
630    l_input_value_id14 :=
631    get_input_value_id( p_input_value_name14, p_element_name,
632                        p_business_group_id, p_effective_date,
633                        p_language_code );
634    return(l_input_value_id14);
635 exception
636 when others then
637    hr_data_pump.fail('get_input_value_id14', sqlerrm, p_input_value_name14,
638                      p_element_name, p_business_group_id, p_effective_date,
639                      p_language_code);
640    raise;
641 end get_input_value_id14;
642 
643 /* get_input_value_id15 */
644 function get_input_value_id15
645 (
646    p_input_value_name15 in varchar2,
647    p_element_name       in varchar2,
648    p_business_group_id  in number,
649    p_effective_date     in date,
650    p_language_code     in varchar2
651 ) return number is
652    l_input_value_id15 number;
653 begin
654    l_input_value_id15 :=
655    get_input_value_id( p_input_value_name15, p_element_name,
656                        p_business_group_id, p_effective_date,
657                        p_language_code );
658    return(l_input_value_id15);
659 exception
660 when others then
661    hr_data_pump.fail('get_input_value_id15', sqlerrm, p_input_value_name15,
662                      p_element_name, p_business_group_id, p_effective_date,
663                      p_language_code);
664    raise;
665 end get_input_value_id15;
666 
667 /* get_rate_id */
668 function get_rate_id
669 (  p_rate_name         in varchar2,
670    p_business_group_id in number
671 ) return number is
672    l_rate_id number;
673 begin
674    select rate_id
675    into   l_rate_id
676    from   pay_rates
677    where  name = p_rate_name
678    and    business_group_id + 0 = p_business_group_id;
679    return(l_rate_id);
680 exception
681 when others then
682    hr_data_pump.fail('get_rate_id', sqlerrm, p_rate_name, p_business_group_id);
683    raise;
684 end get_rate_id;
685 
686 /* get_emp_fed_tax_rule_id - requires user key */
687 function get_emp_fed_tax_rule_id
688 (
689    p_emp_fed_tax_rule_user_key in varchar2
690 ) return number is
691    l_emp_fed_tax_rule_id number;
692 begin
693    l_emp_fed_tax_rule_id := user_key_to_id( p_emp_fed_tax_rule_user_key );
694    return(l_emp_fed_tax_rule_id);
695 exception
696 when others then
697    hr_data_pump.fail('get_emp_fed_tax_rule_id', sqlerrm, p_emp_fed_tax_rule_user_key);
698    raise;
699 end get_emp_fed_tax_rule_id;
700 
701 /* get_emp_state_tax_rule_id - requires user key */
702 function get_emp_state_tax_rule_id
703 (
704    p_emp_state_tax_rule_user_key in varchar2
705 ) return number is
706    l_emp_state_tax_rule_id number;
707 begin
708    l_emp_state_tax_rule_id := user_key_to_id( p_emp_state_tax_rule_user_key );
709    return(l_emp_state_tax_rule_id);
710 exception
711 when others then
712    hr_data_pump.fail('get_emp_state_tax_rule_id', sqlerrm, p_emp_state_tax_rule_user_key);
713    raise;
714 end get_emp_state_tax_rule_id;
715 
716 /* get_emp_county_tax_rule_id - requires user key */
717 function get_emp_county_tax_rule_id
718 (
719    p_emp_county_tax_rule_user_key in varchar2
720 ) return number is
721    l_emp_county_tax_rule_id number;
722 begin
723    l_emp_county_tax_rule_id := user_key_to_id( p_emp_county_tax_rule_user_key );
724    return(l_emp_county_tax_rule_id);
725 exception
726 when others then
727    hr_data_pump.fail('get_emp_county_tax_rule_id', sqlerrm, p_emp_county_tax_rule_user_key);
728    raise;
729 end get_emp_county_tax_rule_id;
730 
731 /* get_emp_city_tax_rule_id - requires user key */
732 function get_emp_city_tax_rule_id
733 (
734    p_emp_city_tax_rule_user_key in varchar2
735 ) return number is
736    l_emp_city_tax_rule_id number;
737 begin
738    l_emp_city_tax_rule_id := user_key_to_id( p_emp_city_tax_rule_user_key );
739    return(l_emp_city_tax_rule_id);
740 exception
741 when others then
742    hr_data_pump.fail('get_emp_city_tax_rule_id', sqlerrm, p_emp_city_tax_rule_user_key);
743    raise;
744 end get_emp_city_tax_rule_id;
745 
746 /* get_ler_internal */
747 function get_ler_internal
748 (p_business_group_id in number
749 ,p_effective_date    in date
750 ,p_ler_name          in varchar2
751 ,p_caller            in varchar2
752 ) return number is
753    l_ler_id number;
754 begin
755    l_ler_id :=
756    get_ler_id(p_business_group_id, p_ler_name, p_effective_date);
757    return(l_ler_id);
758 exception
759 when others then
760    hr_data_pump.fail(p_caller, sqlerrm, p_business_group_id,
761                      p_effective_date, p_ler_name);
762    raise;
763 end get_ler_internal;
764 
765 /* get_start_life_reason_id */
766 function get_start_life_reason_id
767 (p_business_group_id in number
768 ,p_effective_date    in date
769 ,p_start_life_reason in varchar2
770 ) return number is
771   l_start_life_reason_id number;
772 begin
773   l_start_life_reason_id :=
774   get_ler_internal
775   (p_business_group_id, p_effective_date, p_start_life_reason,
776   'get_start_life_reason_id');
777 return(l_start_life_reason_id);
778 end get_start_life_reason_id;
779 
780 /* get_end_life_reason_id */
781 function get_end_life_reason_id
782 (p_business_group_id in number
783 ,p_effective_date    in date
784 ,p_end_life_reason   in varchar2
785 ) return number is
786   l_end_life_reason_id number;
787 begin
788   l_end_life_reason_id :=
789   get_ler_internal
790   (p_business_group_id, p_effective_date, p_end_life_reason,
791  'get_end_life_reason_id');
792 return(l_end_life_reason_id);
793 end get_end_life_reason_id;
794 
795 /* get_benefit_group_id */
796 function get_benefit_group_id
797 (p_business_group_id  in number
798 ,p_benefit_group      in varchar2
799 ) return number is
800    l_benefit_group_id number;
801 begin
802    select bbg.benfts_grp_id
803    into   l_benefit_group_id
804    from   ben_benfts_grp bbg
805    where  bbg.name = p_benefit_group
806    and    bbg.business_group_id + 0 = p_business_group_id;
807    return(l_benefit_group_id);
808 exception
809 when others then
810    hr_data_pump.fail('get_benefit_group_id', sqlerrm, p_business_group_id,
811                      p_benefit_group);
812    raise;
813 end get_benefit_group_id;
814 
815 /****** start OAB additions ******/
816 
817 /** start of USER_KEY additions */
818 
819 /* returns a ptnl_ler_for_per_id from supplied user_key */
820 function get_ptnl_ler_for_per_id
821 ( p_ptnl_ler_for_per_user_key    in varchar2
822 ) return number is
823   l_ptnl_ler_for_per_id number;
824 begin
825   if p_ptnl_ler_for_per_user_key is null then
826     return null;
827   end if;
828   l_ptnl_ler_for_per_id := user_key_to_id( p_ptnl_ler_for_per_user_key );
829   return(l_ptnl_ler_for_per_id);
830 exception
831   when others then
832     hr_data_pump.fail('get_ptnl_ler_for_per_id', sqlerrm, p_ptnl_ler_for_per_user_key);
833     raise;
834 end get_ptnl_ler_for_per_id;
835 -------------
836 function get_ws_mgr_id
837 ( p_ws_mgr_user_key    in varchar2
838 ) return number is
839   l_ws_mgr_id number;
840 begin
841   if p_ws_mgr_user_key is null then
842     return null;
843   end if;
844   l_ws_mgr_id := user_key_to_id( p_ws_mgr_user_key );
845   return(l_ws_mgr_id);
846 exception
847   when others then
848     hr_data_pump.fail('GET_WS_MGR_ID', sqlerrm, p_ws_mgr_user_key);
849     raise;
850 end get_ws_mgr_id;
851 --
852 function get_group_pl_id
853 ( p_group_pl_user_key    in varchar2
854 ) return number is
855 l_group_pl_id number;
856 begin
857   if p_group_pl_user_key is null then
858     return null;
859   end if;
860   l_group_pl_id := user_key_to_id( p_group_pl_user_key );
861   return(l_group_pl_id);
862 exception
863   when others then
864     hr_data_pump.fail('get_group_pl_id', sqlerrm, p_group_pl_user_key);
865     raise;
866 end get_group_pl_id;
867 --
868 function get_mgr_ovrid_person_id
869 ( p_mgr_ovrid_person_user_key    in varchar2
870 ) return number is
871   l_mgr_ovrid_person_id number;
872 begin
873   if p_mgr_ovrid_person_user_key is null then
874     return null;
875   end if;
876   l_mgr_ovrid_person_id := user_key_to_id( p_mgr_ovrid_person_user_key );
877   return(l_mgr_ovrid_person_id);
878 exception
879   when others then
880     hr_data_pump.fail('get_mgr_ovrid_person_id', sqlerrm, p_mgr_ovrid_person_user_key);
881     raise;
882 end get_mgr_ovrid_person_id;
883 ------------
884 
885 /* returns a csd_by_ptnl_ler_for_per_id from supplied user_key */
886 function get_csd_by_ptnl_ler_for_per_id
887 ( p_csd_by_ppl_user_key    in varchar2  -- note abbreviation
888 ) return number is
889   l_csd_by_ptnl_ler_for_per_id number;
890 begin
891   if p_csd_by_ppl_user_key is null then
892      return null;
893   end if;
894   l_csd_by_ptnl_ler_for_per_id := user_key_to_id( p_csd_by_ppl_user_key );
895   return(l_csd_by_ptnl_ler_for_per_id);
896 exception
897   when others then
898     hr_data_pump.fail('get_csd_by_ptnl_ler_for_per_id', sqlerrm, p_csd_by_ppl_user_key);
899     raise;
900 end get_csd_by_ptnl_ler_for_per_id;
901 
902 /* returns a ptnl_ler_for_per object_version_number */
903 function get_ptnl_ler_for_per_ovn
904 ( p_ptnl_ler_for_per_user_key    in varchar2
905 ) return number is
906   l_ovn number;
907 begin
908    select ppl.object_version_number
909    into   l_ovn
910    from   ben_ptnl_ler_for_per  ppl,
911           hr_pump_batch_line_user_keys key
912    where  key.user_key_value       = p_ptnl_ler_for_per_user_key
913    and    ppl.ptnl_ler_for_per_id  = key.unique_key_id;
914    return(l_ovn);
915 exception
916   when others then
917     hr_data_pump.fail('get_ptnl_ler_for_per_ovn', sqlerrm, p_ptnl_ler_for_per_user_key);
918     raise;
919 end get_ptnl_ler_for_per_ovn;
920 
921 /* returns a per_in_ler_id from supplied user_key */
922 function get_per_in_ler_id
923 ( p_per_in_ler_user_key          in varchar2
924 ) return number is
925   l_per_in_ler_id number;
926 begin
927   if p_per_in_ler_user_key is null then
928      return null;
929   end if;
930   l_per_in_ler_id := user_key_to_id( p_per_in_ler_user_key );
931   return(l_per_in_ler_id);
932 exception
933   when others then
934     hr_data_pump.fail('get_per_in_ler_id', sqlerrm, p_per_in_ler_user_key);
935     raise;
936 end get_per_in_ler_id;
937 
938 /* returns a per_in_ler_id from supplied user_key */
939 function get_trgr_table_pk_id
940 ( p_trgr_table_pk_user_key          in varchar2
941 ) return number is
942   l_trgr_table_pk_id number;
943 begin
944  /* if p_per_in_ler_user_key is null then
945      return null;
946   end if;
947   l_trgr_table_pk_id := user_key_to_id( p_trgr_table_pk_user_key );
948   return(l_trgr_table_pk_id); */
949   -- return a null value for now
950   return null;
951 exception
952   when others then
953     hr_data_pump.fail('get_trgr_table_pk_id', sqlerrm, p_trgr_table_pk_user_key);
954     raise;
955 end get_trgr_table_pk_id;
956 
957 /* returns a bckt_per_in_ler_id from supplied user_key */
958 function get_bckt_per_in_ler_id
959 ( p_bckt_per_in_ler_user_key          in varchar2
960 ) return number is
961   l_bckt_per_in_ler_id number;
962 begin
963   if p_bckt_per_in_ler_user_key is null then
964     return null;
965   end if;
966   l_bckt_per_in_ler_id := user_key_to_id( p_bckt_per_in_ler_user_key );
967   return(l_bckt_per_in_ler_id);
968 exception
969   when others then
970     hr_data_pump.fail('get_bckt_per_in_ler_id', sqlerrm, p_bckt_per_in_ler_user_key);
971     raise;
972 end get_bckt_per_in_ler_id;
973 
974 /* returns a ended_per_in_ler_id from supplied user_key */
975 function get_ended_per_in_ler_id
976 ( p_ended_per_in_ler_user_key          in varchar2
977 ) return number is
978   l_ended_per_in_ler_id number;
979 begin
980   if p_ended_per_in_ler_user_key is null then
981      return null;
982   end if;
983   l_ended_per_in_ler_id := user_key_to_id( p_ended_per_in_ler_user_key );
984   return(l_ended_per_in_ler_id);
985 exception
986   when others then
987     hr_data_pump.fail('get_ended_per_in_ler_id', sqlerrm, p_ended_per_in_ler_user_key);
988     raise;
989 end get_ended_per_in_ler_id;
990 
991 /* returns a per_in_ler object_version_number */
992 function get_per_in_ler_ovn
993 ( p_per_in_ler_user_key          in varchar2
994 ) return number is
995   l_ovn number;
996 begin
997    select pil.object_version_number
998    into   l_ovn
999    from   ben_per_in_ler  pil,
1000           hr_pump_batch_line_user_keys key
1001    where  key.user_key_value       = p_per_in_ler_user_key
1002    and    pil.per_in_ler_id        = key.unique_key_id;
1003    return(l_ovn);
1004 exception
1005   when others then
1006     hr_data_pump.fail('get_per_in_ler_ovn', sqlerrm, p_per_in_ler_user_key);
1007     raise;
1008 end get_per_in_ler_ovn;
1009 
1010 /* returns a prtt_enrt_rslt_id from supplied user_key */
1011 function get_prtt_enrt_rslt_id
1012 ( p_prtt_enrt_rslt_user_key      in varchar2
1013 ) return number is
1014   l_prtt_enrt_rslt_id number;
1015 begin
1016   if p_prtt_enrt_rslt_user_key is null then
1017      return null;
1018   end if;
1019   l_prtt_enrt_rslt_id := user_key_to_id( p_prtt_enrt_rslt_user_key );
1020   return(l_prtt_enrt_rslt_id);
1021 exception
1022   when others then
1023     hr_data_pump.fail('get_prtt_enrt_rslt_id', sqlerrm, p_prtt_enrt_rslt_user_key);
1024     raise;
1025 end get_prtt_enrt_rslt_id;
1026 
1027 /* returns a rplcs_sspndd_rslt_id from supplied user_key */
1028 function get_rplcs_sspndd_rslt_id
1029 ( p_rplcs_sspndd_rslt_user_key      in varchar2
1030 ) return number is
1031   l_rplcs_sspndd_rslt_id number;
1032 begin
1033   if p_rplcs_sspndd_rslt_user_key is null then
1034      return null;
1035   end if;
1036   l_rplcs_sspndd_rslt_id := user_key_to_id( p_rplcs_sspndd_rslt_user_key );
1037   return(l_rplcs_sspndd_rslt_id);
1038 exception
1039   when others then
1040     hr_data_pump.fail('get_rplcs_sspndd_rslt_id', sqlerrm, p_rplcs_sspndd_rslt_user_key);
1041     raise;
1042 end get_rplcs_sspndd_rslt_id;
1043 
1044 /* returns a prtt_enrt_rslt object_version_number */
1045 function get_prtt_enrt_rslt_ovn
1046 ( p_prtt_enrt_rslt_user_key      in varchar2,
1047   p_effective_date    in date
1048 ) return number is
1049   l_ovn number;
1050 begin
1051    select pen.object_version_number
1052    into   l_ovn
1053    from   ben_prtt_enrt_rslt_f  pen,
1054           hr_pump_batch_line_user_keys key
1055    where  key.user_key_value       = p_prtt_enrt_rslt_user_key
1056    and    pen.prtt_enrt_rslt_id    = key.unique_key_id
1057    and    p_effective_date between
1058           pen.effective_start_date and pen.effective_end_date;
1059    return(l_ovn);
1060 exception
1061   when others then
1062     hr_data_pump.fail('get_prtt_enrt_rslt_ovn', sqlerrm, p_prtt_enrt_rslt_user_key);
1063     raise;
1064 end get_prtt_enrt_rslt_ovn;
1065 
1066 /* returns a prtt_rt_val_id from supplied user_key */
1067 function get_prtt_rt_val_id
1068 ( p_prtt_rt_val_user_key         in varchar2
1069 ) return number is
1070   l_prtt_rt_val_id number;
1071 begin
1072   if p_prtt_rt_val_user_key is null then
1073      return null;
1074   end if;
1075   l_prtt_rt_val_id := user_key_to_id( p_prtt_rt_val_user_key );
1076   return(l_prtt_rt_val_id);
1077 exception
1078   when others then
1079     hr_data_pump.fail('get_prtt_rt_val_id', sqlerrm, p_prtt_rt_val_user_key);
1080     raise;
1081 end get_prtt_rt_val_id;
1082 
1083 /* returns a prtt_rt_val object_version_number */
1084 function get_prtt_rt_val_ovn
1085 ( p_prtt_rt_val_user_key         in varchar2
1086 ) return number is
1087   l_ovn number;
1088 begin
1089    select prv.object_version_number
1090    into   l_ovn
1091    from   ben_prtt_rt_val  prv,
1092           hr_pump_batch_line_user_keys key
1093    where  key.user_key_value       = p_prtt_rt_val_user_key
1094    and    prv.prtt_rt_val_id       = key.unique_key_id;
1095    return(l_ovn);
1096 exception
1097   when others then
1098     hr_data_pump.fail('get_prtt_rt_val_ovn', sqlerrm, p_prtt_rt_val_user_key);
1099     raise;
1100 end get_prtt_rt_val_ovn;
1101 
1102 /* returns a cbr_quald_bnf_id from supplied user_key */
1103 function get_cbr_quald_bnf_id
1104 ( p_cbr_quald_bnf_user_key       in varchar2
1105 ) return number is
1106   l_cbr_quald_bnf_id number;
1107 begin
1108   if p_cbr_quald_bnf_user_key is null then
1109      return null;
1110   end if;
1111   l_cbr_quald_bnf_id := user_key_to_id( p_cbr_quald_bnf_user_key );
1112   return(l_cbr_quald_bnf_id);
1113 exception
1114   when others then
1115     hr_data_pump.fail('get_cbr_quald_bnf_id', sqlerrm, p_cbr_quald_bnf_user_key);
1116     raise;
1117 end get_cbr_quald_bnf_id;
1118 
1119 /* returns a cbr_quald_bnf object_version_number */
1120 function get_cbr_quald_bnf_ovn
1121 ( p_cbr_quald_bnf_user_key       in varchar2
1122 ) return number is
1123   l_ovn number;
1124 begin
1125    select cqb.object_version_number
1126    into   l_ovn
1127    from   ben_cbr_quald_bnf  cqb,
1128           hr_pump_batch_line_user_keys key
1129    where  key.user_key_value       = p_cbr_quald_bnf_user_key
1130    and    cqb.cbr_quald_bnf_id     = key.unique_key_id;
1131    return(l_ovn);
1132 exception
1133   when others then
1134     hr_data_pump.fail('get_cbr_quald_bnf_ovn', sqlerrm, p_cbr_quald_bnf_user_key);
1135     raise;
1136 end get_cbr_quald_bnf_ovn;
1137 
1138 /* returns a cbr_per_in_ler_id from supplied user_key */
1139 function get_cbr_per_in_ler_id
1140 ( p_cbr_per_in_ler_user_key      in varchar2
1141 ) return number is
1142   l_cbr_per_in_ler_id number;
1143 begin
1144   if p_cbr_per_in_ler_user_key is null then
1145      return null;
1146   end if;
1147   l_cbr_per_in_ler_id := user_key_to_id( p_cbr_per_in_ler_user_key );
1148   return(l_cbr_per_in_ler_id);
1149 exception
1150   when others then
1151     hr_data_pump.fail('get_cbr_per_in_ler_id', sqlerrm, p_cbr_per_in_ler_user_key);
1152     raise;
1153 end get_cbr_per_in_ler_id;
1154 
1155 /* returns a cbr_per_in_ler object_version_number */
1156 function get_cbr_per_in_ler_ovn
1157 ( p_cbr_per_in_ler_user_key      in varchar2
1158 ) return number is
1159   l_ovn number;
1160 begin
1161    select crp.object_version_number
1162    into   l_ovn
1163    from   ben_cbr_per_in_ler  crp,
1164           hr_pump_batch_line_user_keys key
1165    where  key.user_key_value       = p_cbr_per_in_ler_user_key
1166    and    crp.cbr_per_in_ler_id    = key.unique_key_id;
1167    return(l_ovn);
1168 exception
1169   when others then
1170     hr_data_pump.fail('get_cbr_per_in_ler_ovn', sqlerrm, p_cbr_per_in_ler_user_key);
1171     raise;
1172 end get_cbr_per_in_ler_ovn;
1173 
1174 /* returns a elig_cvrd_dpnt_id from supplied user_key */
1175 function get_elig_cvrd_dpnt_id
1176 ( p_elig_cvrd_dpnt_user_key      in varchar2
1177 ) return number is
1178   l_elig_cvrd_dpnt_id number;
1179 begin
1180   if p_elig_cvrd_dpnt_user_key is null then
1181      return null;
1182   end if;
1183   l_elig_cvrd_dpnt_id := user_key_to_id( p_elig_cvrd_dpnt_user_key );
1184   return(l_elig_cvrd_dpnt_id);
1185 exception
1186   when others then
1187     hr_data_pump.fail('get_elig_cvrd_dpnt_id', sqlerrm, p_elig_cvrd_dpnt_user_key);
1188     raise;
1189 end get_elig_cvrd_dpnt_id;
1190 
1191 /* returns a elig_cvrd_dpnt object_version_number */
1192 function get_elig_cvrd_dpnt_ovn
1193 ( p_elig_cvrd_dpnt_user_key      in varchar2,
1194   p_effective_date    in date
1195 ) return number is
1196   l_ovn number;
1197 begin
1198    select pdp.object_version_number
1199    into   l_ovn
1200    from   ben_elig_cvrd_dpnt_f  pdp,
1201           hr_pump_batch_line_user_keys key
1202    where  key.user_key_value       = p_elig_cvrd_dpnt_user_key
1203    and    pdp.elig_cvrd_dpnt_id    = key.unique_key_id
1204    and    p_effective_date between
1205           pdp.effective_start_date and pdp.effective_end_date;
1206    return(l_ovn);
1207 exception
1208   when others then
1209     hr_data_pump.fail('get_elig_cvrd_dpnt_ovn', sqlerrm, p_effective_date, p_elig_cvrd_dpnt_user_key);
1210     raise;
1211 end get_elig_cvrd_dpnt_ovn;
1212 
1213 /* returns a prtt_prem_id from supplied user_key */
1214 function get_prtt_prem_id
1215 ( p_prtt_prem_user_key           in varchar2
1216 ) return number is
1217   l_prtt_prem_id number;
1218 begin
1219   if p_prtt_prem_user_key is null then
1220      return null;
1221   end if;
1222   l_prtt_prem_id := user_key_to_id( p_prtt_prem_user_key );
1223   return(l_prtt_prem_id);
1224 exception
1225   when others then
1226     hr_data_pump.fail('get_prtt_prem_id', sqlerrm, p_prtt_prem_user_key);
1227     raise;
1228 end get_prtt_prem_id;
1229 
1230 /* returns a prtt_prem object_version_number */
1231 function get_prtt_prem_ovn
1232 ( p_prtt_prem_user_key           in varchar2,
1233   p_effective_date    in date
1234 ) return number is
1235   l_ovn number;
1236 begin
1237    select ppe.object_version_number
1238    into   l_ovn
1239    from   ben_prtt_prem_f  ppe,
1240           hr_pump_batch_line_user_keys key
1241    where  key.user_key_value       = p_prtt_prem_user_key
1242    and    ppe.prtt_prem_id         = key.unique_key_id
1243    and    p_effective_date between
1244           ppe.effective_start_date and ppe.effective_end_date;
1245    return(l_ovn);
1246 exception
1247   when others then
1248     hr_data_pump.fail('get_prtt_prem_ovn', sqlerrm, p_effective_date, p_prtt_prem_user_key);
1249     raise;
1250 end get_prtt_prem_ovn;
1251 
1252 /* returns a elig_dpnt_id from supplied user_key */
1253 function get_elig_dpnt_id
1254 ( p_elig_dpnt_user_key           in varchar2
1255 ) return number is
1256   l_elig_dpnt_id number;
1257 begin
1258   if p_elig_dpnt_user_key is null then
1259      return null;
1260   end if;
1261   l_elig_dpnt_id := user_key_to_id( p_elig_dpnt_user_key );
1262   return(l_elig_dpnt_id);
1263 exception
1264   when others then
1265     hr_data_pump.fail('get_elig_dpnt_id', sqlerrm, p_elig_dpnt_user_key);
1266     raise;
1267 end get_elig_dpnt_id;
1268 
1269 /* returns a elig_dpnt object_version_number */
1270 function get_elig_dpnt_ovn
1271 ( p_elig_dpnt_user_key           in varchar2
1272 ) return number is
1273   l_ovn number;
1274 begin
1275    select egd.object_version_number
1276    into   l_ovn
1277    from   ben_elig_dpnt  egd,
1278           hr_pump_batch_line_user_keys key
1279    where  key.user_key_value       = p_elig_dpnt_user_key
1280    and    egd.elig_dpnt_id         = key.unique_key_id;
1281    return(l_ovn);
1282 exception
1283   when others then
1284     hr_data_pump.fail('get_elig_dpnt_ovn', sqlerrm, p_elig_dpnt_user_key);
1285     raise;
1286 end get_elig_dpnt_ovn;
1287 
1288 /* returns a elig_per_id from supplied user_key */
1289 function get_elig_per_id
1290 ( p_elig_per_user_key            in varchar2
1291 ) return number is
1292   l_elig_per_id number;
1293 begin
1294   if p_elig_per_user_key is null then
1298   return(l_elig_per_id);
1295      return null;
1296   end if;
1297   l_elig_per_id := user_key_to_id( p_elig_per_user_key );
1299 exception
1300   when others then
1301     hr_data_pump.fail('get_elig_per_id', sqlerrm, p_elig_per_user_key);
1302     raise;
1303 end get_elig_per_id;
1304 
1305 /* returns a elig_per object_version_number */
1306 function get_elig_per_ovn
1307 ( p_elig_per_user_key            in varchar2,
1308   p_effective_date    in date
1309 ) return number is
1310   l_ovn number;
1311 begin
1312    select pep.object_version_number
1313    into   l_ovn
1314    from   ben_elig_per_f  pep,
1315           hr_pump_batch_line_user_keys key
1316    where  key.user_key_value       = p_elig_per_user_key
1317    and    pep.elig_per_id          = key.unique_key_id
1318    and    p_effective_date between
1319           pep.effective_start_date and pep.effective_end_date;
1320    return(l_ovn);
1321 exception
1322   when others then
1323     hr_data_pump.fail('get_elig_per_ovn', sqlerrm, p_effective_date, p_elig_per_user_key);
1324     raise;
1325 end get_elig_per_ovn;
1326 
1327 /* returns a elig_per_opt_id from supplied user_key */
1328 function get_elig_per_opt_id
1329 ( p_elig_per_opt_user_key        in varchar2
1330 ) return number is
1331   l_elig_per_opt_id number;
1332 begin
1333   if p_elig_per_opt_user_key is null then
1334      return null;
1335   end if;
1336   l_elig_per_opt_id := user_key_to_id( p_elig_per_opt_user_key );
1337   return(l_elig_per_opt_id);
1338 exception
1339   when others then
1340     hr_data_pump.fail('get_elig_per_opt_id', sqlerrm, p_elig_per_opt_user_key);
1341     raise;
1342 end get_elig_per_opt_id;
1343 
1344 /* returns a elig_per_opt object_version_number */
1345 function get_elig_per_opt_ovn
1346 ( p_elig_per_opt_user_key        in varchar2,
1347   p_effective_date    in date
1348 ) return number is
1349   l_ovn number;
1350 begin
1351    select epo.object_version_number
1352    into   l_ovn
1353    from   ben_elig_per_opt_f  epo,
1354           hr_pump_batch_line_user_keys key
1355    where  key.user_key_value       = p_elig_per_opt_user_key
1356    and    epo.elig_per_opt_id      = key.unique_key_id
1357    and    p_effective_date between
1358           epo.effective_start_date and epo.effective_end_date;
1359    return(l_ovn);
1360 exception
1361   when others then
1362     hr_data_pump.fail('get_elig_per_opt_ovn', sqlerrm, p_effective_date, p_elig_per_opt_user_key);
1363     raise;
1364 end get_elig_per_opt_ovn;
1365 
1366 /* returns a pl_bnf_id from supplied user_key */
1367 function get_pl_bnf_id
1368 ( p_pl_bnf_user_key              in varchar2
1369 ) return number is
1370   l_pl_bnf_id number;
1371 begin
1372   if p_pl_bnf_user_key is null then
1373      return null;
1374   end if;
1375   l_pl_bnf_id := user_key_to_id( p_pl_bnf_user_key );
1376   return(l_pl_bnf_id);
1377 exception
1378   when others then
1379     hr_data_pump.fail('get_pl_bnf_id', sqlerrm, p_pl_bnf_user_key);
1380     raise;
1381 end get_pl_bnf_id;
1382 
1383 /* returns a pl_bnf object_version_number */
1384 function get_pl_bnf_ovn
1385 ( p_pl_bnf_user_key              in varchar2,
1386   p_effective_date    in date
1387 ) return number is
1388   l_ovn number;
1389 begin
1390    select pbn.object_version_number
1391    into   l_ovn
1392    from   ben_pl_bnf_f  pbn,
1393           hr_pump_batch_line_user_keys key
1394    where  key.user_key_value       = p_pl_bnf_user_key
1395    and    pbn.pl_bnf_id            = key.unique_key_id
1396    and    p_effective_date between
1397           pbn.effective_start_date and pbn.effective_end_date;
1398    return(l_ovn);
1399 exception
1400   when others then
1401     hr_data_pump.fail('get_pl_bnf_ovn', sqlerrm, p_effective_date, p_pl_bnf_user_key);
1402     raise;
1403 end get_pl_bnf_ovn;
1404 
1405 /* returns a oipl_id from supplied user_key */
1406 function get_oipl_id
1407 ( p_oipl_user_key                in varchar2
1408 ) return number is
1409   l_oipl_id number;
1410 begin
1411   if p_oipl_user_key is null then
1412      return null;
1413   end if;
1414   l_oipl_id := user_key_to_id( p_oipl_user_key );
1415   return(l_oipl_id);
1416 exception
1417   when others then
1418     hr_data_pump.fail('get_oipl_id', sqlerrm, p_oipl_user_key);
1419     raise;
1420 end get_oipl_id;
1421 
1422 /* returns a oipl object_version_number */
1423 function get_oipl_ovn
1424 ( p_oipl_user_key                in varchar2,
1425   p_effective_date    in date
1426 ) return number is
1427   l_ovn number;
1428 begin
1429    select cop.object_version_number
1430    into   l_ovn
1431    from   ben_oipl_f  cop,
1432           hr_pump_batch_line_user_keys key
1433    where  key.user_key_value       = p_oipl_user_key
1434    and    cop.oipl_id              = key.unique_key_id
1435    and    p_effective_date between
1436           cop.effective_start_date and cop.effective_end_date;
1437    return(l_ovn);
1438 exception
1439   when others then
1440     hr_data_pump.fail('get_oipl_ovn', sqlerrm, p_effective_date, p_oipl_user_key);
1441     raise;
1442 end get_oipl_ovn;
1443 
1444 /* returns a plip_id from supplied user_key */
1445 function get_plip_id
1446 ( p_plip_user_key                in varchar2
1447 ) return number is
1448   l_plip_id number;
1449 begin
1450   if p_plip_user_key is null then
1451      return null;
1452   end if;
1453   l_plip_id := user_key_to_id( p_plip_user_key );
1454   return(l_plip_id);
1455 exception
1456   when others then
1457     hr_data_pump.fail('get_plip_id', sqlerrm, p_plip_user_key);
1458     raise;
1459 end get_plip_id;
1460 
1461 /* returns a plip object_version_number */
1462 function get_plip_ovn
1463 ( p_plip_user_key                in varchar2,
1464   p_effective_date    in date
1465 ) return number is
1466   l_ovn number;
1467 begin
1468    select cpp.object_version_number
1469    into   l_ovn
1470    from   ben_plip_f  cpp,
1471           hr_pump_batch_line_user_keys key
1472    where  key.user_key_value       = p_plip_user_key
1473    and    cpp.plip_id              = key.unique_key_id
1474    and    p_effective_date between
1475           cpp.effective_start_date and cpp.effective_end_date;
1476    return(l_ovn);
1477 exception
1478   when others then
1479     hr_data_pump.fail('get_plip_ovn', sqlerrm, p_effective_date, p_plip_user_key);
1480     raise;
1481 end get_plip_ovn;
1482 
1483 /* returns a ptip_id from supplied user_key */
1484 function get_ptip_id
1485 ( p_ptip_user_key                in varchar2
1486 ) return number is
1487   l_ptip_id number;
1488 begin
1489   if p_ptip_user_key is null then
1490      return null;
1491   end if;
1492   l_ptip_id := user_key_to_id( p_ptip_user_key );
1493   return(l_ptip_id);
1494 exception
1495   when others then
1496     hr_data_pump.fail('get_ptip_id', sqlerrm, p_ptip_user_key);
1497     raise;
1498 end get_ptip_id;
1499 
1500 /* returns a ptip object_version_number */
1501 function get_ptip_ovn
1502 ( p_ptip_user_key                in varchar2,
1503   p_effective_date    in date
1504 ) return number is
1505   l_ovn number;
1506 begin
1507    select ctp.object_version_number
1508    into   l_ovn
1509    from   ben_ptip_f  ctp,
1510           hr_pump_batch_line_user_keys key
1511    where  key.user_key_value       = p_ptip_user_key
1512    and    ctp.ptip_id              = key.unique_key_id
1513    and    p_effective_date between
1514           ctp.effective_start_date and ctp.effective_end_date;
1515    return(l_ovn);
1516 exception
1517   when others then
1518     hr_data_pump.fail('get_ptip_ovn', sqlerrm, p_effective_date, p_ptip_user_key);
1519     raise;
1520 end get_ptip_ovn;
1521 
1522 /* returns a enrt_rt_id from supplied user_key */
1523 function get_enrt_rt_id
1524 ( p_enrt_rt_user_key             in varchar2
1525 ) return number is
1526   l_enrt_rt_id number;
1527 begin
1528   if p_enrt_rt_user_key is null then
1529      return null;
1530   end if;
1531   l_enrt_rt_id := user_key_to_id( p_enrt_rt_user_key );
1532   return(l_enrt_rt_id);
1533 exception
1534   when others then
1535     hr_data_pump.fail('get_enrt_rt_id', sqlerrm, p_enrt_rt_user_key);
1536     raise;
1537 end get_enrt_rt_id;
1538 
1539 /* returns a enrt_rt object_version_number */
1540 function get_enrt_rt_ovn
1541 ( p_enrt_rt_user_key             in varchar2
1542 ) return number is
1543   l_ovn number;
1544 begin
1545    select ecr.object_version_number
1546    into   l_ovn
1547    from   ben_enrt_rt  ecr,
1548           hr_pump_batch_line_user_keys key
1549    where  key.user_key_value       = p_enrt_rt_user_key
1550    and    ecr.enrt_rt_id           = key.unique_key_id;
1551    return(l_ovn);
1552 exception
1553   when others then
1554     hr_data_pump.fail('get_enrt_rt_ovn', sqlerrm, p_enrt_rt_user_key);
1555     raise;
1556 end get_enrt_rt_ovn;
1557 
1558 /* returns a enrt_perd_id from supplied user_key */
1559 function get_enrt_perd_id
1560 ( p_enrt_perd_user_key           in varchar2
1561 ) return number is
1562   l_enrt_perd_id number;
1563 begin
1564   if p_enrt_perd_user_key is null then
1565     return null;
1566   end if;
1567   l_enrt_perd_id := user_key_to_id( p_enrt_perd_user_key );
1568   return(l_enrt_perd_id);
1569 exception
1570   when others then
1571     hr_data_pump.fail('get_enrt_perd_id', sqlerrm, p_enrt_perd_user_key);
1572     raise;
1573 end get_enrt_perd_id;
1574 
1575 /* returns a enrt_perd object_version_number */
1576 function get_enrt_perd_ovn
1577 ( p_enrt_perd_user_key           in varchar2
1578 ) return number is
1579   l_ovn number;
1580 begin
1581    select enp.object_version_number
1582    into   l_ovn
1583    from   ben_enrt_perd  enp,
1584           hr_pump_batch_line_user_keys key
1585    where  key.user_key_value       = p_enrt_perd_user_key
1586    and    enp.enrt_perd_id         = key.unique_key_id;
1587    return(l_ovn);
1588 exception
1589   when others then
1590     hr_data_pump.fail('get_enrt_perd_ovn', sqlerrm, p_enrt_perd_user_key);
1591     raise;
1592 end get_enrt_perd_ovn;
1593 
1594 /* returns a prtt_reimbmt_rqst_id from supplied user_key */
1595 function get_prtt_reimbmt_rqst_id
1596 ( p_prtt_reimbmt_rqst_user_key   in varchar2
1597 ) return number is
1598   l_prtt_reimbmt_rqst_id number;
1599 begin
1600   if p_prtt_reimbmt_rqst_user_key is null then
1601      return null;
1602   end if;
1603   l_prtt_reimbmt_rqst_id := user_key_to_id( p_prtt_reimbmt_rqst_user_key );
1604   return(l_prtt_reimbmt_rqst_id);
1605 exception
1606   when others then
1607     hr_data_pump.fail('get_prtt_reimbmt_rqst_id', sqlerrm, p_prtt_reimbmt_rqst_user_key);
1608     raise;
1609 end get_prtt_reimbmt_rqst_id;
1610 
1611 /* returns a prtt_reimbmt_rqst object_version_number */
1612 function get_prtt_reimbmt_rqst_ovn
1613 ( p_prtt_reimbmt_rqst_user_key   in varchar2,
1614   p_effective_date    in date
1615 ) return number is
1616   l_ovn number;
1617 begin
1618    select prc.object_version_number
1619    into   l_ovn
1620    from   ben_prtt_reimbmt_rqst_f  prc,
1621           hr_pump_batch_line_user_keys key
1622    where  key.user_key_value       = p_prtt_reimbmt_rqst_user_key
1623    and    prc.prtt_reimbmt_rqst_id = key.unique_key_id
1624    and    p_effective_date between
1625           prc.effective_start_date and prc.effective_end_date;
1626    return(l_ovn);
1627 exception
1628   when others then
1629     hr_data_pump.fail('get_prtt_reimbmt_rqst_ovn', sqlerrm, p_prtt_reimbmt_rqst_user_key);
1630     raise;
1631 end get_prtt_reimbmt_rqst_ovn;
1632 
1633 /* returns a elig_per_elctbl_chc_id from supplied user_key */
1634 function get_elig_per_elctbl_chc_id
1635 ( p_elig_per_elctbl_chc_user_key in varchar2
1636 ) return number is
1637   l_elig_per_elctbl_chc_id number;
1638 begin
1639   if p_elig_per_elctbl_chc_user_key is null then
1640      return null;
1641   end if;
1642   l_elig_per_elctbl_chc_id := user_key_to_id( p_elig_per_elctbl_chc_user_key );
1643   return(l_elig_per_elctbl_chc_id);
1644 exception
1645   when others then
1646     hr_data_pump.fail('get_elig_per_elctbl_chc_id', sqlerrm, p_elig_per_elctbl_chc_user_key);
1647     raise;
1648 end get_elig_per_elctbl_chc_id;
1649 
1650 /* returns a elig_per_elctbl_chc object_version_number */
1651 function get_elig_per_elctbl_chc_ovn
1652 ( p_elig_per_elctbl_chc_user_key in varchar2
1653 ) return number is
1654   l_ovn number;
1655 begin
1656    select epe.object_version_number
1657    into   l_ovn
1658    from   ben_elig_per_elctbl_chc  epe,
1659           hr_pump_batch_line_user_keys key
1660    where  key.user_key_value       = p_elig_per_elctbl_chc_user_key
1661    and    epe.elig_per_elctbl_chc_id  = key.unique_key_id;
1662    return(l_ovn);
1663 exception
1664   when others then
1665     hr_data_pump.fail('get_elig_per_elctbl_chc_ovn', sqlerrm, p_elig_per_elctbl_chc_user_key);
1666     raise;
1667 end get_elig_per_elctbl_chc_ovn;
1668 
1669 /** end of USER_KEY additions */
1670 
1671 /** start of NAME additions for BEN tables */
1672 -- Note: a similar routine named get_benefit_group_id predates this. Left it for upward compat.
1673 /* returns a benfts_grp_id */
1674 function get_benfts_grp_id
1675 ( p_business_group_id in number,
1676   p_benefits_group    in varchar2
1677 ) return number is
1678   l_benefit_group_id number;
1679 begin
1680   select bng.benfts_grp_id
1681   into   l_benefit_group_id
1682   from   ben_benfts_grp bng
1683   where  bng.name                  = p_benefits_group
1684   and    bng.business_group_id + 0 = p_business_group_id;
1685   return(l_benefit_group_id);
1686 exception
1687 when others then
1688   hr_data_pump.fail('get_benfts_grp_id', sqlerrm, p_business_group_id, p_benefits_group);
1689   raise;
1690 end get_benfts_grp_id;
1691 
1692 /* returns a benefits group object version number */
1693 function get_benfts_grp_ovn
1694 ( p_business_group_id in number,
1695   p_benefits_group    in varchar2
1696 ) return number is
1697   l_ovn number;
1698 begin
1699   select bng.object_version_number
1700   into   l_ovn
1701   from   ben_benfts_grp bng
1702   where  bng.name                  = p_benefits_group
1703   and    bng.business_group_id + 0 = p_business_group_id;
1704   return(l_ovn);
1705 exception
1706 when others then
1707   hr_data_pump.fail('get_benfts_grp_ovn', sqlerrm, p_business_group_id, p_benefits_group);
1708   raise;
1709 end get_benfts_grp_ovn;
1710 
1711 /* returns a pl_typ_id */
1712 function get_pl_typ_id
1713 ( p_business_group_id in number,
1714   p_plan_type         in varchar2,
1715   p_effective_date    in date
1716 ) return number is
1717   l_plan_type_id number;
1718 begin
1719   select ptp.pl_typ_id
1720   into   l_plan_type_id
1721   from   ben_pl_typ_f ptp
1722   where  ptp.name                  = p_plan_type
1723   and    ptp.business_group_id + 0 = p_business_group_id
1724   and    p_effective_date between
1725          ptp.effective_start_date and ptp.effective_end_date;
1726   return(l_plan_type_id);
1727 exception
1728 when others then
1729   hr_data_pump.fail('get_pl_typ_id', sqlerrm, p_business_group_id, p_plan_type, p_effective_date);
1730   raise;
1731 end get_pl_typ_id;
1732 
1733 /* returns a plan type object version number */
1734 function get_pl_typ_ovn
1735 ( p_business_group_id in number,
1736   p_plan_type          in varchar2,
1737   p_effective_date     in date
1738 ) return number is
1739   l_ovn number;
1740 begin
1741   select ptp.object_version_number
1742   into   l_ovn
1743   from   ben_pl_typ_f ptp
1744   where  ptp.name                  = p_plan_type
1745   and    ptp.business_group_id + 0 = p_business_group_id
1746   and    p_effective_date between
1747          ptp.effective_start_date and ptp.effective_end_date;
1748   return(l_ovn);
1749 exception
1750 when others then
1751   hr_data_pump.fail('get_pl_typ_ovn', sqlerrm, p_business_group_id, p_plan_type, p_effective_date);
1752   raise;
1753 end get_pl_typ_ovn;
1754 
1755 -- Note: an overloaded routine predates this. Left it for upward compat.
1756 /* returns a ler_id */
1757 function get_ler_id
1758 ( p_business_group_id in number,
1759   p_life_event_reason in varchar2,
1760   p_effective_date    in date
1761 ) return number is
1762   l_ler_id number;
1763 begin
1764   select ler.ler_id
1765   into   l_ler_id
1766   from   ben_ler_f ler
1767   where  ler.name                  = p_life_event_reason
1768   and    ler.business_group_id + 0 = p_business_group_id
1769   and    p_effective_date between
1770          ler.effective_start_date and ler.effective_end_date;
1771   return(l_ler_id);
1772 exception
1773 when others then
1774   hr_data_pump.fail('get_ler_id', sqlerrm, p_business_group_id, p_life_event_reason, p_effective_date);
1775   raise;
1776 end get_ler_id;
1777 
1778 /* returns a life event reason object version number */
1779 function get_ler_ovn
1780 ( p_business_group_id in number,
1781   p_life_event_reason in varchar2,
1782   p_effective_date    in date
1783 ) return number is
1784    l_ovn number;
1785 begin
1786   select ler.object_version_number
1787   into   l_ovn
1788   from   ben_ler_f ler
1789   where  ler.name                  = p_life_event_reason
1790   and    ler.business_group_id + 0 = p_business_group_id
1791   and    p_effective_date between
1792          ler.effective_start_date and ler.effective_end_date;
1793   return(l_ovn);
1794 exception
1795 when others then
1796   hr_data_pump.fail('get_ler_ovn', sqlerrm, p_business_group_id, p_life_event_reason, p_effective_date);
1797   raise;
1798 end get_ler_ovn;
1799 
1800 /* returns an acty_base_rt_id */
1801 function get_acty_base_rt_id
1802 ( p_business_group_id in number,
1803   p_acty_base_rate    in varchar2,
1804   p_effective_date    in date
1805 ) return number is
1806   l_acty_base_rt_id number;
1807 begin
1808   select abr.acty_base_rt_id
1809   into   l_acty_base_rt_id
1810   from   ben_acty_base_rt_f abr
1811   where  abr.name                  = p_acty_base_rate
1812   and    abr.business_group_id + 0 = p_business_group_id
1813   and    p_effective_date between
1814          abr.effective_start_date and abr.effective_end_date;
1815   return(l_acty_base_rt_id);
1816 exception
1817 when others then
1818   hr_data_pump.fail('get_acty_base_rt_id', sqlerrm, p_business_group_id, p_acty_base_rate, p_effective_date);
1819   raise;
1820 end get_acty_base_rt_id;
1821 
1822 /* returns an acty base rate object version number */
1823 function get_acty_base_rt_ovn
1824 ( p_business_group_id in number,
1825   p_acty_base_rate    in varchar2,
1826   p_effective_date    in date
1827 ) return number is
1828   l_ovn number;
1829 begin
1830   select abr.object_version_number
1831   into   l_ovn
1832   from   ben_acty_base_rt_f abr
1833   where  abr.name                  = p_acty_base_rate
1834   and    abr.business_group_id + 0 = p_business_group_id
1835   and    p_effective_date between
1836          abr.effective_start_date and abr.effective_end_date;
1837   return(l_ovn);
1838 exception
1839 when others then
1840   hr_data_pump.fail('get_acty_base_rt_ovn', sqlerrm, p_business_group_id, p_acty_base_rate, p_effective_date);
1841   raise;
1842 end get_acty_base_rt_ovn;
1843 
1844 /* returns an actl_prem_id */
1845 function get_actl_prem_id
1846 ( p_business_group_id in number,
1847   p_actual_premium    in varchar2,
1848   p_effective_date    in date
1849 ) return number is
1850   l_actl_prem_id number;
1851 begin
1852   select apr.actl_prem_id
1853   into   l_actl_prem_id
1854   from   ben_actl_prem_f apr
1855   where  apr.name                  = p_actual_premium
1856   and    apr.business_group_id + 0 = p_business_group_id
1857   and    p_effective_date between
1858          apr.effective_start_date and apr.effective_end_date;
1859   return(l_actl_prem_id);
1860 exception
1861 when others then
1862   hr_data_pump.fail('get_actl_prem_id', sqlerrm, p_business_group_id, p_actual_premium, p_effective_date);
1863   raise;
1864 end get_actl_prem_id;
1865 
1866 /* returns an actual premium object version number */
1867 function get_actl_prem_ovn
1868 ( p_business_group_id in number,
1869   p_actual_premium    in varchar2,
1870   p_effective_date    in date
1871 ) return number is
1872   l_ovn number;
1873 begin
1874   select apr.object_version_number
1875   into   l_ovn
1876   from   ben_actl_prem_f apr
1877   where  apr.name                  = p_actual_premium
1878   and    apr.business_group_id + 0 = p_business_group_id
1879   and    p_effective_date between
1880          apr.effective_start_date and apr.effective_end_date;
1881   return(l_ovn);
1882 exception
1883 when others then
1884   hr_data_pump.fail('get_actl_prem_ovn', sqlerrm, p_business_group_id, p_actual_premium, p_effective_date);
1885   raise;
1886 end get_actl_prem_ovn;
1887 
1888 /* returns a comp_lvl_fctr_id */
1889 function get_comp_lvl_fctr_id
1890 ( p_business_group_id in number,
1891   p_comp_level_factor in varchar2
1892 ) return number is
1893   l_comp_lvl_fctr_id number;
1894 begin
1895   select clf.comp_lvl_fctr_id
1896   into   l_comp_lvl_fctr_id
1897   from   ben_comp_lvl_fctr clf
1898   where  clf.name                  = p_comp_level_factor
1899   and    clf.business_group_id + 0 = p_business_group_id;
1900   return(l_comp_lvl_fctr_id);
1901 exception
1902 when others then
1903   hr_data_pump.fail('get_comp_lvl_fctr_id', sqlerrm, p_business_group_id, p_comp_level_factor);
1904   raise;
1905 end get_comp_lvl_fctr_id;
1906 
1907 /* returns a comp level factor object version number */
1908 function get_comp_lvl_fctr_ovn
1909 ( p_business_group_id in number,
1910   p_comp_level_factor in varchar2
1911 ) return number is
1912   l_ovn number;
1913 begin
1914   select clf.object_version_number
1915   into   l_ovn
1916   from   ben_comp_lvl_fctr clf
1917   where  clf.name                  = p_comp_level_factor
1918   and    clf.business_group_id + 0 = p_business_group_id;
1919   return(l_ovn);
1920 exception
1921 when others then
1922   hr_data_pump.fail('get_comp_lvl_fctr_ovn', sqlerrm, p_business_group_id, p_comp_level_factor);
1923   raise;
1924 end get_comp_lvl_fctr_ovn;
1925 
1926 /* returns a cvg_amt_calc_mthd_id */
1927 function get_cvg_amt_calc_mthd_id
1928 ( p_business_group_id in number,
1929   p_cvg_amt_calc      in varchar2,
1930   p_effective_date    in date
1931 ) return number is
1932   l_cvg_amt_calc_mthd_id number;
1933 begin
1934   select ccm.cvg_amt_calc_mthd_id
1935   into   l_cvg_amt_calc_mthd_id
1936   from   ben_cvg_amt_calc_mthd_f ccm
1937   where  ccm.name                  = p_cvg_amt_calc
1938   and    ccm.business_group_id + 0 = p_business_group_id
1939   and    p_effective_date between
1940          ccm.effective_start_date and ccm.effective_end_date;
1941   return(l_cvg_amt_calc_mthd_id);
1942 exception
1943 when others then
1944   hr_data_pump.fail('get_cvg_amt_calc_mthd_id', sqlerrm, p_business_group_id, p_cvg_amt_calc, p_effective_date);
1945   raise;
1946 end get_cvg_amt_calc_mthd_id;
1947 
1948 /* returns a cvg amt calc object version number */
1949 function get_cvg_amt_calc_mthd_ovn
1950 ( p_business_group_id in number,
1951   p_cvg_amt_calc      in varchar2,
1952   p_effective_date    in date
1953 ) return number is
1954   l_ovn number;
1955 begin
1956   select ccm.object_version_number
1957   into   l_ovn
1958   from   ben_cvg_amt_calc_mthd_f ccm
1959   where  ccm.name                  = p_cvg_amt_calc
1960   and    ccm.business_group_id + 0 = p_business_group_id
1961   and    p_effective_date between
1962          ccm.effective_start_date and ccm.effective_end_date;
1963   return(l_ovn);
1964 exception
1965 when others then
1966   hr_data_pump.fail('get_cvg_amt_calc_mthd_ovn', sqlerrm, p_business_group_id, p_cvg_amt_calc, p_effective_date);
1967   raise;
1968 end get_cvg_amt_calc_mthd_ovn;
1969 
1970 /* returns an opt_id */
1971 function get_opt_id
1972 ( p_business_group_id in number,
1973   p_option_definition in varchar2,
1974   p_effective_date    in date
1975 ) return number is
1976   l_opt_id number;
1977 begin
1978   select opt.opt_id
1979   into   l_opt_id
1980   from   ben_opt_f opt
1981   where  opt.name                  = p_option_definition
1982   and    opt.business_group_id + 0 = p_business_group_id
1983   and    p_effective_date between
1984          opt.effective_start_date and opt.effective_end_date;
1985   return(l_opt_id);
1986 exception
1987 when others then
1988   hr_data_pump.fail('get_opt_id', sqlerrm, p_business_group_id, p_option_definition, p_effective_date);
1989   raise;
1990 end get_opt_id;
1991 
1992 /* returns an option definition object version number */
1993 function get_opt_ovn
1994 ( p_business_group_id in number,
1995   p_option_definition in varchar2,
1996   p_effective_date    in date
1997 ) return number is
1998   l_ovn number;
1999 begin
2000   select opt.object_version_number
2001   into   l_ovn
2002   from   ben_opt_f opt
2003   where  opt.name                  = p_option_definition
2004   and    opt.business_group_id + 0 = p_business_group_id
2005   and    p_effective_date between
2006          opt.effective_start_date and opt.effective_end_date;
2007   return(l_ovn);
2008 exception
2009 when others then
2010   hr_data_pump.fail('get_opt_ovn', sqlerrm, p_business_group_id, p_option_definition, p_effective_date);
2011   raise;
2012 end get_opt_ovn;
2013 
2014 /* returns a pl_id */
2015 function get_pl_id
2016 ( p_business_group_id in number,
2017   p_plan              in varchar2,
2018   p_effective_date    in date
2019 ) return number is
2020   l_pl_id number;
2021 begin
2022   select pln.pl_id
2023   into   l_pl_id
2024   from   ben_pl_f pln
2025   where  pln.name                  = p_plan
2026   and    pln.business_group_id + 0 = p_business_group_id
2027   and    p_effective_date between
2028          pln.effective_start_date and pln.effective_end_date;
2029   return(l_pl_id);
2030 exception
2031 when others then
2032   hr_data_pump.fail('get_pl_id', sqlerrm, p_business_group_id, p_plan, p_effective_date);
2033   raise;
2034 end get_pl_id;
2035 
2036 /* returns a plan object version number */
2037 function get_pl_ovn
2038 ( p_business_group_id in number,
2039   p_plan              in varchar2,
2040   p_effective_date    in date
2041 ) return number is
2042   l_ovn number;
2043 begin
2044   select pln.object_version_number
2045   into   l_ovn
2046   from   ben_pl_f pln
2047   where  pln.name                  = p_plan
2048   and    pln.business_group_id + 0 = p_business_group_id
2049   and    p_effective_date between
2050          pln.effective_start_date and pln.effective_end_date;
2051   return(l_ovn);
2052 exception
2053 when others then
2054   hr_data_pump.fail('get_pl_ovn', sqlerrm, p_business_group_id, p_plan, p_effective_date);
2055   raise;
2056 end get_pl_ovn;
2057 
2058 /* returns a pgm_id */
2059 function get_pgm_id
2060 ( p_business_group_id in number,
2061   p_program           in varchar2,
2062   p_effective_date    in date
2063 ) return number is
2064   l_pgm_id number;
2065 begin
2066   select pgm.pgm_id
2067   into   l_pgm_id
2068   from   ben_pgm_f pgm
2069   where  pgm.name                  = p_program
2070   and    pgm.business_group_id + 0 = p_business_group_id
2071   and    p_effective_date between
2072          pgm.effective_start_date and pgm.effective_end_date;
2073   return(l_pgm_id);
2074 exception
2075 when others then
2076   hr_data_pump.fail('get_pgm_id', sqlerrm, p_business_group_id, p_program, p_effective_date);
2077   raise;
2078 end get_pgm_id;
2079 
2080 /* returns a program object version number */
2081 function get_pgm_ovn
2082 ( p_business_group_id in number,
2083   p_program           in varchar2,
2084   p_effective_date    in date
2085 ) return number is
2086   l_ovn number;
2087 begin
2088   select pgm.object_version_number
2089   into   l_ovn
2090   from   ben_pgm_f pgm
2091   where  pgm.name                  = p_program
2092   and    pgm.business_group_id + 0 = p_business_group_id
2093   and    p_effective_date between
2094          pgm.effective_start_date and pgm.effective_end_date;
2095   return(l_ovn);
2096 exception
2097 when others then
2098   hr_data_pump.fail('get_pgm_ovn', sqlerrm, p_business_group_id, p_program, p_effective_date);
2099   raise;
2100 end get_pgm_ovn;
2101 
2102 /** start of NAME lookups for PER/PAY/HR tables **/
2103 
2104 /* returns an element_type_id */
2105 function get_element_type_id
2106 ( p_business_group_id in number,
2107 --p_legislation_code in varchar2,
2108   p_element_name    in varchar2,
2109   p_effective_date    in date
2110 ) return number is
2111   l_element_type_id number;
2112 begin
2113   select pet.element_type_id
2114   into   l_element_type_id
2115   from   pay_element_types_f pet
2116   where  pet.element_name        = p_element_name
2117   and    business_group_id + 0   = p_business_group_id
2118   and    p_effective_date between
2119          pet.effective_start_date and pet.effective_end_date;
2120   return(l_element_type_id);
2121 exception
2122 when others then
2123   hr_data_pump.fail('get_element_type_id', sqlerrm, p_business_group_id, p_element_name);
2124   raise;
2125 end get_element_type_id;
2126 
2127 /** end of NAME additions **/
2128 
2129 /* returns currency_code from fnd_currencies_vl */
2130 function get_currency_code
2131 ( p_name_or_code    in varchar2,
2132   p_effective_date  in date
2133 ) return varchar2 is
2134   l_code fnd_currencies_vl.currency_code%type;
2135 begin
2136 --hr_data_pump.message('**bp** in hr_pump_get.get_cur_code: '|| p_name_or_code);
2137   --
2138   begin
2139     if p_name_or_code is null or p_name_or_code = hr_api.g_varchar2
2140     then
2141       --
2142       -- Defaulted values will be returned unchanged.
2143       --
2144       l_code := p_name_or_code;
2145     else
2146       --
2147       -- Check name
2148       --
2149       select currency_code
2150       into   l_code
2151       from   fnd_currencies_vl
2152       where  name          = p_name_or_code
2153       and    enabled_flag  = 'Y'
2154       and    p_effective_date between
2155              nvl(start_date_active, START_OF_TIME) and nvl(end_date_active, END_OF_TIME);
2156     end if;
2157     --
2158 --hr_data_pump.message('**bp** out hr_pump_get.get_cur_code: '||l_code);
2159     return(l_code);
2160   exception
2161     when no_data_found then
2162       --
2163       -- If the name could not be matched, check if the code was used.
2164       --
2165       select currency_code
2166       into   l_code
2167       from   fnd_currencies    -- user underlying table for faster code lookup
2168       where  currency_code = p_name_or_code
2169       and    enabled_flag  = 'Y'
2170       and    p_effective_date between
2171              nvl(start_date_active, START_OF_TIME) and nvl(end_date_active, END_OF_TIME);
2172       --
2173 --hr_data_pump.message('**bp** out hr_pump_get.get_cur_code: '||l_code);
2174       return(l_code);
2175     when others then
2176       raise;
2177   end;
2178   --
2179 exception
2180 --
2181 when no_data_found then
2182   hr_data_pump.fail('get_currency_code', sqlerrm, p_name_or_code);
2183   raise value_error;
2184 when others then
2185   hr_data_pump.fail('get_currency_code', sqlerrm, p_name_or_code);
2186   raise;
2187 end get_currency_code;
2188 
2189 /* start HR/PER additional get_xyz routines for BEN */
2190 
2191 /* returns a uom code */
2192 function get_uom_code
2193 ( p_uom            in varchar2,
2194   p_effective_date in date
2195 ) return varchar2 is
2196 begin
2197   return(get_currency_code( p_uom, p_effective_date ));
2198 exception
2199   when others then
2200     hr_data_pump.fail('get_uom_code', sqlerrm, p_uom);
2201     raise;
2202 end get_uom_code;
2203 
2204 /* returns a std_prem_uom code */
2205 function get_std_prem_uom_code
2206 ( p_std_prem_uom            in varchar2,
2207   p_effective_date in date
2208 ) return varchar2 is
2209 begin
2210   return(get_currency_code( p_std_prem_uom, p_effective_date ));
2211 exception
2212   when others then
2213     hr_data_pump.fail('get_std_prem_uom_code', sqlerrm, p_std_prem_uom);
2214     raise;
2215 end get_std_prem_uom_code;
2216 
2217 /* returns a comp_ref_uom code */
2218 function get_comp_ref_uom_code
2219 ( p_comp_ref_uom            in varchar2,
2220   p_effective_date in date
2221 ) return varchar2 is
2222 begin
2223   return(get_currency_code( p_comp_ref_uom, p_effective_date ));
2224 exception
2225   when others then
2226     hr_data_pump.fail('get_comp_ref_uom_code', sqlerrm, p_comp_ref_uom);
2227     raise;
2228 end get_comp_ref_uom_code;
2229 
2230 /* returns a rt_comp_ref_uom code */
2231 function get_rt_comp_ref_uom_code
2232 ( p_rt_comp_ref_uom            in varchar2,
2233   p_effective_date in date
2234 ) return varchar2 is
2235 begin
2236   return(get_currency_code( p_rt_comp_ref_uom, p_effective_date ));
2237 exception
2238   when others then
2239     hr_data_pump.fail('get_rt_comp_ref_uom_code', sqlerrm, p_rt_comp_ref_uom);
2240     raise;
2241 end get_rt_comp_ref_uom_code;
2242 
2243 /* returns a amt_dsgd_uom code */
2244 function get_amt_dsgd_uom_code
2245 ( p_amt_dsgd_uom            in varchar2,
2246   p_effective_date in date
2247 ) return varchar2 is
2248 begin
2249   return(get_currency_code( p_amt_dsgd_uom, p_effective_date ));
2250 exception
2251   when others then
2252     hr_data_pump.fail('get_amt_dsgd_uom_code', sqlerrm, p_amt_dsgd_uom);
2253     raise;
2254 end get_amt_dsgd_uom_code;
2255 
2256 /* get_quald_bnf_person_id - requires user key */
2257 function get_quald_bnf_person_id
2258 (
2259    p_quald_bnf_person_user_key in varchar2
2260 ) return number is
2261    l_person_id number;
2262 begin
2263    if p_quald_bnf_person_user_key is null then
2264      return null;
2265    end if;
2266    l_person_id := user_key_to_id( p_quald_bnf_person_user_key );
2267    return(l_person_id);
2268 exception
2269 when others then
2270    hr_data_pump.fail('get_quald_bnf_person_id', sqlerrm, p_quald_bnf_person_user_key);
2271    raise;
2272 end get_quald_bnf_person_id;
2273 
2274 /* get_cvrd_emp_person_id - requires user key */
2275 function get_cvrd_emp_person_id
2276 (
2277    p_cvrd_emp_person_user_key in varchar2
2278 ) return number is
2279    l_person_id number;
2280 begin
2281    if p_cvrd_emp_person_user_key is null then
2282       return null;
2283    end if;
2284    l_person_id := user_key_to_id( p_cvrd_emp_person_user_key );
2285    return(l_person_id);
2286 exception
2287 when others then
2288    hr_data_pump.fail('get_cvrd_emp_person_id', sqlerrm, p_cvrd_emp_person_user_key);
2289    raise;
2290 end get_cvrd_emp_person_id;
2291 
2292 /* get_dpnt_person_id - requires user key */
2293 function get_dpnt_person_id
2294 (
2295    p_dpnt_person_user_key in varchar2
2296 ) return number is
2297    l_person_id number;
2298 begin
2299    if p_dpnt_person_user_key is null then
2300      return null;
2301    end if;
2302    l_person_id := user_key_to_id( p_dpnt_person_user_key );
2303    return(l_person_id);
2304 exception
2305 when others then
2306    hr_data_pump.fail('get_dpnt_person_id', sqlerrm, p_dpnt_person_user_key);
2307    raise;
2308 end get_dpnt_person_id;
2309 
2310 /* get_bnf_person_id - requires user key */
2311 function get_bnf_person_id
2312 (
2313    p_bnf_person_user_key in varchar2
2314 ) return number is
2315    l_person_id number;
2316 begin
2317    if p_bnf_person_user_key is null then
2318       return null;
2319    end if;
2320    l_person_id := user_key_to_id( p_bnf_person_user_key );
2321    return(l_person_id);
2322 exception
2323 when others then
2324    hr_data_pump.fail('get_bnf_person_id', sqlerrm, p_bnf_person_user_key);
2325    raise;
2326 end get_bnf_person_id;
2327 
2328 /* get_ttee_person_id - requires user key */
2329 function get_ttee_person_id
2330 (
2331    p_ttee_person_user_key in varchar2
2332 ) return number is
2333    l_person_id number;
2334 begin
2335    if p_ttee_person_user_key is null then
2336      return null;
2337    end if;
2338    l_person_id := user_key_to_id( p_ttee_person_user_key );
2339    return(l_person_id);
2340 exception
2341 when others then
2342    hr_data_pump.fail('get_ttee_person_id', sqlerrm, p_ttee_person_user_key);
2343    raise;
2344 end get_ttee_person_id;
2345 
2346 /****** end OAB additions ******/
2347 
2348 /* get_person_id - requires user key */
2349 function get_person_id
2350 (
2351    p_person_user_key in varchar2
2352 ) return number is
2353    l_person_id number;
2354 begin
2355    l_person_id := user_key_to_id( p_person_user_key );
2356    return(l_person_id);
2357 exception
2358 when others then
2359    hr_data_pump.fail('get_person_id', sqlerrm, p_person_user_key);
2360    raise;
2361 end get_person_id;
2362 
2363 /* return person_id for contact person. */
2364 function get_contact_person_id
2365 (
2366    p_contact_person_user_key in varchar2
2367 ) return number is
2368    l_contact_person_id number;
2369 begin
2370    l_contact_person_id := get_person_id(p_contact_person_user_key);
2371    return(l_contact_person_id);
2372 exception
2373 when others then
2374    hr_data_pump.fail('get_contact_person_id', sqlerrm,
2375                      p_contact_person_user_key);
2376    raise;
2377 end get_contact_person_id;
2378 
2379 /* return assignment_id - requires user key */
2380 function get_assignment_id
2381 (
2382    p_assignment_user_key in varchar2
2383 ) return number is
2384    l_assignment_id number;
2385 begin
2386    l_assignment_id := user_key_to_id( p_assignment_user_key );
2387    return(l_assignment_id);
2388 exception
2389 when others then
2390    hr_data_pump.fail('get_assignment_id', sqlerrm, p_assignment_user_key);
2391    raise;
2392 end get_assignment_id;
2393 
2394 /* return address_id - requires user key */
2395 function get_address_id
2396 (
2397    p_address_user_key in varchar2
2398 ) return number is
2399    l_address_id number;
2400 begin
2401    l_address_id := user_key_to_id( p_address_user_key );
2402    return(l_address_id);
2403 exception
2404 when others then
2405    hr_data_pump.fail('get_address_id', sqlerrm, p_address_user_key);
2406    raise;
2407 end get_address_id;
2408 
2409 /* return supervisor person_id - requires user key */
2410 function get_supervisor_id
2411 (
2412    p_supervisor_user_key in varchar2
2413 ) return number is
2414    l_supervisor_id number;
2415 begin
2416    l_supervisor_id := get_person_id( p_supervisor_user_key );
2417    return(l_supervisor_id);
2418 exception
2419 when others then
2420    hr_data_pump.fail('get_supervisor_id', sqlerrm, p_supervisor_user_key);
2421    raise;
2422 end get_supervisor_id;
2423 
2424 /* return recruiter person_id - requires user key */
2425 function get_recruiter_id
2426 (
2427    p_recruiter_user_key in varchar2
2428 ) return number is
2429    l_recruiter_id number;
2430 begin
2431    l_recruiter_id := get_person_id( p_recruiter_user_key );
2432    return(l_recruiter_id);
2433 exception
2434 when others then
2435    hr_data_pump.fail('get_recruiter_id', sqlerrm, p_recruiter_user_key);
2436    raise;
2437 end get_recruiter_id;
2438 
2439 /* return person_referred_by_id - requires user key */
2440 function get_person_referred_by_id
2441 (
2442    p_person_referred_by_user_key in varchar2
2443 ) return number is
2444    l_person_referred_by_id number;
2445 begin
2446    l_person_referred_by_id := get_person_id( p_person_referred_by_user_key );
2447    return(l_person_referred_by_id);
2448 exception
2449 when others then
2450    hr_data_pump.fail('get_person_referred_by_id', sqlerrm,
2451                      p_person_referred_by_user_key);
2452    raise;
2453 end get_person_referred_by_id;
2454 
2455 /* return person_id for timecard approver. */
2456 function get_timecard_approver_id
2457 (
2458    p_timecard_approver_user_key in varchar2
2459 ) return number is
2460    l_timecard_approver_id number;
2461 begin
2462    l_timecard_approver_id := get_person_id(p_timecard_approver_user_key);
2463    return(l_timecard_approver_id);
2464 exception
2465 when others then
2466    hr_data_pump.fail('get_timecard_approver_id', sqlerrm,
2467                      p_timecard_approver_user_key);
2468    raise;
2469 end get_timecard_approver_id;
2470 
2471 /* returns contact_relationship_id */
2472 function get_contact_relationship_id
2473 (
2474    p_contact_user_key   in varchar2,
2475    p_contactee_user_key in varchar2
2476 ) return number is
2477    l_contact_relationship_id number;
2478 begin
2479    select pcr.contact_relationship_id
2480    into   l_contact_relationship_id
2481    from   per_contact_relationships    pcr,
2482           hr_pump_batch_line_user_keys contact_key,
2483           hr_pump_batch_line_user_keys contactee_key
2484    where  contact_key.user_key_value   = p_contact_user_key
2485    and    pcr.contact_person_id        = contact_key.unique_key_id
2486    and    contactee_key.user_key_value = p_contactee_user_key
2487    and    pcr.person_id                = contactee_key.unique_key_id;
2488    return(l_contact_relationship_id);
2489 exception
2490 when others then
2491    hr_data_pump.fail('get_contact_relationship_id', sqlerrm,
2492                      p_contact_user_key, p_contactee_user_key );
2493    raise;
2494 end get_contact_relationship_id;
2495 
2496 /* return person_type_id */
2497 function get_person_type_id
2498 (
2499    p_user_person_type  in varchar2,
2500    p_business_group_id in number,
2501    p_language_code     in varchar2
2502 ) return number is
2503    l_person_type_id number;
2504 begin
2505    select typ.person_type_id
2506    into   l_person_type_id
2507    from   per_person_types_tl typtl,
2508     per_person_types typ
2509    where  typtl.user_person_type      = p_user_person_type
2510    and    typ.business_group_id + 0   = p_business_group_id
2511    and    typ.person_type_id = typtl.person_type_id
2512    and    typtl.LANGUAGE = p_language_code;
2513    return(l_person_type_id);
2514 exception
2515 when others then
2516    hr_data_pump.fail('get_person_type_id', sqlerrm, p_user_person_type,
2517                      p_business_group_id, p_language_code);
2518    raise;
2519 end get_person_type_id;
2520 
2521 /* returns a vendor_id */
2522 function get_vendor_id
2523 (
2524    p_vendor_name in varchar2
2525 ) return number is
2526    l_vendor_id number;
2527 begin
2528    select pov.vendor_id
2529    into   l_vendor_id
2530    from   po_vendors pov
2531    where  pov.vendor_name = p_vendor_name;
2532    return(l_vendor_id);
2533 exception
2534 when others then
2535    hr_data_pump.fail('get_vendor_id', sqlerrm, p_vendor_name);
2536    raise;
2537 end get_vendor_id;
2538 
2539 /* returns an assignment_status_type_id */
2540 function get_assignment_status_type_id
2541 (
2542    p_user_status       in varchar2,
2543    p_business_group_id in number,
2544    p_language_code     in varchar2
2545 ) return number is
2546    l_assignment_status_type_id number;
2547 begin
2548    -- Need to check for amended row in per_ass_status_type_amends first.
2549    begin
2550       select typ.assignment_status_type_id
2551       into l_assignment_status_type_id
2552       from   per_ass_status_type_amends_tl typtl,
2553              per_ass_status_type_amends typ
2554       where  typtl.user_status = p_user_status
2555       and    typ.business_group_id + 0 = p_business_group_id
2556       and    typ.ass_status_type_amend_id = typtl.ass_status_type_amend_id
2557       and    typtl.LANGUAGE = p_language_code;
2558       return(l_assignment_status_type_id);
2559    exception
2560       when no_data_found then
2561          null;
2562       when others then
2563          raise;
2564    end;
2565 
2566    -- Can look in per_assignment_status_types now.
2567    select typ.assignment_status_type_id
2568    into   l_assignment_status_type_id
2569    from   per_assignment_status_types_tl typtl,
2570           per_assignment_status_types typ
2571    where  typtl.user_status = p_user_status
2572    and    typ.assignment_status_type_id = typtl.assignment_status_type_id
2573    and    typtl.LANGUAGE = p_language_code
2574    and
2575    (
2576      (typ.business_group_id is null and typ.legislation_code is null)
2577      or
2578      (typ.business_group_id is not null
2579       and typ.business_group_id + 0 = p_business_group_id)
2580      or
2581      (typ.business_group_id is null
2582       and typ.legislation_code is not null
2583       and typ.legislation_code =
2584           (select legislation_code from per_business_groups
2585            where  business_group_id = p_business_group_id))
2586    );
2587    return(l_assignment_status_type_id);
2588 exception
2589 when others then
2590    hr_data_pump.fail('get_assignment_status_type_id', sqlerrm, p_user_status,
2591                      p_business_group_id, p_language_code);
2592    raise;
2593 end get_assignment_status_type_id;
2594 
2595 /* returns an organization_id */
2596 function get_organization_id
2597 (
2598    p_organization_name in varchar2,
2599    p_business_group_id in number,
2600    p_effective_date    in date
2601   ,p_language_code     in varchar2
2602 ) return number is
2603    l_organization_id number;
2604 begin
2605    select org.organization_id
2606    into   l_organization_id
2607    from   hr_all_organization_units org
2608    ,      hr_all_organization_units_tl orgtl
2609    where  orgtl.name = p_organization_name
2610    and    orgtl.language = p_language_code
2611    and    org.organization_id = orgtl.organization_id
2612    and    org.business_group_id + 0 = p_business_group_id;
2613    return(l_organization_id);
2614 exception
2615 when others then
2616    hr_data_pump.fail('get_organization_id', sqlerrm, p_organization_name,
2617                      p_business_group_id, p_effective_date, p_language_code);
2618    raise;
2619 end get_organization_id;
2620 
2621 /* returns a establishment_org_id */
2622 function get_establishment_org_id
2623 (
2624    p_establishment_org_name in varchar2,
2625    p_business_group_id        in number,
2626    p_effective_date           in date
2627 ,  p_language_code            in varchar2
2628 ) return number is
2629    l_establishment_org_id number;
2630 begin
2631    l_establishment_org_id :=
2632    get_organization_id( p_establishment_org_name, p_business_group_id,
2633                         p_effective_date, p_language_code );
2634    return(l_establishment_org_id);
2635 exception
2636 when others then
2637    hr_data_pump.fail('get_establishment_org_id', sqlerrm,
2638                      p_establishment_org_name, p_business_group_id,
2639                      p_effective_date, p_language_code);
2640    raise;
2641 end get_establishment_org_id;
2642 
2643 /* returns a source_organization_id */
2644 function get_source_organization_id
2645 (
2646    p_source_organization_name in varchar2,
2647    p_business_group_id        in number,
2648    p_effective_date           in date
2649 ,  p_language_code            in varchar2
2650 ) return number is
2651    l_source_organization_id number;
2652 begin
2653    l_source_organization_id :=
2654    get_organization_id( p_source_organization_name, p_business_group_id,
2655                         p_effective_date, p_language_code );
2656    return(l_source_organization_id);
2657 exception
2658 when others then
2659    hr_data_pump.fail('get_source_organization_id', sqlerrm,
2660                      p_source_organization_name, p_business_group_id,
2661                      p_effective_date, p_language_code);
2662    raise;
2663 end get_source_organization_id;
2664 
2665 /* returns a grade_id */
2666 function get_grade_id
2667 (
2668    p_grade_name        in varchar2,
2669    p_business_group_id in number,
2670    p_effective_date    in date
2671 ) return number is
2672    l_grade_id number;
2673 begin
2674    -- Note that the grade name can be null on the
2675    -- per_grades table, but I think grades are created
2676    -- with a name - otherwise identifying them would be
2677    -- rather difficult...
2678    select gra.grade_id
2679    into   l_grade_id
2680    from   per_grades_vl gra
2681    where  gra.name                  = p_grade_name
2682    and    gra.business_group_id + 0 = p_business_group_id;
2683    return(l_grade_id);
2684 exception
2685 when others then
2686    hr_data_pump.fail('get_grade_id', sqlerrm, p_grade_name, p_business_group_id,                      p_effective_date);
2687    raise;
2688 end get_grade_id;
2689 
2690 /* returns a grade_id */
2691 function get_entry_grade_id
2692 (
2693    p_entry_grade_name        in varchar2,
2694    p_business_group_id in number,
2695    p_effective_date    in date
2696 ) return number is
2697    l_entry_grade_id number;
2698 begin
2699    l_entry_grade_id :=
2700    get_grade_id
2701    (p_grade_name        => p_entry_grade_name
2702    ,p_business_group_id => p_business_group_id
2703    ,p_effective_date    => p_effective_date
2704    );
2705    return(l_entry_grade_id);
2706 exception
2707 when others then
2708   raise;
2709 end get_entry_grade_id;
2710 
2711 /* return availability_status_id */
2712 function get_availability_status_id
2713 (p_shared_type_name  in    varchar2
2714 ,p_system_type_cd    in    varchar2
2715 ,p_business_group_id in    number
2716 ,p_language_code     in    varchar2
2717 ) return number is
2718 cursor csr_lookup is
2719 select pst.shared_type_id
2720 from   per_shared_types pst
2721 ,      per_shared_types_tl psttl
2722 where  psttl.shared_type_name = p_shared_type_name
2723 and    psttl.language = p_language_code
2724 and    pst.shared_type_id = psttl.shared_type_id
2725 and    pst.lookup_type = 'POSITION_AVAILABILITY_STATUS'
2726 and    pst.system_type_cd = p_system_type_cd
2727 and    nvl(pst.business_group_id, p_business_group_id) = p_business_group_id;
2728 --
2729 v_shared_type_id    number(15) := null;
2730 begin
2731   if p_shared_type_name is not null then
2732     open csr_lookup;
2733     fetch csr_lookup into v_shared_type_id;
2734     close csr_lookup;
2735    end if;
2736    return v_shared_type_id;
2737 exception
2738   when others then
2739     hr_data_pump.fail('get_availability_status_id', sqlerrm,
2740                      p_shared_type_name, p_system_type_cd,
2741                      p_business_group_id, p_language_code);
2742     raise;
2743 end get_availability_status_id;
2744 
2745 /* returns a position_id */
2746 function get_position_id
2747 (
2748    p_position_name     in varchar2,
2749    p_business_group_id in number,
2750    p_effective_date    in date
2751 ) return number is
2752    l_position_id number;
2753 begin
2754    select pos.position_id
2755    into   l_position_id
2756    from   hr_all_positions_f pos
2757    where  pos.name                  = p_position_name
2758    and    pos.business_group_id + 0 = p_business_group_id
2759    and    p_effective_date between
2760           pos.effective_start_date and pos.effective_end_date;
2761    return(l_position_id);
2762 exception
2763 when others then
2764    hr_data_pump.fail('get_position_id', sqlerrm, p_position_name,
2765                      p_business_group_id, p_effective_date);
2766    raise;
2767 end get_position_id;
2768 
2769 /* returns a successor_position_id */
2770 function get_successor_position_id
2771 (
2772    p_successor_position_name in varchar2,
2773    p_business_group_id       in number,
2774    p_effective_date          in date
2775 ) return number is
2776    l_pos_id number;
2777 begin
2778    -- Just call the get_position_id function.
2779    l_pos_id := get_position_id(p_successor_position_name,
2780                                p_business_group_id,
2781                                p_effective_date);
2782    return(l_pos_id);
2783 exception
2787                      p_effective_date);
2784 when others then
2785    hr_data_pump.fail('get_successor_position_id', sqlerrm,
2786                      p_successor_position_name, p_business_group_id,
2788    raise;
2789 end get_successor_position_id;
2790 
2791 /* returns a relief_position_id */
2792 function get_relief_position_id
2793 (
2794    p_relief_position_name in varchar2,
2795    p_business_group_id    in number,
2796    p_effective_date       in date
2797 ) return number is
2798    l_pos_id number;
2799 begin
2800    -- Just call the get_position_id function.
2801    l_pos_id := get_position_id(p_relief_position_name,
2802                                p_business_group_id,
2803                                p_effective_date);
2804    return(l_pos_id);
2805 exception
2806 when others then
2807    hr_data_pump.fail('get_relief_position_id', sqlerrm,
2808                      p_relief_position_name, p_business_group_id,
2809                      p_effective_date);
2810    raise;
2811 end get_relief_position_id;
2812 
2813 /* returns a prior_position_id */
2814 function get_prior_position_id
2815 (
2816    p_prior_position_name in varchar2,
2817    p_business_group_id       in number,
2818    p_effective_date          in date
2819 ) return number is
2820    l_pos_id number;
2821 begin
2822    -- Just call the get_position_id function.
2823    l_pos_id := get_position_id(p_prior_position_name,
2824                                p_business_group_id,
2825                                p_effective_date);
2826    return(l_pos_id);
2827 exception
2828 when others then
2829    hr_data_pump.fail('get_prior_position_id', sqlerrm,
2830                      p_prior_position_name, p_business_group_id,
2831                      p_effective_date);
2832    raise;
2833 end get_prior_position_id;
2834 
2835 /* returns a supervisor_position_id */
2836 function get_supervisor_position_id
2837 (
2838    p_supervisor_position_name in varchar2,
2839    p_business_group_id       in number,
2840    p_effective_date          in date
2841 ) return number is
2842    l_pos_id number;
2843 begin
2844    -- Just call the get_position_id function.
2845    l_pos_id := get_position_id(p_supervisor_position_name,
2846                                p_business_group_id,
2847                                p_effective_date);
2848    return(l_pos_id);
2849 exception
2850 when others then
2851    hr_data_pump.fail('get_supervisor_position_id', sqlerrm,
2852                      p_supervisor_position_name, p_business_group_id,
2853                      p_effective_date);
2854    raise;
2855 end get_supervisor_position_id;
2856 
2857 /* returns a job_id */
2858 function get_job_id
2859 (
2860    p_job_name          in varchar2,
2861    p_effective_date    in date,
2862    p_business_group_id in number
2863 ) return number is
2864    l_job_id number;
2865 begin
2866    select job.job_id
2867    into   l_job_id
2868    from   per_jobs_vl job
2869    where  job.name                  = p_job_name
2870    and    job.business_group_id + 0 = p_business_group_id;
2871    return(l_job_id);
2872 exception
2873 when others then
2874    hr_data_pump.fail('get_job_id', sqlerrm,
2875                      p_job_name, p_effective_date, p_business_group_id);
2876    raise;
2877 end get_job_id;
2878 
2879 /* returns a payroll_id */
2880 function get_payroll_id
2881 (
2882    p_payroll_name      in varchar2,
2883    p_business_group_id in number,
2884    p_effective_date    in date
2885 ) return number is
2886    l_payroll_id number;
2887 begin
2888    select pay.payroll_id
2889    into   l_payroll_id
2890    from   pay_payrolls_f pay
2891    where  pay.payroll_name          = p_payroll_name
2892    and    pay.business_group_id + 0 = p_business_group_id
2893    and    p_effective_date between
2894           pay.effective_start_date and pay.effective_end_date;
2895    return(l_payroll_id);
2896 exception
2897 when others then
2898    hr_data_pump.fail('get_payroll_id', sqlerrm, p_payroll_name,
2899                      p_business_group_id, p_effective_date);
2900    raise;
2901 end get_payroll_id;
2902 
2903 /* returns a pay_freq_payroll_id */
2904 function get_pay_freq_payroll_id
2905 (
2906    p_pay_freq_payroll_name in varchar2,
2907    p_business_group_id in number,
2908    p_effective_date    in date
2909 ) return number is
2910 begin
2911    return
2912    get_payroll_id
2913    (p_payroll_name      => p_pay_freq_payroll_name
2914    ,p_business_group_id => p_business_group_id
2915    ,p_effective_date    => p_effective_date
2916    );
2917 exception
2918 when others then
2919    raise;
2920 end get_pay_freq_payroll_id;
2921 
2922 /* Returns a location_id for the update_location APIs. */
2923 function get_location_id_update
2924 (
2925    p_existing_location_code in varchar2,
2926    p_business_group_id in number,
2927    p_language_code     in varchar2
2928 ) return number is
2929 l_location_id number;
2930 begin
2931    l_location_id :=
2932    get_location_id(p_existing_location_code, p_business_group_id,
2933                    p_language_code);
2934    return(l_location_id);
2935 exception
2936 when others then
2937    hr_data_pump.fail('get_location_id_update', sqlerrm,
2938                      p_existing_location_code,
2939                      p_business_group_id, p_language_code);
2940    raise;
2941 end get_location_id_update;
2942 
2943 /* returns a location_id */
2944 function get_location_id
2945 (
2946    p_location_code     in varchar2,
2947    p_business_group_id in number,
2948    p_language_code     in varchar2
2949 ) return number is
2950    l_location_id number;
2951 begin
2952    select loc.location_id
2953    into   l_location_id
2954    from   hr_locations_all loc,
2955           hr_locations_all_tl lot
2956    where  lot.location_code = p_location_code
2957    and    lot.language      = p_language_code
2958    and    lot.location_id   = loc.location_id
2959    and    (loc.business_group_id is null or
2960            loc.business_group_id + 0 = p_business_group_id);
2961    return(l_location_id);
2962 exception
2963 when others then
2964    hr_data_pump.fail('get_location_id', sqlerrm, p_location_code,
2965                      p_business_group_id, p_language_code);
2966    raise;
2967 end get_location_id;
2968 
2969 /* returns receiver id */
2970 function get_designated_receiver_id
2971  (
2972   p_designated_receiver_name Varchar2,
2973   p_business_group_id Number,
2974   p_effective_date   Date
2975  ) return number Is
2976    l_designated_receiver_id Number;
2977 begin
2978   Select person_id
2979     Into l_designated_receiver_id
2980     From per_all_people_f
2981    Where employee_number Is Not Null
2982      and business_group_id = p_business_group_id
2983      and p_effective_date between effective_start_date and effective_end_date
2984      and full_name = p_designated_receiver_name;
2985   return l_designated_receiver_id;
2986 Exception
2987 When Others Then
2988    hr_data_pump.fail('get_designated_receiver_id',sqlerrm,p_designated_receiver_name,
2989                      p_business_group_id);
2990    raise;
2991 end get_designated_receiver_id;
2992 
2993 function get_ship_to_location_id
2994 (
2995    p_ship_to_location_code     in varchar2,
2996    p_business_group_id in number,
2997    p_language_code     in varchar2
2998 ) return number is
2999    l_location_id number;
3000 begin
3001    select loc.location_id
3002    into   l_location_id
3003    from   hr_locations_all loc,
3004           hr_locations_all_tl lot
3005    where  lot.location_code = p_ship_to_location_code
3006    and    lot.language      = p_language_code
3007    and    lot.location_id   = loc.location_id
3008    and    (loc.business_group_id is null or
3009            loc.business_group_id + 0 = p_business_group_id);
3010    return(l_location_id);
3011 exception
3012 when others then
3013    hr_data_pump.fail('get_ship_to_location_id', sqlerrm, p_ship_to_location_code,
3014                      p_business_group_id, p_language_code);
3015    raise;
3016 end get_ship_to_location_id;
3017 
3018 /* returns a pay_basis_id */
3019 function get_pay_basis_id
3020 (
3021    p_pay_basis_name    in varchar2,
3022    p_business_group_id in number
3023 ) return number is
3024    l_pay_basis_id number;
3025 begin
3026    select ppb.pay_basis_id
3027    into   l_pay_basis_id
3028    from   per_pay_bases ppb
3029    where  ppb.name                  = p_pay_basis_name
3030    and    ppb.business_group_id + 0 = p_business_group_id;
3031    return(l_pay_basis_id);
3032 exception
3033 when others then
3034    hr_data_pump.fail('get_pay_basis_id', sqlerrm, p_pay_basis_name,
3035                      p_business_group_id);
3036    raise;
3037 end get_pay_basis_id;
3038 
3039 /* returns a recruitment_activity_id */
3040 function get_recruitment_activity_id
3041 (
3042    p_recruitment_activity_name in varchar2,
3043    p_business_group_id         in number,
3044    p_effective_date            in date
3045 ) return number is
3046    l_raid number;
3047 begin
3048    select pra.recruitment_activity_id
3049    into   l_raid
3050    from   per_recruitment_activities pra
3051    where  pra.name                  = p_recruitment_activity_name
3052    and    pra.business_group_id + 0 = p_business_group_id
3053    and    p_effective_date between
3054           pra.date_start and nvl(pra.date_end, END_OF_TIME);
3055    return(l_raid);
3056 exception
3057 when others then
3058    hr_data_pump.fail('get_recruitment_activity_id', sqlerrm,
3059                      p_recruitment_activity_name, p_business_group_id,
3060                      p_effective_date);
3061    raise;
3062 end get_recruitment_activity_id;
3063 
3064 /* returns a vacancy_id */
3065 function get_vacancy_id
3066 (
3067    p_vacancy_user_key in varchar2
3068 ) return number is
3069    l_vacancy_id number;
3070 begin
3071    l_vacancy_id := user_key_to_id( p_vacancy_user_key );
3072    return(l_vacancy_id);
3073 exception
3074 when others then
3075    hr_data_pump.fail('get_vacancy_id', sqlerrm, p_vacancy_user_key );
3076    raise;
3077 end get_vacancy_id;
3078 
3079 /* returns an org_payment_method_id */
3080 function get_org_payment_method_id
3081 (
3082    p_org_payment_method_user_key in varchar2
3083 ) return number is
3084    l_opmid number;
3085 begin
3086    l_opmid := user_key_to_id( p_org_payment_method_user_key );
3087    return(l_opmid);
3088 exception
3089 when others then
3090    hr_data_pump.fail('get_org_payment_method_id', sqlerrm,
3091                      p_org_payment_method_user_key );
3092    raise;
3093 end get_org_payment_method_id;
3094 
3095 /* returns a payee organization_id */
3096 function get_payee_org_id
3097 (
3098    p_payee_organization_name in varchar2,
3099    p_business_group_id       in number,
3100    p_effective_date          in date
3101 ,  p_language_code           in varchar2
3102 ) return number is
3103    l_organization_id number;
3104 begin
3105    l_organization_id :=
3106    get_organization_id( p_payee_organization_name, p_business_group_id,
3107                         p_effective_date, p_language_code );
3108    return(l_organization_id);
3109 exception
3110 when others then
3111    hr_data_pump.fail('get_payee_org_id', sqlerrm, p_payee_organization_name,
3112                      p_business_group_id, p_effective_date, p_language_code);
3113    raise;
3114 end get_payee_org_id;
3115 
3116 /* return payee person_id - requires user key */
3117 function get_payee_person_id
3118 (
3119    p_payee_person_user_key in varchar2
3120 ) return number is
3121    l_person_id number;
3122 begin
3123    l_person_id := get_person_id( p_payee_person_user_key );
3124    return(l_person_id);
3125 exception
3126 when others then
3127    hr_data_pump.fail('get_payee_person_id', sqlerrm, p_payee_person_user_key);
3128    raise;
3129 end get_payee_person_id;
3130 
3131 /* return payee_id for an organization or person payee. */
3132 function get_payee_id
3133 (
3134    p_data_pump_always_call in varchar2,
3135    p_payee_type            in varchar2,
3136    p_business_group_id     in number,
3137    p_payee_org             in varchar2 default null,
3138    p_payee_person_user_key in varchar2 default null,
3139    p_effective_date        in date
3140 ,  p_language_code         in varchar2
3141 ) return number is
3142    l_payee_id number;
3143 begin
3144    --
3145    -- Check for a payee person.
3146    --
3147    if p_payee_type = 'P' and p_payee_person_user_key is not null then
3148       l_payee_id := get_payee_person_id( p_payee_person_user_key );
3149       return(l_payee_id);
3150    --
3151    -- Check for a payee organization.
3152    --
3153    elsif p_payee_type = 'O' and p_payee_org is not null then
3154       l_payee_id :=
3155       get_payee_org_id( p_payee_org, p_business_group_id, p_effective_date,
3156                         p_language_code );
3157       return(l_payee_id);
3158    --
3159    -- Everything is NULL so return NULL.
3160    --
3161    elsif p_payee_type is null and p_payee_person_user_key is null and
3162          p_payee_org is null then
3163       return null;
3164    --
3165    -- Everything is HR_API-defaulted, so return HR_API default value.
3166    -- User Keys are set to NULL, if defaulted, on UPDATE.
3167    --
3168    elsif p_payee_type = HR_API_G_VARCHAR2 and
3169          (p_payee_person_user_key is null or p_payee_person_user_key =
3170          HR_API_G_VARCHAR2) and p_payee_org = HR_API_G_VARCHAR2 then
3171       return HR_API_G_NUMBER;
3172    --
3173    -- User has supplied an erroneous combination of arguments.
3174    --
3175    else
3176       raise value_error;
3177    end if;
3178 exception
3179 when others then
3180    hr_data_pump.fail('get_payee_id', sqlerrm, p_payee_type, p_payee_org,
3181                      p_payee_person_user_key, p_effective_date, p_language_code);
3182    raise;
3183 end get_payee_id;
3184 
3185 /* returns a personal_payment_method_id */
3186 function get_personal_payment_method_id
3187 (
3188    p_personal_pay_method_user_key in varchar2
3189 ) return number is
3190    l_ppmid number;
3191 begin
3192    l_ppmid := user_key_to_id( p_personal_pay_method_user_key );
3193    return(l_ppmid);
3194 exception
3195 when others then
3196    hr_data_pump.fail('get_personal_payment_method_id', sqlerrm,
3197                      p_personal_pay_method_user_key);
3198    raise;
3199 end get_personal_payment_method_id;
3200 
3201 /* returns a set_of_books_id */
3202 function get_set_of_books_id
3203 (
3204    p_set_of_books_name varchar2
3205 ) return number is
3206    l_id number;
3207 begin
3208    select sob.set_of_books_id
3209    into   l_id
3210    from   gl_sets_of_books sob
3211    where  sob.name = p_set_of_books_name;
3212    return(l_id);
3213 exception
3214 when others then
3215    hr_data_pump.fail('get_set_of_books_id', sqlerrm, p_set_of_books_name);
3216    raise;
3217 end get_set_of_books_id;
3218 
3219 /* returns a tax_unit_id */
3220 function get_tax_unit_id
3221 (
3222    p_tax_unit_name in varchar2,
3223    p_effective_date in date
3224 ) return varchar2 is
3225    l_tax_unit_id number;
3226 begin
3227    select tax.tax_unit_id
3228    into   l_tax_unit_id
3229    from   hr_tax_units_v tax
3230    where  tax.name = p_tax_unit_name;
3231    return(l_tax_unit_id);
3232 exception
3233 when others then
3234    hr_data_pump.fail('get_tax_unit_id', sqlerrm, p_tax_unit_name,
3238 
3235                      p_effective_date);
3236    raise;
3237 end get_tax_unit_id;
3239 /* returns a user_column_id for tax schedule */
3240 function get_work_schedule
3241 (
3242    p_work_schedule     in varchar2,
3243    p_organization_name in varchar2,
3244    p_business_group_id in number,
3245    p_effective_date    in date
3246   ,p_language_code     in varchar2
3247 ) return number is
3248    l_id number;
3249 begin
3250    select puc.user_column_id
3251    into   l_id
3252    from   pay_user_columns            puc,
3253           hr_organization_information hoi,
3254           hr_all_organization_units    org
3255    ,      hr_all_organization_units_tl orgtl
3256    where  orgtl.name                  = p_organization_name
3257    and    orgtl.language              = p_language_code
3258    and    org.organization_id         = orgtl.organization_id
3259    and    org.business_group_id + 0   = p_business_group_id
3260    and    puc.user_column_name        = p_work_schedule
3261    and    hoi.org_information_context = 'Work Schedule'
3262    and    hoi.organization_id         = org.organization_id
3263    and    (puc.user_table_id = hoi.org_information1 or
3264            hoi.org_information1 is null);
3265    return(l_id);
3266 exception
3267 when others then
3268    hr_data_pump.fail('get_work_schedule', sqlerrm, p_work_schedule,
3269                      p_organization_name, p_business_group_id,
3270                      p_effective_date, p_language_code);
3271    raise;
3272 end get_work_schedule;
3273 
3274 /* returns an establishment_id */
3275 function get_eeo_1_establishment_id
3276 (
3277    p_eeo_1_establishment in varchar2,
3278    p_business_group_id   in number,
3279    p_effective_date      in date
3280 ) return number is
3281    l_id number;
3282 begin
3283    select est.establishment_id
3284    into   l_id
3285    from   HR_ESTABLISHMENTS_V est
3286    where  est.name                  = p_eeo_1_establishment
3287    and    est.business_group_id + 0 = p_business_group_id;
3288    return(l_id);
3289 exception
3290 when others then
3291    hr_data_pump.fail('get_eeo_1_establishment_id', sqlerrm,
3292                      p_eeo_1_establishment, p_business_group_id,
3293                      p_effective_date);
3294    raise;
3295 end get_eeo_1_establishment_id;
3296 
3297 /* get_program_application_id - standard who column */
3298 function get_program_application_id return number is
3299 begin
3300    return(null);
3301 end get_program_application_id;
3302 
3303 /* get_program_id - standard who column */
3304 function get_program_id return number is
3305 begin
3306    return(null);
3307 end get_program_id;
3308 
3309 /* get_request_id - standard who column */
3310 function get_request_id return number is
3311 begin
3312    return(null);
3313 end get_request_id;
3314 
3315 /* get_creator_id - standard who column */
3316 function get_creator_id return number is
3317 begin
3318    return(null);
3319 end get_creator_id;
3320 
3321 /* get_id_flex_num - requires user key */
3322 function get_id_flex_num( p_id_flex_num_user_key in varchar2 )
3323 return number is
3324    l_id_flex_num number;
3325 begin
3326    l_id_flex_num := user_key_to_id( p_id_flex_num_user_key );
3327    return(l_id_flex_num);
3328 exception
3329 when others then
3330    hr_data_pump.fail('get_id_flex_num', sqlerrm, p_id_flex_num_user_key);
3331    raise;
3332 end get_id_flex_num;
3333 
3334 /* get_gr_grade_rule_id */
3335 function get_gr_grade_rule_id
3336 (
3337    p_grade_name        in varchar2,
3338    p_rate_name         in varchar2,
3339    p_business_group_id in number,
3340    p_effective_date    in date
3341 )
3342 return number is
3343    l_grade_rule_id number;
3344 begin
3345    select pgr.grade_rule_id
3346    into   l_grade_rule_id
3347    from   pay_grade_rules_f pgr,
3348           per_grades_vl pg,
3349           pay_rates  pr
3350    where  pg.name = p_grade_name
3351    and    pg.business_group_id + 0 = p_business_group_id
3352    and    pr.name = p_rate_name
3353    and    pr.business_group_id + 0 = p_business_group_id
3354    and    pgr.rate_id = pr.rate_id
3355    and    pgr.grade_or_spinal_point_id = pg.grade_id
3356    and    pgr.rate_type = 'G'
3357    and    pgr.business_group_id + 0 = p_business_group_id
3358    and    p_effective_date between pgr.effective_start_date and
3359           pgr.effective_end_date;
3360    return(l_grade_rule_id);
3361 exception
3362 when others then
3363    hr_data_pump.fail('get_gr_grade_rule_id', sqlerrm, p_grade_name,
3364                       p_rate_name, p_business_group_id, p_effective_date);
3365    raise;
3366 end get_gr_grade_rule_id;
3367 
3368 /* get_pp_grade_rule_id */
3369 function get_pp_grade_rule_id
3370 (
3371    p_progression_point in varchar2,
3372    p_pay_scale         in varchar2,
3373    p_rate_name         in varchar2,
3374    p_business_group_id in number,
3375    p_effective_date    in date
3376 )
3377 return number is
3378    l_grade_rule_id number;
3379 begin
3380    select pgr.grade_rule_id
3381    into   l_grade_rule_id
3382    from   per_parent_spines pps,
3383           per_spinal_points psp,
3384           pay_grade_rules_f pgr,
3385           pay_rates  pr
3386    where  pps.name = p_pay_scale
3387    and    pps.business_group_id + 0 = p_business_group_id
3388    and    psp.spinal_point = p_progression_point
3389    and    psp.business_group_id + 0 = p_business_group_id
3390    and    psp.parent_spine_id = pps.parent_spine_id
3391    and    pr.name = p_rate_name
3392    and    pr.business_group_id + 0 = p_business_group_id
3393    and    pgr.rate_id = pr.rate_id
3394    and    pgr.grade_or_spinal_point_id = psp.spinal_point_id
3395    and    pgr.rate_type = 'SP'
3396    and    pgr.business_group_id + 0 = p_business_group_id
3397    and    p_effective_date between pgr.effective_start_date and
3398           pgr.effective_end_date;
3399    return( l_grade_rule_id );
3400 exception
3401 when others then
3402    hr_data_pump.fail('get_pp_grade_rule_id', sqlerrm, p_progression_point,
3403                       p_pay_scale, p_rate_name, p_business_group_id,
3404                       p_effective_date);
3405    raise;
3406 end get_pp_grade_rule_id;
3407 
3408 /* get_ar_grade_rule_id */
3409 function get_ar_grade_rule_id
3410 (
3411    p_rate_name         in varchar2,
3412    p_business_group_id in number,
3413    p_effective_date    in date
3414 )
3415 return number is
3416    l_grade_rule_id number;
3417 begin
3418    select pgr.grade_rule_id
3419    into   l_grade_rule_id
3420    from   pay_grade_rules_f pgr,
3421           pay_rates  pr
3422    where  pr.name = p_rate_name
3423    and    pr.business_group_id + 0 = p_business_group_id
3424    and    pgr.rate_id = pr.rate_id
3425    and    pgr.rate_type = 'A'
3426    and    pgr.business_group_id + 0 = p_business_group_id
3427    and    p_effective_date between pgr.effective_start_date and
3428           pgr.effective_end_date;
3429    return(l_grade_rule_id);
3430 exception
3431 when others then
3432    hr_data_pump.fail('get_ar_grade_rule_id', sqlerrm,
3433                       p_rate_name, p_business_group_id, p_effective_date);
3434    raise;
3435 end get_ar_grade_rule_id;
3436 
3437 function get_organization_structure_id
3438 (
3439    p_name in varchar2,
3440    p_business_group_id in number
3441 )
3442 return number is
3443    l_organization_structure_id number;
3444 begin
3445     select pos.organization_structure_id
3446     into l_organization_structure_id
3447     from per_organization_structures pos
3448     where pos.name = p_name
3449     and pos.business_group_id + 0 = p_business_group_id;
3450    return (l_organization_structure_id);
3451 exception
3452 when others then
3453    hr_data_pump.fail('get_organization_structure_id', sqlerrm, p_name, p_business_group_id);
3454    raise;
3455 end get_organization_structure_id;
3456 
3457 function get_org_str_ver_id
3458 (
3459 p_business_group_id in number,
3460 p_organization_structure_id in number,
3461 p_date_from in date,
3462 p_version_number in number
3463 )
3464 return number is
3465    l_org_str_ver_id number;
3466 begin
3467    select osv.org_structure_version_id
3468    into l_org_str_ver_id
3469    from per_org_structure_versions osv
3470    where osv.organization_structure_id = p_organization_structure_id
3471    and osv.date_from = p_date_from
3472    and osv.version_number = p_version_number
3473    and osv.business_group_id + 0 = p_business_group_id;
3474    return (l_org_str_ver_id);
3475 exception
3476 when others then
3477    hr_data_pump.fail('get_org_str_ver_id', sqlerrm, p_business_group_id, p_organization_structure_id, p_date_from, p_version_number);
3478    raise;
3479 end get_org_str_ver_id;
3480 
3481 /* get_spinal_point_id */
3482 function get_spinal_point_id
3483 (
3484    p_progression_point in varchar2,
3485    p_pay_scale         in varchar2,
3486    p_business_group_id in number,
3487    p_effective_date    in date
3488 )
3489 return number is
3490    l_spinal_point_id number;
3491 begin
3492    select psp.spinal_point_id
3493    into   l_spinal_point_id
3494    from   per_parent_spines pps,
3495           per_spinal_points psp
3496    where  pps.name = p_pay_scale
3497    and    pps.business_group_id + 0 = p_business_group_id
3498    and    psp.spinal_point = p_progression_point
3499    and    psp.business_group_id + 0 = p_business_group_id
3500    and    psp.parent_spine_id = pps.parent_spine_id;
3501    return( l_spinal_point_id );
3502 exception
3503 when others then
3504    hr_data_pump.fail('get_spinal_point_id', sqlerrm, p_progression_point,
3505                       p_pay_scale, p_business_group_id, p_effective_date);
3506    raise;
3507 end get_spinal_point_id;
3508 
3509 /* get_at_period_of_service_id */
3510 function get_at_period_of_service_id
3511 (
3512    p_person_user_key   in varchar2,
3513    p_business_group_id in number
3514 )
3515 return number is
3516    l_period_of_service_id number;
3517 begin
3518    select pps.period_of_service_id
3519    into   l_period_of_service_id
3520    from   per_periods_of_service pps,
3521           hr_pump_batch_line_user_keys key
3522    where  key.user_key_value = p_person_user_key
3523    and    pps.person_id = key.unique_key_id
3524    and    pps.business_group_id = p_business_group_id
3525    and    pps.actual_termination_date is null;
3526    return(l_period_of_service_id);
3527 exception
3528 when others then
3529    hr_data_pump.fail('get_at_period_of_service_id', sqlerrm,
3530                       p_person_user_key, p_business_group_id);
3531    raise;
3532 end get_at_period_of_service_id;
3533 
3534 /* get_fp_period_of_service_id */
3535 function get_fp_period_of_service_id
3536 (
3537    p_person_user_key   in varchar2,
3538    p_business_group_id in number
3539 )
3540 return number is
3541    l_period_of_service_id number;
3542 begin
3543    select pps.period_of_service_id
3544    into   l_period_of_service_id
3545    from   per_periods_of_service pps,
3546           hr_pump_batch_line_user_keys key
3547    where  key.user_key_value = p_person_user_key
3548    and    pps.person_id = key.unique_key_id
3549    and    pps.business_group_id = p_business_group_id
3550    and    pps.actual_termination_date is not null
3551    and    pps.final_process_date is null;
3552    return(l_period_of_service_id);
3553 exception
3554 when others then
3555    hr_data_pump.fail('get_fp_period_of_service_id', sqlerrm, p_person_user_key,
3556                       p_business_group_id);
3557    raise;
3558 end get_fp_period_of_service_id;
3559 
3560 /* Added for 11i,Rvydyana,02-DEC-1999 */
3561 /* get_ut_period_of_service_id */
3562 function get_ut_period_of_service_id
3563 (
3564    p_person_user_key   in varchar2,
3565    p_effective_date    in date,
3566    p_business_group_id in number
3567 )
3568 return number is
3569    l_eot constant date := to_date('4712/12/31', 'YYYY/MM/DD');
3570    l_period_of_service_id number;
3571 begin
3572 
3573    select pps.period_of_service_id
3574    into   l_period_of_service_id
3575    from   per_periods_of_service pps,
3576           hr_pump_batch_line_user_keys key
3577    where  key.user_key_value = p_person_user_key
3578    and    pps.person_id = key.unique_key_id
3579    and    pps.business_group_id = p_business_group_id
3580    and    p_effective_date between pps.date_start and NVL(pps.actual_termination_date,l_eot);
3581    return(l_period_of_service_id);
3582 exception
3583 when others then
3584    hr_data_pump.fail('get_ut_period_of_service_id', sqlerrm, p_person_user_key,
3585                       p_effective_date,p_business_group_id);
3586    raise;
3587 end get_ut_period_of_service_id;
3588 
3589 /* get_special_ceiling_step_id */
3590 function get_special_ceiling_step_id
3591 (
3592    p_special_ceilin_step_user_key varchar2
3593 )
3594 return number is
3595    l_special_ceiling_step_id number;
3596 begin
3597    l_special_ceiling_step_id :=
3598    user_key_to_id( p_special_ceilin_step_user_key );
3599    return(l_special_ceiling_step_id);
3600 exception
3601 when others then
3602    hr_data_pump.fail('get_special_ceiling_step_id', sqlerrm,
3603                      p_special_ceilin_step_user_key );
3604    raise;
3605 end get_special_ceiling_step_id;
3606 
3607 /* get_default_code_comb_id */
3608 function get_default_code_comb_id
3609 (
3610    p_default_code_comb_user_key varchar2
3611 )
3612 return number is
3613    l_default_code_comb_id number;
3614 begin
3615    l_default_code_comb_id := user_key_to_id( p_default_code_comb_user_key );
3616    return(l_default_code_comb_id);
3617 exception
3618 when others then
3619    hr_data_pump.fail('get_default_code_comb_id', sqlerrm,
3620                      p_default_code_comb_user_key );
3621    raise;
3622 end get_default_code_comb_id;
3623 
3624 /* Added for 11i - Rvydyana - 06-DEC-1999 */
3625 /* get_phone_id - requires user key */
3626 function get_phone_id
3627 (
3628    p_phone_user_key in varchar2
3629 ) return number is
3630    l_phone_id number;
3631 begin
3632    l_phone_id := user_key_to_id( p_phone_user_key );
3633    return(l_phone_id);
3634 exception
3635 when others then
3636    hr_data_pump.fail('get_phone_id', sqlerrm, p_phone_user_key);
3637    raise;
3638 end get_phone_id;
3639 
3640 /*-------------------------- get_grade_ladder_pgm_id -----------------------*/
3641 function get_grade_ladder_pgm_id
3642 ( p_grade_ladder_name  in varchar2
3643  ,p_business_group_id  in number
3644  ,p_effective_date     in date
3645 ) return number is
3646   l_grade_ladder_pgm_id number;
3647 begin
3648   select pgm.pgm_id
3649   into   l_grade_ladder_pgm_id
3650   from   ben_pgm_f pgm
3651   where  pgm.name = p_grade_ladder_name
3652   and    pgm.pgm_typ_cd = 'GSP'
3653   and    pgm.business_group_id + 0 = p_business_group_id
3654   and    p_effective_date
3655          between pgm.effective_start_date and pgm.effective_end_date;
3656   return(l_grade_ladder_pgm_id);
3657 exception
3658   when others then
3659     hr_data_pump.fail('get_grade_ladder_pgm_id', sqlerrm,
3660                        p_grade_ladder_name);
3661     raise;
3662 end get_grade_ladder_pgm_id;
3663 /*---------------------- get_supervisor_assignment_id -----------------------*/
3664 function get_supervisor_assignment_id
3665 /* return supervisor assignment_id - requires user key */
3666 (
3667    p_svr_assignment_user_key in varchar2
3668 ) return number is
3669    l_supervisor_assignment_id number;
3670 begin
3671    l_supervisor_assignment_id := get_assignment_id(p_svr_assignment_user_key );
3672    return(l_supervisor_assignment_id);
3673 exception
3674 when others then
3675    hr_data_pump.fail('get_supervisor_assignment_id', sqlerrm,
3676                       p_svr_assignment_user_key);
3677    raise;
3678 end get_supervisor_assignment_id;
3679 
3680 /*--------------------- get_parent_spine_id ----------------------------------*/
3681 function get_parent_spine_id
3682 (
3683    p_parent_spine      in varchar2
3684   ,p_business_group_id in number
3685 )
3686 return number is
3687    l_parent_spine_id number;
3688 begin
3689    select parent_spine_id
3690    into   l_parent_spine_id
3691    from   per_parent_spines
3692    where  name = p_parent_spine
3693    and    business_group_id = p_business_group_id;
3694    return(l_parent_spine_id);
3695 exception
3696 when others then
3697    hr_data_pump.fail('get_parent_spine_id', sqlerrm, p_parent_spine,
3698                       p_business_group_id);
3699    raise;
3700 end get_parent_spine_id;
3701 /*--------------------- get_ceiling_step_id ----------------------------------*/
3702 function get_ceiling_step_id
3703 (
3704    p_ceiling_point     in varchar2,
3705    p_business_group_id in number,
3706    p_effective_date    in date
3707 )
3708 return number is
3709    l_ceiling_step_id number;
3710 begin
3711    select sps.step_id
3712    into   l_ceiling_step_id
3713    from   per_spinal_points psp
3714          ,per_spinal_point_steps_f sps
3715    where  psp.spinal_point = p_ceiling_point
3716    and    psp.spinal_point_id = sps.spinal_point_id
3717    and    sps.business_group_id = p_business_group_id
3718    and    p_effective_date between
3719           sps.effective_start_date and sps.effective_end_date;
3720    return(l_ceiling_step_id);
3721 exception
3722 when others then
3723    hr_data_pump.fail('get_ceiling_step_id', sqlerrm, p_ceiling_point,
3724                       p_business_group_id, p_effective_date);
3725    raise;
3726 end get_ceiling_step_id;
3727 
3728 /*---------------------------------------------------------------------------*/
3729 /*------------------- get object version number functions -------------------*/
3730 /*---------------------------------------------------------------------------*/
3731 
3732 /*-------------------- get_collective_agreement_ovn ------------------------*/
3733 function get_collective_agreement_ovn
3734 (p_business_group_id in number
3735 ,p_cagr_name         in varchar2
3736 ,p_effective_date    in date
3737 ) return number is
3738   l_object_version_number number;
3739 begin
3740   select pc.object_version_number
3741   into   l_object_version_number
3742   from   per_collective_agreements pc
3743   where  pc.business_group_id = p_business_group_id
3744   and    pc.name = p_cagr_name
3745   and    p_effective_date between
3746          nvl(start_date,START_OF_TIME) and nvl(end_date,END_OF_TIME);
3747   return l_object_version_number;
3748 exception
3749   when others then
3750     hr_data_pump.fail('get_collective_agreement_ovn', sqlerrm,
3751                       p_business_group_id, p_cagr_name, p_effective_date);
3752     raise;
3753 end get_collective_agreement_ovn;
3754 
3755 /*----------------------------- get_contract_ovn ---------------------------*/
3756 function get_contract_ovn
3757 (p_contract_user_key in varchar2
3758 ,p_effective_date    in date
3759 ) return number is
3760   l_object_version_number number;
3761 begin
3762    select pc.object_version_number
3763    into   l_object_version_number
3764    from   per_contracts_f              pc,
3765           hr_pump_batch_line_user_keys key
3766    where  key.user_key_value = p_contract_user_key
3767    and    pc.contract_id      = key.unique_key_id
3768    and    p_effective_date between
3769           pc.effective_start_date and pc.effective_end_date;
3770    return(l_object_version_number);
3771 exception
3772   when others then
3773     hr_data_pump.fail('get_contract_ovn', sqlerrm, p_contract_user_key);
3774     raise;
3775 end get_contract_ovn;
3776 
3777 /*--------------------------- get_establishment_ovn ---------------------------*/
3778 function get_establishment_ovn
3779 (p_establishment_name in varchar2
3780 ,p_location           in varchar2
3781 ) return number is
3782   l_object_version_number number;
3783 begin
3784   select pe.object_version_number
3785   into   l_object_version_number
3786   from   per_establishments pe
3787   where  pe.location = p_location
3788   and    pe.name = p_establishment_name;
3789   return l_object_version_number;
3790 exception
3791   when others then
3792     hr_data_pump.fail('get_establishment_ovn', sqlerrm,
3793                        p_establishment_name, p_location);
3794     raise;
3795 end get_establishment_ovn;
3796 
3797 /* returns a federal tax rule object version number */
3798 function get_us_emp_fed_tax_rule_ovn
3799 (
3800    p_emp_fed_tax_rule_user_key in varchar2,
3801    p_effective_date  in date
3802 ) return number is
3803    l_ovn number;
3804 begin
3805    select rules.object_version_number
3806    into   l_ovn
3807    from   pay_us_emp_fed_tax_rules_f   rules,
3808           hr_pump_batch_line_user_keys key
3809    where  key.user_key_value           = p_emp_fed_tax_rule_user_key
3810    and    rules.emp_fed_tax_rule_id    = key.unique_key_id
3814 exception
3811    and    p_effective_date between
3812           rules.effective_start_date and rules.effective_end_date;
3813    return(l_ovn);
3815 when others then
3816   hr_data_pump.fail('get_us_emp_fed_tax_rule_ovn', sqlerrm,
3817                     p_emp_fed_tax_rule_user_key, p_effective_date);
3818   raise;
3819 end get_us_emp_fed_tax_rule_ovn;
3820 
3821 /* returns a state tax rule object version number */
3822 function get_us_emp_state_tax_rule_ovn
3823 (
3824    p_emp_state_tax_rule_user_key in varchar2,
3825    p_effective_date  in date
3826 ) return number is
3827    l_ovn number;
3828 begin
3829    select rules.object_version_number
3830    into   l_ovn
3831    from   pay_us_emp_state_tax_rules_f   rules,
3832           hr_pump_batch_line_user_keys key
3833    where  key.user_key_value           = p_emp_state_tax_rule_user_key
3834    and    rules.emp_state_tax_rule_id    = key.unique_key_id
3835    and    p_effective_date between
3836           rules.effective_start_date and rules.effective_end_date;
3837    return(l_ovn);
3838 exception
3839 when others then
3840   hr_data_pump.fail('get_us_emp_state_tax_rule_ovn', sqlerrm,
3841                     p_emp_state_tax_rule_user_key, p_effective_date);
3842   raise;
3843 end get_us_emp_state_tax_rule_ovn;
3844 
3845 /* returns a county tax rule object version number */
3846 function get_us_emp_county_tax_rule_ovn
3847 (
3848    p_emp_county_tax_rule_user_key in varchar2,
3849    p_effective_date  in date
3850 ) return number is
3851    l_ovn number;
3852 begin
3853    select rules.object_version_number
3854    into   l_ovn
3855    from   pay_us_emp_county_tax_rules_f   rules,
3856           hr_pump_batch_line_user_keys key
3857    where  key.user_key_value           = p_emp_county_tax_rule_user_key
3858    and    rules.emp_county_tax_rule_id    = key.unique_key_id
3859    and    p_effective_date between
3860           rules.effective_start_date and rules.effective_end_date;
3861    return(l_ovn);
3862 exception
3863 when others then
3864   hr_data_pump.fail('get_us_emp_county_tax_rule_ovn', sqlerrm,
3865                     p_emp_county_tax_rule_user_key, p_effective_date);
3866   raise;
3867 end get_us_emp_county_tax_rule_ovn;
3868 
3869 /* returns a city tax rule object version number */
3870 function get_us_emp_city_tax_rule_ovn
3871 (
3872    p_emp_city_tax_rule_user_key in varchar2,
3873    p_effective_date  in date
3874 ) return number is
3875    l_ovn number;
3876 begin
3877    select rules.object_version_number
3878    into   l_ovn
3879    from   pay_us_emp_city_tax_rules_f   rules,
3880           hr_pump_batch_line_user_keys key
3881    where  key.user_key_value           = p_emp_city_tax_rule_user_key
3882    and    rules.emp_city_tax_rule_id    = key.unique_key_id
3883    and    p_effective_date between
3884           rules.effective_start_date and rules.effective_end_date;
3885    return(l_ovn);
3886 exception
3887 when others then
3888   hr_data_pump.fail('get_us_emp_city_tax_rule_ovn', sqlerrm,
3889                     p_emp_city_tax_rule_user_key, p_effective_date);
3890   raise;
3891 end get_us_emp_city_tax_rule_ovn;
3892 
3893 /* returns a person object version number */
3894 function get_per_ovn
3895 (
3896    p_person_user_key in varchar2,
3897    p_effective_date  in date
3898 ) return number is
3899    l_ovn number;
3900 begin
3901    select per.object_version_number
3902    into   l_ovn
3903    from   per_people_f                 per,
3904           hr_pump_batch_line_user_keys key
3905    where  key.user_key_value = p_person_user_key
3906    and    per.person_id      = key.unique_key_id
3907    and    p_effective_date between
3908           per.effective_start_date and per.effective_end_date;
3909    return(l_ovn);
3910 exception
3911 when others then
3912    hr_data_pump.fail('get_per_ovn', sqlerrm, p_person_user_key,
3913                      p_effective_date);
3914    raise;
3915 end get_per_ovn;
3916 
3917 /* returns an assignment object version number */
3918 function get_asg_ovn
3919 (
3920    p_assignment_user_key in varchar2,
3921    p_effective_date      in date
3922 ) return number is
3923    l_ovn number;
3924 begin
3925    select asg.object_version_number
3926    into   l_ovn
3927    from   per_assignments_f            asg,
3928           hr_pump_batch_line_user_keys key
3929    where  key.user_key_value = p_assignment_user_key
3930    and    asg.assignment_id  = key.unique_key_id
3931    and    p_effective_date between
3932           asg.effective_start_date and asg.effective_end_date;
3933    return(l_ovn);
3934 exception
3935 when others then
3936    hr_data_pump.fail('get_asg_ovn', sqlerrm, p_assignment_user_key,
3937                      p_effective_date);
3938    raise;
3939 end get_asg_ovn;
3940 
3941 /* returns an address object version number */
3942 function get_adr_ovn
3943 (
3944    p_address_user_key in varchar2,
3945    p_effective_date   in date
3946 ) return number is
3947    l_ovn number;
3948 begin
3949    select adr.object_version_number
3950    into   l_ovn
3951    from   per_addresses                adr,
3952           hr_pump_batch_line_user_keys key
3953    where  key.user_key_value = p_address_user_key
3954    and    adr.address_id     = key.unique_key_id;
3955    return(l_ovn);
3956 exception
3957 when others then
3958    hr_data_pump.fail('get_adr_ovn', sqlerrm, p_address_user_key,
3959                      p_effective_date);
3960    raise;
3961 end get_adr_ovn;
3962 
3963 /* returns a location object version number */
3964 function get_loc_ovn
3965 (
3966    p_location_code in varchar2
3967 ) return number is
3968    l_ovn number;
3969 begin
3970   --
3971   -- Changed to use hr_locations_all for WWBUG 1833930.
3972   --
3973    select loc.object_version_number
3974    into   l_ovn
3975    from   hr_locations_all loc
3976    where  loc.location_code = p_location_code;
3977    return(l_ovn);
3978 exception
3979 when others then
3980    hr_data_pump.fail('get_loc_ovn', sqlerrm, p_location_code);
3981    raise;
3982 end get_loc_ovn;
3983 
3984 /* returns a job object version number */
3985 function get_org_str_ovn
3986 (
3987    p_name          in varchar2,
3988    p_business_group_id in number
3989 ) return number is
3990    l_ovn number;
3991 begin
3992    select ors.object_version_number
3993    into   l_ovn
3994    from   per_organization_structures ors
3995    where  ors.name                  = p_name
3996    and    ors.business_group_id + 0 = p_business_group_id;
3997    return(l_ovn);
3998 exception
3999 when others then
4000    hr_data_pump.fail('get_org_str_ovn', sqlerrm, p_name, p_business_group_id);
4001    raise;
4002 end get_org_str_ovn;
4003 
4004 /* returns a organization structure version object version number */
4005 function get_org_str_ver_ovn
4006 (
4007    p_business_group_id in number,
4008    p_organization_structure_id in number,
4009    p_date_from in date,
4010    p_version_number in number
4011 ) return number is
4012    l_ovn number;
4013 begin
4014    select osv.object_version_number
4015    into l_ovn
4016    from per_org_structure_versions osv
4017    where osv.organization_structure_id = p_organization_structure_id
4018    and osv.date_from = p_date_from
4019    and osv.version_number = p_version_number
4020    and osv.business_group_id + 0 = p_business_group_id;
4021    return(l_ovn);
4022 exception
4023 when others then
4024    hr_data_pump.fail('get_org_str_ver_ovn', sqlerrm, p_business_group_id, p_organization_structure_id, p_date_from, p_version_number);
4025    raise;
4026  end get_org_str_ver_ovn;
4027 
4028 /* returns an organization object version number */
4029 function get_org_ovn
4030 (
4031    p_business_group_id in number,
4032    p_organization_name in varchar2,
4033    p_language_code in varchar2
4034 ) return number is
4035    l_ovn number;
4036 begin
4037    select org.object_version_number
4038    into   l_ovn
4039    from   hr_all_organization_units org
4040    ,      hr_all_organization_units_tl orgtl
4041    where  orgtl.name = p_organization_name
4042    and    orgtl.language = p_language_code
4043    and    org.organization_id = orgtl.organization_id
4044    and    org.business_group_id + 0 = p_business_group_id;
4045    return(l_ovn);
4046 exception
4047 when others then
4048    hr_data_pump.fail('get_org_ovn', sqlerrm, p_business_group_id, p_organization_name, p_language_code);
4049    raise;
4050 end get_org_ovn;
4051 
4052 /* returns a job object version number */
4053 function get_job_ovn
4054 (
4055    p_job_name          in varchar2,
4056    p_effective_date    in date,
4057    p_business_group_id in number
4058 ) return number is
4059    l_ovn number;
4060 begin
4061    select job.object_version_number
4062    into   l_ovn
4063    from   per_jobs_vl job
4064    where  job.name                  = p_job_name
4065    and    job.business_group_id + 0 = p_business_group_id;
4066    return(l_ovn);
4067 exception
4068 when others then
4069    hr_data_pump.fail('get_job_ovn', sqlerrm, p_job_name, p_effective_date,
4070                      p_business_group_id);
4071    raise;
4072 end get_job_ovn;
4073 
4074 /* returns a position object version number */
4075 function get_pos_ovn
4076 (
4077    p_position_name     in varchar2,
4078    p_business_group_id in number,
4079    p_effective_date    in date
4080 ) return number is
4081    l_ovn number;
4082 begin
4083    select pos.object_version_number
4084    into   l_ovn
4085    from   hr_all_positions_f pos
4086    where  pos.name                  = p_position_name
4087    and    pos.business_group_id + 0 = p_business_group_id
4088    and    p_effective_date between
4089           pos.effective_start_date and pos.effective_end_date;
4090    return(l_ovn);
4091 exception
4092 when others then
4093    hr_data_pump.fail('get_pos_ovn', sqlerrm, p_position_name,
4094                      p_business_group_id, p_effective_date);
4095    raise;
4096 end get_pos_ovn;
4097 
4098 /* returns a personal_payment_method object version number */
4099 function get_ppm_ovn
4100 (
4101    p_personal_pay_method_user_key in varchar2,
4102    p_effective_date               in date
4103 ) return number is
4104    l_ovn number;
4105 begin
4106    select ppm.object_version_number
4107    into   l_ovn
4108    from   pay_personal_payment_methods_f ppm
4112    and    p_effective_date between
4109    ,      hr_pump_batch_line_user_keys key
4110    where  key.user_key_value = p_personal_pay_method_user_key
4111    and    ppm.personal_payment_method_id = key.unique_key_id
4113           ppm.effective_start_date and ppm.effective_end_date;
4114    return(l_ovn);
4115 exception
4116 when others then
4117    hr_data_pump.fail('get_ppm_ovn', sqlerrm,
4118                      p_personal_pay_method_user_key, p_effective_date);
4119    raise;
4120 end get_ppm_ovn;
4121 
4122 /* get_element_entry_ovn - requires user key */
4123 function get_element_entry_ovn
4124 (
4125    p_element_entry_user_key in varchar2,
4126    p_effective_date         in date
4127 ) return number is
4128    l_element_entry_ovn number;
4129 begin
4130    select pee.object_version_number
4131    into   l_element_entry_ovn
4132    from   pay_element_entries_f pee,
4133           hr_pump_batch_line_user_keys key
4134    where  key.user_key_value   = p_element_entry_user_key
4135    and    pee.element_entry_id = key.unique_key_id
4136    and    p_effective_date between
4137           pee.effective_start_date and pee.effective_end_date;
4138    return(l_element_entry_ovn);
4139 exception
4140 when others then
4141    hr_data_pump.fail('get_element_entry_ovn', sqlerrm, p_element_entry_user_key,                     p_effective_date);
4142    raise;
4143 end get_element_entry_ovn;
4144 
4145 /* get_gr_grade_rule_ovn */
4146 function get_gr_grade_rule_ovn
4147 (
4148    p_grade_name        in varchar2,
4149    p_rate_name         in varchar2,
4150    p_business_group_id in number,
4151    p_effective_date    in date
4152 )
4153 return number is
4154    l_object_version_number number;
4155 begin
4156    select pgr.object_version_number
4157    into   l_object_version_number
4158    from   pay_grade_rules_f pgr,
4159           per_grades_vl pg,
4160           pay_rates  pr
4161    where  pg.name = p_grade_name
4162    and    pg.business_group_id + 0 = p_business_group_id
4163    and    pr.name = p_rate_name
4164    and    pr.business_group_id + 0 = p_business_group_id
4165    and    pgr.rate_id = pr.rate_id
4166    and    pgr.grade_or_spinal_point_id = pg.grade_id
4167    and    pgr.rate_type = 'G'
4168    and    pgr.business_group_id + 0 = p_business_group_id
4169    and    p_effective_date between pgr.effective_start_date and
4170           pgr.effective_end_date;
4171    return(l_object_version_number);
4172 exception
4173 when others then
4174    hr_data_pump.fail('get_gr_grade_rule_ovn', sqlerrm, p_grade_name,
4175                       p_rate_name, p_business_group_id, p_effective_date);
4176    raise;
4177 end get_gr_grade_rule_ovn;
4178 
4179 /* get_pp_grade_rule_ovn */
4180 function get_pp_grade_rule_ovn
4181 (
4182    p_progression_point in varchar2,
4183    p_pay_scale         in varchar2,
4184    p_rate_name         in varchar2,
4185    p_business_group_id in number,
4186    p_effective_date    in date
4187 )
4188 return number is
4189    l_object_version_number number;
4190 begin
4191    select pgr.object_version_number
4192    into   l_object_version_number
4193    from   per_parent_spines pps,
4194           per_spinal_points psp,
4195           pay_grade_rules_f pgr,
4196           pay_rates pr
4197    where  pps.name = p_pay_scale
4198    and    pps.business_group_id + 0 = p_business_group_id
4199    and    psp.spinal_point = p_progression_point
4200    and    psp.business_group_id + 0 = p_business_group_id
4201    and    psp.parent_spine_id = pps.parent_spine_id
4202    and    pr.name = p_rate_name
4203    and    pr.business_group_id + 0 = p_business_group_id
4204    and    pgr.rate_id = pr.rate_id
4205    and    pgr.grade_or_spinal_point_id = psp.spinal_point_id
4206    and    pgr.rate_type = 'SP'
4207    and    pgr.business_group_id + 0 = p_business_group_id
4208    and    p_effective_date between pgr.effective_start_date and
4209           pgr.effective_end_date;
4210    return(l_object_version_number);
4211 exception
4212 when others then
4213    hr_data_pump.fail('get_pp_grade_rule_id', sqlerrm, p_progression_point,
4214                       p_pay_scale, p_rate_name, p_business_group_id,
4215                       p_effective_date);
4216    raise;
4217 end get_pp_grade_rule_ovn;
4218 
4219 /* get_at_period_of_service_ovn */
4220 function get_at_period_of_service_ovn
4221 (
4222    p_person_user_key   in varchar2,
4223    p_business_group_id in number
4224 )
4225 return number is
4226    l_object_version_number number;
4227 begin
4228    select pps.object_version_number
4229    into   l_object_version_number
4230    from   per_periods_of_service pps,
4231           hr_pump_batch_line_user_keys key
4232    where  key.user_key_value = p_person_user_key
4233    and    pps.person_id = key.unique_key_id
4234    and    pps.business_group_id = p_business_group_id
4235    and    pps.actual_termination_date is null;
4236    return(l_object_version_number);
4237 exception
4238 when others then
4239    hr_data_pump.fail('get_at_period_of_service_ovn', sqlerrm, p_person_user_key,
4240                       p_business_group_id);
4241    raise;
4242 end get_at_period_of_service_ovn;
4243 
4244 /* get_fp_period_of_service_ovn */
4245 function get_fp_period_of_service_ovn
4246 (
4250 return number is
4247    p_person_user_key   in varchar2,
4248    p_business_group_id in number
4249 )
4251    l_object_version_number number;
4252 begin
4253    select pps.object_version_number
4254    into   l_object_version_number
4255    from   per_periods_of_service pps,
4256           hr_pump_batch_line_user_keys key
4257    where  key.user_key_value = p_person_user_key
4258    and    pps.person_id = key.unique_key_id
4259    and    pps.business_group_id = p_business_group_id
4260    and    pps.actual_termination_date is not null
4261    and    pps.final_process_date is null;
4262    return(l_object_version_number);
4263 exception
4264 when others then
4265    hr_data_pump.fail('get_fp_period_of_service_ovn', sqlerrm, p_person_user_key,
4266                       p_business_group_id);
4267    raise;
4268 end get_fp_period_of_service_ovn;
4269 
4270 /* Added for 11i,Rvydyana,02-DEC-1999 */
4271 /* get_ut_period_of_service_ovn */
4272 function get_ut_period_of_service_ovn
4273 (
4274    p_person_user_key   in varchar2,
4275    p_effective_date    in date,
4276    p_business_group_id in number
4277 )
4278 return number is
4279    l_eot constant date := to_date('4712/12/31', 'YYYY/MM/DD');
4280    l_object_version_number number;
4281 begin
4282 
4283    select pps.object_version_number
4284    into   l_object_version_number
4285    from   per_periods_of_service pps,
4286           hr_pump_batch_line_user_keys key
4287    where  key.user_key_value = p_person_user_key
4288    and    pps.person_id = key.unique_key_id
4289    and    pps.business_group_id = p_business_group_id
4290    and    p_effective_date between pps.date_start and NVL(pps.actual_termination_date,l_eot);
4291    return(l_object_version_number);
4292 exception
4293 when others then
4294    hr_data_pump.fail('get_ut_period_of_service_id', sqlerrm, p_person_user_key,
4295                       p_effective_date,p_business_group_id);
4296    raise;
4297 end get_ut_period_of_service_ovn;
4298 
4299 /* get entry_step_id - requires user key */
4300 function get_entry_step_id
4301 (
4302    p_entry_step_user_key in varchar2
4303 ) return number is
4304    l_entry_step_id number;
4305 begin
4306    l_entry_step_id := user_key_to_id( p_entry_step_user_key );
4307    return(l_entry_step_id);
4308 exception
4309 when others then
4310    hr_data_pump.fail('get_entry_step_id', sqlerrm, p_entry_step_user_key);
4311    raise;
4312 end get_entry_step_id;
4313 
4314 /* get entry_grade_rule_id - requires user key */
4315 function get_entry_grade_rule_id
4316 (
4317    p_entry_grade_rule_user_key in varchar2
4318 ) return number is
4319    l_entry_grade_rule_id number;
4320 begin
4321    l_entry_grade_rule_id := user_key_to_id( p_entry_grade_rule_user_key );
4322    return(l_entry_grade_rule_id);
4323 exception
4324 when others then
4325    hr_data_pump.fail('get_entry_grade_rule_id', sqlerrm, p_entry_grade_rule_user_key);
4326    raise;
4327 end get_entry_grade_rule_id;
4328 
4329 /* Added for 11i - Rvydyana - 06-DEC-1999 */
4330 /* returns a phone object version number */
4331 function get_phn_ovn
4332 (
4333    p_phone_user_key in varchar2
4334 ) return number is
4335    l_ovn number;
4336 begin
4337    select phn.object_version_number
4338    into   l_ovn
4339    from   per_phones                 phn,
4340           hr_pump_batch_line_user_keys key
4341    where  key.user_key_value = p_phone_user_key
4342    and    phn.phone_id      = key.unique_key_id;
4343    return(l_ovn);
4344 exception
4345 when others then
4346    hr_data_pump.fail('get_phn_ovn', sqlerrm, p_phone_user_key);
4347    raise;
4348 end get_phn_ovn;
4349 --
4350 /* --------------------------------------------------- */
4351 /* ----------------- get_jgr_ovn---------------------- */
4352 /* --------------------------------------------------- */
4353 function get_jgr_ovn
4354 (
4355  p_job_group_user_key in varchar2
4356   ) return number is
4357 l_ovn number;
4358  begin
4359     select jgr.object_version_number
4360     into   l_ovn
4361     from   per_job_groups jgr,
4362      hr_pump_batch_line_user_keys key
4363     where  key.user_key_value = p_job_group_user_key
4364     and    jgr.job_group_id      = key.unique_key_id;
4365    return(l_ovn);
4366    exception
4367    when others then
4368    hr_data_pump.fail('get_jgr_ovn', sqlerrm, p_job_group_user_key);
4369    raise;
4370 end get_jgr_ovn;
4371 
4372 /* --------------------------------------------------- */
4373 /* ----------------- get_rol_ovn---------------------- */
4374 /* --------------------------------------------------- */
4375 function get_rol_ovn
4376 (
4377  p_role_user_key in varchar2
4378   ) return number is
4379 l_ovn number;
4380  begin
4381     select rol.object_version_number
4382     into   l_ovn
4383     from   per_roles rol,
4384      hr_pump_batch_line_user_keys key
4385     where  key.user_key_value = p_role_user_key
4386     and    rol.role_id      = key.unique_key_id;
4387    return(l_ovn);
4388    exception
4389    when others then
4390    hr_data_pump.fail('get_rol_ovn', sqlerrm, p_role_user_key);
4391    raise;
4392 end get_rol_ovn;
4393 /*-------------- returns a pay scale object version number --------------------*/
4397    p_business_group_id  in number
4394 function get_pay_scale_ovn
4395 (
4396    p_pay_scale          in varchar2,
4398 ) return number is
4399    l_ovn number;
4400 begin
4401    select object_version_number
4402    into   l_ovn
4403    from   per_parent_spines
4404    where  name                  = p_pay_scale
4405    and    business_group_id + 0 = p_business_group_id;
4406    return(l_ovn);
4407 exception
4408 when others then
4409    hr_data_pump.fail('get_pay_scale_ovn', sqlerrm, p_pay_scale,
4410                      p_business_group_id);
4411    raise;
4412 end get_pay_scale_ovn;
4413 /*-------------- returns a preogresion point object version number ------------*/
4414 function get_progression_point_ovn
4415 (
4416    p_point              in varchar2,
4417    p_business_group_id  in number
4418 ) return number is
4419    l_ovn number;
4420 begin
4421    select object_version_number
4422    into   l_ovn
4423    from   per_spinal_points
4424    where  spinal_point          = p_point
4425    and    business_group_id + 0 = p_business_group_id;
4426    return(l_ovn);
4427 exception
4428 when others then
4429    hr_data_pump.fail('get_progression_point_ovn', sqlerrm, p_point,
4430                      p_business_group_id);
4431    raise;
4432 end get_progression_point_ovn;
4433 /*-------------- returns a grade scale object version number ------------*/
4434 function get_grade_scale_ovn
4435 (
4436    p_grade              in varchar2,
4437    p_pay_scale          in varchar2,
4438    p_effective_date     in date,
4439    p_business_group_id  in number
4440 ) return number is
4441    l_ovn number;
4442 begin
4443    select pgs.object_version_number
4444    into   l_ovn
4445    from   per_grade_spines_f pgs
4446          ,per_grades pg
4447          ,per_parent_spines pps
4448    where  pg.name = p_grade
4449    and    pg.grade_id = pgs.grade_id
4450    and    pps.name = p_pay_scale
4451    and    pps.parent_spine_id = pgs.parent_spine_id
4452    and    pgs.business_group_id = p_business_group_id
4453    and    p_effective_date between
4454           pgs.effective_start_date and pgs.effective_end_date;
4455    return(l_ovn);
4456 exception
4457 when others then
4458    hr_data_pump.fail('get_grade_scale_ovn', sqlerrm, p_grade,
4459                      p_pay_scale, p_effective_date ,p_business_group_id);
4460    raise;
4461 end get_grade_scale_ovn;
4462 /*-------------- returns a grade step object version number ------------*/
4463 function get_grade_step_ovn
4464 (
4465    p_point              in varchar2,
4466    p_sequence           in number,
4467    p_effective_date     in date,
4468    p_business_group_id  in number
4469 ) return number is
4470    l_ovn number;
4471 begin
4472    select sps.object_version_number
4473    into   l_ovn
4474    from   per_spinal_point_steps_f sps
4475          ,per_spinal_points psp
4476          ,per_grade_spines_f pgs
4477    where  psp.spinal_point = p_point
4478    and    psp.spinal_point_id = sps.spinal_point_id
4479    and    sps.sequence = p_sequence
4480    and    sps.step_id =  pgs.ceiling_step_id
4481    and    pgs.grade_spine_id = sps.grade_spine_id
4482    and    sps.business_group_id = p_business_group_id
4483    and    p_effective_date between
4484           sps.effective_start_date and sps.effective_end_date;
4485    return(l_ovn);
4486 exception
4487 when others then
4488    hr_data_pump.fail('get_grade_step_ovn', sqlerrm, p_point,
4489                      p_sequence,p_effective_date, p_business_group_id);
4490    raise;
4491 end get_grade_step_ovn;
4492 /*---------------------------------------------------------------------------*/
4493 /*----------------------- other special get functions -----------------------*/
4494 /*---------------------------------------------------------------------------*/
4495 
4496 /* returns a language code */
4497 function get_correspondence_language
4498 (
4499    p_correspondence_language varchar2
4500 ) return varchar2 is
4501    l_code fnd_languages.language_code%type;
4502 begin
4503    select l.language_code
4504    into   l_code
4505    from   fnd_languages l
4506    where  l.nls_language = p_correspondence_language;
4507    return(l_code);
4508 exception
4509 -- If the nls_language could not be matched, assume that the user was
4510 -- entering the code directly.
4511 when no_data_found then
4512    return(p_correspondence_language);
4513 when others then
4514    hr_data_pump.fail('get_correspondence_language', sqlerrm,
4515                      p_correspondence_language);
4516    raise;
4517 end get_correspondence_language;
4518 
4519 /* get_country */
4520 function get_country( p_country in varchar2 ) return varchar2 is
4521    l_territory_code varchar2(2);
4522 begin
4523    select territory_code
4524    into   l_territory_code
4525    from   fnd_territories_vl
4526    where  territory_short_name = p_country;
4527    return(l_territory_code);
4528 exception
4529 -- If the short_name could not be matched, assume that the user was
4530 -- entering the code directly.
4531 when no_data_found then
4532    return(p_country);
4533 when others then
4534    hr_data_pump.fail('get_country', sqlerrm, p_country );
4535    raise;
4536 end get_country;
4537 
4538 /* get change reason lookup code, dependent on assignment */
4539 function get_change_reason
4540 (
4541    p_change_reason       in varchar2,
4542    p_assignment_user_key in varchar2,
4543    p_effective_date      in date,
4544    p_language_code       in varchar2
4545 ) return varchar2 is
4546    l_code varchar2(30);
4547 begin
4548    select flv.lookup_code
4549    into   l_code
4550    from   fnd_lookup_values            flv,
4551           per_assignments_f            asg,
4552           hr_pump_batch_line_user_keys key
4553    where  key.user_key_value = p_assignment_user_key
4554    and    asg.assignment_id  = key.unique_key_id
4555    and    p_effective_date between
4556           asg.effective_start_date and asg.effective_end_date
4557    and    flv.lookup_type    = decode(asg.assignment_type,
4558                                       'E', 'EMP_ASSIGN_REASON',
4559                                       'A', 'APL_ASSIGN_REASON')
4560    and    flv.meaning        = p_change_reason
4561    and    flv.language            = p_language_code
4562    and    flv.view_application_id = 3
4563    and    flv.security_group_id   =
4564           fnd_global.lookup_security_group
4565           (flv.lookup_type
4566           ,flv.view_application_id
4567           )
4568    and    p_effective_date between
4569           nvl(flv.start_date_active, START_OF_TIME) and
4570           nvl(flv.end_date_active, END_OF_TIME);
4571    return(l_code);
4572 exception
4573 -- Assume that the user entered the code directly when no data found.
4574 when no_data_found then
4575    return(p_change_reason);
4576 when others then
4577    hr_data_pump.fail('get_change_reason', sqlerrm, p_change_reason,
4578                      p_assignment_user_key, p_effective_date);
4579    raise;
4580 end get_change_reason;
4581 
4582 /* get_job_group_id - requires user key */
4583 function get_job_group_id
4584 (
4585    p_job_group_user_key in varchar2
4586 ) return number is
4587    l_job_group_id number;
4588 begin
4589    l_job_group_id := user_key_to_id( p_job_group_user_key );
4590    return(l_job_group_id);
4591 exception
4592 when others then
4593    hr_data_pump.fail('get_job_group_id', sqlerrm, p_job_group_user_key);
4594    raise;
4595 end get_job_group_id;
4596 
4597 /* get_benchmark_job_id - requires user key */
4598 function get_benchmark_job_id
4599 (
4600    p_benchmark_job_user_key in varchar2
4601 ) return number is
4602    l_benchmark_job_id number;
4603 begin
4604    l_benchmark_job_id := user_key_to_id( p_benchmark_job_user_key );
4605    return(l_benchmark_job_id);
4606 exception
4607 when others then
4608    hr_data_pump.fail('get_benchmark_job_id', sqlerrm, p_benchmark_job_user_key);
4609    raise;
4610 end get_benchmark_job_id;
4611 
4612 /* get_role_id - requires user key */
4613 function get_role_id
4614 (
4615    p_role_user_key in varchar2
4616 ) return number is
4617    l_role_id number;
4618 begin
4619    l_role_id := user_key_to_id( p_role_user_key );
4620    return(l_role_id);
4621 exception
4622 when others then
4623    hr_data_pump.fail('get_role_id', sqlerrm, p_role_user_key);
4624    raise;
4625 end get_role_id;
4626 
4627 /* get_loc_id - requires user key */
4628 function get_loc_id
4629 (
4630    p_location_user_key in varchar2
4631 ) return number is
4632    l_location_id number;
4633 begin
4634    l_location_id := user_key_to_id( p_location_user_key );
4635    return(l_location_id);
4636 exception
4637 when others then
4638    hr_data_pump.fail('get_loc_id', sqlerrm, p_location_user_key);
4639    raise;
4640 end get_loc_id;
4641 
4642 /* get_org_structure_id - requires user key */
4643 function get_org_structure_id
4644 (
4645    p_org_structure_user_key in varchar2
4646 ) return number is
4647    l_organization_structure_id number;
4648 begin
4649    l_organization_structure_id := user_key_to_id( p_org_structure_user_key );
4650    return(l_organization_structure_id);
4651 exception
4652 when others then
4653    hr_data_pump.fail('get_org_structure_id', sqlerrm, p_org_structure_user_key);
4654    raise;
4655 end get_org_structure_id;
4656 
4657 /* get_org_str_version_id - requires user key */
4658 function get_org_str_version_id
4659 (
4660    p_org_str_version_user_key in varchar2
4661 ) return number is
4662    l_org_structure_version_id number;
4663 begin
4664    l_org_structure_version_id := user_key_to_id( p_org_str_version_user_key );
4665    return(l_org_structure_version_id);
4666 exception
4667 when others then
4668    hr_data_pump.fail('get_org_str_version_id', sqlerrm, p_org_str_version_user_key);
4669    raise;
4670 end get_org_str_version_id;
4671 
4672 /* get_org_id - requires user key */
4673 function get_org_id
4674 (
4675    p_org_user_key in varchar2
4676 ) return number is
4677    l_org_id number;
4678 begin
4679    l_org_id := user_key_to_id( p_org_user_key );
4680    return(l_org_id);
4681 exception
4682 when others then
4683    hr_data_pump.fail('get_org_id', sqlerrm, p_org_user_key);
4684    raise;
4685 end get_org_id;
4686 
4687 /* get_grade_rule_id - requires user key */
4688 function get_grade_rule_id
4689 (
4690    p_grade_rule_user_key in varchar2
4691 ) return number is
4692    l_grade_rule_id number;
4693 begin
4694    l_grade_rule_id := user_key_to_id( p_grade_rule_user_key );
4695    return(l_grade_rule_id);
4696 exception
4697 when others then
4698    hr_data_pump.fail('get_grade_rule_id', sqlerrm, p_grade_rule_user_key);
4699    raise;
4700 end get_grade_rule_id;
4701 
4702 /* returns lookup_code */
4703 function gl
4704 (
4705    p_meaning_or_code in varchar2,
4706    p_lookup_type     in varchar2,
4707    p_effective_date  in date     default null,
4708    p_language_code   in varchar2 default null
4709 ) return varchar2 is
4710    l_code hr_lookups.lookup_code%type;
4711    l_effective_date date;
4712    l_language_code  varchar2(2000);
4713 begin
4714    --
4715    -- Is lookup checking disabled ?
4716    --
4717    if hr_data_pump.g_disable_lookup_checks then
4718      return p_meaning_or_code;
4719    end if;
4720    --
4721    -- Set language code (handling possible defaults).
4722    --
4723    if p_language_code = hr_api.g_varchar2 then
4724      --
4725      -- nvl() in the query will take care of defaulting.
4726      --
4727      l_language_code := null;
4728    else
4729      l_language_code := p_language_code;
4730    end if;
4731    --
4732    -- Set the effective date (handling possible defaults).
4733    --
4734    if p_effective_date is null or p_effective_date = hr_api.g_date then
4735      l_effective_date := hr_api.g_sys;
4736    else
4737      l_effective_date := p_effective_date;
4738    end if;
4739    if p_meaning_or_code is null or p_meaning_or_code = hr_api.g_varchar2
4740    then
4741      --
4742      -- Defaulted values will be returned unchanged.
4743      --
4744      l_code := p_meaning_or_code;
4745    else
4746      --
4747      -- Check against meaning using the new R11.5 lookup tables.
4748      --
4749      select flv.lookup_code
4750      into   l_code
4751      from   fnd_lookup_values flv
4752      where  flv.meaning       = p_meaning_or_code
4753      and    flv.lookup_type   = p_lookup_type
4754      and    flv.language      = nvl(l_language_code, userenv('LANG'))
4755      and    flv.view_application_id = 3
4756      and    flv.security_group_id   =
4757      fnd_global.lookup_security_group
4758      (flv.lookup_type
4759      ,flv.view_application_id
4760      )
4761      and    l_effective_date between
4762             nvl(flv.start_date_active, START_OF_TIME) and
4763             nvl(flv.end_date_active, END_OF_TIME);
4764    end if;
4765    --
4766    return(l_code);
4767 exception
4768   when no_data_found then
4769     --
4770     -- If the meaning could not be matched, assume that the user
4771     -- entered the code directly. This part of the code used to
4772     -- check against HR_LOOKUPS, but HR_LOOKUPS requires the
4773     -- legislation context to be set in HR_SESSION_DATA now.
4774     -- Such an additional check is unnecessary because the API
4775     -- should be able to pick up bad code values.
4776     --
4777     return(p_meaning_or_code);
4778   when others then
4779     hr_data_pump.fail
4780     ('get_lookup_code', sqlerrm, p_meaning_or_code,
4781     p_lookup_type, p_effective_date, p_language_code);
4782     raise;
4783 end gl;
4784 
4785 function get_lookup_code
4786 (
4787    p_meaning_or_code in varchar2,
4788    p_lookup_type     in varchar2,
4789    p_effective_date  in date     default null,
4790    p_language_code   in varchar2 default null
4791 ) return varchar2 is
4792 begin
4793   return gl( p_meaning_or_code, p_lookup_type, p_effective_date,
4794              p_language_code );
4795 end get_lookup_code;
4796 /* return people_group_id */
4797 function get_people_group_id
4798 (
4799    p_people_group_user_name in varchar2,
4800    p_effective_date    in date
4801 ) return number is
4802    l_people_group_id number;
4803 begin
4804    --
4805    select people_group_id
4806    into   l_people_group_id
4807    from   pay_people_groups
4808    where  GROUP_NAME = p_people_group_user_name
4809      and  p_effective_date
4810           between nvl(start_date_active,START_OF_TIME)
4811           and     nvl(end_date_active,END_OF_TIME);
4812    --
4813    return(l_people_group_id);
4814 exception
4815 when others then
4816    hr_data_pump.fail('get_people_group_id', sqlerrm,
4817                      p_people_group_user_name,
4818                      p_effective_date);
4819    raise;
4820 end get_people_group_id;
4821 
4822 /* return absence_attendance_type_id */
4823 function get_absence_attendance_type_id
4824 (
4825    p_aat_user_name     in varchar2,
4826    p_business_group_id in number,
4827    p_effective_date    in date
4828 ) return number is
4829    l_absence_attendance_type_id number;
4830 begin
4831    --
4832    select aat.absence_attendance_type_id
4833    into   l_absence_attendance_type_id
4834    from per_abs_attendance_types_vl aat
4835    where aat.name = p_aat_user_name
4836      and aat.business_group_id = p_business_group_id
4837      and p_effective_date between
4838          nvl(DATE_EFFECTIVE, START_OF_TIME) AND
4839          nvl(DATE_END, END_OF_TIME);
4840    --
4841    return(l_absence_attendance_type_id);
4842 exception
4843 when others then
4844    hr_data_pump.fail('get_absence_attendance_type_id', sqlerrm,
4845                      p_aat_user_name,
4846                      p_business_group_id,
4847                      p_effective_date);
4848    raise;
4849 end get_absence_attendance_type_id;
4850 /* return soft_coding_keyflex_id */
4851 function get_soft_coding_keyflex_id
4852 (
4853    p_con_seg_user_name     in varchar2,
4854    p_effective_date    in date
4855 ) return number is
4856    l_soft_coding_keyflex_id number;
4857 begin
4858    --
4859    select soft_coding_keyflex_id
4860    into   l_soft_coding_keyflex_id
4861    from hr_soft_coding_keyflex
4862    where concatenated_segments = p_con_seg_user_name
4863      and p_effective_date between
4864          nvl(START_DATE_ACTIVE, START_OF_TIME) AND
4865          nvl(END_DATE_ACTIVE, END_OF_TIME);
4866    --
4867    return(l_soft_coding_keyflex_id);
4868 exception
4869 when others then
4870    hr_data_pump.fail('get_soft_coding_keyflex_id', sqlerrm,
4871                      p_con_seg_user_name,
4872                      p_effective_date);
4873    raise;
4874 end get_soft_coding_keyflex_id;
4875 
4876 /* return pk_id */
4877 function get_pk_id
4878 (
4879    p_pk_name           in varchar2
4880 ) return number is
4881    l_pk_id number := null;
4882 begin
4883    --
4884    -- This column should not be populated by datapump.
4885    --
4886    return(l_pk_id);
4887 exception
4888 when others then
4889    hr_data_pump.fail('get_pk_id', sqlerrm,
4890                      p_pk_name
4891                      );
4892    raise;
4893 end get_pk_id;
4894 
4895 /* Bug 3275173 -- get object versionn number*/
4896 function get_fed_tax_rule_ovn
4897 (
4898   p_emp_fed_tax_rule_user_key in varchar2,
4899   p_effective_date            in date
4900 ) return number is
4901   l_ovn number;
4902 begin
4903   select object_version_number
4904     into l_ovn
4905     from pay_us_emp_fed_tax_rules_f puek,
4906          hr_pump_batch_line_user_keys uk
4907    where uk.user_key_value = p_emp_fed_tax_rule_user_key
4908      and p_effective_date between puek.effective_start_date and puek.effective_end_date
4909      and puek.emp_fed_tax_rule_id  = uk.unique_key_id;
4910    --
4911 
4912    return l_ovn;
4913 exception
4914 when others then
4915    hr_data_pump.fail('get_fed_tax_rule_ovn', sqlerrm,
4916                      p_emp_fed_tax_rule_user_key,
4917                      p_effective_date);
4918    raise;
4919 end get_fed_tax_rule_ovn;
4920 
4921 --
4922 -- Bug 3783381 -- get object versionn number for state, county and city
4923 --
4924 
4925 function get_state_tax_rule_ovn
4926 (
4927   p_emp_state_tax_rule_user_key in varchar2,
4928   p_effective_date            in date
4929 ) return number is
4930   l_ovn number;
4931 begin
4932   select object_version_number
4933     into l_ovn
4934     from pay_us_emp_state_tax_rules_f puek,
4935          hr_pump_batch_line_user_keys uk
4936    where uk.user_key_value = p_emp_state_tax_rule_user_key
4937      and p_effective_date between puek.effective_start_date and puek.effective_end_date
4938      and puek.emp_state_tax_rule_id  = uk.unique_key_id;
4939    --
4940 
4941    return l_ovn;
4942 exception
4943 when others then
4944    hr_data_pump.fail('get_state_tax_rule_ovn', sqlerrm,
4945                      p_emp_state_tax_rule_user_key,
4946                      p_effective_date);
4947    raise;
4948 end get_state_tax_rule_ovn;
4949 
4950 ---
4951 function get_county_tax_rule_ovn
4952 (
4953   p_emp_county_tax_rule_user_key in varchar2,
4954   p_effective_date            in date
4955 ) return number is
4956   l_ovn number;
4957 begin
4958   select object_version_number
4959     into l_ovn
4960     from pay_us_emp_county_tax_rules_f puek,
4961          hr_pump_batch_line_user_keys uk
4962    where uk.user_key_value = p_emp_county_tax_rule_user_key
4963      and p_effective_date between puek.effective_start_date and puek.effective_end_date
4964      and puek.emp_county_tax_rule_id  = uk.unique_key_id;
4965    --
4966 
4967    return l_ovn;
4968 exception
4969 when others then
4970    hr_data_pump.fail('get_county_tax_rule_ovn', sqlerrm,
4971                      p_emp_county_tax_rule_user_key,
4972                      p_effective_date);
4973    raise;
4974 end get_county_tax_rule_ovn;
4975 
4976 ---
4977 
4978 function get_city_tax_rule_ovn
4979 (
4980   p_emp_city_tax_rule_user_key in varchar2,
4981   p_effective_date            in date
4982 ) return number is
4983   l_ovn number;
4984 begin
4985   select object_version_number
4986     into l_ovn
4987     from pay_us_emp_city_tax_rules_f puek,
4988          hr_pump_batch_line_user_keys uk
4989    where uk.user_key_value = p_emp_city_tax_rule_user_key
4990      and p_effective_date between puek.effective_start_date and puek.effective_end_date
4991      and puek.emp_city_tax_rule_id  = uk.unique_key_id;
4992    --
4993 
4994    return l_ovn;
4995 exception
4996 when others then
4997    hr_data_pump.fail('get_city_tax_rule_ovn', sqlerrm,
4998                      p_emp_city_tax_rule_user_key,
4999                      p_effective_date);
5000    raise;
5001 end get_city_tax_rule_ovn;
5002 
5003 --
5004 --
5005 
5006 --
5007 -- -------------------------------------------------------------------------
5008 -- ------------< get_parent_comp_element_id >-------------------------
5009 -- -------------------------------------------------------------------------
5010 -- DESCRIPTION
5011 --   This function returns the
5012 --
5013 FUNCTION get_parent_comp_element_id
5014 RETURN BINARY_INTEGER
5015 IS
5016 BEGIN
5017   return (null);
5018 EXCEPTION
5019 WHEN OTHERS THEN
5020    hr_data_pump.fail('get_parent_comp_element_id'
5021 		    , sqlerrm
5022 		    );
5023    RAISE;
5024 END get_parent_comp_element_id;
5025 -- -------------------------------------------------------------------------
5026 -- --------------------< get_competence_id >--------------------------------
5027 -- -------------------------------------------------------------------------
5028 FUNCTION get_competence_id
5029   (p_data_pump_always_call IN varchar2
5030   ,p_competence_name    IN VARCHAR2
5031   ,p_business_group_id     IN NUMBER)
5032 RETURN BINARY_INTEGER
5033 IS
5034  l_competence_id  NUMBER DEFAULT null;
5035 BEGIN
5036 
5037    IF p_competence_name is NULL then
5038 
5039      return null;
5040 
5041    ELSIF p_competence_name  = hr_api_g_varchar2 then
5042 
5043      return hr_api_g_number;
5044 
5045    ELSE
5046 
5047      IF p_business_group_id is null THEN
5048 
5049        SELECT competence_id
5050        INTO   l_competence_id
5051        FROM   per_competences_vl
5052        WHERE  name = p_competence_name
5053        AND    business_group_id is null;
5054 
5055      ELSE
5056 
5057        SELECT competence_id
5058        INTO   l_competence_id
5059        FROM   per_competences_vl
5060        WHERE  name = p_competence_name
5061        AND    business_group_id = p_business_group_id;
5062 
5063      END IF;
5064 
5065    END IF;
5066 
5067    RETURN(l_competence_id);
5068 EXCEPTION
5069 WHEN OTHERS THEN
5070    hr_data_pump.fail('get_competence_id'
5071 		    , sqlerrm
5072 		    , p_competence_name
5073 		    , p_business_group_id);
5074    RAISE;
5075 END get_competence_id;
5076 -- -------------------------------------------------------------------------
5077 -- --------------------< get_cpn_ovn >---------------------------
5078 -- -------------------------------------------------------------------------
5079 -- DESCRIPTION
5080 --   This function returns the ovn of a competence
5081 --
5082 FUNCTION get_cpn_ovn
5083   (p_data_pump_always_call IN varchar2
5084   ,p_competence_name    IN VARCHAR2
5085   ,p_business_group_id     IN NUMBER)
5086 RETURN BINARY_INTEGER
5087 IS
5088  l_cpn_ovn  NUMBER DEFAULT null;
5089 BEGIN
5090 
5091    IF p_competence_name is NULL then
5092 
5093      return null;
5094 
5095    ELSIF p_competence_name  = hr_api_g_varchar2 then
5096 
5097      return hr_api_g_number;
5098 
5099    ELSE
5100 
5101      IF p_business_group_id is null THEN
5102 
5103        SELECT object_version_number
5104        INTO   l_cpn_ovn
5105        FROM   per_competences_vl
5106        WHERE  name = p_competence_name
5107        AND    business_group_id is null;
5108 
5109      ELSE
5110 
5111        SELECT object_version_number
5112        INTO   l_cpn_ovn
5113        FROM   per_competences_vl
5114        WHERE  name = p_competence_name
5115        AND    business_group_id = p_business_group_id;
5116 
5117      END IF;
5118 
5119    END IF;
5120 
5121    RETURN(l_cpn_ovn);
5122 EXCEPTION
5123 WHEN OTHERS THEN
5124    hr_data_pump.fail('get_cpn_ovn'
5125 		    , sqlerrm
5126 		    , p_competence_name
5127 		    , p_business_group_id);
5128    RAISE;
5129 END get_cpn_ovn;
5130 -- -------------------------------------------------------------------------
5131 -- -----------------< get_qualification_type_id >---------------------------
5132 -- -------------------------------------------------------------------------
5133 FUNCTION get_qualification_type_id
5134   (p_data_pump_always_call      IN varchar2
5135   ,p_qualification_type_name    IN VARCHAR2
5136   )
5137 RETURN BINARY_INTEGER
5138 IS
5139  l_qualification_type_id  NUMBER DEFAULT null;
5140 BEGIN
5141 
5142    IF p_qualification_type_name is NULL then
5143 
5144      return null;
5145 
5146    ELSIF p_qualification_type_name  = hr_api_g_varchar2 then
5147 
5148      return hr_api_g_number;
5149 
5150    ELSE
5151 
5152        SELECT qualification_type_id
5153        INTO   l_qualification_type_id
5154        FROM   per_qualification_types_vl
5155        WHERE  name = p_qualification_type_name;
5156 
5157    END IF;
5158 
5159    RETURN(l_qualification_type_id);
5160 EXCEPTION
5161 WHEN OTHERS THEN
5162    hr_data_pump.fail('get_qualification_type_id'
5163 		    , sqlerrm
5164 		    , p_qualification_type_name);
5165    RAISE;
5166 END get_qualification_type_id;
5167 --
5168 -- -------------------------------------------------------------------------
5169 -- ---------------------< get_outcome_id >--------------------------------
5170 -- -------------------------------------------------------------------------
5171 FUNCTION get_outcome_id
5172   (p_data_pump_always_call      IN varchar2
5173   ,p_outcome_name               IN VARCHAR2
5174   )
5175 RETURN BINARY_INTEGER
5176 IS
5177  l_outcome_id  NUMBER DEFAULT null;
5178 BEGIN
5179 
5180    IF p_outcome_name is NULL then
5181 
5182      return null;
5183 
5184    ELSIF p_outcome_name  = hr_api_g_varchar2 then
5185 
5186      return hr_api_g_number;
5187 
5188    ELSE
5189 
5190        SELECT outcome_id
5191        INTO   l_outcome_id
5192        FROM   per_competence_outcomes_vl
5193        WHERE  name = p_outcome_name;
5194 
5195    END IF;
5196 
5197    RETURN(l_outcome_id);
5198 EXCEPTION
5199 WHEN OTHERS THEN
5200    hr_data_pump.fail('get_outcome_id'
5201 		    , sqlerrm
5202 		    , p_outcome_name
5203                     );
5204    RAISE;
5205 END get_outcome_id;
5206 -- -------------------------------------------------------------------------
5207 -- --------------------< get_cpo_ovn >---------------------------
5208 -- -------------------------------------------------------------------------
5209 -- DESCRIPTION
5210 --   This function returns the ovn of a competence outcome
5211 --
5212 FUNCTION get_cpo_ovn
5213   (p_data_pump_always_call    IN varchar2
5214   ,p_outcome_name             IN VARCHAR2
5215   )
5216 RETURN BINARY_INTEGER
5217 IS
5218  l_cpo_ovn  NUMBER DEFAULT null;
5219 BEGIN
5220 
5221    IF p_outcome_name is NULL then
5222 
5223      return null;
5224 
5225    ELSIF p_outcome_name  = hr_api_g_varchar2 then
5226 
5227      return hr_api_g_number;
5228 
5229    ELSE
5230 
5231        SELECT object_version_number
5232        INTO   l_cpo_ovn
5233        FROM   per_competence_outcomes_vl
5234        WHERE  name = p_outcome_name;
5235 
5236    END IF;
5237 
5238    RETURN(l_cpo_ovn);
5239 EXCEPTION
5240 WHEN OTHERS THEN
5241    hr_data_pump.fail('get_cpo_ovn'
5242 		    , sqlerrm
5243 		    , p_outcome_name
5244                     );
5245    RAISE;
5246 END get_cpo_ovn;
5247 -- -------------------------------------------------------------------------
5248 -- --------------------< get_eqt_ovn >---------------------------
5249 -- -------------------------------------------------------------------------
5250 -- DESCRIPTION
5251 --   This function returns the ovn of a qualification type
5252 --
5253 FUNCTION get_eqt_ovn
5254   (p_data_pump_always_call    IN varchar2
5255   ,p_qualification_type_name  IN VARCHAR2
5256   )
5257 RETURN BINARY_INTEGER
5258 IS
5259  l_eqt_ovn  NUMBER DEFAULT null;
5260 BEGIN
5261 
5262    IF p_qualification_type_name is NULL then
5263 
5264      return null;
5265 
5266    ELSIF p_qualification_type_name  = hr_api_g_varchar2 then
5267 
5268      return hr_api_g_number;
5269 
5270    ELSE
5271 
5272        SELECT object_version_number
5273        INTO   l_eqt_ovn
5274        FROM   per_qualification_types_vl
5275        WHERE  name = p_qualification_type_name;
5276 
5277    END IF;
5278 
5279    RETURN(l_eqt_ovn);
5280 EXCEPTION
5281 WHEN OTHERS THEN
5282    hr_data_pump.fail('get_eqt_ovn'
5283 		    , sqlerrm
5284 		    , p_qualification_type_name
5285                     );
5286    RAISE;
5287 END get_eqt_ovn;
5288 -- -------------------------------------------------------------------------
5289 -- --------------------< get_ceo_ovn >---------------------------
5290 -- -------------------------------------------------------------------------
5291 -- DESCRIPTION
5292 --   This function returns the ovn of a comp element outcomes
5293 --
5294 FUNCTION get_ceo_ovn
5295   (p_data_pump_always_call    IN varchar2
5296   ,p_element_outcome_name     IN VARCHAR2
5297   )
5298 RETURN BINARY_INTEGER
5299 IS
5300  l_ceo_ovn  NUMBER DEFAULT null;
5301 BEGIN
5302 
5303    IF p_element_outcome_name is NULL then
5304 
5305      return null;
5306 
5307    ELSIF p_element_outcome_name  = hr_api_g_varchar2 then
5308 
5309      return hr_api_g_number;
5310 
5311    ELSE
5312 
5313        SELECT object_version_number
5314        INTO   l_ceo_ovn
5315        FROM   per_comp_element_outcomes_vl
5316        WHERE  name = p_element_outcome_name;
5317 
5318    END IF;
5319 
5320    RETURN(l_ceo_ovn);
5321 EXCEPTION
5322 WHEN OTHERS THEN
5323    hr_data_pump.fail('get_ceo_ovn'
5324 		    , sqlerrm
5325 		    , p_element_outcome_name
5326                     );
5327    RAISE;
5328 END get_ceo_ovn;
5329 -- -------------------------------------------------------------------------
5330 -- ------------------< get_competence_element_id >------------------------
5331 -- -------------------------------------------------------------------------
5332 -- DESCRIPTION
5333 --   This function returns the ovn of a comp element outcomes
5334 --
5335 FUNCTION get_competence_element_id
5336 (p_data_pump_always_call in varchar2
5337 ,p_competence_name       in varchar2
5338 ,p_person_user_key       in varchar2
5339 ,p_business_group_id     in number
5340 )
5341 return binary_integer
5342 IS
5343   l_competence_element_id number default null;
5344   l_person_id             number default null;
5345 BEGIN
5346 
5347     l_person_id := user_key_to_id(p_person_user_key);
5348 
5349     SELECT competence_element_id
5350     INTO   l_competence_element_id
5351     FROM  per_competence_elements CEL
5352          ,per_competences         CPN
5353     WHERE
5354           CEL.type = 'PERSONAL'
5355     and   CPN.name = p_competence_name
5356     and   CEL.competence_id = CPN.competence_id
5357     and   CEL.business_group_id = p_business_group_id
5358     and   CEL.person_id = l_person_id;
5359 
5360   RETURN(l_competence_element_id);
5361 EXCEPTION
5362 WHEN OTHERS THEN
5363    hr_data_pump.fail('get_competence_element_id'
5364 		    , sqlerrm
5365 		    , p_competence_name
5366                     , p_person_user_key
5367                     , p_business_group_id
5368                     );
5369    RAISE;
5370 END get_competence_element_id;
5371 --
5372 --
5373 FUNCTION get_cost_flex_stru_num
5374   (p_data_pump_always_call IN varchar2
5375   ,p_cost_flex_stru_code   IN VARCHAR2
5376   )
5377 RETURN BINARY_INTEGER is
5378   l_cost_code number;
5379 begin
5380 
5381    IF p_cost_flex_stru_code is NULL then
5382 
5383      return null;
5384 
5385    ELSIF p_cost_flex_stru_code  = hr_api_g_varchar2 then
5386 
5387      return hr_api_g_number;
5388 
5389    ELSE
5390 
5391       select id_flex_num into l_cost_code
5392       from fnd_id_flex_structures
5393       where id_flex_structure_code = p_cost_flex_stru_code
5394       and   id_flex_code ='COST';
5395    END IF;
5396 
5397    RETURN(l_cost_code);
5398 EXCEPTION
5399 WHEN OTHERS THEN
5400    hr_data_pump.fail('get_cost_flex_stru_num'
5401 		    , sqlerrm
5402  		    , p_cost_flex_stru_code
5403                     );
5404    RAISE;
5405 END get_cost_flex_stru_num;
5406 --
5407 FUNCTION get_grade_flex_stru_num
5408   (p_data_pump_always_call      IN varchar2
5409   ,p_grade_flex_stru_code  IN VARCHAR2
5410   )
5411 RETURN BINARY_INTEGER is
5412   l_grade_code number;
5413 begin
5414 
5415    IF p_grade_flex_stru_code is NULL then
5416 
5417      return null;
5418 
5419    ELSIF p_grade_flex_stru_code  = hr_api_g_varchar2 then
5420 
5421      return hr_api_g_number;
5422 
5423    ELSE
5424       select id_flex_num into l_grade_code
5425       from fnd_id_flex_structures
5426       where id_flex_structure_code = p_grade_flex_stru_code
5427       and   id_flex_code ='GRD';
5428 
5429    END IF;
5430 
5431    RETURN(l_grade_code);
5432 EXCEPTION
5433 WHEN OTHERS THEN
5434    hr_data_pump.fail('get_grade_flex_stru_num'
5435 		    , sqlerrm
5436  		    , p_grade_flex_stru_code
5437                     );
5438    RAISE;
5439 END get_grade_flex_stru_num;
5440 --
5441 FUNCTION get_job_flex_stru_num
5442   (p_data_pump_always_call      IN varchar2
5443   ,p_job_flex_stru_code  IN VARCHAR2
5444   )
5445 RETURN BINARY_INTEGER is
5446   l_job_code number;
5447 begin
5448 
5449    IF p_job_flex_stru_code is NULL then
5450 
5451      return null;
5452 
5453    ELSIF p_job_flex_stru_code = hr_api_g_varchar2 then
5454 
5455      return hr_api_g_number;
5456 
5457    ELSE
5458 
5459       select id_flex_num into l_job_code
5460       from fnd_id_flex_structures
5461       where id_flex_structure_code = p_job_flex_stru_code
5462       and   id_flex_code ='JOB';
5463    END IF;
5464 
5465    RETURN(l_job_code);
5466 EXCEPTION
5467 WHEN OTHERS THEN
5468    hr_data_pump.fail('get_job_flex_stru_num'
5469 		    , sqlerrm
5470  		    , p_job_flex_stru_code
5471                     );
5472    RAISE;
5473 END get_job_flex_stru_num;
5474 --
5475 FUNCTION get_position_flex_stru_num
5476   (p_data_pump_always_call      IN varchar2
5477   ,p_position_flex_stru_code  IN VARCHAR2
5478   )
5479 RETURN BINARY_INTEGER is
5480   l_position_code number;
5481 begin
5482 
5483    IF p_position_flex_stru_code is NULL then
5484 
5485      return null;
5486 
5487    ELSIF p_position_flex_stru_code = hr_api_g_varchar2 then
5488 
5489      return hr_api_g_number;
5490 
5491    ELSE
5492 
5493       select id_flex_num into l_position_code
5494       from fnd_id_flex_structures
5495       where id_flex_structure_code = p_position_flex_stru_code
5496       and   id_flex_code ='POS';
5497    END IF;
5498 
5499    RETURN(l_position_code);
5500 EXCEPTION
5501 WHEN OTHERS THEN
5502    hr_data_pump.fail('get_position_flex_stru_num'
5503 		    , sqlerrm
5504  		    , p_position_flex_stru_code
5505                     );
5506    RAISE;
5507 END get_position_flex_stru_num;
5508 --
5509 FUNCTION get_group_flex_stru_num
5510   (p_data_pump_always_call      IN varchar2
5511   ,p_group_flex_stru_code  IN VARCHAR2
5512   )
5513 RETURN BINARY_INTEGER is
5514   l_group_code number;
5515 begin
5516 
5517    IF p_group_flex_stru_code is NULL then
5518 
5519      return null;
5520 
5521    ELSIF p_group_flex_stru_code = hr_api_g_varchar2 then
5522 
5523      return hr_api_g_number;
5524 
5525    ELSE
5526 
5527       select id_flex_num into l_group_code
5528       from fnd_id_flex_structures
5529       where id_flex_structure_code = p_group_flex_stru_code
5530       and   id_flex_code ='GRP';
5531    END IF;
5532 
5533    RETURN(l_group_code);
5534 EXCEPTION
5535 WHEN OTHERS THEN
5536    hr_data_pump.fail('get_group_flex_stru_num'
5537 		    , sqlerrm
5538  		    , p_group_flex_stru_code
5539                     );
5540    RAISE;
5541 END get_group_flex_stru_num;
5542 --
5543 FUNCTION get_competence_flex_stru_num
5544   (p_data_pump_always_call      IN varchar2
5545   ,p_competence_flex_stru_code  IN VARCHAR2
5546   )
5547 RETURN BINARY_INTEGER is
5548   l_competence_code number;
5549 begin
5550 
5551    IF p_competence_flex_stru_code is NULL then
5552 
5553      return null;
5554 
5555    ELSIF p_competence_flex_stru_code = hr_api_g_varchar2 then
5556 
5557      return hr_api_g_number;
5558 
5559    ELSE
5560 
5561       select id_flex_num into l_competence_code
5562       from fnd_id_flex_structures
5563       where id_flex_structure_code = p_competence_flex_stru_code
5564       and   id_flex_code ='CMP';
5565    END IF;
5566 
5567    RETURN(l_competence_code);
5568 EXCEPTION
5569 WHEN OTHERS THEN
5570    hr_data_pump.fail('get_competence_flex_stru_num'
5574    RAISE;
5571 		    , sqlerrm
5572  		    , p_competence_flex_stru_code
5573                     );
5575 END get_competence_flex_stru_num;
5576 --
5577 --
5578 FUNCTION get_sec_group_id
5579   (p_data_pump_always_call      IN varchar2
5580   ,p_security_group_name  IN VARCHAR2
5581   )
5582 RETURN BINARY_INTEGER is
5583   l_get_sec_group_id number;
5584 begin
5585 
5586    IF p_security_group_name is NULL then
5587 
5588      return null;
5589 
5590    ELSIF p_security_group_name = hr_api_g_varchar2 then
5591 
5592      return hr_api_g_number;
5593 
5594    ELSE
5595 
5596       select security_group_id into l_get_sec_group_id
5597       from fnd_security_groups_tl
5598       where upper(security_group_name) = upper(p_security_group_name)
5599       and   language = userenv('LANG');
5600 
5601    END IF;
5602 
5603    RETURN(l_get_sec_group_id);
5604 EXCEPTION
5605 WHEN OTHERS THEN
5606    hr_data_pump.fail('get_sec_group_id'
5607 		    , sqlerrm
5608  		    , p_security_group_name
5609                     );
5610    RAISE;
5611 END get_sec_group_id;
5612 --
5613 FUNCTION get_security_profile_id
5614   (p_data_pump_always_call IN VARCHAR2
5615   ,p_security_profile_name IN VARCHAR2
5616   ,p_business_group_id     IN NUMBER
5617   )
5618 RETURN BINARY_INTEGER is
5619   l_sec_profile_id number;
5620 begin
5621 
5622    IF p_security_profile_name is NULL then
5623 
5624      return null;
5625 
5626    ELSIF p_security_profile_name = hr_api_g_varchar2 then
5627 
5628      return hr_api_g_number;
5629 
5630    ELSE
5631 
5632       select security_profile_id into l_sec_profile_id
5633       from per_security_profiles
5634       where upper(security_profile_name) = upper(p_security_profile_name)
5635       and   business_group_id            = p_business_group_id;
5636 
5637    END IF;
5638 
5639    RETURN(l_sec_profile_id);
5640 EXCEPTION
5641 WHEN OTHERS THEN
5642    hr_data_pump.fail('get_security_profile_id'
5643 		    , sqlerrm
5644  		    , p_security_profile_name
5645                     , p_business_group_id
5646                     );
5647    RAISE;
5648 END get_security_profile_id;
5649 --
5650 --
5651 FUNCTION get_parent_organization_id
5652   ( p_parent_organization_name in varchar2,
5653     p_business_group_id in number,
5654     p_effective_date    in date,
5655     p_language_code     in varchar2
5656   ) RETURN BINARY_INTEGER is
5657    l_organization_id number;
5658 BEGIN
5659    IF p_parent_organization_name is NULL then
5660 
5661      return null;
5662 
5663    ELSIF p_parent_organization_name = hr_api_g_varchar2 then
5664 
5665      return hr_api_g_number;
5666 
5667    ELSE
5668 
5669      select org.organization_id
5670      into   l_organization_id
5671      from   hr_all_organization_units org
5672      ,      hr_all_organization_units_tl orgtl
5673      where  orgtl.name = p_parent_organization_name
5674      and    orgtl.language = p_language_code
5675      and    org.organization_id = orgtl.organization_id
5676      and   (org.business_group_id = p_business_group_id
5677             or p_business_group_id is null);   --Bug 3823374
5678    END IF;
5679    return(l_organization_id);
5680 EXCEPTION
5681 WHEN OTHERS THEN
5682    hr_data_pump.fail('get_parent_organization_id', sqlerrm, p_parent_organization_name,
5683                      p_business_group_id, p_effective_date, p_language_code);
5684    raise;
5685 end get_parent_organization_id;
5686 --
5687 --
5688 FUNCTION get_child_organization_id
5689   (  p_child_organization_name in varchar2,
5690      p_business_group_id in number,
5691      p_effective_date    in date,
5692      p_language_code     in varchar2
5693   ) RETURN BINARY_INTEGER is
5694    l_organization_id number;
5695 BEGIN
5696    IF p_child_organization_name is NULL then
5697 
5698      return null;
5699 
5700    ELSIF p_child_organization_name = hr_api_g_varchar2 then
5701 
5702      return hr_api_g_number;
5703 
5704    ELSE
5705      select org.organization_id
5706      into   l_organization_id
5707      from   hr_all_organization_units org
5708      ,      hr_all_organization_units_tl orgtl
5709      where  orgtl.name = p_child_organization_name
5710      and    orgtl.language = p_language_code
5711      and    org.organization_id = orgtl.organization_id
5712      and   (org.business_group_id = p_business_group_id
5713             or p_business_group_id is null);    --Bug fix 3823374
5714    END IF;
5715    --
5716    return(l_organization_id);
5717 EXCEPTION
5718 WHEN OTHERS THEN
5719    hr_data_pump.fail('get_child_organization_id', sqlerrm, p_child_organization_name,
5720                      p_business_group_id, p_effective_date, p_language_code);
5721    raise;
5722 end get_child_organization_id;
5723 --
5724 --
5725 function get_person_extra_info_id
5726 (
5727    p_person_extra_info_user_key in varchar2
5728 ) return number is
5729    l_person_extra_info_id number;
5730 begin
5731    l_person_extra_info_id := user_key_to_id( p_person_extra_info_user_key );
5732    return(l_person_extra_info_id);
5733 exception
5734 when others then
5735    hr_data_pump.fail('get_person_extra_info_id', sqlerrm, p_person_extra_info_user_key);
5736    raise;
5737 end get_person_extra_info_id;
5738 --
5739 --
5740 function get_person_extra_info_ovn
5741 ( p_person_extra_info_user_key    in varchar2
5742 ) return number is
5743   l_ovn number;
5744 begin
5745    select pei.object_version_number
5746    into   l_ovn
5747    from   per_people_extra_info  pei,
5748           hr_pump_batch_line_user_keys key
5749    where  key.user_key_value       = p_person_extra_info_user_key
5750    and    pei.person_extra_info_id  = key.unique_key_id;
5751    return(l_ovn);
5752 exception
5753   when others then
5754     hr_data_pump.fail('get_person_extra_info_ovn', sqlerrm, p_person_extra_info_user_key);
5755     raise;
5756 end get_person_extra_info_ovn;
5757 
5758 --
5759 --
5760 /* GET_EMP_FED_TAX_INF_ID - requires user key */
5761 function GET_EMP_FED_TAX_INF_ID
5762 (
5763    P_EMP_FED_TAX_INF_USER_KEY in varchar2
5764 ) return number is
5765    l_emp_fed_tax_inf_id number;
5766 begin
5767    l_emp_fed_tax_inf_id := user_key_to_id( P_EMP_FED_TAX_INF_USER_KEY );
5768    return(l_emp_fed_tax_inf_id);
5769 exception
5770 when others then
5771    hr_data_pump.fail('GET_EMP_FED_TAX_INF_ID', sqlerrm, P_EMP_FED_TAX_INF_USER_KEY);
5772    raise;
5773 end GET_EMP_FED_TAX_INF_ID;
5774 
5775 
5776 --
5777 /* returns a Canada Employee federal tax Inf object version number */
5778 function GET_CA_EMP_FEDTAX_INF_OVN
5779 (
5780    P_EMP_FED_TAX_INF_USER_KEY in varchar2,
5781    p_effective_date  in date
5782 ) return number is
5783    l_ovn number;
5784 begin
5785    select rules.object_version_number
5786    into   l_ovn
5787    from   PAY_CA_EMP_FED_TAX_INFO_F   rules,
5788           hr_pump_batch_line_user_keys key
5789    where  key.user_key_value           = P_EMP_FED_TAX_INF_USER_KEY
5790    and    rules.EMP_FED_TAX_INF_ID    = key.unique_key_id
5791    and    p_effective_date between
5792           rules.effective_start_date and rules.effective_end_date;
5793    return(l_ovn);
5794 exception
5795 when others then
5796   hr_data_pump.fail('GET_CA_EMP_FEDTAX_INF_OVN', sqlerrm,
5797                     P_EMP_FED_TAX_INF_USER_KEY, p_effective_date);
5798   raise;
5799 end GET_CA_EMP_FEDTAX_INF_OVN;
5800 
5801 --
5802 --
5803 /* GET_EMP_PROVINCE_TAX_INF_ID - requires user key */
5804 function GET_EMP_PROVINCE_TAX_INF_ID
5805 (
5806    P_EMP_PROV_TAX_INF_USER_KEY in varchar2
5807 ) return number is
5808    l_emp_prov_tax_inf_id number;
5809 begin
5810    l_emp_prov_tax_inf_id := user_key_to_id( P_EMP_PROV_TAX_INF_USER_KEY );
5811    return(l_emp_prov_tax_inf_id);
5812 exception
5813 when others then
5814    hr_data_pump.fail('GET_EMP_PROVINCE_TAX_INF_ID', sqlerrm, P_EMP_PROV_TAX_INF_USER_KEY);
5815    raise;
5816 end GET_EMP_PROVINCE_TAX_INF_ID;
5817 
5818 
5819 --
5820 /* returns a Canada Employee federal tax Inf object version number */
5821 function GET_CA_EMP_PRVTAX_INF_OVN
5822 (
5823    P_EMP_PROV_TAX_INF_USER_KEY in varchar2,
5824    p_effective_date  in date
5825 ) return number is
5826    l_ovn number;
5827 begin
5828    select rules.object_version_number
5829    into   l_ovn
5830    from   PAY_CA_EMP_PROV_TAX_INFO_F   rules,
5831           hr_pump_batch_line_user_keys key
5832    where  key.user_key_value           = P_EMP_PROV_TAX_INF_USER_KEY
5833    and    rules.EMP_PROVINCE_TAX_INF_ID    = key.unique_key_id
5834    and    p_effective_date between
5835           rules.effective_start_date and rules.effective_end_date;
5836    return(l_ovn);
5837 exception
5838 when others then
5839   hr_data_pump.fail('GET_CA_EMP_PRVTAX_INF_OVN', sqlerrm,
5840                     P_EMP_PROV_TAX_INF_USER_KEY, p_effective_date);
5841   raise;
5842 end GET_CA_EMP_PRVTAX_INF_OVN;
5843 
5844 
5845 --
5846 /*
5847  *  Get ID initialisation section.
5848  */
5849 begin
5850    -- Initialise the debugging information structure.
5851    null;
5852 
5853 end hr_pump_get;