DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_EPO_SHD

Source


1 Package Body ben_epo_shd as
2 /* $Header: beeporhi.pkb 120.0 2005/05/28 02:42:27 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)    := '  ben_epo_shd.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |------------------------< return_api_dml_status >-------------------------|
12 -- ----------------------------------------------------------------------------
13 Function return_api_dml_status Return Boolean Is
14 --
15   l_proc     varchar2(72) := g_package||'return_api_dml_status';
16 --
17 Begin
18   hr_utility.set_location('Entering:'||l_proc, 5);
19   --
20   Return (nvl(g_api_dml, false));
21   --
22   hr_utility.set_location(' Leaving:'||l_proc, 10);
23 End return_api_dml_status;
24 --
25 -- ----------------------------------------------------------------------------
26 -- |---------------------------< constraint_error >---------------------------|
27 -- ----------------------------------------------------------------------------
28 Procedure constraint_error
29             (p_constraint_name in all_constraints.constraint_name%TYPE) Is
30 --
31   l_proc     varchar2(72) := g_package||'constraint_error';
32 --
33 Begin
34   hr_utility.set_location('Entering:'||l_proc, 5);
35   --
36   If (p_constraint_name = 'BEN_ELIG_PER_F_PK') Then
37     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
38     fnd_message.set_token('PROCEDURE', l_proc);
39     fnd_message.set_token('STEP','5');
40     fnd_message.raise_error;
41   ElsIf (p_constraint_name = 'BEN_ELIG_PER_OPT_FK1') Then
42     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
43     fnd_message.set_token('PROCEDURE', l_proc);
44     fnd_message.set_token('STEP','10');
45     fnd_message.raise_error;
46   Else
47     fnd_message.set_name('PAY', 'HR_7877_API_INVALID_CONSTRAINT');
48     fnd_message.set_token('PROCEDURE', l_proc);
49     fnd_message.set_token('CONSTRAINT_NAME', p_constraint_name);
50     fnd_message.raise_error;
51   End If;
52   --
53   hr_utility.set_location(' Leaving:'||l_proc, 10);
54 End constraint_error;
55 --
56 -- ----------------------------------------------------------------------------
57 -- |-----------------------------< api_updating >-----------------------------|
58 -- ----------------------------------------------------------------------------
59 Function api_updating
60   (p_effective_date        in date,
61    p_elig_per_opt_id        in number,
62    p_object_version_number    in number
63   ) Return Boolean Is
64 --
65   --
66   -- Cursor selects the 'current' row from the HR Schema
67   --
68   Cursor C_Sel1 is
69     select
70     elig_per_opt_id,
71     elig_per_id,
72     effective_start_date,
73     effective_end_date,
74     prtn_ovridn_flag,
75     prtn_ovridn_thru_dt,
76     no_mx_prtn_ovrid_thru_flag,
77     elig_flag,
78     prtn_strt_dt,
79     prtn_end_dt,
80     wait_perd_cmpltn_date,
81     wait_perd_strt_dt,
82     prtn_ovridn_rsn_cd,
83     pct_fl_tm_val,
84     opt_id,
85     per_in_ler_id,
86     rt_comp_ref_amt,
87     rt_cmbn_age_n_los_val,
88     rt_comp_ref_uom,
89     rt_age_val,
90     rt_los_val,
91     rt_hrs_wkd_val,
92     rt_hrs_wkd_bndry_perd_cd,
93     rt_age_uom,
94     rt_los_uom,
95     rt_pct_fl_tm_val,
96     rt_frz_los_flag,
97     rt_frz_age_flag,
98     rt_frz_cmp_lvl_flag,
99     rt_frz_pct_fl_tm_flag,
100     rt_frz_hrs_wkd_flag,
101     rt_frz_comb_age_and_los_flag,
102     comp_ref_amt,
103     cmbn_age_n_los_val,
104     comp_ref_uom,
105     age_val,
106     los_val,
107     hrs_wkd_val,
108     hrs_wkd_bndry_perd_cd,
109     age_uom,
110     los_uom,
111     frz_los_flag,
112     frz_age_flag,
113     frz_cmp_lvl_flag,
114     frz_pct_fl_tm_flag,
115     frz_hrs_wkd_flag,
116     frz_comb_age_and_los_flag,
117     ovrid_svc_dt,
118     inelg_rsn_cd,
119     once_r_cntug_cd,
120     oipl_ordr_num,
121     business_group_id,
122     epo_attribute_category,
123     epo_attribute1,
124     epo_attribute2,
125     epo_attribute3,
126     epo_attribute4,
127     epo_attribute5,
128     epo_attribute6,
129     epo_attribute7,
130     epo_attribute8,
131     epo_attribute9,
132     epo_attribute10,
133     epo_attribute11,
134     epo_attribute12,
135     epo_attribute13,
136     epo_attribute14,
137     epo_attribute15,
138     epo_attribute16,
139     epo_attribute17,
140     epo_attribute18,
141     epo_attribute19,
142     epo_attribute20,
143     epo_attribute21,
144     epo_attribute22,
145     epo_attribute23,
146     epo_attribute24,
147     epo_attribute25,
148     epo_attribute26,
149     epo_attribute27,
150     epo_attribute28,
151     epo_attribute29,
152     epo_attribute30,
153     request_id,
154     program_application_id,
155     program_id,
156     program_update_date,
157     object_version_number
158     from    ben_elig_per_opt_f
159     where    elig_per_opt_id = p_elig_per_opt_id
160     and        p_effective_date
161     between    effective_start_date and effective_end_date;
162 --
163   l_proc    varchar2(72)    := g_package||'api_updating';
164   l_fct_ret    boolean;
165 --
166 Begin
167 /*
168   hr_utility.set_location('Entering:'||l_proc, 5);
169 */
170   --
171   If (p_effective_date is null or
172       p_elig_per_opt_id is null or
173       p_object_version_number is null) Then
174     --
175     -- One of the primary key arguments is null therefore we must
176     -- set the returning function value to false
177     --
178     l_fct_ret := false;
179   Else
180     If (p_elig_per_opt_id = g_old_rec.elig_per_opt_id and
181         p_object_version_number = g_old_rec.object_version_number) Then
182 /*
183       hr_utility.set_location(l_proc, 10);
184 */
185       --
186       -- The g_old_rec is current therefore we must
187       -- set the returning function to true
188       --
189       l_fct_ret := true;
190     Else
191       --
192       -- Select the current row
193       --
194       Open C_Sel1;
195       Fetch C_Sel1 Into g_old_rec;
196       If C_Sel1%notfound Then
197         Close C_Sel1;
198         --
199         -- The primary key is invalid therefore we must error
200         --
201         fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
202         fnd_message.raise_error;
203       End If;
204       Close C_Sel1;
205       If (p_object_version_number <> g_old_rec.object_version_number) Then
206         fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
207         fnd_message.raise_error;
208       End If;
209 /*
210       hr_utility.set_location(l_proc, 15);
211 */
212       l_fct_ret := true;
213     End If;
214   End If;
215 /*
216   hr_utility.set_location(' Leaving:'||l_proc, 20);
217 */
218   Return (l_fct_ret);
219 --
220 End api_updating;
221 --
222 -- ----------------------------------------------------------------------------
223 -- |--------------------------< find_dt_del_modes >---------------------------|
224 -- ----------------------------------------------------------------------------
225 Procedure find_dt_del_modes
226     (p_effective_date    in  date,
227      p_base_key_value    in  number,
228      p_zap            out nocopy boolean,
229      p_delete        out nocopy boolean,
230      p_future_change    out nocopy boolean,
231      p_delete_next_change    out nocopy boolean) is
232 --
233   l_proc         varchar2(72)     := g_package||'find_dt_del_modes';
234 --
235   l_parent_key_value1    number;
236   l_parent_key_value2    number;
237   --
238   Cursor C_Sel1 Is
239     select  t.elig_per_id,
240             t.opt_id
241     from    ben_elig_per_opt_f t
242     where   t.elig_per_opt_id = p_base_key_value
243     and     p_effective_date
244     between t.effective_start_date and t.effective_end_date;
245 --
246 Begin
247   hr_utility.set_location('Entering:'||l_proc, 5);
248   Open  C_Sel1;
249   Fetch C_Sel1 Into l_parent_key_value1,
250             l_parent_key_value2;
251   If C_Sel1%notfound then
252     Close C_Sel1;
253     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
254     fnd_message.set_token('PROCEDURE', l_proc);
255     fnd_message.set_token('STEP','10');
256     fnd_message.raise_error;
257   End If;
258   Close C_Sel1;
259   --
260   -- Call the corresponding datetrack api
261   --
262   dt_api.find_dt_del_modes
263     (p_effective_date    => p_effective_date,
264      p_base_table_name    => 'ben_elig_per_opt_f',
265      p_base_key_column    => 'elig_per_opt_id',
266      p_base_key_value    => p_base_key_value,
267      p_parent_table_name1    => 'ben_elig_per_f',
268      p_parent_key_column1    => 'elig_per_id',
269      p_parent_key_value1    => l_parent_key_value1,
270      p_parent_table_name2    => 'ben_opt_f',
271      p_parent_key_column2    => 'opt_id',
272      p_parent_key_value2    => l_parent_key_value2,
273      p_zap            => p_zap,
274      p_delete        => p_delete,
275      p_future_change    => p_future_change,
276      p_delete_next_change    => p_delete_next_change);
277   --
278   hr_utility.set_location(' Leaving:'||l_proc, 10);
279 End find_dt_del_modes;
280 --
281 -- ----------------------------------------------------------------------------
282 -- |--------------------------< find_dt_upd_modes >---------------------------|
283 -- ----------------------------------------------------------------------------
284 Procedure find_dt_upd_modes
285     (p_effective_date    in  date,
286      p_base_key_value    in  number,
287      p_correction        out nocopy boolean,
288      p_update        out nocopy boolean,
289      p_update_override    out nocopy boolean,
290      p_update_change_insert    out nocopy boolean) is
291 --
292   l_proc     varchar2(72) := g_package||'find_dt_upd_modes';
293 --
294 Begin
295   hr_utility.set_location('Entering:'||l_proc, 5);
296   --
297   -- Call the corresponding datetrack api
298   --
299   dt_api.find_dt_upd_modes
300     (p_effective_date    => p_effective_date,
301      p_base_table_name    => 'ben_elig_per_opt_f',
302      p_base_key_column    => 'elig_per_opt_id',
303      p_base_key_value    => p_base_key_value,
304      p_correction        => p_correction,
305      p_update        => p_update,
306      p_update_override    => p_update_override,
307      p_update_change_insert    => p_update_change_insert);
308   --
309   hr_utility.set_location(' Leaving:'||l_proc, 10);
310 End find_dt_upd_modes;
311 --
312 -- ----------------------------------------------------------------------------
313 -- |------------------------< upd_effective_end_date >------------------------|
314 -- ----------------------------------------------------------------------------
315 Procedure upd_effective_end_date
316     (p_effective_date        in date,
317      p_base_key_value        in number,
318      p_new_effective_end_date    in date,
319      p_validation_start_date    in date,
320      p_validation_end_date        in date,
321          p_object_version_number       out nocopy number) is
322 --
323   l_proc           varchar2(72) := g_package||'upd_effective_end_date';
324   l_object_version_number number;
325 --
326 Begin
327   hr_utility.set_location('Entering:'||l_proc, 5);
328   --
329   -- Because we are updating a row we must get the next object
330   -- version number.
331   --
332   l_object_version_number :=
333     dt_api.get_object_version_number
334     (p_base_table_name    => 'ben_elig_per_opt_f',
335      p_base_key_column    => 'elig_per_opt_id',
336      p_base_key_value    => p_base_key_value);
337   --
338   hr_utility.set_location(l_proc, 10);
339   g_api_dml := true;  -- Set the api dml status
340   --
341   -- Update the specified datetrack row setting the effective
342   -- end date to the specified new effective end date.
343   --
344   update  ben_elig_per_opt_f t
345   set      t.effective_end_date      = p_new_effective_end_date,
346       t.object_version_number = l_object_version_number
347   where      t.elig_per_opt_id      = p_base_key_value
348   and      p_effective_date
349   between t.effective_start_date and t.effective_end_date;
350   --
351   g_api_dml := false;   -- Unset the api dml status
352   p_object_version_number := l_object_version_number;
353   hr_utility.set_location(' Leaving:'||l_proc, 15);
354 --
355 Exception
356   When Others Then
357     g_api_dml := false;   -- Unset the api dml status
358     Raise;
359 End upd_effective_end_date;
360 --
361 -- ----------------------------------------------------------------------------
362 -- |---------------------------------< lck >----------------------------------|
363 -- ----------------------------------------------------------------------------
364 Procedure lck
365     (p_effective_date     in  date,
366      p_datetrack_mode     in  varchar2,
367      p_elig_per_opt_id     in  number,
368      p_object_version_number in  number,
369      p_validation_start_date out nocopy date,
370      p_validation_end_date     out nocopy date) is
371 --
372   l_proc          varchar2(72) := g_package||'lck';
373   l_validation_start_date date;
374   l_validation_end_date      date;
375   l_object_invalid       exception;
376   l_argument          varchar2(30);
377   --
378   -- Cursor C_Sel1 selects the current locked row as of session date
379   -- ensuring that the object version numbers match.
380   --
381   Cursor C_Sel1 is
382     select
383     elig_per_opt_id,
384     elig_per_id,
385     effective_start_date,
386     effective_end_date,
387     prtn_ovridn_flag,
388     prtn_ovridn_thru_dt,
389     no_mx_prtn_ovrid_thru_flag,
390     elig_flag,
391     prtn_strt_dt,
392     prtn_end_dt,
393     wait_perd_cmpltn_date,
394     wait_perd_strt_dt,
395     prtn_ovridn_rsn_cd,
396     pct_fl_tm_val,
397     opt_id,
398     per_in_ler_id,
399     rt_comp_ref_amt,
400     rt_cmbn_age_n_los_val,
401     rt_comp_ref_uom,
402     rt_age_val,
403     rt_los_val,
404     rt_hrs_wkd_val,
405     rt_hrs_wkd_bndry_perd_cd,
406     rt_age_uom,
407     rt_los_uom,
408     rt_pct_fl_tm_val,
409     rt_frz_los_flag,
410     rt_frz_age_flag,
411     rt_frz_cmp_lvl_flag,
412     rt_frz_pct_fl_tm_flag,
413     rt_frz_hrs_wkd_flag,
414     rt_frz_comb_age_and_los_flag,
415     comp_ref_amt,
416     cmbn_age_n_los_val,
417     comp_ref_uom,
418     age_val,
419     los_val,
420     hrs_wkd_val,
421     hrs_wkd_bndry_perd_cd,
422     age_uom,
423     los_uom,
424     frz_los_flag,
425     frz_age_flag,
426     frz_cmp_lvl_flag,
427     frz_pct_fl_tm_flag,
428     frz_hrs_wkd_flag,
429     frz_comb_age_and_los_flag,
430     ovrid_svc_dt,
431     inelg_rsn_cd,
432     once_r_cntug_cd,
433     oipl_ordr_num,
434     business_group_id,
435     epo_attribute_category,
436     epo_attribute1,
437     epo_attribute2,
438     epo_attribute3,
439     epo_attribute4,
440     epo_attribute5,
441     epo_attribute6,
442     epo_attribute7,
443     epo_attribute8,
444     epo_attribute9,
445     epo_attribute10,
446     epo_attribute11,
447     epo_attribute12,
448     epo_attribute13,
452     epo_attribute17,
449     epo_attribute14,
450     epo_attribute15,
451     epo_attribute16,
453     epo_attribute18,
454     epo_attribute19,
455     epo_attribute20,
456     epo_attribute21,
457     epo_attribute22,
458     epo_attribute23,
459     epo_attribute24,
460     epo_attribute25,
461     epo_attribute26,
462     epo_attribute27,
463     epo_attribute28,
464     epo_attribute29,
465     epo_attribute30,
466     request_id,
467     program_application_id,
468     program_id,
469     program_update_date,
470     object_version_number
471     from    ben_elig_per_opt_f
472     where   elig_per_opt_id         = p_elig_per_opt_id
473     and        p_effective_date
474     between effective_start_date and effective_end_date
475     for update nowait;
476   --
477   --
478   --
479 Begin
480   hr_utility.set_location('Entering:'||l_proc, 5);
481   --
482   -- Ensure that all the mandatory arguments are not null
483   --
484   hr_api.mandatory_arg_error(p_api_name       => l_proc,
485                              p_argument       => 'effective_date',
486                              p_argument_value => p_effective_date);
487   --
488   hr_api.mandatory_arg_error(p_api_name       => l_proc,
489                              p_argument       => 'datetrack_mode',
490                              p_argument_value => p_datetrack_mode);
491   --
492   hr_api.mandatory_arg_error(p_api_name       => l_proc,
493                              p_argument       => 'elig_per_opt_id',
494                              p_argument_value => p_elig_per_opt_id);
495   --
496   hr_api.mandatory_arg_error(p_api_name       => l_proc,
497                              p_argument       => 'object_version_number',
498                              p_argument_value => p_object_version_number);
499   --
500   -- Check to ensure the datetrack mode is not INSERT.
501   --
502   If (p_datetrack_mode <> 'INSERT') then
503     --
504     -- We must select and lock the current row.
505     --
506     Open  C_Sel1;
507     Fetch C_Sel1 Into g_old_rec;
508     If C_Sel1%notfound then
509       Close C_Sel1;
510       --
511       -- The primary key is invalid therefore we must error
512       --
513       fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
514       fnd_message.raise_error;
515     End If;
516     Close C_Sel1;
517     If (p_object_version_number <> g_old_rec.object_version_number) Then
518         fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
519         fnd_message.raise_error;
520       End If;
521     hr_utility.set_location(l_proc, 15);
522     --
523     --
524     -- Validate the datetrack mode mode getting the validation start
525     -- and end dates for the specified datetrack operation.
526     --
527     dt_api.validate_dt_mode
528     (p_effective_date       => p_effective_date,
529      p_datetrack_mode       => p_datetrack_mode,
530      p_base_table_name       => 'ben_elig_per_opt_f',
531      p_base_key_column       => 'elig_per_opt_id',
532      p_base_key_value        => p_elig_per_opt_id,
533      p_parent_table_name1      => 'ben_elig_per_f',
534      p_parent_key_column1      => 'elig_per_id',
535      p_parent_key_value1       => g_old_rec.elig_per_id,
536      p_parent_table_name2      => 'ben_opt_f',
537      p_parent_key_column2      => 'opt_id',
538      p_parent_key_value2       => g_old_rec.opt_id,
539      p_enforce_foreign_locking => false,
540      p_validation_start_date   => l_validation_start_date,
541      p_validation_end_date       => l_validation_end_date);
542     --
543   Else
544     --
545     -- We are doing a datetrack 'INSERT' which is illegal within this
546     -- procedure therefore we must error (note: to lck on insert the
547     -- private procedure ins_lck should be called).
548     --
549     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
550     fnd_message.set_token('PROCEDURE', l_proc);
551     fnd_message.set_token('STEP','20');
552     fnd_message.raise_error;
553   End If;
554   --
555   -- Set the validation start and end date OUT arguments
556   --
557   p_validation_start_date := l_validation_start_date;
558   p_validation_end_date   := l_validation_end_date;
559   --
560   hr_utility.set_location(' Leaving:'||l_proc, 30);
561 --
562 -- We need to trap the ORA LOCK exception
563 --
564 Exception
565   When HR_Api.Object_Locked then
566     --
567     -- The object is locked therefore we need to supply a meaningful
568     -- error message.
569     --
570     fnd_message.set_name('PAY', 'HR_7165_OBJECT_LOCKED');
571     fnd_message.set_token('TABLE_NAME', 'ben_elig_per_opt_f');
572     fnd_message.raise_error;
573   When l_object_invalid then
574     --
575     -- The object doesn't exist or is invalid
576     --
577     fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
578     fnd_message.set_token('TABLE_NAME', 'ben_elig_per_opt_f');
579     fnd_message.raise_error;
580 End lck;
581 --
582 -- ----------------------------------------------------------------------------
583 -- |-----------------------------< convert_args >-----------------------------|
584 -- ----------------------------------------------------------------------------
585 Function convert_args
589     p_effective_start_date          in date,
586     (
587     p_elig_per_opt_id               in number,
588     p_elig_per_id                   in number,
590     p_effective_end_date            in date,
591     p_prtn_ovridn_flag              in varchar2,
592     p_prtn_ovridn_thru_dt           in date,
593     p_no_mx_prtn_ovrid_thru_flag    in varchar2,
594     p_elig_flag                     in varchar2,
595     p_prtn_strt_dt                  in date,
596     p_prtn_end_dt                   in date,
597     p_wait_perd_cmpltn_date           in date,
598     p_wait_perd_strt_dt             in date,
599     p_prtn_ovridn_rsn_cd            in varchar2,
600     p_pct_fl_tm_val                 in number,
601     p_opt_id                        in number,
602     p_per_in_ler_id                 in number,
603     p_rt_comp_ref_amt               in number,
604     p_rt_cmbn_age_n_los_val         in number,
605     p_rt_comp_ref_uom               in varchar2,
606     p_rt_age_val                    in number,
607     p_rt_los_val                    in number,
608     p_rt_hrs_wkd_val                in number,
609     p_rt_hrs_wkd_bndry_perd_cd      in varchar2,
610     p_rt_age_uom                    in varchar2,
611     p_rt_los_uom                    in varchar2,
612     p_rt_pct_fl_tm_val              in number,
613     p_rt_frz_los_flag               in varchar2,
614     p_rt_frz_age_flag               in varchar2,
615     p_rt_frz_cmp_lvl_flag           in varchar2,
616     p_rt_frz_pct_fl_tm_flag         in varchar2,
617     p_rt_frz_hrs_wkd_flag           in varchar2,
618     p_rt_frz_comb_age_and_los_flag  in varchar2,
619     p_comp_ref_amt                  in number,
620     p_cmbn_age_n_los_val            in number,
621     p_comp_ref_uom                  in varchar2,
622     p_age_val                       in number,
623     p_los_val                       in number,
624     p_hrs_wkd_val                   in number,
625     p_hrs_wkd_bndry_perd_cd         in varchar2,
626     p_age_uom                       in varchar2,
627     p_los_uom                       in varchar2,
628     p_frz_los_flag                  in varchar2,
629     p_frz_age_flag                  in varchar2,
630     p_frz_cmp_lvl_flag              in varchar2,
631     p_frz_pct_fl_tm_flag            in varchar2,
632     p_frz_hrs_wkd_flag              in varchar2,
633     p_frz_comb_age_and_los_flag     in varchar2,
634     p_ovrid_svc_dt                  in date,
635     p_inelg_rsn_cd                  in varchar2,
636     p_once_r_cntug_cd               in varchar2,
637     p_oipl_ordr_num                 in number,
638     p_business_group_id             in number,
639     p_epo_attribute_category        in varchar2,
640     p_epo_attribute1                in varchar2,
641     p_epo_attribute2                in varchar2,
642     p_epo_attribute3                in varchar2,
643     p_epo_attribute4                in varchar2,
644     p_epo_attribute5                in varchar2,
645     p_epo_attribute6                in varchar2,
646     p_epo_attribute7                in varchar2,
647     p_epo_attribute8                in varchar2,
648     p_epo_attribute9                in varchar2,
649     p_epo_attribute10               in varchar2,
650     p_epo_attribute11               in varchar2,
651     p_epo_attribute12               in varchar2,
652     p_epo_attribute13               in varchar2,
653     p_epo_attribute14               in varchar2,
654     p_epo_attribute15               in varchar2,
655     p_epo_attribute16               in varchar2,
656     p_epo_attribute17               in varchar2,
657     p_epo_attribute18               in varchar2,
658     p_epo_attribute19               in varchar2,
659     p_epo_attribute20               in varchar2,
660     p_epo_attribute21               in varchar2,
661     p_epo_attribute22               in varchar2,
662     p_epo_attribute23               in varchar2,
663     p_epo_attribute24               in varchar2,
664     p_epo_attribute25               in varchar2,
665     p_epo_attribute26               in varchar2,
666     p_epo_attribute27               in varchar2,
667     p_epo_attribute28               in varchar2,
668     p_epo_attribute29               in varchar2,
669     p_epo_attribute30               in varchar2,
670     p_request_id                    in number,
671     p_program_application_id        in number,
672     p_program_id                    in number,
673     p_program_update_date           in date,
674     p_object_version_number         in number
675     )
676     Return g_rec_type is
677 --
678   l_rec      g_rec_type;
679   l_proc  varchar2(72) := g_package||'convert_args';
680 --
681 Begin
682   --
683   hr_utility.set_location('Entering:'||l_proc, 5);
684   --
685   -- Convert arguments into local l_rec structure.
686   --
687   l_rec.elig_per_opt_id                  := p_elig_per_opt_id;
688   l_rec.elig_per_id                      := p_elig_per_id;
689   l_rec.effective_start_date             := p_effective_start_date;
690   l_rec.effective_end_date               := p_effective_end_date;
691   l_rec.prtn_ovridn_flag                 := p_prtn_ovridn_flag;
692   l_rec.prtn_ovridn_thru_dt              := p_prtn_ovridn_thru_dt;
693   l_rec.no_mx_prtn_ovrid_thru_flag       := p_no_mx_prtn_ovrid_thru_flag;
694   l_rec.elig_flag                        := p_elig_flag;
695   l_rec.prtn_strt_dt                     := p_prtn_strt_dt;
699   l_rec.prtn_ovridn_rsn_cd               := p_prtn_ovridn_rsn_cd;
696   l_rec.prtn_end_dt                      := p_prtn_end_dt;
697   l_rec.wait_perd_cmpltn_date              := p_wait_perd_cmpltn_date;
698   l_rec.wait_perd_strt_dt                := p_wait_perd_strt_dt ;
700   l_rec.pct_fl_tm_val                    := p_pct_fl_tm_val;
701   l_rec.opt_id                           := p_opt_id;
702   l_rec.per_in_ler_id                    := p_per_in_ler_id;
703   l_rec.rt_comp_ref_amt                  := p_rt_comp_ref_amt;
704   l_rec.rt_cmbn_age_n_los_val            := p_rt_cmbn_age_n_los_val;
705   l_rec.rt_comp_ref_uom                  := p_rt_comp_ref_uom;
706   l_rec.rt_age_val                       := p_rt_age_val;
707   l_rec.rt_los_val                       := p_rt_los_val;
708   l_rec.rt_hrs_wkd_val                   := p_rt_hrs_wkd_val;
709   l_rec.rt_hrs_wkd_bndry_perd_cd         := p_rt_hrs_wkd_bndry_perd_cd;
710   l_rec.rt_age_uom                       := p_rt_age_uom;
711   l_rec.rt_los_uom                       := p_rt_los_uom;
712   l_rec.rt_pct_fl_tm_val                 := p_rt_pct_fl_tm_val;
713   l_rec.rt_frz_los_flag                  := p_rt_frz_los_flag;
714   l_rec.rt_frz_age_flag                  := p_rt_frz_age_flag;
715   l_rec.rt_frz_cmp_lvl_flag              := p_rt_frz_cmp_lvl_flag;
716   l_rec.rt_frz_pct_fl_tm_flag            := p_rt_frz_pct_fl_tm_flag;
717   l_rec.rt_frz_hrs_wkd_flag              := p_rt_frz_hrs_wkd_flag;
718   l_rec.rt_frz_comb_age_and_los_flag     := p_rt_frz_comb_age_and_los_flag;
719   l_rec.comp_ref_amt                     := p_comp_ref_amt;
720   l_rec.cmbn_age_n_los_val               := p_cmbn_age_n_los_val;
721   l_rec.comp_ref_uom                     := p_comp_ref_uom;
722   l_rec.age_val                          := p_age_val;
723   l_rec.los_val                          := p_los_val;
724   l_rec.hrs_wkd_val                      := p_hrs_wkd_val;
725   l_rec.hrs_wkd_bndry_perd_cd            := p_hrs_wkd_bndry_perd_cd;
726   l_rec.age_uom                          := p_age_uom;
727   l_rec.los_uom                          := p_los_uom;
728   l_rec.frz_los_flag                     := p_frz_los_flag;
729   l_rec.frz_age_flag                     := p_frz_age_flag;
730   l_rec.frz_cmp_lvl_flag                 := p_frz_cmp_lvl_flag;
731   l_rec.frz_pct_fl_tm_flag               := p_frz_pct_fl_tm_flag;
732   l_rec.frz_hrs_wkd_flag                 := p_frz_hrs_wkd_flag;
733   l_rec.frz_comb_age_and_los_flag        := p_frz_comb_age_and_los_flag;
734   l_rec.ovrid_svc_dt                     := p_ovrid_svc_dt;
735   l_rec.inelg_rsn_cd                     := p_inelg_rsn_cd;
736   l_rec.once_r_cntug_cd                  := p_once_r_cntug_cd;
737   l_rec.oipl_ordr_num                    := p_oipl_ordr_num;
738   l_rec.business_group_id                := p_business_group_id;
739   l_rec.epo_attribute_category           := p_epo_attribute_category;
740   l_rec.epo_attribute1                   := p_epo_attribute1;
741   l_rec.epo_attribute2                   := p_epo_attribute2;
742   l_rec.epo_attribute3                   := p_epo_attribute3;
743   l_rec.epo_attribute4                   := p_epo_attribute4;
744   l_rec.epo_attribute5                   := p_epo_attribute5;
745   l_rec.epo_attribute6                   := p_epo_attribute6;
746   l_rec.epo_attribute7                   := p_epo_attribute7;
747   l_rec.epo_attribute8                   := p_epo_attribute8;
748   l_rec.epo_attribute9                   := p_epo_attribute9;
749   l_rec.epo_attribute10                  := p_epo_attribute10;
750   l_rec.epo_attribute11                  := p_epo_attribute11;
751   l_rec.epo_attribute12                  := p_epo_attribute12;
752   l_rec.epo_attribute13                  := p_epo_attribute13;
753   l_rec.epo_attribute14                  := p_epo_attribute14;
754   l_rec.epo_attribute15                  := p_epo_attribute15;
755   l_rec.epo_attribute16                  := p_epo_attribute16;
756   l_rec.epo_attribute17                  := p_epo_attribute17;
757   l_rec.epo_attribute18                  := p_epo_attribute18;
758   l_rec.epo_attribute19                  := p_epo_attribute19;
759   l_rec.epo_attribute20                  := p_epo_attribute20;
760   l_rec.epo_attribute21                  := p_epo_attribute21;
761   l_rec.epo_attribute22                  := p_epo_attribute22;
762   l_rec.epo_attribute23                  := p_epo_attribute23;
763   l_rec.epo_attribute24                  := p_epo_attribute24;
764   l_rec.epo_attribute25                  := p_epo_attribute25;
765   l_rec.epo_attribute26                  := p_epo_attribute26;
766   l_rec.epo_attribute27                  := p_epo_attribute27;
767   l_rec.epo_attribute28                  := p_epo_attribute28;
768   l_rec.epo_attribute29                  := p_epo_attribute29;
769   l_rec.epo_attribute30                  := p_epo_attribute30;
770   l_rec.request_id             := p_request_id;
771   l_rec.program_application_id         := p_program_application_id;
772   l_rec.program_id             := p_program_id;
773   l_rec.program_update_date         := p_program_update_date;
774   l_rec.object_version_number            := p_object_version_number;
775   --
776   -- Return the plsql record structure.
777   --
778   hr_utility.set_location(' Leaving:'||l_proc, 10);
779   Return(l_rec);
780 --
781 End convert_args;
782 --
783 end ben_epo_shd;