DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_PUMP_GET

Source


1 package body hr_pump_get as
2 /* $Header: hrdpget.pkb 120.2 2010/03/18 12:32:49 pvelvano ship $ */
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
1295      return null;
1296   end if;
1297   l_elig_per_id := user_key_to_id( p_elig_per_user_key );
1298   return(l_elig_per_id);
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 /* Bug 9480965: Added new function for the newly added paramter 'p_original_person_type_id'
2522 to the procedure 'BEN_ASSIGNMENT_API.CREATE_BEN_ASG' */
2523 /* return person_type_id */
2524 function get_original_person_type_id
2525 (
2526    p_user_person_type  in varchar2,
2527    p_business_group_id in number,
2528    p_language_code     in varchar2
2529 ) return number is
2530    l_person_type_id number;
2531 begin
2532    select typ.person_type_id
2533    into   l_person_type_id
2534    from   per_person_types_tl typtl,
2535     per_person_types typ
2536    where  typtl.user_person_type      = p_user_person_type
2537    and    typ.business_group_id + 0   = p_business_group_id
2538    and    typ.person_type_id = typtl.person_type_id
2539    and    typtl.LANGUAGE = p_language_code;
2540    return(l_person_type_id);
2541 exception
2542 when others then
2543    hr_data_pump.fail('get_original_person_type_id', sqlerrm, p_user_person_type,
2544                      p_business_group_id, p_language_code);
2545    raise;
2546 end get_original_person_type_id;
2547 
2548 /* returns a vendor_id */
2549 function get_vendor_id
2550 (
2551    p_vendor_name in varchar2
2552 ) return number is
2553    l_vendor_id number;
2554 begin
2555    select pov.vendor_id
2556    into   l_vendor_id
2557    from   po_vendors pov
2558    where  pov.vendor_name = p_vendor_name;
2559    return(l_vendor_id);
2560 exception
2561 when others then
2562    hr_data_pump.fail('get_vendor_id', sqlerrm, p_vendor_name);
2563    raise;
2564 end get_vendor_id;
2565 
2566 /* returns an assignment_status_type_id */
2567 function get_assignment_status_type_id
2568 (
2569    p_user_status       in varchar2,
2570    p_business_group_id in number,
2571    p_language_code     in varchar2
2572 ) return number is
2573    l_assignment_status_type_id number;
2574 begin
2575    -- Need to check for amended row in per_ass_status_type_amends first.
2576    begin
2577       select typ.assignment_status_type_id
2578       into l_assignment_status_type_id
2579       from   per_ass_status_type_amends_tl typtl,
2580              per_ass_status_type_amends typ
2581       where  typtl.user_status = p_user_status
2582       and    typ.business_group_id + 0 = p_business_group_id
2583       and    typ.ass_status_type_amend_id = typtl.ass_status_type_amend_id
2584       and    typtl.LANGUAGE = p_language_code;
2585       return(l_assignment_status_type_id);
2586    exception
2587       when no_data_found then
2588          null;
2589       when others then
2590          raise;
2591    end;
2592 
2593    -- Can look in per_assignment_status_types now.
2594    select typ.assignment_status_type_id
2595    into   l_assignment_status_type_id
2596    from   per_assignment_status_types_tl typtl,
2597           per_assignment_status_types typ
2598    where  typtl.user_status = p_user_status
2599    and    typ.assignment_status_type_id = typtl.assignment_status_type_id
2600    and    typtl.LANGUAGE = p_language_code
2601    and
2602    (
2603      (typ.business_group_id is null and typ.legislation_code is null)
2604      or
2605      (typ.business_group_id is not null
2606       and typ.business_group_id + 0 = p_business_group_id)
2607      or
2608      (typ.business_group_id is null
2609       and typ.legislation_code is not null
2610       and typ.legislation_code =
2611           (select legislation_code from per_business_groups
2612            where  business_group_id = p_business_group_id))
2613    );
2614    return(l_assignment_status_type_id);
2615 exception
2616 when others then
2617    hr_data_pump.fail('get_assignment_status_type_id', sqlerrm, p_user_status,
2618                      p_business_group_id, p_language_code);
2619    raise;
2620 end get_assignment_status_type_id;
2621 
2622 /* returns an organization_id */
2623 function get_organization_id
2624 (
2625    p_organization_name in varchar2,
2626    p_business_group_id in number,
2627    p_effective_date    in date
2628   ,p_language_code     in varchar2
2629 ) return number is
2630    l_organization_id number;
2631 begin
2632    select org.organization_id
2633    into   l_organization_id
2634    from   hr_all_organization_units org
2635    ,      hr_all_organization_units_tl orgtl
2636    where  orgtl.name = p_organization_name
2637    and    orgtl.language = p_language_code
2638    and    org.organization_id = orgtl.organization_id
2639    and    org.business_group_id + 0 = p_business_group_id;
2640    return(l_organization_id);
2641 exception
2642 when others then
2643    hr_data_pump.fail('get_organization_id', sqlerrm, p_organization_name,
2644                      p_business_group_id, p_effective_date, p_language_code);
2645    raise;
2646 end get_organization_id;
2647 
2648 /* returns a establishment_org_id */
2649 function get_establishment_org_id
2650 (
2651    p_establishment_org_name in varchar2,
2652    p_business_group_id        in number,
2653    p_effective_date           in date
2654 ,  p_language_code            in varchar2
2655 ) return number is
2656    l_establishment_org_id number;
2657 begin
2658    l_establishment_org_id :=
2659    get_organization_id( p_establishment_org_name, p_business_group_id,
2660                         p_effective_date, p_language_code );
2661    return(l_establishment_org_id);
2662 exception
2663 when others then
2664    hr_data_pump.fail('get_establishment_org_id', sqlerrm,
2665                      p_establishment_org_name, p_business_group_id,
2666                      p_effective_date, p_language_code);
2667    raise;
2668 end get_establishment_org_id;
2669 
2670 /* returns a source_organization_id */
2671 function get_source_organization_id
2672 (
2673    p_source_organization_name in varchar2,
2674    p_business_group_id        in number,
2675    p_effective_date           in date
2676 ,  p_language_code            in varchar2
2677 ) return number is
2678    l_source_organization_id number;
2679 begin
2680    l_source_organization_id :=
2681    get_organization_id( p_source_organization_name, p_business_group_id,
2682                         p_effective_date, p_language_code );
2683    return(l_source_organization_id);
2684 exception
2685 when others then
2686    hr_data_pump.fail('get_source_organization_id', sqlerrm,
2687                      p_source_organization_name, p_business_group_id,
2688                      p_effective_date, p_language_code);
2689    raise;
2690 end get_source_organization_id;
2691 
2692 /* returns a grade_id */
2693 function get_grade_id
2694 (
2695    p_grade_name        in varchar2,
2696    p_business_group_id in number,
2697    p_effective_date    in date
2698 ) return number is
2699    l_grade_id number;
2700 begin
2701    -- Note that the grade name can be null on the
2702    -- per_grades table, but I think grades are created
2703    -- with a name - otherwise identifying them would be
2704    -- rather difficult...
2705    select gra.grade_id
2706    into   l_grade_id
2707    from   per_grades_vl gra
2708    where  gra.name                  = p_grade_name
2709    and    gra.business_group_id + 0 = p_business_group_id;
2710    return(l_grade_id);
2711 exception
2712 when others then
2713    hr_data_pump.fail('get_grade_id', sqlerrm, p_grade_name, p_business_group_id,                      p_effective_date);
2714    raise;
2715 end get_grade_id;
2716 
2717 /* returns a grade_id */
2718 function get_entry_grade_id
2719 (
2720    p_entry_grade_name        in varchar2,
2721    p_business_group_id in number,
2722    p_effective_date    in date
2723 ) return number is
2724    l_entry_grade_id number;
2725 begin
2726    l_entry_grade_id :=
2727    get_grade_id
2728    (p_grade_name        => p_entry_grade_name
2729    ,p_business_group_id => p_business_group_id
2730    ,p_effective_date    => p_effective_date
2731    );
2732    return(l_entry_grade_id);
2733 exception
2734 when others then
2735   raise;
2736 end get_entry_grade_id;
2737 
2738 /* return availability_status_id */
2739 function get_availability_status_id
2740 (p_shared_type_name  in    varchar2
2741 ,p_system_type_cd    in    varchar2
2742 ,p_business_group_id in    number
2743 ,p_language_code     in    varchar2
2744 ) return number is
2745 cursor csr_lookup is
2746 select pst.shared_type_id
2747 from   per_shared_types pst
2748 ,      per_shared_types_tl psttl
2749 where  psttl.shared_type_name = p_shared_type_name
2750 and    psttl.language = p_language_code
2751 and    pst.shared_type_id = psttl.shared_type_id
2752 and    pst.lookup_type = 'POSITION_AVAILABILITY_STATUS'
2753 and    pst.system_type_cd = p_system_type_cd
2754 and    nvl(pst.business_group_id, p_business_group_id) = p_business_group_id;
2755 --
2756 v_shared_type_id    number(15) := null;
2757 begin
2758   if p_shared_type_name is not null then
2759     open csr_lookup;
2760     fetch csr_lookup into v_shared_type_id;
2761     close csr_lookup;
2762    end if;
2763    return v_shared_type_id;
2764 exception
2765   when others then
2766     hr_data_pump.fail('get_availability_status_id', sqlerrm,
2767                      p_shared_type_name, p_system_type_cd,
2768                      p_business_group_id, p_language_code);
2769     raise;
2770 end get_availability_status_id;
2771 
2772 /* returns a position_id */
2773 function get_position_id
2774 (
2775    p_position_name     in varchar2,
2776    p_business_group_id in number,
2777    p_effective_date    in date
2778 ) return number is
2779    l_position_id number;
2780 begin
2781    select pos.position_id
2782    into   l_position_id
2783    from   hr_all_positions_f pos
2784    where  pos.name                  = p_position_name
2785    and    pos.business_group_id + 0 = p_business_group_id
2786    and    p_effective_date between
2787           pos.effective_start_date and pos.effective_end_date;
2788    return(l_position_id);
2789 exception
2790 when others then
2791    hr_data_pump.fail('get_position_id', sqlerrm, p_position_name,
2792                      p_business_group_id, p_effective_date);
2793    raise;
2794 end get_position_id;
2795 
2796 /* returns a successor_position_id */
2797 function get_successor_position_id
2798 (
2799    p_successor_position_name in varchar2,
2800    p_business_group_id       in number,
2801    p_effective_date          in date
2802 ) return number is
2803    l_pos_id number;
2804 begin
2805    -- Just call the get_position_id function.
2806    l_pos_id := get_position_id(p_successor_position_name,
2807                                p_business_group_id,
2808                                p_effective_date);
2809    return(l_pos_id);
2810 exception
2811 when others then
2812    hr_data_pump.fail('get_successor_position_id', sqlerrm,
2813                      p_successor_position_name, p_business_group_id,
2814                      p_effective_date);
2815    raise;
2816 end get_successor_position_id;
2817 
2818 /* returns a relief_position_id */
2819 function get_relief_position_id
2820 (
2821    p_relief_position_name in varchar2,
2822    p_business_group_id    in number,
2823    p_effective_date       in date
2824 ) return number is
2825    l_pos_id number;
2826 begin
2827    -- Just call the get_position_id function.
2828    l_pos_id := get_position_id(p_relief_position_name,
2829                                p_business_group_id,
2830                                p_effective_date);
2831    return(l_pos_id);
2832 exception
2833 when others then
2834    hr_data_pump.fail('get_relief_position_id', sqlerrm,
2835                      p_relief_position_name, p_business_group_id,
2836                      p_effective_date);
2837    raise;
2838 end get_relief_position_id;
2839 
2840 /* returns a prior_position_id */
2841 function get_prior_position_id
2842 (
2843    p_prior_position_name in varchar2,
2844    p_business_group_id       in number,
2845    p_effective_date          in date
2846 ) return number is
2847    l_pos_id number;
2848 begin
2849    -- Just call the get_position_id function.
2850    l_pos_id := get_position_id(p_prior_position_name,
2851                                p_business_group_id,
2852                                p_effective_date);
2853    return(l_pos_id);
2854 exception
2855 when others then
2856    hr_data_pump.fail('get_prior_position_id', sqlerrm,
2857                      p_prior_position_name, p_business_group_id,
2858                      p_effective_date);
2859    raise;
2860 end get_prior_position_id;
2861 
2862 /* returns a supervisor_position_id */
2863 function get_supervisor_position_id
2864 (
2865    p_supervisor_position_name in varchar2,
2866    p_business_group_id       in number,
2867    p_effective_date          in date
2868 ) return number is
2869    l_pos_id number;
2870 begin
2871    -- Just call the get_position_id function.
2872    l_pos_id := get_position_id(p_supervisor_position_name,
2873                                p_business_group_id,
2874                                p_effective_date);
2875    return(l_pos_id);
2876 exception
2877 when others then
2878    hr_data_pump.fail('get_supervisor_position_id', sqlerrm,
2879                      p_supervisor_position_name, p_business_group_id,
2880                      p_effective_date);
2881    raise;
2882 end get_supervisor_position_id;
2883 
2884 /* returns a job_id */
2885 function get_job_id
2886 (
2887    p_job_name          in varchar2,
2888    p_effective_date    in date,
2889    p_business_group_id in number
2890 ) return number is
2891    l_job_id number;
2892 begin
2893    select job.job_id
2894    into   l_job_id
2895    from   per_jobs_vl job
2896    where  job.name                  = p_job_name
2897    and    job.business_group_id + 0 = p_business_group_id;
2898    return(l_job_id);
2899 exception
2900 when others then
2901    hr_data_pump.fail('get_job_id', sqlerrm,
2902                      p_job_name, p_effective_date, p_business_group_id);
2903    raise;
2904 end get_job_id;
2905 
2906 /* returns a payroll_id */
2907 function get_payroll_id
2908 (
2909    p_payroll_name      in varchar2,
2910    p_business_group_id in number,
2911    p_effective_date    in date
2912 ) return number is
2913    l_payroll_id number;
2914 begin
2915    select pay.payroll_id
2916    into   l_payroll_id
2917    from   pay_payrolls_f pay
2918    where  pay.payroll_name          = p_payroll_name
2919    and    pay.business_group_id + 0 = p_business_group_id
2920    and    p_effective_date between
2921           pay.effective_start_date and pay.effective_end_date;
2922    return(l_payroll_id);
2923 exception
2924 when others then
2925    hr_data_pump.fail('get_payroll_id', sqlerrm, p_payroll_name,
2926                      p_business_group_id, p_effective_date);
2927    raise;
2928 end get_payroll_id;
2929 
2930 /* returns a pay_freq_payroll_id */
2931 function get_pay_freq_payroll_id
2932 (
2933    p_pay_freq_payroll_name in varchar2,
2934    p_business_group_id in number,
2935    p_effective_date    in date
2936 ) return number is
2937 begin
2938    return
2939    get_payroll_id
2940    (p_payroll_name      => p_pay_freq_payroll_name
2941    ,p_business_group_id => p_business_group_id
2942    ,p_effective_date    => p_effective_date
2943    );
2944 exception
2945 when others then
2946    raise;
2947 end get_pay_freq_payroll_id;
2948 
2949 /* Returns a location_id for the update_location APIs. */
2950 function get_location_id_update
2951 (
2952    p_existing_location_code in varchar2,
2953    p_business_group_id in number,
2954    p_language_code     in varchar2
2955 ) return number is
2956 l_location_id number;
2957 begin
2958    l_location_id :=
2959    get_location_id(p_existing_location_code, p_business_group_id,
2960                    p_language_code);
2961    return(l_location_id);
2962 exception
2963 when others then
2964    hr_data_pump.fail('get_location_id_update', sqlerrm,
2965                      p_existing_location_code,
2966                      p_business_group_id, p_language_code);
2967    raise;
2968 end get_location_id_update;
2969 
2970 /* returns a location_id */
2971 function get_location_id
2972 (
2973    p_location_code     in varchar2,
2974    p_business_group_id in number,
2975    p_language_code     in varchar2
2976 ) return number is
2977    l_location_id number;
2978 begin
2979    select loc.location_id
2980    into   l_location_id
2981    from   hr_locations_all loc,
2982           hr_locations_all_tl lot
2983    where  lot.location_code = p_location_code
2984    and    lot.language      = p_language_code
2985    and    lot.location_id   = loc.location_id
2986    and    (loc.business_group_id is null or
2987            loc.business_group_id + 0 = p_business_group_id);
2988    return(l_location_id);
2989 exception
2990 when others then
2991    hr_data_pump.fail('get_location_id', sqlerrm, p_location_code,
2992                      p_business_group_id, p_language_code);
2993    raise;
2994 end get_location_id;
2995 
2996 /* returns receiver id */
2997 function get_designated_receiver_id
2998  (
2999   p_designated_receiver_name Varchar2,
3000   p_business_group_id Number,
3001   p_effective_date   Date
3002  ) return number Is
3003    l_designated_receiver_id Number;
3004 begin
3005   Select person_id
3006     Into l_designated_receiver_id
3007     From per_all_people_f
3008    Where employee_number Is Not Null
3009      and business_group_id = p_business_group_id
3010      and p_effective_date between effective_start_date and effective_end_date
3011      and full_name = p_designated_receiver_name;
3012   return l_designated_receiver_id;
3013 Exception
3014 When Others Then
3015    hr_data_pump.fail('get_designated_receiver_id',sqlerrm,p_designated_receiver_name,
3016                      p_business_group_id);
3017    raise;
3018 end get_designated_receiver_id;
3019 
3020 function get_ship_to_location_id
3021 (
3022    p_ship_to_location_code     in varchar2,
3023    p_business_group_id in number,
3024    p_language_code     in varchar2
3025 ) return number is
3026    l_location_id number;
3027 begin
3028    select loc.location_id
3029    into   l_location_id
3030    from   hr_locations_all loc,
3031           hr_locations_all_tl lot
3032    where  lot.location_code = p_ship_to_location_code
3033    and    lot.language      = p_language_code
3034    and    lot.location_id   = loc.location_id
3035    and    (loc.business_group_id is null or
3036            loc.business_group_id + 0 = p_business_group_id);
3037    return(l_location_id);
3038 exception
3039 when others then
3040    hr_data_pump.fail('get_ship_to_location_id', sqlerrm, p_ship_to_location_code,
3041                      p_business_group_id, p_language_code);
3042    raise;
3043 end get_ship_to_location_id;
3044 
3045 /* returns a pay_basis_id */
3046 function get_pay_basis_id
3047 (
3048    p_pay_basis_name    in varchar2,
3049    p_business_group_id in number
3050 ) return number is
3051    l_pay_basis_id number;
3052 begin
3053    select ppb.pay_basis_id
3054    into   l_pay_basis_id
3055    from   per_pay_bases ppb
3056    where  ppb.name                  = p_pay_basis_name
3057    and    ppb.business_group_id + 0 = p_business_group_id;
3058    return(l_pay_basis_id);
3059 exception
3060 when others then
3061    hr_data_pump.fail('get_pay_basis_id', sqlerrm, p_pay_basis_name,
3062                      p_business_group_id);
3063    raise;
3064 end get_pay_basis_id;
3065 
3066 /* returns a recruitment_activity_id */
3067 function get_recruitment_activity_id
3068 (
3069    p_recruitment_activity_name in varchar2,
3070    p_business_group_id         in number,
3071    p_effective_date            in date
3072 ) return number is
3073    l_raid number;
3074 begin
3075    select pra.recruitment_activity_id
3076    into   l_raid
3077    from   per_recruitment_activities pra
3078    where  pra.name                  = p_recruitment_activity_name
3079    and    pra.business_group_id + 0 = p_business_group_id
3080    and    p_effective_date between
3081           pra.date_start and nvl(pra.date_end, END_OF_TIME);
3082    return(l_raid);
3083 exception
3084 when others then
3085    hr_data_pump.fail('get_recruitment_activity_id', sqlerrm,
3086                      p_recruitment_activity_name, p_business_group_id,
3087                      p_effective_date);
3088    raise;
3089 end get_recruitment_activity_id;
3090 
3091 /* returns a vacancy_id */
3092 function get_vacancy_id
3093 (
3094    p_vacancy_user_key in varchar2
3095 ) return number is
3096    l_vacancy_id number;
3097 begin
3098    l_vacancy_id := user_key_to_id( p_vacancy_user_key );
3099    return(l_vacancy_id);
3100 exception
3101 when others then
3102    hr_data_pump.fail('get_vacancy_id', sqlerrm, p_vacancy_user_key );
3103    raise;
3104 end get_vacancy_id;
3105 
3106 /* returns an org_payment_method_id */
3107 function get_org_payment_method_id
3108 (
3109    p_org_payment_method_user_key in varchar2
3110 ) return number is
3111    l_opmid number;
3112 begin
3113    l_opmid := user_key_to_id( p_org_payment_method_user_key );
3114    return(l_opmid);
3115 exception
3116 when others then
3117    hr_data_pump.fail('get_org_payment_method_id', sqlerrm,
3118                      p_org_payment_method_user_key );
3119    raise;
3120 end get_org_payment_method_id;
3121 
3122 /* returns a payee organization_id */
3123 function get_payee_org_id
3124 (
3125    p_payee_organization_name in varchar2,
3126    p_business_group_id       in number,
3127    p_effective_date          in date
3128 ,  p_language_code           in varchar2
3129 ) return number is
3130    l_organization_id number;
3131 begin
3132    l_organization_id :=
3133    get_organization_id( p_payee_organization_name, p_business_group_id,
3134                         p_effective_date, p_language_code );
3135    return(l_organization_id);
3136 exception
3137 when others then
3138    hr_data_pump.fail('get_payee_org_id', sqlerrm, p_payee_organization_name,
3139                      p_business_group_id, p_effective_date, p_language_code);
3140    raise;
3141 end get_payee_org_id;
3142 
3143 /* return payee person_id - requires user key */
3144 function get_payee_person_id
3145 (
3146    p_payee_person_user_key in varchar2
3147 ) return number is
3148    l_person_id number;
3149 begin
3150    l_person_id := get_person_id( p_payee_person_user_key );
3151    return(l_person_id);
3152 exception
3153 when others then
3154    hr_data_pump.fail('get_payee_person_id', sqlerrm, p_payee_person_user_key);
3155    raise;
3156 end get_payee_person_id;
3157 
3158 /* return payee_id for an organization or person payee. */
3159 function get_payee_id
3160 (
3161    p_data_pump_always_call in varchar2,
3162    p_payee_type            in varchar2,
3163    p_business_group_id     in number,
3164    p_payee_org             in varchar2 default null,
3165    p_payee_person_user_key in varchar2 default null,
3166    p_effective_date        in date
3167 ,  p_language_code         in varchar2
3168 ) return number is
3169    l_payee_id number;
3170 begin
3171    --
3172    -- Check for a payee person.
3173    --
3174    if p_payee_type = 'P' and p_payee_person_user_key is not null then
3175       l_payee_id := get_payee_person_id( p_payee_person_user_key );
3176       return(l_payee_id);
3177    --
3178    -- Check for a payee organization.
3179    --
3180    elsif p_payee_type = 'O' and p_payee_org is not null then
3181       l_payee_id :=
3182       get_payee_org_id( p_payee_org, p_business_group_id, p_effective_date,
3183                         p_language_code );
3184       return(l_payee_id);
3185    --
3186    -- Everything is NULL so return NULL.
3187    --
3188    elsif p_payee_type is null and p_payee_person_user_key is null and
3189          p_payee_org is null then
3190       return null;
3191    --
3192    -- Everything is HR_API-defaulted, so return HR_API default value.
3193    -- User Keys are set to NULL, if defaulted, on UPDATE.
3194    --
3195    elsif p_payee_type = HR_API_G_VARCHAR2 and
3196          (p_payee_person_user_key is null or p_payee_person_user_key =
3197          HR_API_G_VARCHAR2) and p_payee_org = HR_API_G_VARCHAR2 then
3198       return HR_API_G_NUMBER;
3199    --
3200    -- User has supplied an erroneous combination of arguments.
3201    --
3202    else
3203       raise value_error;
3204    end if;
3205 exception
3206 when others then
3207    hr_data_pump.fail('get_payee_id', sqlerrm, p_payee_type, p_payee_org,
3208                      p_payee_person_user_key, p_effective_date, p_language_code);
3209    raise;
3210 end get_payee_id;
3211 
3212 /* returns a personal_payment_method_id */
3213 function get_personal_payment_method_id
3214 (
3215    p_personal_pay_method_user_key in varchar2
3216 ) return number is
3217    l_ppmid number;
3218 begin
3219    l_ppmid := user_key_to_id( p_personal_pay_method_user_key );
3220    return(l_ppmid);
3221 exception
3222 when others then
3223    hr_data_pump.fail('get_personal_payment_method_id', sqlerrm,
3224                      p_personal_pay_method_user_key);
3225    raise;
3226 end get_personal_payment_method_id;
3227 
3228 /* returns a set_of_books_id */
3229 function get_set_of_books_id
3230 (
3231    p_set_of_books_name varchar2
3232 ) return number is
3233    l_id number;
3234 begin
3235    select sob.set_of_books_id
3236    into   l_id
3237    from   gl_sets_of_books sob
3238    where  sob.name = p_set_of_books_name;
3239    return(l_id);
3240 exception
3241 when others then
3242    hr_data_pump.fail('get_set_of_books_id', sqlerrm, p_set_of_books_name);
3243    raise;
3244 end get_set_of_books_id;
3245 
3246 /* returns a tax_unit_id */
3247 function get_tax_unit_id
3248 (
3249    p_tax_unit_name in varchar2,
3250    p_effective_date in date
3251 ) return varchar2 is
3252    l_tax_unit_id number;
3253 begin
3254    select tax.tax_unit_id
3255    into   l_tax_unit_id
3256    from   hr_tax_units_v tax
3257    where  tax.name = p_tax_unit_name;
3258    return(l_tax_unit_id);
3259 exception
3260 when others then
3261    hr_data_pump.fail('get_tax_unit_id', sqlerrm, p_tax_unit_name,
3262                      p_effective_date);
3263    raise;
3264 end get_tax_unit_id;
3265 
3266 /* returns a user_column_id for tax schedule */
3267 function get_work_schedule
3268 (
3269    p_work_schedule     in varchar2,
3270    p_organization_name in varchar2,
3271    p_business_group_id in number,
3272    p_effective_date    in date
3273   ,p_language_code     in varchar2
3274 ) return number is
3275    l_id number;
3276 begin
3277    select puc.user_column_id
3278    into   l_id
3279    from   pay_user_columns            puc,
3280           hr_organization_information hoi,
3281           hr_all_organization_units    org
3282    ,      hr_all_organization_units_tl orgtl
3283    where  orgtl.name                  = p_organization_name
3284    and    orgtl.language              = p_language_code
3285    and    org.organization_id         = orgtl.organization_id
3286    and    org.business_group_id + 0   = p_business_group_id
3287    and    puc.user_column_name        = p_work_schedule
3288    and    hoi.org_information_context = 'Work Schedule'
3289    and    hoi.organization_id         = org.organization_id
3290    and    (puc.user_table_id = hoi.org_information1 or
3291            hoi.org_information1 is null);
3292    return(l_id);
3293 exception
3294 when others then
3295    hr_data_pump.fail('get_work_schedule', sqlerrm, p_work_schedule,
3296                      p_organization_name, p_business_group_id,
3297                      p_effective_date, p_language_code);
3298    raise;
3299 end get_work_schedule;
3300 
3301 /* returns an establishment_id */
3302 function get_eeo_1_establishment_id
3303 (
3304    p_eeo_1_establishment in varchar2,
3305    p_business_group_id   in number,
3306    p_effective_date      in date
3307 ) return number is
3308    l_id number;
3309 begin
3310    select est.establishment_id
3311    into   l_id
3312    from   HR_ESTABLISHMENTS_V est
3313    where  est.name                  = p_eeo_1_establishment
3314    and    est.business_group_id + 0 = p_business_group_id;
3315    return(l_id);
3316 exception
3317 when others then
3318    hr_data_pump.fail('get_eeo_1_establishment_id', sqlerrm,
3319                      p_eeo_1_establishment, p_business_group_id,
3320                      p_effective_date);
3321    raise;
3322 end get_eeo_1_establishment_id;
3323 
3324 /* get_program_application_id - standard who column */
3325 function get_program_application_id return number is
3326 begin
3327    return(null);
3328 end get_program_application_id;
3329 
3330 /* get_program_id - standard who column */
3331 function get_program_id return number is
3332 begin
3333    return(null);
3334 end get_program_id;
3335 
3336 /* get_request_id - standard who column */
3337 function get_request_id return number is
3338 begin
3339    return(null);
3340 end get_request_id;
3341 
3342 /* get_creator_id - standard who column */
3343 function get_creator_id return number is
3344 begin
3345    return(null);
3346 end get_creator_id;
3347 
3348 /* get_id_flex_num - requires user key */
3349 function get_id_flex_num( p_id_flex_num_user_key in varchar2 )
3350 return number is
3351    l_id_flex_num number;
3352 begin
3353    l_id_flex_num := user_key_to_id( p_id_flex_num_user_key );
3354    return(l_id_flex_num);
3355 exception
3356 when others then
3357    hr_data_pump.fail('get_id_flex_num', sqlerrm, p_id_flex_num_user_key);
3358    raise;
3359 end get_id_flex_num;
3360 
3361 /* get_gr_grade_rule_id */
3362 function get_gr_grade_rule_id
3363 (
3364    p_grade_name        in varchar2,
3365    p_rate_name         in varchar2,
3366    p_business_group_id in number,
3367    p_effective_date    in date
3368 )
3369 return number is
3370    l_grade_rule_id number;
3371 begin
3372    select pgr.grade_rule_id
3373    into   l_grade_rule_id
3374    from   pay_grade_rules_f pgr,
3375           per_grades_vl pg,
3376           pay_rates  pr
3377    where  pg.name = p_grade_name
3378    and    pg.business_group_id + 0 = p_business_group_id
3379    and    pr.name = p_rate_name
3380    and    pr.business_group_id + 0 = p_business_group_id
3381    and    pgr.rate_id = pr.rate_id
3382    and    pgr.grade_or_spinal_point_id = pg.grade_id
3383    and    pgr.rate_type = 'G'
3384    and    pgr.business_group_id + 0 = p_business_group_id
3385    and    p_effective_date between pgr.effective_start_date and
3386           pgr.effective_end_date;
3387    return(l_grade_rule_id);
3388 exception
3389 when others then
3390    hr_data_pump.fail('get_gr_grade_rule_id', sqlerrm, p_grade_name,
3391                       p_rate_name, p_business_group_id, p_effective_date);
3392    raise;
3393 end get_gr_grade_rule_id;
3394 
3395 /* get_pp_grade_rule_id */
3396 function get_pp_grade_rule_id
3397 (
3398    p_progression_point in varchar2,
3399    p_pay_scale         in varchar2,
3400    p_rate_name         in varchar2,
3401    p_business_group_id in number,
3402    p_effective_date    in date
3403 )
3404 return number is
3405    l_grade_rule_id number;
3406 begin
3407    select pgr.grade_rule_id
3408    into   l_grade_rule_id
3409    from   per_parent_spines pps,
3410           per_spinal_points psp,
3411           pay_grade_rules_f pgr,
3412           pay_rates  pr
3413    where  pps.name = p_pay_scale
3414    and    pps.business_group_id + 0 = p_business_group_id
3415    and    psp.spinal_point = p_progression_point
3416    and    psp.business_group_id + 0 = p_business_group_id
3417    and    psp.parent_spine_id = pps.parent_spine_id
3418    and    pr.name = p_rate_name
3419    and    pr.business_group_id + 0 = p_business_group_id
3420    and    pgr.rate_id = pr.rate_id
3421    and    pgr.grade_or_spinal_point_id = psp.spinal_point_id
3422    and    pgr.rate_type = 'SP'
3423    and    pgr.business_group_id + 0 = p_business_group_id
3424    and    p_effective_date between pgr.effective_start_date and
3425           pgr.effective_end_date;
3426    return( l_grade_rule_id );
3427 exception
3428 when others then
3429    hr_data_pump.fail('get_pp_grade_rule_id', sqlerrm, p_progression_point,
3430                       p_pay_scale, p_rate_name, p_business_group_id,
3431                       p_effective_date);
3432    raise;
3433 end get_pp_grade_rule_id;
3434 
3435 /* get_ar_grade_rule_id */
3436 function get_ar_grade_rule_id
3437 (
3438    p_rate_name         in varchar2,
3439    p_business_group_id in number,
3440    p_effective_date    in date
3441 )
3442 return number is
3443    l_grade_rule_id number;
3444 begin
3445    select pgr.grade_rule_id
3446    into   l_grade_rule_id
3447    from   pay_grade_rules_f pgr,
3448           pay_rates  pr
3449    where  pr.name = p_rate_name
3450    and    pr.business_group_id + 0 = p_business_group_id
3451    and    pgr.rate_id = pr.rate_id
3452    and    pgr.rate_type = 'A'
3453    and    pgr.business_group_id + 0 = p_business_group_id
3454    and    p_effective_date between pgr.effective_start_date and
3455           pgr.effective_end_date;
3456    return(l_grade_rule_id);
3457 exception
3458 when others then
3459    hr_data_pump.fail('get_ar_grade_rule_id', sqlerrm,
3460                       p_rate_name, p_business_group_id, p_effective_date);
3461    raise;
3462 end get_ar_grade_rule_id;
3463 
3464 function get_organization_structure_id
3465 (
3466    p_name in varchar2,
3467    p_business_group_id in number
3468 )
3469 return number is
3470    l_organization_structure_id number;
3471 begin
3472     select pos.organization_structure_id
3473     into l_organization_structure_id
3474     from per_organization_structures pos
3475     where pos.name = p_name
3476     and pos.business_group_id + 0 = p_business_group_id;
3477    return (l_organization_structure_id);
3478 exception
3479 when others then
3480    hr_data_pump.fail('get_organization_structure_id', sqlerrm, p_name, p_business_group_id);
3481    raise;
3482 end get_organization_structure_id;
3483 
3484 function get_org_str_ver_id
3485 (
3486 p_business_group_id in number,
3487 p_organization_structure_id in number,
3488 p_date_from in date,
3489 p_version_number in number
3490 )
3491 return number is
3492    l_org_str_ver_id number;
3493 begin
3494    select osv.org_structure_version_id
3495    into l_org_str_ver_id
3496    from per_org_structure_versions osv
3497    where osv.organization_structure_id = p_organization_structure_id
3498    and osv.date_from = p_date_from
3499    and osv.version_number = p_version_number
3500    and osv.business_group_id + 0 = p_business_group_id;
3501    return (l_org_str_ver_id);
3502 exception
3503 when others then
3504    hr_data_pump.fail('get_org_str_ver_id', sqlerrm, p_business_group_id, p_organization_structure_id, p_date_from, p_version_number);
3505    raise;
3506 end get_org_str_ver_id;
3507 
3508 /* get_spinal_point_id */
3509 function get_spinal_point_id
3510 (
3511    p_progression_point in varchar2,
3512    p_pay_scale         in varchar2,
3513    p_business_group_id in number,
3514    p_effective_date    in date
3515 )
3516 return number is
3517    l_spinal_point_id number;
3518 begin
3519    select psp.spinal_point_id
3520    into   l_spinal_point_id
3521    from   per_parent_spines pps,
3522           per_spinal_points psp
3523    where  pps.name = p_pay_scale
3524    and    pps.business_group_id + 0 = p_business_group_id
3525    and    psp.spinal_point = p_progression_point
3526    and    psp.business_group_id + 0 = p_business_group_id
3527    and    psp.parent_spine_id = pps.parent_spine_id;
3528    return( l_spinal_point_id );
3529 exception
3530 when others then
3531    hr_data_pump.fail('get_spinal_point_id', sqlerrm, p_progression_point,
3532                       p_pay_scale, p_business_group_id, p_effective_date);
3533    raise;
3534 end get_spinal_point_id;
3535 
3536 /* get_at_period_of_service_id */
3537 function get_at_period_of_service_id
3538 (
3539    p_person_user_key   in varchar2,
3540    p_business_group_id in number
3541 )
3542 return number is
3543    l_period_of_service_id number;
3544 begin
3545    select pps.period_of_service_id
3546    into   l_period_of_service_id
3547    from   per_periods_of_service pps,
3548           hr_pump_batch_line_user_keys key
3549    where  key.user_key_value = p_person_user_key
3550    and    pps.person_id = key.unique_key_id
3551    and    pps.business_group_id = p_business_group_id
3552    and    pps.actual_termination_date is null;
3553    return(l_period_of_service_id);
3554 exception
3555 when others then
3556    hr_data_pump.fail('get_at_period_of_service_id', sqlerrm,
3557                       p_person_user_key, p_business_group_id);
3558    raise;
3559 end get_at_period_of_service_id;
3560 
3561 /* get_fp_period_of_service_id */
3562 function get_fp_period_of_service_id
3563 (
3564    p_person_user_key   in varchar2,
3565    p_business_group_id in number
3566 )
3567 return number is
3568    l_period_of_service_id number;
3569 begin
3570    select pps.period_of_service_id
3571    into   l_period_of_service_id
3572    from   per_periods_of_service pps,
3573           hr_pump_batch_line_user_keys key
3574    where  key.user_key_value = p_person_user_key
3575    and    pps.person_id = key.unique_key_id
3576    and    pps.business_group_id = p_business_group_id
3577    and    pps.actual_termination_date is not null
3578    and    pps.final_process_date is null;
3579    return(l_period_of_service_id);
3580 exception
3581 when others then
3582    hr_data_pump.fail('get_fp_period_of_service_id', sqlerrm, p_person_user_key,
3583                       p_business_group_id);
3584    raise;
3585 end get_fp_period_of_service_id;
3586 
3587 /* Added for 11i,Rvydyana,02-DEC-1999 */
3588 /* get_ut_period_of_service_id */
3589 function get_ut_period_of_service_id
3590 (
3591    p_person_user_key   in varchar2,
3592    p_effective_date    in date,
3593    p_business_group_id in number
3594 )
3595 return number is
3596    l_eot constant date := to_date('4712/12/31', 'YYYY/MM/DD');
3597    l_period_of_service_id number;
3598 begin
3599 
3600    select pps.period_of_service_id
3601    into   l_period_of_service_id
3602    from   per_periods_of_service pps,
3603           hr_pump_batch_line_user_keys key
3604    where  key.user_key_value = p_person_user_key
3605    and    pps.person_id = key.unique_key_id
3606    and    pps.business_group_id = p_business_group_id
3607    and    p_effective_date between pps.date_start and NVL(pps.actual_termination_date,l_eot);
3608    return(l_period_of_service_id);
3609 exception
3610 when others then
3611    hr_data_pump.fail('get_ut_period_of_service_id', sqlerrm, p_person_user_key,
3612                       p_effective_date,p_business_group_id);
3613    raise;
3614 end get_ut_period_of_service_id;
3615 
3616 /* get_special_ceiling_step_id */
3617 function get_special_ceiling_step_id
3618 (
3619    p_special_ceilin_step_user_key varchar2
3620 )
3621 return number is
3622    l_special_ceiling_step_id number;
3623 begin
3624    l_special_ceiling_step_id :=
3625    user_key_to_id( p_special_ceilin_step_user_key );
3626    return(l_special_ceiling_step_id);
3627 exception
3628 when others then
3629    hr_data_pump.fail('get_special_ceiling_step_id', sqlerrm,
3630                      p_special_ceilin_step_user_key );
3631    raise;
3632 end get_special_ceiling_step_id;
3633 
3634 /* get_default_code_comb_id */
3635 function get_default_code_comb_id
3636 (
3637    p_default_code_comb_user_key varchar2
3638 )
3639 return number is
3640    l_default_code_comb_id number;
3641 begin
3642    l_default_code_comb_id := user_key_to_id( p_default_code_comb_user_key );
3643    return(l_default_code_comb_id);
3644 exception
3645 when others then
3646    hr_data_pump.fail('get_default_code_comb_id', sqlerrm,
3647                      p_default_code_comb_user_key );
3648    raise;
3649 end get_default_code_comb_id;
3650 
3651 /* Added for 11i - Rvydyana - 06-DEC-1999 */
3652 /* get_phone_id - requires user key */
3653 function get_phone_id
3654 (
3655    p_phone_user_key in varchar2
3656 ) return number is
3657    l_phone_id number;
3658 begin
3659    l_phone_id := user_key_to_id( p_phone_user_key );
3660    return(l_phone_id);
3661 exception
3662 when others then
3663    hr_data_pump.fail('get_phone_id', sqlerrm, p_phone_user_key);
3664    raise;
3665 end get_phone_id;
3666 
3667 /*-------------------------- get_grade_ladder_pgm_id -----------------------*/
3668 function get_grade_ladder_pgm_id
3669 ( p_grade_ladder_name  in varchar2
3670  ,p_business_group_id  in number
3671  ,p_effective_date     in date
3672 ) return number is
3673   l_grade_ladder_pgm_id number;
3674 begin
3675   select pgm.pgm_id
3676   into   l_grade_ladder_pgm_id
3677   from   ben_pgm_f pgm
3678   where  pgm.name = p_grade_ladder_name
3679   and    pgm.pgm_typ_cd = 'GSP'
3680   and    pgm.business_group_id + 0 = p_business_group_id
3681   and    p_effective_date
3682          between pgm.effective_start_date and pgm.effective_end_date;
3683   return(l_grade_ladder_pgm_id);
3684 exception
3685   when others then
3686     hr_data_pump.fail('get_grade_ladder_pgm_id', sqlerrm,
3687                        p_grade_ladder_name);
3688     raise;
3689 end get_grade_ladder_pgm_id;
3690 /*---------------------- get_supervisor_assignment_id -----------------------*/
3691 function get_supervisor_assignment_id
3692 /* return supervisor assignment_id - requires user key */
3693 (
3694    p_svr_assignment_user_key in varchar2
3695 ) return number is
3696    l_supervisor_assignment_id number;
3697 begin
3698    l_supervisor_assignment_id := get_assignment_id(p_svr_assignment_user_key );
3699    return(l_supervisor_assignment_id);
3700 exception
3701 when others then
3702    hr_data_pump.fail('get_supervisor_assignment_id', sqlerrm,
3703                       p_svr_assignment_user_key);
3704    raise;
3705 end get_supervisor_assignment_id;
3706 
3707 /*--------------------- get_parent_spine_id ----------------------------------*/
3708 function get_parent_spine_id
3709 (
3710    p_parent_spine      in varchar2
3711   ,p_business_group_id in number
3712 )
3713 return number is
3714    l_parent_spine_id number;
3715 begin
3716    select parent_spine_id
3717    into   l_parent_spine_id
3718    from   per_parent_spines
3719    where  name = p_parent_spine
3720    and    business_group_id = p_business_group_id;
3721    return(l_parent_spine_id);
3722 exception
3723 when others then
3724    hr_data_pump.fail('get_parent_spine_id', sqlerrm, p_parent_spine,
3725                       p_business_group_id);
3726    raise;
3727 end get_parent_spine_id;
3728 /*--------------------- get_ceiling_step_id ----------------------------------*/
3729 function get_ceiling_step_id
3730 (
3731    p_ceiling_point     in varchar2,
3732    p_business_group_id in number,
3733    p_effective_date    in date
3734 )
3735 return number is
3736    l_ceiling_step_id number;
3737 begin
3738    select sps.step_id
3739    into   l_ceiling_step_id
3740    from   per_spinal_points psp
3741          ,per_spinal_point_steps_f sps
3742    where  psp.spinal_point = p_ceiling_point
3743    and    psp.spinal_point_id = sps.spinal_point_id
3744    and    sps.business_group_id = p_business_group_id
3745    and    p_effective_date between
3746           sps.effective_start_date and sps.effective_end_date;
3747    return(l_ceiling_step_id);
3748 exception
3749 when others then
3750    hr_data_pump.fail('get_ceiling_step_id', sqlerrm, p_ceiling_point,
3751                       p_business_group_id, p_effective_date);
3752    raise;
3753 end get_ceiling_step_id;
3754 
3755 /*---------------------------------------------------------------------------*/
3756 /*------------------- get object version number functions -------------------*/
3757 /*---------------------------------------------------------------------------*/
3758 
3759 /*-------------------- get_collective_agreement_ovn ------------------------*/
3760 function get_collective_agreement_ovn
3761 (p_business_group_id in number
3762 ,p_cagr_name         in varchar2
3763 ,p_effective_date    in date
3764 ) return number is
3765   l_object_version_number number;
3766 begin
3767   select pc.object_version_number
3768   into   l_object_version_number
3769   from   per_collective_agreements pc
3770   where  pc.business_group_id = p_business_group_id
3771   and    pc.name = p_cagr_name
3772   and    p_effective_date between
3773          nvl(start_date,START_OF_TIME) and nvl(end_date,END_OF_TIME);
3774   return l_object_version_number;
3775 exception
3776   when others then
3777     hr_data_pump.fail('get_collective_agreement_ovn', sqlerrm,
3778                       p_business_group_id, p_cagr_name, p_effective_date);
3779     raise;
3780 end get_collective_agreement_ovn;
3781 
3782 /*----------------------------- get_contract_ovn ---------------------------*/
3783 function get_contract_ovn
3784 (p_contract_user_key in varchar2
3785 ,p_effective_date    in date
3786 ) return number is
3787   l_object_version_number number;
3788 begin
3789    select pc.object_version_number
3790    into   l_object_version_number
3791    from   per_contracts_f              pc,
3792           hr_pump_batch_line_user_keys key
3793    where  key.user_key_value = p_contract_user_key
3794    and    pc.contract_id      = key.unique_key_id
3795    and    p_effective_date between
3796           pc.effective_start_date and pc.effective_end_date;
3797    return(l_object_version_number);
3798 exception
3799   when others then
3800     hr_data_pump.fail('get_contract_ovn', sqlerrm, p_contract_user_key);
3801     raise;
3802 end get_contract_ovn;
3803 
3804 /*--------------------------- get_establishment_ovn ---------------------------*/
3805 function get_establishment_ovn
3806 (p_establishment_name in varchar2
3807 ,p_location           in varchar2
3808 ) return number is
3809   l_object_version_number number;
3810 begin
3811   select pe.object_version_number
3812   into   l_object_version_number
3813   from   per_establishments pe
3814   where  pe.location = p_location
3815   and    pe.name = p_establishment_name;
3816   return l_object_version_number;
3817 exception
3818   when others then
3819     hr_data_pump.fail('get_establishment_ovn', sqlerrm,
3820                        p_establishment_name, p_location);
3821     raise;
3822 end get_establishment_ovn;
3823 
3824 /* returns a federal tax rule object version number */
3825 function get_us_emp_fed_tax_rule_ovn
3826 (
3827    p_emp_fed_tax_rule_user_key in varchar2,
3828    p_effective_date  in date
3829 ) return number is
3830    l_ovn number;
3831 begin
3832    select rules.object_version_number
3833    into   l_ovn
3834    from   pay_us_emp_fed_tax_rules_f   rules,
3835           hr_pump_batch_line_user_keys key
3836    where  key.user_key_value           = p_emp_fed_tax_rule_user_key
3837    and    rules.emp_fed_tax_rule_id    = key.unique_key_id
3838    and    p_effective_date between
3839           rules.effective_start_date and rules.effective_end_date;
3840    return(l_ovn);
3841 exception
3842 when others then
3843   hr_data_pump.fail('get_us_emp_fed_tax_rule_ovn', sqlerrm,
3844                     p_emp_fed_tax_rule_user_key, p_effective_date);
3845   raise;
3846 end get_us_emp_fed_tax_rule_ovn;
3847 
3848 /* returns a state tax rule object version number */
3849 function get_us_emp_state_tax_rule_ovn
3850 (
3851    p_emp_state_tax_rule_user_key in varchar2,
3852    p_effective_date  in date
3853 ) return number is
3854    l_ovn number;
3855 begin
3856    select rules.object_version_number
3857    into   l_ovn
3858    from   pay_us_emp_state_tax_rules_f   rules,
3859           hr_pump_batch_line_user_keys key
3860    where  key.user_key_value           = p_emp_state_tax_rule_user_key
3861    and    rules.emp_state_tax_rule_id    = key.unique_key_id
3862    and    p_effective_date between
3863           rules.effective_start_date and rules.effective_end_date;
3864    return(l_ovn);
3865 exception
3866 when others then
3867   hr_data_pump.fail('get_us_emp_state_tax_rule_ovn', sqlerrm,
3868                     p_emp_state_tax_rule_user_key, p_effective_date);
3869   raise;
3870 end get_us_emp_state_tax_rule_ovn;
3871 
3872 /* returns a county tax rule object version number */
3873 function get_us_emp_county_tax_rule_ovn
3874 (
3875    p_emp_county_tax_rule_user_key in varchar2,
3876    p_effective_date  in date
3877 ) return number is
3878    l_ovn number;
3879 begin
3880    select rules.object_version_number
3881    into   l_ovn
3882    from   pay_us_emp_county_tax_rules_f   rules,
3883           hr_pump_batch_line_user_keys key
3884    where  key.user_key_value           = p_emp_county_tax_rule_user_key
3885    and    rules.emp_county_tax_rule_id    = key.unique_key_id
3886    and    p_effective_date between
3887           rules.effective_start_date and rules.effective_end_date;
3888    return(l_ovn);
3889 exception
3890 when others then
3891   hr_data_pump.fail('get_us_emp_county_tax_rule_ovn', sqlerrm,
3892                     p_emp_county_tax_rule_user_key, p_effective_date);
3893   raise;
3894 end get_us_emp_county_tax_rule_ovn;
3895 
3896 /* returns a city tax rule object version number */
3897 function get_us_emp_city_tax_rule_ovn
3898 (
3899    p_emp_city_tax_rule_user_key in varchar2,
3900    p_effective_date  in date
3901 ) return number is
3902    l_ovn number;
3903 begin
3904    select rules.object_version_number
3905    into   l_ovn
3906    from   pay_us_emp_city_tax_rules_f   rules,
3907           hr_pump_batch_line_user_keys key
3908    where  key.user_key_value           = p_emp_city_tax_rule_user_key
3909    and    rules.emp_city_tax_rule_id    = key.unique_key_id
3910    and    p_effective_date between
3911           rules.effective_start_date and rules.effective_end_date;
3912    return(l_ovn);
3913 exception
3914 when others then
3915   hr_data_pump.fail('get_us_emp_city_tax_rule_ovn', sqlerrm,
3916                     p_emp_city_tax_rule_user_key, p_effective_date);
3917   raise;
3918 end get_us_emp_city_tax_rule_ovn;
3919 
3920 /* returns a person object version number */
3921 function get_per_ovn
3922 (
3923    p_person_user_key in varchar2,
3924    p_effective_date  in date
3925 ) return number is
3926    l_ovn number;
3927 begin
3928    select per.object_version_number
3929    into   l_ovn
3930    from   per_people_f                 per,
3931           hr_pump_batch_line_user_keys key
3932    where  key.user_key_value = p_person_user_key
3933    and    per.person_id      = key.unique_key_id
3934    and    p_effective_date between
3935           per.effective_start_date and per.effective_end_date;
3936    return(l_ovn);
3937 exception
3938 when others then
3939    hr_data_pump.fail('get_per_ovn', sqlerrm, p_person_user_key,
3940                      p_effective_date);
3941    raise;
3942 end get_per_ovn;
3943 
3944 /* returns an assignment object version number */
3945 function get_asg_ovn
3946 (
3947    p_assignment_user_key in varchar2,
3948    p_effective_date      in date
3949 ) return number is
3950    l_ovn number;
3951 begin
3952    select asg.object_version_number
3953    into   l_ovn
3954    from   per_assignments_f            asg,
3955           hr_pump_batch_line_user_keys key
3956    where  key.user_key_value = p_assignment_user_key
3957    and    asg.assignment_id  = key.unique_key_id
3958    and    p_effective_date between
3959           asg.effective_start_date and asg.effective_end_date;
3960    return(l_ovn);
3961 exception
3962 when others then
3963    hr_data_pump.fail('get_asg_ovn', sqlerrm, p_assignment_user_key,
3964                      p_effective_date);
3965    raise;
3966 end get_asg_ovn;
3967 
3968 /* returns an address object version number */
3969 function get_adr_ovn
3970 (
3971    p_address_user_key in varchar2,
3972    p_effective_date   in date
3973 ) return number is
3974    l_ovn number;
3975 begin
3976    select adr.object_version_number
3977    into   l_ovn
3978    from   per_addresses                adr,
3979           hr_pump_batch_line_user_keys key
3980    where  key.user_key_value = p_address_user_key
3981    and    adr.address_id     = key.unique_key_id;
3982    return(l_ovn);
3983 exception
3984 when others then
3985    hr_data_pump.fail('get_adr_ovn', sqlerrm, p_address_user_key,
3986                      p_effective_date);
3987    raise;
3988 end get_adr_ovn;
3989 
3990 /* returns a location object version number */
3991 function get_loc_ovn
3992 (
3993    p_location_code in varchar2
3994 ) return number is
3995    l_ovn number;
3996 begin
3997   --
3998   -- Changed to use hr_locations_all for WWBUG 1833930.
3999   --
4000    select loc.object_version_number
4001    into   l_ovn
4002    from   hr_locations_all loc
4003    where  loc.location_code = p_location_code;
4004    return(l_ovn);
4005 exception
4006 when others then
4007    hr_data_pump.fail('get_loc_ovn', sqlerrm, p_location_code);
4008    raise;
4009 end get_loc_ovn;
4010 
4011 /* returns a job object version number */
4012 function get_org_str_ovn
4013 (
4014    p_name          in varchar2,
4015    p_business_group_id in number
4016 ) return number is
4017    l_ovn number;
4018 begin
4019    select ors.object_version_number
4020    into   l_ovn
4021    from   per_organization_structures ors
4022    where  ors.name                  = p_name
4023    and    ors.business_group_id + 0 = p_business_group_id;
4024    return(l_ovn);
4025 exception
4026 when others then
4027    hr_data_pump.fail('get_org_str_ovn', sqlerrm, p_name, p_business_group_id);
4028    raise;
4029 end get_org_str_ovn;
4030 
4031 /* returns a organization structure version object version number */
4032 function get_org_str_ver_ovn
4033 (
4034    p_business_group_id in number,
4035    p_organization_structure_id in number,
4036    p_date_from in date,
4037    p_version_number in number
4038 ) return number is
4039    l_ovn number;
4040 begin
4041    select osv.object_version_number
4042    into l_ovn
4043    from per_org_structure_versions osv
4044    where osv.organization_structure_id = p_organization_structure_id
4045    and osv.date_from = p_date_from
4046    and osv.version_number = p_version_number
4047    and osv.business_group_id + 0 = p_business_group_id;
4048    return(l_ovn);
4049 exception
4050 when others then
4051    hr_data_pump.fail('get_org_str_ver_ovn', sqlerrm, p_business_group_id, p_organization_structure_id, p_date_from, p_version_number);
4052    raise;
4053  end get_org_str_ver_ovn;
4054 
4055 /* returns an organization object version number */
4056 function get_org_ovn
4057 (
4058    p_business_group_id in number,
4059    p_organization_name in varchar2,
4060    p_language_code in varchar2
4061 ) return number is
4062    l_ovn number;
4063 begin
4064    select org.object_version_number
4065    into   l_ovn
4066    from   hr_all_organization_units org
4067    ,      hr_all_organization_units_tl orgtl
4068    where  orgtl.name = p_organization_name
4069    and    orgtl.language = p_language_code
4070    and    org.organization_id = orgtl.organization_id
4071    and    org.business_group_id + 0 = p_business_group_id;
4072    return(l_ovn);
4073 exception
4074 when others then
4075    hr_data_pump.fail('get_org_ovn', sqlerrm, p_business_group_id, p_organization_name, p_language_code);
4076    raise;
4077 end get_org_ovn;
4078 
4079 /* returns a job object version number */
4080 function get_job_ovn
4081 (
4082    p_job_name          in varchar2,
4083    p_effective_date    in date,
4084    p_business_group_id in number
4085 ) return number is
4086    l_ovn number;
4087 begin
4088    select job.object_version_number
4089    into   l_ovn
4090    from   per_jobs_vl job
4091    where  job.name                  = p_job_name
4092    and    job.business_group_id + 0 = p_business_group_id;
4093    return(l_ovn);
4094 exception
4095 when others then
4096    hr_data_pump.fail('get_job_ovn', sqlerrm, p_job_name, p_effective_date,
4097                      p_business_group_id);
4098    raise;
4099 end get_job_ovn;
4100 
4101 /* returns a position object version number */
4102 function get_pos_ovn
4103 (
4104    p_position_name     in varchar2,
4105    p_business_group_id in number,
4106    p_effective_date    in date
4107 ) return number is
4108    l_ovn number;
4109 begin
4110    select pos.object_version_number
4111    into   l_ovn
4112    from   hr_all_positions_f pos
4113    where  pos.name                  = p_position_name
4114    and    pos.business_group_id + 0 = p_business_group_id
4115    and    p_effective_date between
4116           pos.effective_start_date and pos.effective_end_date;
4117    return(l_ovn);
4118 exception
4119 when others then
4120    hr_data_pump.fail('get_pos_ovn', sqlerrm, p_position_name,
4121                      p_business_group_id, p_effective_date);
4122    raise;
4123 end get_pos_ovn;
4124 
4125 /* returns a personal_payment_method object version number */
4126 function get_ppm_ovn
4127 (
4128    p_personal_pay_method_user_key in varchar2,
4129    p_effective_date               in date
4130 ) return number is
4131    l_ovn number;
4132 begin
4133    select ppm.object_version_number
4134    into   l_ovn
4135    from   pay_personal_payment_methods_f ppm
4136    ,      hr_pump_batch_line_user_keys key
4137    where  key.user_key_value = p_personal_pay_method_user_key
4138    and    ppm.personal_payment_method_id = key.unique_key_id
4139    and    p_effective_date between
4140           ppm.effective_start_date and ppm.effective_end_date;
4141    return(l_ovn);
4142 exception
4143 when others then
4144    hr_data_pump.fail('get_ppm_ovn', sqlerrm,
4145                      p_personal_pay_method_user_key, p_effective_date);
4146    raise;
4147 end get_ppm_ovn;
4148 
4149 /* get_element_entry_ovn - requires user key */
4150 function get_element_entry_ovn
4151 (
4152    p_element_entry_user_key in varchar2,
4153    p_effective_date         in date
4154 ) return number is
4155    l_element_entry_ovn number;
4156 begin
4157    select pee.object_version_number
4158    into   l_element_entry_ovn
4159    from   pay_element_entries_f pee,
4160           hr_pump_batch_line_user_keys key
4161    where  key.user_key_value   = p_element_entry_user_key
4162    and    pee.element_entry_id = key.unique_key_id
4163    and    p_effective_date between
4164           pee.effective_start_date and pee.effective_end_date;
4165    return(l_element_entry_ovn);
4166 exception
4167 when others then
4168    hr_data_pump.fail('get_element_entry_ovn', sqlerrm, p_element_entry_user_key,                     p_effective_date);
4169    raise;
4170 end get_element_entry_ovn;
4171 
4172 /* get_gr_grade_rule_ovn */
4173 function get_gr_grade_rule_ovn
4174 (
4175    p_grade_name        in varchar2,
4176    p_rate_name         in varchar2,
4177    p_business_group_id in number,
4178    p_effective_date    in date
4179 )
4180 return number is
4181    l_object_version_number number;
4182 begin
4183    select pgr.object_version_number
4184    into   l_object_version_number
4185    from   pay_grade_rules_f pgr,
4186           per_grades_vl pg,
4187           pay_rates  pr
4188    where  pg.name = p_grade_name
4189    and    pg.business_group_id + 0 = p_business_group_id
4190    and    pr.name = p_rate_name
4191    and    pr.business_group_id + 0 = p_business_group_id
4192    and    pgr.rate_id = pr.rate_id
4193    and    pgr.grade_or_spinal_point_id = pg.grade_id
4194    and    pgr.rate_type = 'G'
4195    and    pgr.business_group_id + 0 = p_business_group_id
4196    and    p_effective_date between pgr.effective_start_date and
4197           pgr.effective_end_date;
4198    return(l_object_version_number);
4199 exception
4200 when others then
4201    hr_data_pump.fail('get_gr_grade_rule_ovn', sqlerrm, p_grade_name,
4202                       p_rate_name, p_business_group_id, p_effective_date);
4203    raise;
4204 end get_gr_grade_rule_ovn;
4205 
4206 /* get_pp_grade_rule_ovn */
4207 function get_pp_grade_rule_ovn
4208 (
4209    p_progression_point in varchar2,
4210    p_pay_scale         in varchar2,
4211    p_rate_name         in varchar2,
4212    p_business_group_id in number,
4213    p_effective_date    in date
4214 )
4215 return number is
4216    l_object_version_number number;
4217 begin
4218    select pgr.object_version_number
4219    into   l_object_version_number
4220    from   per_parent_spines pps,
4221           per_spinal_points psp,
4222           pay_grade_rules_f pgr,
4223           pay_rates pr
4224    where  pps.name = p_pay_scale
4225    and    pps.business_group_id + 0 = p_business_group_id
4226    and    psp.spinal_point = p_progression_point
4227    and    psp.business_group_id + 0 = p_business_group_id
4228    and    psp.parent_spine_id = pps.parent_spine_id
4229    and    pr.name = p_rate_name
4230    and    pr.business_group_id + 0 = p_business_group_id
4231    and    pgr.rate_id = pr.rate_id
4232    and    pgr.grade_or_spinal_point_id = psp.spinal_point_id
4233    and    pgr.rate_type = 'SP'
4234    and    pgr.business_group_id + 0 = p_business_group_id
4235    and    p_effective_date between pgr.effective_start_date and
4236           pgr.effective_end_date;
4237    return(l_object_version_number);
4238 exception
4239 when others then
4240    hr_data_pump.fail('get_pp_grade_rule_id', sqlerrm, p_progression_point,
4241                       p_pay_scale, p_rate_name, p_business_group_id,
4242                       p_effective_date);
4243    raise;
4244 end get_pp_grade_rule_ovn;
4245 
4246 /* get_at_period_of_service_ovn */
4247 function get_at_period_of_service_ovn
4248 (
4249    p_person_user_key   in varchar2,
4250    p_business_group_id in number
4251 )
4252 return number is
4253    l_object_version_number number;
4254 begin
4255    select pps.object_version_number
4256    into   l_object_version_number
4257    from   per_periods_of_service pps,
4258           hr_pump_batch_line_user_keys key
4259    where  key.user_key_value = p_person_user_key
4260    and    pps.person_id = key.unique_key_id
4261    and    pps.business_group_id = p_business_group_id
4262    and    pps.actual_termination_date is null;
4263    return(l_object_version_number);
4264 exception
4265 when others then
4266    hr_data_pump.fail('get_at_period_of_service_ovn', sqlerrm, p_person_user_key,
4267                       p_business_group_id);
4268    raise;
4269 end get_at_period_of_service_ovn;
4270 
4271 /* get_fp_period_of_service_ovn */
4272 function get_fp_period_of_service_ovn
4273 (
4274    p_person_user_key   in varchar2,
4275    p_business_group_id in number
4276 )
4277 return number is
4278    l_object_version_number number;
4279 begin
4280    select pps.object_version_number
4281    into   l_object_version_number
4282    from   per_periods_of_service pps,
4283           hr_pump_batch_line_user_keys key
4284    where  key.user_key_value = p_person_user_key
4285    and    pps.person_id = key.unique_key_id
4286    and    pps.business_group_id = p_business_group_id
4287    and    pps.actual_termination_date is not null
4288    and    pps.final_process_date is null;
4289    return(l_object_version_number);
4290 exception
4291 when others then
4292    hr_data_pump.fail('get_fp_period_of_service_ovn', sqlerrm, p_person_user_key,
4293                       p_business_group_id);
4294    raise;
4295 end get_fp_period_of_service_ovn;
4296 
4297 /* Added for 11i,Rvydyana,02-DEC-1999 */
4298 /* get_ut_period_of_service_ovn */
4299 function get_ut_period_of_service_ovn
4300 (
4301    p_person_user_key   in varchar2,
4302    p_effective_date    in date,
4303    p_business_group_id in number
4304 )
4305 return number is
4306    l_eot constant date := to_date('4712/12/31', 'YYYY/MM/DD');
4307    l_object_version_number number;
4308 begin
4309 
4310    select pps.object_version_number
4311    into   l_object_version_number
4312    from   per_periods_of_service pps,
4313           hr_pump_batch_line_user_keys key
4314    where  key.user_key_value = p_person_user_key
4315    and    pps.person_id = key.unique_key_id
4316    and    pps.business_group_id = p_business_group_id
4317    and    p_effective_date between pps.date_start and NVL(pps.actual_termination_date,l_eot);
4318    return(l_object_version_number);
4319 exception
4320 when others then
4321    hr_data_pump.fail('get_ut_period_of_service_id', sqlerrm, p_person_user_key,
4322                       p_effective_date,p_business_group_id);
4323    raise;
4324 end get_ut_period_of_service_ovn;
4325 
4326 /* get entry_step_id - requires user key */
4327 function get_entry_step_id
4328 (
4329    p_entry_step_user_key in varchar2
4330 ) return number is
4331    l_entry_step_id number;
4332 begin
4333    l_entry_step_id := user_key_to_id( p_entry_step_user_key );
4334    return(l_entry_step_id);
4335 exception
4336 when others then
4337    hr_data_pump.fail('get_entry_step_id', sqlerrm, p_entry_step_user_key);
4338    raise;
4339 end get_entry_step_id;
4340 
4341 /* get entry_grade_rule_id - requires user key */
4342 function get_entry_grade_rule_id
4343 (
4344    p_entry_grade_rule_user_key in varchar2
4345 ) return number is
4346    l_entry_grade_rule_id number;
4347 begin
4348    l_entry_grade_rule_id := user_key_to_id( p_entry_grade_rule_user_key );
4349    return(l_entry_grade_rule_id);
4350 exception
4351 when others then
4352    hr_data_pump.fail('get_entry_grade_rule_id', sqlerrm, p_entry_grade_rule_user_key);
4353    raise;
4354 end get_entry_grade_rule_id;
4355 
4356 /* Added for 11i - Rvydyana - 06-DEC-1999 */
4357 /* returns a phone object version number */
4358 function get_phn_ovn
4359 (
4360    p_phone_user_key in varchar2
4361 ) return number is
4362    l_ovn number;
4363 begin
4364    select phn.object_version_number
4365    into   l_ovn
4366    from   per_phones                 phn,
4367           hr_pump_batch_line_user_keys key
4368    where  key.user_key_value = p_phone_user_key
4369    and    phn.phone_id      = key.unique_key_id;
4370    return(l_ovn);
4371 exception
4372 when others then
4373    hr_data_pump.fail('get_phn_ovn', sqlerrm, p_phone_user_key);
4374    raise;
4375 end get_phn_ovn;
4376 --
4377 /* --------------------------------------------------- */
4378 /* ----------------- get_jgr_ovn---------------------- */
4379 /* --------------------------------------------------- */
4380 function get_jgr_ovn
4381 (
4382  p_job_group_user_key in varchar2
4383   ) return number is
4384 l_ovn number;
4385  begin
4386     select jgr.object_version_number
4387     into   l_ovn
4388     from   per_job_groups jgr,
4389      hr_pump_batch_line_user_keys key
4390     where  key.user_key_value = p_job_group_user_key
4391     and    jgr.job_group_id      = key.unique_key_id;
4392    return(l_ovn);
4393    exception
4394    when others then
4395    hr_data_pump.fail('get_jgr_ovn', sqlerrm, p_job_group_user_key);
4396    raise;
4397 end get_jgr_ovn;
4398 
4399 /* --------------------------------------------------- */
4400 /* ----------------- get_rol_ovn---------------------- */
4401 /* --------------------------------------------------- */
4402 function get_rol_ovn
4403 (
4404  p_role_user_key in varchar2
4405   ) return number is
4406 l_ovn number;
4407  begin
4408     select rol.object_version_number
4409     into   l_ovn
4410     from   per_roles rol,
4411      hr_pump_batch_line_user_keys key
4412     where  key.user_key_value = p_role_user_key
4413     and    rol.role_id      = key.unique_key_id;
4414    return(l_ovn);
4415    exception
4416    when others then
4417    hr_data_pump.fail('get_rol_ovn', sqlerrm, p_role_user_key);
4418    raise;
4419 end get_rol_ovn;
4420 /*-------------- returns a pay scale object version number --------------------*/
4421 function get_pay_scale_ovn
4422 (
4423    p_pay_scale          in varchar2,
4424    p_business_group_id  in number
4425 ) return number is
4426    l_ovn number;
4427 begin
4428    select object_version_number
4429    into   l_ovn
4430    from   per_parent_spines
4431    where  name                  = p_pay_scale
4432    and    business_group_id + 0 = p_business_group_id;
4433    return(l_ovn);
4434 exception
4435 when others then
4436    hr_data_pump.fail('get_pay_scale_ovn', sqlerrm, p_pay_scale,
4437                      p_business_group_id);
4438    raise;
4439 end get_pay_scale_ovn;
4440 /*-------------- returns a preogresion point object version number ------------*/
4441 function get_progression_point_ovn
4442 (
4443    p_point              in varchar2,
4444    p_business_group_id  in number
4445 ) return number is
4446    l_ovn number;
4447 begin
4448    select object_version_number
4449    into   l_ovn
4450    from   per_spinal_points
4451    where  spinal_point          = p_point
4452    and    business_group_id + 0 = p_business_group_id;
4453    return(l_ovn);
4454 exception
4455 when others then
4456    hr_data_pump.fail('get_progression_point_ovn', sqlerrm, p_point,
4457                      p_business_group_id);
4458    raise;
4459 end get_progression_point_ovn;
4460 /*-------------- returns a grade scale object version number ------------*/
4461 function get_grade_scale_ovn
4462 (
4463    p_grade              in varchar2,
4464    p_pay_scale          in varchar2,
4465    p_effective_date     in date,
4466    p_business_group_id  in number
4467 ) return number is
4468    l_ovn number;
4469 begin
4470    select pgs.object_version_number
4471    into   l_ovn
4472    from   per_grade_spines_f pgs
4473          ,per_grades pg
4474          ,per_parent_spines pps
4475    where  pg.name = p_grade
4476    and    pg.grade_id = pgs.grade_id
4477    and    pps.name = p_pay_scale
4478    and    pps.parent_spine_id = pgs.parent_spine_id
4479    and    pgs.business_group_id = p_business_group_id
4480    and    p_effective_date between
4481           pgs.effective_start_date and pgs.effective_end_date;
4482    return(l_ovn);
4483 exception
4484 when others then
4485    hr_data_pump.fail('get_grade_scale_ovn', sqlerrm, p_grade,
4486                      p_pay_scale, p_effective_date ,p_business_group_id);
4487    raise;
4488 end get_grade_scale_ovn;
4489 /*-------------- returns a grade step object version number ------------*/
4490 function get_grade_step_ovn
4491 (
4492    p_point              in varchar2,
4493    p_sequence           in number,
4494    p_effective_date     in date,
4495    p_business_group_id  in number
4496 ) return number is
4497    l_ovn number;
4498 begin
4499    select sps.object_version_number
4500    into   l_ovn
4501    from   per_spinal_point_steps_f sps
4502          ,per_spinal_points psp
4503          ,per_grade_spines_f pgs
4504    where  psp.spinal_point = p_point
4505    and    psp.spinal_point_id = sps.spinal_point_id
4506    and    sps.sequence = p_sequence
4507    and    sps.step_id =  pgs.ceiling_step_id
4508    and    pgs.grade_spine_id = sps.grade_spine_id
4509    and    sps.business_group_id = p_business_group_id
4510    and    p_effective_date between
4511           sps.effective_start_date and sps.effective_end_date;
4512    return(l_ovn);
4513 exception
4514 when others then
4515    hr_data_pump.fail('get_grade_step_ovn', sqlerrm, p_point,
4516                      p_sequence,p_effective_date, p_business_group_id);
4517    raise;
4518 end get_grade_step_ovn;
4519 /*---------------------------------------------------------------------------*/
4520 /*----------------------- other special get functions -----------------------*/
4521 /*---------------------------------------------------------------------------*/
4522 
4523 /* returns a language code */
4524 function get_correspondence_language
4525 (
4526    p_correspondence_language varchar2
4527 ) return varchar2 is
4528    l_code fnd_languages.language_code%type;
4529 begin
4530    select l.language_code
4531    into   l_code
4532    from   fnd_languages l
4533    where  l.nls_language = p_correspondence_language;
4534    return(l_code);
4535 exception
4536 -- If the nls_language could not be matched, assume that the user was
4537 -- entering the code directly.
4538 when no_data_found then
4539    return(p_correspondence_language);
4540 when others then
4541    hr_data_pump.fail('get_correspondence_language', sqlerrm,
4542                      p_correspondence_language);
4543    raise;
4544 end get_correspondence_language;
4545 
4546 /* get_country */
4547 function get_country( p_country in varchar2 ) return varchar2 is
4548    l_territory_code varchar2(2);
4549 begin
4550    select territory_code
4551    into   l_territory_code
4552    from   fnd_territories_vl
4553    where  territory_short_name = p_country;
4554    return(l_territory_code);
4555 exception
4556 -- If the short_name could not be matched, assume that the user was
4557 -- entering the code directly.
4558 when no_data_found then
4559    return(p_country);
4560 when others then
4561    hr_data_pump.fail('get_country', sqlerrm, p_country );
4562    raise;
4563 end get_country;
4564 
4565 /* get change reason lookup code, dependent on assignment */
4566 function get_change_reason
4567 (
4568    p_change_reason       in varchar2,
4569    p_assignment_user_key in varchar2,
4570    p_effective_date      in date,
4571    p_language_code       in varchar2
4572 ) return varchar2 is
4573    l_code varchar2(30);
4574 begin
4575    select flv.lookup_code
4576    into   l_code
4577    from   fnd_lookup_values            flv,
4578           per_assignments_f            asg,
4579           hr_pump_batch_line_user_keys key
4580    where  key.user_key_value = p_assignment_user_key
4581    and    asg.assignment_id  = key.unique_key_id
4582    and    p_effective_date between
4583           asg.effective_start_date and asg.effective_end_date
4584    and    flv.lookup_type    = decode(asg.assignment_type,
4585                                       'E', 'EMP_ASSIGN_REASON',
4586                                       'A', 'APL_ASSIGN_REASON')
4587    and    flv.meaning        = p_change_reason
4588    and    flv.language            = p_language_code
4589    and    flv.view_application_id = 3
4590    and    flv.security_group_id   =
4591           fnd_global.lookup_security_group
4592           (flv.lookup_type
4593           ,flv.view_application_id
4594           )
4595    and    p_effective_date between
4596           nvl(flv.start_date_active, START_OF_TIME) and
4597           nvl(flv.end_date_active, END_OF_TIME);
4598    return(l_code);
4599 exception
4600 -- Assume that the user entered the code directly when no data found.
4601 when no_data_found then
4602    return(p_change_reason);
4603 when others then
4604    hr_data_pump.fail('get_change_reason', sqlerrm, p_change_reason,
4605                      p_assignment_user_key, p_effective_date);
4606    raise;
4607 end get_change_reason;
4608 
4609 /* get_job_group_id - requires user key */
4610 function get_job_group_id
4611 (
4612    p_job_group_user_key in varchar2
4613 ) return number is
4614    l_job_group_id number;
4615 begin
4616    l_job_group_id := user_key_to_id( p_job_group_user_key );
4617    return(l_job_group_id);
4618 exception
4619 when others then
4620    hr_data_pump.fail('get_job_group_id', sqlerrm, p_job_group_user_key);
4621    raise;
4622 end get_job_group_id;
4623 
4624 /* get_benchmark_job_id - requires user key */
4625 function get_benchmark_job_id
4626 (
4627    p_benchmark_job_user_key in varchar2
4628 ) return number is
4629    l_benchmark_job_id number;
4630 begin
4631    l_benchmark_job_id := user_key_to_id( p_benchmark_job_user_key );
4632    return(l_benchmark_job_id);
4633 exception
4634 when others then
4635    hr_data_pump.fail('get_benchmark_job_id', sqlerrm, p_benchmark_job_user_key);
4636    raise;
4637 end get_benchmark_job_id;
4638 
4639 /* get_role_id - requires user key */
4640 function get_role_id
4641 (
4642    p_role_user_key in varchar2
4643 ) return number is
4644    l_role_id number;
4645 begin
4646    l_role_id := user_key_to_id( p_role_user_key );
4647    return(l_role_id);
4648 exception
4649 when others then
4650    hr_data_pump.fail('get_role_id', sqlerrm, p_role_user_key);
4651    raise;
4652 end get_role_id;
4653 
4654 /* get_loc_id - requires user key */
4655 function get_loc_id
4656 (
4657    p_location_user_key in varchar2
4658 ) return number is
4659    l_location_id number;
4660 begin
4661    l_location_id := user_key_to_id( p_location_user_key );
4662    return(l_location_id);
4663 exception
4664 when others then
4665    hr_data_pump.fail('get_loc_id', sqlerrm, p_location_user_key);
4666    raise;
4667 end get_loc_id;
4668 
4669 /* get_org_structure_id - requires user key */
4670 function get_org_structure_id
4671 (
4672    p_org_structure_user_key in varchar2
4673 ) return number is
4674    l_organization_structure_id number;
4675 begin
4676    l_organization_structure_id := user_key_to_id( p_org_structure_user_key );
4677    return(l_organization_structure_id);
4678 exception
4679 when others then
4680    hr_data_pump.fail('get_org_structure_id', sqlerrm, p_org_structure_user_key);
4681    raise;
4682 end get_org_structure_id;
4683 
4684 /* get_org_str_version_id - requires user key */
4685 function get_org_str_version_id
4686 (
4687    p_org_str_version_user_key in varchar2
4688 ) return number is
4689    l_org_structure_version_id number;
4690 begin
4691    l_org_structure_version_id := user_key_to_id( p_org_str_version_user_key );
4692    return(l_org_structure_version_id);
4693 exception
4694 when others then
4695    hr_data_pump.fail('get_org_str_version_id', sqlerrm, p_org_str_version_user_key);
4696    raise;
4697 end get_org_str_version_id;
4698 
4699 /* get_org_id - requires user key */
4700 function get_org_id
4701 (
4702    p_org_user_key in varchar2
4703 ) return number is
4704    l_org_id number;
4705 begin
4706    l_org_id := user_key_to_id( p_org_user_key );
4707    return(l_org_id);
4708 exception
4709 when others then
4710    hr_data_pump.fail('get_org_id', sqlerrm, p_org_user_key);
4711    raise;
4712 end get_org_id;
4713 
4714 /* get_grade_rule_id - requires user key */
4715 function get_grade_rule_id
4716 (
4717    p_grade_rule_user_key in varchar2
4718 ) return number is
4719    l_grade_rule_id number;
4720 begin
4721    l_grade_rule_id := user_key_to_id( p_grade_rule_user_key );
4722    return(l_grade_rule_id);
4723 exception
4724 when others then
4725    hr_data_pump.fail('get_grade_rule_id', sqlerrm, p_grade_rule_user_key);
4726    raise;
4727 end get_grade_rule_id;
4728 
4729 /* returns lookup_code */
4730 function gl
4731 (
4732    p_meaning_or_code in varchar2,
4733    p_lookup_type     in varchar2,
4734    p_effective_date  in date     default null,
4735    p_language_code   in varchar2 default null
4736 ) return varchar2 is
4737    l_code hr_lookups.lookup_code%type;
4738    l_effective_date date;
4739    l_language_code  varchar2(2000);
4740 begin
4741    --
4742    -- Is lookup checking disabled ?
4743    --
4744    if hr_data_pump.g_disable_lookup_checks then
4745      return p_meaning_or_code;
4746    end if;
4747    --
4748    -- Set language code (handling possible defaults).
4749    --
4750    if p_language_code = hr_api.g_varchar2 then
4751      --
4752      -- nvl() in the query will take care of defaulting.
4753      --
4754      l_language_code := null;
4755    else
4756      l_language_code := p_language_code;
4757    end if;
4758    --
4759    -- Set the effective date (handling possible defaults).
4760    --
4761    if p_effective_date is null or p_effective_date = hr_api.g_date then
4762      l_effective_date := hr_api.g_sys;
4763    else
4764      l_effective_date := p_effective_date;
4765    end if;
4766    if p_meaning_or_code is null or p_meaning_or_code = hr_api.g_varchar2
4767    then
4768      --
4769      -- Defaulted values will be returned unchanged.
4770      --
4771      l_code := p_meaning_or_code;
4772    else
4773      --
4774      -- Check against meaning using the new R11.5 lookup tables.
4775      --
4776      select flv.lookup_code
4777      into   l_code
4778      from   fnd_lookup_values flv
4779      where  flv.meaning       = p_meaning_or_code
4780      and    flv.lookup_type   = p_lookup_type
4781      and    flv.language      = nvl(l_language_code, userenv('LANG'))
4782      and    flv.view_application_id = 3
4783      and    flv.security_group_id   =
4784      fnd_global.lookup_security_group
4785      (flv.lookup_type
4786      ,flv.view_application_id
4787      )
4788      and    l_effective_date between
4789             nvl(flv.start_date_active, START_OF_TIME) and
4790             nvl(flv.end_date_active, END_OF_TIME);
4791    end if;
4792    --
4793    return(l_code);
4794 exception
4795   when no_data_found then
4796     --
4797     -- If the meaning could not be matched, assume that the user
4798     -- entered the code directly. This part of the code used to
4799     -- check against HR_LOOKUPS, but HR_LOOKUPS requires the
4800     -- legislation context to be set in HR_SESSION_DATA now.
4801     -- Such an additional check is unnecessary because the API
4802     -- should be able to pick up bad code values.
4803     --
4804     return(p_meaning_or_code);
4805   when others then
4806     hr_data_pump.fail
4807     ('get_lookup_code', sqlerrm, p_meaning_or_code,
4808     p_lookup_type, p_effective_date, p_language_code);
4809     raise;
4810 end gl;
4811 
4812 function get_lookup_code
4813 (
4814    p_meaning_or_code in varchar2,
4815    p_lookup_type     in varchar2,
4816    p_effective_date  in date     default null,
4817    p_language_code   in varchar2 default null
4818 ) return varchar2 is
4819 begin
4820   return gl( p_meaning_or_code, p_lookup_type, p_effective_date,
4821              p_language_code );
4822 end get_lookup_code;
4823 /* return people_group_id */
4824 function get_people_group_id
4825 (
4826    p_people_group_user_name in varchar2,
4827    p_effective_date    in date
4828 ) return number is
4829    l_people_group_id number;
4830 begin
4831    --
4832    select people_group_id
4833    into   l_people_group_id
4834    from   pay_people_groups
4835    where  GROUP_NAME = p_people_group_user_name
4836      and  p_effective_date
4837           between nvl(start_date_active,START_OF_TIME)
4838           and     nvl(end_date_active,END_OF_TIME);
4839    --
4840    return(l_people_group_id);
4841 exception
4842 when others then
4843    hr_data_pump.fail('get_people_group_id', sqlerrm,
4844                      p_people_group_user_name,
4845                      p_effective_date);
4846    raise;
4847 end get_people_group_id;
4848 
4849 /* return absence_attendance_type_id */
4850 function get_absence_attendance_type_id
4851 (
4852    p_aat_user_name     in varchar2,
4853    p_business_group_id in number,
4854    p_effective_date    in date
4855 ) return number is
4856    l_absence_attendance_type_id number;
4857 begin
4858    --
4859    select aat.absence_attendance_type_id
4860    into   l_absence_attendance_type_id
4861    from per_abs_attendance_types_vl aat
4862    where aat.name = p_aat_user_name
4863      and aat.business_group_id = p_business_group_id
4864      and p_effective_date between
4865          nvl(DATE_EFFECTIVE, START_OF_TIME) AND
4866          nvl(DATE_END, END_OF_TIME);
4867    --
4868    return(l_absence_attendance_type_id);
4869 exception
4870 when others then
4871    hr_data_pump.fail('get_absence_attendance_type_id', sqlerrm,
4872                      p_aat_user_name,
4873                      p_business_group_id,
4874                      p_effective_date);
4875    raise;
4876 end get_absence_attendance_type_id;
4877 /* return soft_coding_keyflex_id */
4878 function get_soft_coding_keyflex_id
4879 (
4880    p_con_seg_user_name     in varchar2,
4881    p_effective_date    in date
4882 ) return number is
4883    l_soft_coding_keyflex_id number;
4884 begin
4885    --
4886    select soft_coding_keyflex_id
4887    into   l_soft_coding_keyflex_id
4888    from hr_soft_coding_keyflex
4889    where concatenated_segments = p_con_seg_user_name
4890      and p_effective_date between
4891          nvl(START_DATE_ACTIVE, START_OF_TIME) AND
4892          nvl(END_DATE_ACTIVE, END_OF_TIME);
4893    --
4894    return(l_soft_coding_keyflex_id);
4895 exception
4896 when others then
4897    hr_data_pump.fail('get_soft_coding_keyflex_id', sqlerrm,
4898                      p_con_seg_user_name,
4899                      p_effective_date);
4900    raise;
4901 end get_soft_coding_keyflex_id;
4902 
4903 /* return pk_id */
4904 function get_pk_id
4905 (
4906    p_pk_name           in varchar2
4907 ) return number is
4908    l_pk_id number := null;
4909 begin
4910    --
4911    -- This column should not be populated by datapump.
4912    --
4913    return(l_pk_id);
4914 exception
4915 when others then
4916    hr_data_pump.fail('get_pk_id', sqlerrm,
4917                      p_pk_name
4918                      );
4919    raise;
4920 end get_pk_id;
4921 
4922 /* Bug 3275173 -- get object versionn number*/
4923 function get_fed_tax_rule_ovn
4924 (
4925   p_emp_fed_tax_rule_user_key in varchar2,
4926   p_effective_date            in date
4927 ) return number is
4928   l_ovn number;
4929 begin
4930   select object_version_number
4931     into l_ovn
4932     from pay_us_emp_fed_tax_rules_f puek,
4933          hr_pump_batch_line_user_keys uk
4934    where uk.user_key_value = p_emp_fed_tax_rule_user_key
4935      and p_effective_date between puek.effective_start_date and puek.effective_end_date
4936      and puek.emp_fed_tax_rule_id  = uk.unique_key_id;
4937    --
4938 
4939    return l_ovn;
4940 exception
4941 when others then
4942    hr_data_pump.fail('get_fed_tax_rule_ovn', sqlerrm,
4943                      p_emp_fed_tax_rule_user_key,
4944                      p_effective_date);
4945    raise;
4946 end get_fed_tax_rule_ovn;
4947 
4948 --
4949 -- Bug 3783381 -- get object versionn number for state, county and city
4950 --
4951 
4952 function get_state_tax_rule_ovn
4953 (
4954   p_emp_state_tax_rule_user_key in varchar2,
4955   p_effective_date            in date
4956 ) return number is
4957   l_ovn number;
4958 begin
4959   select object_version_number
4960     into l_ovn
4961     from pay_us_emp_state_tax_rules_f puek,
4962          hr_pump_batch_line_user_keys uk
4963    where uk.user_key_value = p_emp_state_tax_rule_user_key
4964      and p_effective_date between puek.effective_start_date and puek.effective_end_date
4965      and puek.emp_state_tax_rule_id  = uk.unique_key_id;
4966    --
4967 
4968    return l_ovn;
4969 exception
4970 when others then
4971    hr_data_pump.fail('get_state_tax_rule_ovn', sqlerrm,
4972                      p_emp_state_tax_rule_user_key,
4973                      p_effective_date);
4974    raise;
4975 end get_state_tax_rule_ovn;
4976 
4977 ---
4978 function get_county_tax_rule_ovn
4979 (
4980   p_emp_county_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_county_tax_rules_f puek,
4988          hr_pump_batch_line_user_keys uk
4989    where uk.user_key_value = p_emp_county_tax_rule_user_key
4990      and p_effective_date between puek.effective_start_date and puek.effective_end_date
4991      and puek.emp_county_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_county_tax_rule_ovn', sqlerrm,
4998                      p_emp_county_tax_rule_user_key,
4999                      p_effective_date);
5000    raise;
5001 end get_county_tax_rule_ovn;
5002 
5003 ---
5004 
5005 function get_city_tax_rule_ovn
5006 (
5007   p_emp_city_tax_rule_user_key in varchar2,
5008   p_effective_date            in date
5009 ) return number is
5010   l_ovn number;
5011 begin
5012   select object_version_number
5013     into l_ovn
5014     from pay_us_emp_city_tax_rules_f puek,
5015          hr_pump_batch_line_user_keys uk
5016    where uk.user_key_value = p_emp_city_tax_rule_user_key
5017      and p_effective_date between puek.effective_start_date and puek.effective_end_date
5018      and puek.emp_city_tax_rule_id  = uk.unique_key_id;
5019    --
5020 
5021    return l_ovn;
5022 exception
5023 when others then
5024    hr_data_pump.fail('get_city_tax_rule_ovn', sqlerrm,
5025                      p_emp_city_tax_rule_user_key,
5026                      p_effective_date);
5027    raise;
5028 end get_city_tax_rule_ovn;
5029 
5030 --
5031 --
5032 
5033 --
5034 -- -------------------------------------------------------------------------
5035 -- ------------< get_parent_comp_element_id >-------------------------
5036 -- -------------------------------------------------------------------------
5037 -- DESCRIPTION
5038 --   This function returns the
5039 --
5040 FUNCTION get_parent_comp_element_id
5041 RETURN BINARY_INTEGER
5042 IS
5043 BEGIN
5044   return (null);
5045 EXCEPTION
5046 WHEN OTHERS THEN
5047    hr_data_pump.fail('get_parent_comp_element_id'
5048 		    , sqlerrm
5049 		    );
5050    RAISE;
5051 END get_parent_comp_element_id;
5052 -- -------------------------------------------------------------------------
5053 -- --------------------< get_competence_id >--------------------------------
5054 -- -------------------------------------------------------------------------
5055 FUNCTION get_competence_id
5056   (p_data_pump_always_call IN varchar2
5057   ,p_competence_name    IN VARCHAR2
5058   ,p_business_group_id     IN NUMBER)
5059 RETURN BINARY_INTEGER
5060 IS
5061  l_competence_id  NUMBER DEFAULT null;
5062 BEGIN
5063 
5064    IF p_competence_name is NULL then
5065 
5066      return null;
5067 
5068    ELSIF p_competence_name  = hr_api_g_varchar2 then
5069 
5070      return hr_api_g_number;
5071 
5072    ELSE
5073 
5074      IF p_business_group_id is null THEN
5075 
5076        SELECT competence_id
5077        INTO   l_competence_id
5078        FROM   per_competences_vl
5079        WHERE  name = p_competence_name
5080        AND    business_group_id is null;
5081 
5082      ELSE
5083 
5084        SELECT competence_id
5085        INTO   l_competence_id
5086        FROM   per_competences_vl
5087        WHERE  name = p_competence_name
5088        AND    business_group_id = p_business_group_id;
5089 
5090      END IF;
5091 
5092    END IF;
5093 
5094    RETURN(l_competence_id);
5095 EXCEPTION
5096 WHEN OTHERS THEN
5097    hr_data_pump.fail('get_competence_id'
5098 		    , sqlerrm
5099 		    , p_competence_name
5100 		    , p_business_group_id);
5101    RAISE;
5102 END get_competence_id;
5103 -- -------------------------------------------------------------------------
5104 -- --------------------< get_cpn_ovn >---------------------------
5105 -- -------------------------------------------------------------------------
5106 -- DESCRIPTION
5107 --   This function returns the ovn of a competence
5108 --
5109 FUNCTION get_cpn_ovn
5110   (p_data_pump_always_call IN varchar2
5111   ,p_competence_name    IN VARCHAR2
5112   ,p_business_group_id     IN NUMBER)
5113 RETURN BINARY_INTEGER
5114 IS
5115  l_cpn_ovn  NUMBER DEFAULT null;
5116 BEGIN
5117 
5118    IF p_competence_name is NULL then
5119 
5120      return null;
5121 
5122    ELSIF p_competence_name  = hr_api_g_varchar2 then
5123 
5124      return hr_api_g_number;
5125 
5126    ELSE
5127 
5128      IF p_business_group_id is null THEN
5129 
5130        SELECT object_version_number
5131        INTO   l_cpn_ovn
5132        FROM   per_competences_vl
5133        WHERE  name = p_competence_name
5134        AND    business_group_id is null;
5135 
5136      ELSE
5137 
5138        SELECT object_version_number
5139        INTO   l_cpn_ovn
5140        FROM   per_competences_vl
5141        WHERE  name = p_competence_name
5142        AND    business_group_id = p_business_group_id;
5143 
5144      END IF;
5145 
5146    END IF;
5147 
5148    RETURN(l_cpn_ovn);
5149 EXCEPTION
5150 WHEN OTHERS THEN
5151    hr_data_pump.fail('get_cpn_ovn'
5152 		    , sqlerrm
5153 		    , p_competence_name
5154 		    , p_business_group_id);
5155    RAISE;
5156 END get_cpn_ovn;
5157 -- -------------------------------------------------------------------------
5158 -- -----------------< get_qualification_type_id >---------------------------
5159 -- -------------------------------------------------------------------------
5160 FUNCTION get_qualification_type_id
5161   (p_data_pump_always_call      IN varchar2
5162   ,p_qualification_type_name    IN VARCHAR2
5163   )
5164 RETURN BINARY_INTEGER
5165 IS
5166  l_qualification_type_id  NUMBER DEFAULT null;
5167 BEGIN
5168 
5169    IF p_qualification_type_name is NULL then
5170 
5171      return null;
5172 
5173    ELSIF p_qualification_type_name  = hr_api_g_varchar2 then
5174 
5175      return hr_api_g_number;
5176 
5177    ELSE
5178 
5179        SELECT qualification_type_id
5180        INTO   l_qualification_type_id
5181        FROM   per_qualification_types_vl
5182        WHERE  name = p_qualification_type_name;
5183 
5184    END IF;
5185 
5186    RETURN(l_qualification_type_id);
5187 EXCEPTION
5188 WHEN OTHERS THEN
5189    hr_data_pump.fail('get_qualification_type_id'
5190 		    , sqlerrm
5191 		    , p_qualification_type_name);
5192    RAISE;
5193 END get_qualification_type_id;
5194 --
5195 -- -------------------------------------------------------------------------
5196 -- ---------------------< get_outcome_id >--------------------------------
5197 -- -------------------------------------------------------------------------
5198 FUNCTION get_outcome_id
5199   (p_data_pump_always_call      IN varchar2
5200   ,p_outcome_name               IN VARCHAR2
5201   )
5202 RETURN BINARY_INTEGER
5203 IS
5204  l_outcome_id  NUMBER DEFAULT null;
5205 BEGIN
5206 
5207    IF p_outcome_name is NULL then
5208 
5209      return null;
5210 
5211    ELSIF p_outcome_name  = hr_api_g_varchar2 then
5212 
5213      return hr_api_g_number;
5214 
5215    ELSE
5216 
5217        SELECT outcome_id
5218        INTO   l_outcome_id
5219        FROM   per_competence_outcomes_vl
5220        WHERE  name = p_outcome_name;
5221 
5222    END IF;
5223 
5224    RETURN(l_outcome_id);
5225 EXCEPTION
5226 WHEN OTHERS THEN
5227    hr_data_pump.fail('get_outcome_id'
5228 		    , sqlerrm
5229 		    , p_outcome_name
5230                     );
5231    RAISE;
5232 END get_outcome_id;
5233 -- -------------------------------------------------------------------------
5234 -- --------------------< get_cpo_ovn >---------------------------
5235 -- -------------------------------------------------------------------------
5236 -- DESCRIPTION
5237 --   This function returns the ovn of a competence outcome
5238 --
5239 FUNCTION get_cpo_ovn
5240   (p_data_pump_always_call    IN varchar2
5241   ,p_outcome_name             IN VARCHAR2
5242   )
5243 RETURN BINARY_INTEGER
5244 IS
5245  l_cpo_ovn  NUMBER DEFAULT null;
5246 BEGIN
5247 
5248    IF p_outcome_name is NULL then
5249 
5250      return null;
5251 
5252    ELSIF p_outcome_name  = hr_api_g_varchar2 then
5253 
5254      return hr_api_g_number;
5255 
5256    ELSE
5257 
5258        SELECT object_version_number
5259        INTO   l_cpo_ovn
5260        FROM   per_competence_outcomes_vl
5261        WHERE  name = p_outcome_name;
5262 
5263    END IF;
5264 
5265    RETURN(l_cpo_ovn);
5266 EXCEPTION
5267 WHEN OTHERS THEN
5268    hr_data_pump.fail('get_cpo_ovn'
5269 		    , sqlerrm
5270 		    , p_outcome_name
5271                     );
5272    RAISE;
5273 END get_cpo_ovn;
5274 -- -------------------------------------------------------------------------
5275 -- --------------------< get_eqt_ovn >---------------------------
5276 -- -------------------------------------------------------------------------
5277 -- DESCRIPTION
5278 --   This function returns the ovn of a qualification type
5279 --
5280 FUNCTION get_eqt_ovn
5281   (p_data_pump_always_call    IN varchar2
5282   ,p_qualification_type_name  IN VARCHAR2
5283   )
5284 RETURN BINARY_INTEGER
5285 IS
5286  l_eqt_ovn  NUMBER DEFAULT null;
5287 BEGIN
5288 
5289    IF p_qualification_type_name is NULL then
5290 
5291      return null;
5292 
5293    ELSIF p_qualification_type_name  = hr_api_g_varchar2 then
5294 
5295      return hr_api_g_number;
5296 
5297    ELSE
5298 
5299        SELECT object_version_number
5300        INTO   l_eqt_ovn
5301        FROM   per_qualification_types_vl
5302        WHERE  name = p_qualification_type_name;
5303 
5304    END IF;
5305 
5306    RETURN(l_eqt_ovn);
5307 EXCEPTION
5308 WHEN OTHERS THEN
5309    hr_data_pump.fail('get_eqt_ovn'
5310 		    , sqlerrm
5311 		    , p_qualification_type_name
5312                     );
5313    RAISE;
5314 END get_eqt_ovn;
5315 -- -------------------------------------------------------------------------
5316 -- --------------------< get_ceo_ovn >---------------------------
5317 -- -------------------------------------------------------------------------
5318 -- DESCRIPTION
5319 --   This function returns the ovn of a comp element outcomes
5320 --
5321 FUNCTION get_ceo_ovn
5322   (p_data_pump_always_call    IN varchar2
5323   ,p_element_outcome_name     IN VARCHAR2
5324   )
5325 RETURN BINARY_INTEGER
5326 IS
5327  l_ceo_ovn  NUMBER DEFAULT null;
5328 BEGIN
5329 
5330    IF p_element_outcome_name is NULL then
5331 
5332      return null;
5333 
5334    ELSIF p_element_outcome_name  = hr_api_g_varchar2 then
5335 
5336      return hr_api_g_number;
5337 
5338    ELSE
5339 
5340        SELECT object_version_number
5341        INTO   l_ceo_ovn
5342        FROM   per_comp_element_outcomes_vl
5343        WHERE  name = p_element_outcome_name;
5344 
5345    END IF;
5346 
5347    RETURN(l_ceo_ovn);
5348 EXCEPTION
5349 WHEN OTHERS THEN
5350    hr_data_pump.fail('get_ceo_ovn'
5351 		    , sqlerrm
5352 		    , p_element_outcome_name
5353                     );
5354    RAISE;
5355 END get_ceo_ovn;
5356 -- -------------------------------------------------------------------------
5357 -- ------------------< get_competence_element_id >------------------------
5358 -- -------------------------------------------------------------------------
5359 -- DESCRIPTION
5360 --   This function returns the ovn of a comp element outcomes
5361 --
5362 FUNCTION get_competence_element_id
5363 (p_data_pump_always_call in varchar2
5364 ,p_competence_name       in varchar2
5365 ,p_person_user_key       in varchar2
5366 ,p_business_group_id     in number
5367 )
5368 return binary_integer
5369 IS
5370   l_competence_element_id number default null;
5371   l_person_id             number default null;
5372 BEGIN
5373 
5374     l_person_id := user_key_to_id(p_person_user_key);
5375 
5376     SELECT competence_element_id
5377     INTO   l_competence_element_id
5378     FROM  per_competence_elements CEL
5379          ,per_competences         CPN
5380     WHERE
5381           CEL.type = 'PERSONAL'
5382     and   CPN.name = p_competence_name
5383     and   CEL.competence_id = CPN.competence_id
5384     and   CEL.business_group_id = p_business_group_id
5385     and   CEL.person_id = l_person_id;
5386 
5387   RETURN(l_competence_element_id);
5388 EXCEPTION
5389 WHEN OTHERS THEN
5390    hr_data_pump.fail('get_competence_element_id'
5391 		    , sqlerrm
5392 		    , p_competence_name
5393                     , p_person_user_key
5394                     , p_business_group_id
5395                     );
5396    RAISE;
5397 END get_competence_element_id;
5398 --
5399 --
5400 FUNCTION get_cost_flex_stru_num
5401   (p_data_pump_always_call IN varchar2
5402   ,p_cost_flex_stru_code   IN VARCHAR2
5403   )
5404 RETURN BINARY_INTEGER is
5405   l_cost_code number;
5406 begin
5407 
5408    IF p_cost_flex_stru_code is NULL then
5409 
5410      return null;
5411 
5412    ELSIF p_cost_flex_stru_code  = hr_api_g_varchar2 then
5413 
5414      return hr_api_g_number;
5415 
5416    ELSE
5417 
5418       select id_flex_num into l_cost_code
5419       from fnd_id_flex_structures
5420       where id_flex_structure_code = p_cost_flex_stru_code
5421       and   id_flex_code ='COST';
5422    END IF;
5423 
5424    RETURN(l_cost_code);
5425 EXCEPTION
5426 WHEN OTHERS THEN
5427    hr_data_pump.fail('get_cost_flex_stru_num'
5428 		    , sqlerrm
5429  		    , p_cost_flex_stru_code
5430                     );
5431    RAISE;
5432 END get_cost_flex_stru_num;
5433 --
5434 FUNCTION get_grade_flex_stru_num
5435   (p_data_pump_always_call      IN varchar2
5436   ,p_grade_flex_stru_code  IN VARCHAR2
5437   )
5438 RETURN BINARY_INTEGER is
5439   l_grade_code number;
5440 begin
5441 
5442    IF p_grade_flex_stru_code is NULL then
5443 
5444      return null;
5445 
5446    ELSIF p_grade_flex_stru_code  = hr_api_g_varchar2 then
5447 
5448      return hr_api_g_number;
5449 
5450    ELSE
5451       select id_flex_num into l_grade_code
5452       from fnd_id_flex_structures
5453       where id_flex_structure_code = p_grade_flex_stru_code
5454       and   id_flex_code ='GRD';
5455 
5456    END IF;
5457 
5458    RETURN(l_grade_code);
5459 EXCEPTION
5460 WHEN OTHERS THEN
5461    hr_data_pump.fail('get_grade_flex_stru_num'
5462 		    , sqlerrm
5463  		    , p_grade_flex_stru_code
5464                     );
5465    RAISE;
5466 END get_grade_flex_stru_num;
5467 --
5468 FUNCTION get_job_flex_stru_num
5469   (p_data_pump_always_call      IN varchar2
5470   ,p_job_flex_stru_code  IN VARCHAR2
5471   )
5472 RETURN BINARY_INTEGER is
5473   l_job_code number;
5474 begin
5475 
5476    IF p_job_flex_stru_code is NULL then
5477 
5478      return null;
5479 
5480    ELSIF p_job_flex_stru_code = hr_api_g_varchar2 then
5481 
5482      return hr_api_g_number;
5483 
5484    ELSE
5485 
5486       select id_flex_num into l_job_code
5487       from fnd_id_flex_structures
5488       where id_flex_structure_code = p_job_flex_stru_code
5489       and   id_flex_code ='JOB';
5490    END IF;
5491 
5492    RETURN(l_job_code);
5493 EXCEPTION
5494 WHEN OTHERS THEN
5495    hr_data_pump.fail('get_job_flex_stru_num'
5496 		    , sqlerrm
5497  		    , p_job_flex_stru_code
5498                     );
5499    RAISE;
5500 END get_job_flex_stru_num;
5501 --
5502 FUNCTION get_position_flex_stru_num
5503   (p_data_pump_always_call      IN varchar2
5504   ,p_position_flex_stru_code  IN VARCHAR2
5505   )
5506 RETURN BINARY_INTEGER is
5507   l_position_code number;
5508 begin
5509 
5510    IF p_position_flex_stru_code is NULL then
5511 
5512      return null;
5513 
5514    ELSIF p_position_flex_stru_code = hr_api_g_varchar2 then
5515 
5516      return hr_api_g_number;
5517 
5518    ELSE
5519 
5520       select id_flex_num into l_position_code
5521       from fnd_id_flex_structures
5522       where id_flex_structure_code = p_position_flex_stru_code
5523       and   id_flex_code ='POS';
5524    END IF;
5525 
5526    RETURN(l_position_code);
5527 EXCEPTION
5528 WHEN OTHERS THEN
5529    hr_data_pump.fail('get_position_flex_stru_num'
5530 		    , sqlerrm
5531  		    , p_position_flex_stru_code
5532                     );
5533    RAISE;
5534 END get_position_flex_stru_num;
5535 --
5536 FUNCTION get_group_flex_stru_num
5537   (p_data_pump_always_call      IN varchar2
5538   ,p_group_flex_stru_code  IN VARCHAR2
5539   )
5540 RETURN BINARY_INTEGER is
5541   l_group_code number;
5542 begin
5543 
5544    IF p_group_flex_stru_code is NULL then
5545 
5546      return null;
5547 
5548    ELSIF p_group_flex_stru_code = hr_api_g_varchar2 then
5549 
5550      return hr_api_g_number;
5551 
5552    ELSE
5553 
5554       select id_flex_num into l_group_code
5555       from fnd_id_flex_structures
5556       where id_flex_structure_code = p_group_flex_stru_code
5557       and   id_flex_code ='GRP';
5558    END IF;
5559 
5560    RETURN(l_group_code);
5561 EXCEPTION
5562 WHEN OTHERS THEN
5563    hr_data_pump.fail('get_group_flex_stru_num'
5564 		    , sqlerrm
5565  		    , p_group_flex_stru_code
5566                     );
5567    RAISE;
5568 END get_group_flex_stru_num;
5569 --
5570 FUNCTION get_competence_flex_stru_num
5571   (p_data_pump_always_call      IN varchar2
5572   ,p_competence_flex_stru_code  IN VARCHAR2
5573   )
5574 RETURN BINARY_INTEGER is
5575   l_competence_code number;
5576 begin
5577 
5578    IF p_competence_flex_stru_code is NULL then
5579 
5580      return null;
5581 
5582    ELSIF p_competence_flex_stru_code = hr_api_g_varchar2 then
5583 
5584      return hr_api_g_number;
5585 
5586    ELSE
5587 
5588       select id_flex_num into l_competence_code
5589       from fnd_id_flex_structures
5590       where id_flex_structure_code = p_competence_flex_stru_code
5591       and   id_flex_code ='CMP';
5592    END IF;
5593 
5594    RETURN(l_competence_code);
5595 EXCEPTION
5596 WHEN OTHERS THEN
5597    hr_data_pump.fail('get_competence_flex_stru_num'
5598 		    , sqlerrm
5599  		    , p_competence_flex_stru_code
5600                     );
5601    RAISE;
5602 END get_competence_flex_stru_num;
5603 --
5604 --
5605 FUNCTION get_sec_group_id
5606   (p_data_pump_always_call      IN varchar2
5607   ,p_security_group_name  IN VARCHAR2
5608   )
5609 RETURN BINARY_INTEGER is
5610   l_get_sec_group_id number;
5611 begin
5612 
5613    IF p_security_group_name is NULL then
5614 
5615      return null;
5616 
5617    ELSIF p_security_group_name = hr_api_g_varchar2 then
5618 
5619      return hr_api_g_number;
5620 
5621    ELSE
5622 
5623       select security_group_id into l_get_sec_group_id
5624       from fnd_security_groups_tl
5625       where upper(security_group_name) = upper(p_security_group_name)
5626       and   language = userenv('LANG');
5627 
5628    END IF;
5629 
5630    RETURN(l_get_sec_group_id);
5631 EXCEPTION
5632 WHEN OTHERS THEN
5633    hr_data_pump.fail('get_sec_group_id'
5634 		    , sqlerrm
5635  		    , p_security_group_name
5636                     );
5637    RAISE;
5638 END get_sec_group_id;
5639 --
5640 FUNCTION get_security_profile_id
5641   (p_data_pump_always_call IN VARCHAR2
5642   ,p_security_profile_name IN VARCHAR2
5643   ,p_business_group_id     IN NUMBER
5644   )
5645 RETURN BINARY_INTEGER is
5646   l_sec_profile_id number;
5647 begin
5648 
5649    IF p_security_profile_name is NULL then
5650 
5651      return null;
5652 
5653    ELSIF p_security_profile_name = hr_api_g_varchar2 then
5654 
5655      return hr_api_g_number;
5656 
5657    ELSE
5658 
5659       select security_profile_id into l_sec_profile_id
5660       from per_security_profiles
5661       where upper(security_profile_name) = upper(p_security_profile_name)
5662       and   business_group_id            = p_business_group_id;
5663 
5664    END IF;
5665 
5666    RETURN(l_sec_profile_id);
5667 EXCEPTION
5668 WHEN OTHERS THEN
5669    hr_data_pump.fail('get_security_profile_id'
5670 		    , sqlerrm
5671  		    , p_security_profile_name
5672                     , p_business_group_id
5673                     );
5674    RAISE;
5675 END get_security_profile_id;
5676 --
5677 --
5678 FUNCTION get_parent_organization_id
5679   ( p_parent_organization_name in varchar2,
5680     p_business_group_id in number,
5681     p_effective_date    in date,
5682     p_language_code     in varchar2
5683   ) RETURN BINARY_INTEGER is
5684    l_organization_id number;
5685 BEGIN
5686    IF p_parent_organization_name is NULL then
5687 
5688      return null;
5689 
5690    ELSIF p_parent_organization_name = hr_api_g_varchar2 then
5691 
5692      return hr_api_g_number;
5693 
5694    ELSE
5695 
5696      select org.organization_id
5697      into   l_organization_id
5698      from   hr_all_organization_units org
5699      ,      hr_all_organization_units_tl orgtl
5700      where  orgtl.name = p_parent_organization_name
5701      and    orgtl.language = p_language_code
5702      and    org.organization_id = orgtl.organization_id
5703      and   (org.business_group_id = p_business_group_id
5704             or p_business_group_id is null);   --Bug 3823374
5705    END IF;
5706    return(l_organization_id);
5707 EXCEPTION
5708 WHEN OTHERS THEN
5709    hr_data_pump.fail('get_parent_organization_id', sqlerrm, p_parent_organization_name,
5710                      p_business_group_id, p_effective_date, p_language_code);
5711    raise;
5712 end get_parent_organization_id;
5713 --
5714 --
5715 FUNCTION get_child_organization_id
5716   (  p_child_organization_name in varchar2,
5717      p_business_group_id in number,
5718      p_effective_date    in date,
5719      p_language_code     in varchar2
5720   ) RETURN BINARY_INTEGER is
5721    l_organization_id number;
5722 BEGIN
5723    IF p_child_organization_name is NULL then
5724 
5725      return null;
5726 
5727    ELSIF p_child_organization_name = hr_api_g_varchar2 then
5728 
5729      return hr_api_g_number;
5730 
5731    ELSE
5732      select org.organization_id
5733      into   l_organization_id
5734      from   hr_all_organization_units org
5735      ,      hr_all_organization_units_tl orgtl
5736      where  orgtl.name = p_child_organization_name
5737      and    orgtl.language = p_language_code
5738      and    org.organization_id = orgtl.organization_id
5739      and   (org.business_group_id = p_business_group_id
5740             or p_business_group_id is null);    --Bug fix 3823374
5741    END IF;
5742    --
5743    return(l_organization_id);
5744 EXCEPTION
5745 WHEN OTHERS THEN
5746    hr_data_pump.fail('get_child_organization_id', sqlerrm, p_child_organization_name,
5747                      p_business_group_id, p_effective_date, p_language_code);
5748    raise;
5749 end get_child_organization_id;
5750 --
5751 --
5752 function get_person_extra_info_id
5753 (
5754    p_person_extra_info_user_key in varchar2
5755 ) return number is
5756    l_person_extra_info_id number;
5757 begin
5758    l_person_extra_info_id := user_key_to_id( p_person_extra_info_user_key );
5759    return(l_person_extra_info_id);
5760 exception
5761 when others then
5762    hr_data_pump.fail('get_person_extra_info_id', sqlerrm, p_person_extra_info_user_key);
5763    raise;
5764 end get_person_extra_info_id;
5765 --
5766 --
5767 function get_person_extra_info_ovn
5768 ( p_person_extra_info_user_key    in varchar2
5769 ) return number is
5770   l_ovn number;
5771 begin
5772    select pei.object_version_number
5773    into   l_ovn
5774    from   per_people_extra_info  pei,
5775           hr_pump_batch_line_user_keys key
5776    where  key.user_key_value       = p_person_extra_info_user_key
5777    and    pei.person_extra_info_id  = key.unique_key_id;
5778    return(l_ovn);
5779 exception
5780   when others then
5781     hr_data_pump.fail('get_person_extra_info_ovn', sqlerrm, p_person_extra_info_user_key);
5782     raise;
5783 end get_person_extra_info_ovn;
5784 
5785 --
5786 --
5787 /* GET_EMP_FED_TAX_INF_ID - requires user key */
5788 function GET_EMP_FED_TAX_INF_ID
5789 (
5790    P_EMP_FED_TAX_INF_USER_KEY in varchar2
5791 ) return number is
5792    l_emp_fed_tax_inf_id number;
5793 begin
5794    l_emp_fed_tax_inf_id := user_key_to_id( P_EMP_FED_TAX_INF_USER_KEY );
5795    return(l_emp_fed_tax_inf_id);
5796 exception
5797 when others then
5798    hr_data_pump.fail('GET_EMP_FED_TAX_INF_ID', sqlerrm, P_EMP_FED_TAX_INF_USER_KEY);
5799    raise;
5800 end GET_EMP_FED_TAX_INF_ID;
5801 
5802 
5803 --
5804 /* returns a Canada Employee federal tax Inf object version number */
5805 function GET_CA_EMP_FEDTAX_INF_OVN
5806 (
5807    P_EMP_FED_TAX_INF_USER_KEY in varchar2,
5808    p_effective_date  in date
5809 ) return number is
5810    l_ovn number;
5811 begin
5812    select rules.object_version_number
5813    into   l_ovn
5814    from   PAY_CA_EMP_FED_TAX_INFO_F   rules,
5815           hr_pump_batch_line_user_keys key
5816    where  key.user_key_value           = P_EMP_FED_TAX_INF_USER_KEY
5817    and    rules.EMP_FED_TAX_INF_ID    = key.unique_key_id
5818    and    p_effective_date between
5819           rules.effective_start_date and rules.effective_end_date;
5820    return(l_ovn);
5821 exception
5822 when others then
5823   hr_data_pump.fail('GET_CA_EMP_FEDTAX_INF_OVN', sqlerrm,
5824                     P_EMP_FED_TAX_INF_USER_KEY, p_effective_date);
5825   raise;
5826 end GET_CA_EMP_FEDTAX_INF_OVN;
5827 
5828 --
5829 --
5830 /* GET_EMP_PROVINCE_TAX_INF_ID - requires user key */
5831 function GET_EMP_PROVINCE_TAX_INF_ID
5832 (
5833    P_EMP_PROV_TAX_INF_USER_KEY in varchar2
5834 ) return number is
5835    l_emp_prov_tax_inf_id number;
5836 begin
5837    l_emp_prov_tax_inf_id := user_key_to_id( P_EMP_PROV_TAX_INF_USER_KEY );
5838    return(l_emp_prov_tax_inf_id);
5839 exception
5840 when others then
5841    hr_data_pump.fail('GET_EMP_PROVINCE_TAX_INF_ID', sqlerrm, P_EMP_PROV_TAX_INF_USER_KEY);
5842    raise;
5843 end GET_EMP_PROVINCE_TAX_INF_ID;
5844 
5845 
5846 --
5847 /* returns a Canada Employee federal tax Inf object version number */
5848 function GET_CA_EMP_PRVTAX_INF_OVN
5849 (
5850    P_EMP_PROV_TAX_INF_USER_KEY in varchar2,
5851    p_effective_date  in date
5852 ) return number is
5853    l_ovn number;
5854 begin
5855    select rules.object_version_number
5856    into   l_ovn
5857    from   PAY_CA_EMP_PROV_TAX_INFO_F   rules,
5858           hr_pump_batch_line_user_keys key
5859    where  key.user_key_value           = P_EMP_PROV_TAX_INF_USER_KEY
5860    and    rules.EMP_PROVINCE_TAX_INF_ID    = key.unique_key_id
5861    and    p_effective_date between
5862           rules.effective_start_date and rules.effective_end_date;
5863    return(l_ovn);
5864 exception
5865 when others then
5866   hr_data_pump.fail('GET_CA_EMP_PRVTAX_INF_OVN', sqlerrm,
5867                     P_EMP_PROV_TAX_INF_USER_KEY, p_effective_date);
5868   raise;
5869 end GET_CA_EMP_PRVTAX_INF_OVN;
5870 
5871 
5872 --
5873 /*
5874  *  Get ID initialisation section.
5875  */
5876 begin
5877    -- Initialise the debugging information structure.
5878    null;
5879 
5880 end hr_pump_get;