DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_APR_SHD

Source


4 -- ----------------------------------------------------------------------------
1 Package Body ben_apr_shd as
2 /* $Header: beaprrhi.pkb 120.0 2005/05/28 00:26:53 appldev noship $ */
3 --
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  ben_apr_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_ACTL_PREM_FK1') Then
37     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
41   ElsIf (p_constraint_name = 'BEN_ACTL_PREM_FK3') Then
38     fnd_message.set_token('PROCEDURE', l_proc);
39     fnd_message.set_token('STEP','5');
40     fnd_message.raise_error;
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   ElsIf (p_constraint_name = 'BEN_ACTL_PREM_F_PK') Then
47     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
48     fnd_message.set_token('PROCEDURE', l_proc);
49     fnd_message.set_token('STEP','15');
50     fnd_message.raise_error;
51   Else
52     fnd_message.set_name('PAY', 'HR_7877_API_INVALID_CONSTRAINT');
53     fnd_message.set_token('PROCEDURE', l_proc);
54     fnd_message.set_token('CONSTRAINT_NAME', p_constraint_name);
55     fnd_message.raise_error;
56   End If;
57   --
58   hr_utility.set_location(' Leaving:'||l_proc, 10);
59 End constraint_error;
60 --
61 -- ----------------------------------------------------------------------------
62 -- |-----------------------------< api_updating >-----------------------------|
63 -- ----------------------------------------------------------------------------
64 Function api_updating
65   (p_effective_date		in date,
66    p_actl_prem_id		in number,
67    p_object_version_number	in number
68   ) Return Boolean Is
69 --
70   --
71   -- Cursor selects the 'current' row from the HR Schema
72   --
73   Cursor C_Sel1 is
74     select
75 	actl_prem_id,
76 	effective_start_date,
77 	effective_end_date,
78 	name,
79 	acty_ref_perd_cd,
80 	uom,
81 	rt_typ_cd,
82 	bnft_rt_typ_cd,
83 	val,
84 	mlt_cd,
85 	prdct_cd,
86 	rndg_cd,
87 	rndg_rl,
88         val_calc_rl,
89 	prem_asnmt_cd,
90 	prem_asnmt_lvl_cd,
91 	actl_prem_typ_cd,
92 	prem_pyr_cd,
93 	cr_lkbk_val,
94 	cr_lkbk_uom,
95 	cr_lkbk_crnt_py_only_flag,
96 	prsptv_r_rtsptv_cd,
97 	upr_lmt_val,
98 	upr_lmt_calc_rl,
99 	lwr_lmt_val,
100 	lwr_lmt_calc_rl,
101 	cost_allocation_keyflex_id,
102 	organization_id,
103 	oipl_id,
104 	pl_id,
105 	comp_lvl_fctr_id,
106 	business_group_id,
107         prtl_mo_det_mthd_cd,
108         prtl_mo_det_mthd_rl,
109         wsh_rl_dy_mo_num,
110         vrbl_rt_add_on_calc_rl,
111 	apr_attribute_category,
112 	apr_attribute1,
113 	apr_attribute2,
114 	apr_attribute3,
115 	apr_attribute4,
116 	apr_attribute5,
117 	apr_attribute6,
118 	apr_attribute7,
119 	apr_attribute8,
120 	apr_attribute9,
121 	apr_attribute10,
122 	apr_attribute11,
123 	apr_attribute12,
124 	apr_attribute13,
125 	apr_attribute14,
126 	apr_attribute15,
127 	apr_attribute16,
128 	apr_attribute17,
129 	apr_attribute18,
130 	apr_attribute19,
131 	apr_attribute20,
132 	apr_attribute21,
133 	apr_attribute22,
134 	apr_attribute23,
135 	apr_attribute24,
136 	apr_attribute25,
137 	apr_attribute26,
138 	apr_attribute27,
139 	apr_attribute28,
140 	apr_attribute29,
141 	apr_attribute30,
142 	object_version_number
143     from	ben_actl_prem_f
144     where	actl_prem_id = p_actl_prem_id
145     and		p_effective_date
146     between	effective_start_date and effective_end_date;
147 --
148   l_proc	varchar2(72)	:= g_package||'api_updating';
149   l_fct_ret	boolean;
150 --
151 Begin
152   hr_utility.set_location('Entering:'||l_proc, 5);
153   --
154   If (p_effective_date is null or
155       p_actl_prem_id is null or
156       p_object_version_number is null) Then
157     --
158     -- One of the primary key arguments is null therefore we must
159     -- set the returning function value to false
160     --
161     l_fct_ret := false;
162   Else
163     If (p_actl_prem_id = g_old_rec.actl_prem_id and
164         p_object_version_number = g_old_rec.object_version_number) Then
165       hr_utility.set_location(l_proc, 10);
166       --
167       -- The g_old_rec is current therefore we must
168       -- set the returning function to true
169       --
170       l_fct_ret := true;
171     Else
172       --
173       -- Select the current row
174       --
175       Open C_Sel1;
176       Fetch C_Sel1 Into g_old_rec;
177       If C_Sel1%notfound Then
178         Close C_Sel1;
179         --
180         -- The primary key is invalid therefore we must error
181         --
182         fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
183         fnd_message.raise_error;
184       End If;
185       Close C_Sel1;
186       If (p_object_version_number <> g_old_rec.object_version_number) Then
187         fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
188         fnd_message.raise_error;
189       End If;
190       hr_utility.set_location(l_proc, 15);
191       l_fct_ret := true;
192     End If;
193   End If;
194   hr_utility.set_location(' Leaving:'||l_proc, 20);
195   Return (l_fct_ret);
196 --
197 End api_updating;
198 --
199 -- ----------------------------------------------------------------------------
200 -- |--------------------------< find_dt_del_modes >---------------------------|
201 -- ----------------------------------------------------------------------------
202 Procedure find_dt_del_modes
203 	(p_effective_date	in  date,
204 	 p_base_key_value	in  number,
205 	 p_zap		 out nocopy boolean,
206 	 p_delete	 out nocopy boolean,
210   l_proc 		varchar2(72) 	:= g_package||'find_dt_del_modes';
207 	 p_future_change out nocopy boolean,
208 	 p_delete_next_change out nocopy boolean) is
209 --
211 --
212   l_parent_key_value1	number;
213   --
214   Cursor C_Sel1 Is
215     select  t.comp_lvl_fctr_id
216     from    ben_actl_prem_f t
217     where   t.actl_prem_id = p_base_key_value
218     and     p_effective_date
219     between t.effective_start_date and t.effective_end_date;
220 --
221 Begin
222   hr_utility.set_location('Entering:'||l_proc, 5);
223   Open  C_Sel1;
224   Fetch C_Sel1 Into l_parent_key_value1;
225   If C_Sel1%notfound then
226     Close C_Sel1;
227     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
228     fnd_message.set_token('PROCEDURE', l_proc);
229     fnd_message.set_token('STEP','10');
230     fnd_message.raise_error;
231   End If;
232   Close C_Sel1;
233   --
234   -- Call the corresponding datetrack api
235   --
236   dt_api.find_dt_del_modes
237 	(p_effective_date	=> p_effective_date,
238 	 p_base_table_name	=> 'ben_actl_prem_f',
239 	 p_base_key_column	=> 'actl_prem_id',
240 	 p_base_key_value	=> p_base_key_value,
241 --	 p_parent_table_name1	=> 'ben_comp_lvl_fctr',
242 --	 p_parent_key_column1	=> 'comp_lvl_fctr_id',
243 --	 p_parent_key_value1	=> l_parent_key_value1,
244 	 p_zap			=> p_zap,
245 	 p_delete		=> p_delete,
246 	 p_future_change	=> p_future_change,
247 	 p_delete_next_change	=> p_delete_next_change);
248   --
249   hr_utility.set_location(' Leaving:'||l_proc, 10);
250 End find_dt_del_modes;
251 --
252 -- ----------------------------------------------------------------------------
253 -- |--------------------------< find_dt_upd_modes >---------------------------|
254 -- ----------------------------------------------------------------------------
255 Procedure find_dt_upd_modes
256 	(p_effective_date	in  date,
257 	 p_base_key_value	in  number,
258 	 p_correction	 out nocopy boolean,
259 	 p_update	 out nocopy boolean,
260 	 p_update_override out nocopy boolean,
261 	 p_update_change_insert out nocopy boolean) is
262 --
263   l_proc 	varchar2(72) := g_package||'find_dt_upd_modes';
264 --
265 Begin
266   hr_utility.set_location('Entering:'||l_proc, 5);
267   --
268   -- Call the corresponding datetrack api
269   --
270   dt_api.find_dt_upd_modes
271 	(p_effective_date	=> p_effective_date,
272 	 p_base_table_name	=> 'ben_actl_prem_f',
273 	 p_base_key_column	=> 'actl_prem_id',
274 	 p_base_key_value	=> p_base_key_value,
275 	 p_correction		=> p_correction,
276 	 p_update		=> p_update,
277 	 p_update_override	=> p_update_override,
278 	 p_update_change_insert	=> p_update_change_insert);
279   --
280   hr_utility.set_location(' Leaving:'||l_proc, 10);
281 End find_dt_upd_modes;
282 --
283 -- ----------------------------------------------------------------------------
284 -- |------------------------< upd_effective_end_date >------------------------|
285 -- ----------------------------------------------------------------------------
286 Procedure upd_effective_end_date
287 	(p_effective_date		in date,
288 	 p_base_key_value		in number,
289 	 p_new_effective_end_date	in date,
290 	 p_validation_start_date	in date,
291 	 p_validation_end_date		in date,
292          p_object_version_number       out nocopy number) is
293 --
294   l_proc 		  varchar2(72) := g_package||'upd_effective_end_date';
295   l_object_version_number number;
296 --
297 Begin
298   hr_utility.set_location('Entering:'||l_proc, 5);
299   --
300   -- Because we are updating a row we must get the next object
301   -- version number.
302   --
303   l_object_version_number :=
304     dt_api.get_object_version_number
305 	(p_base_table_name	=> 'ben_actl_prem_f',
306 	 p_base_key_column	=> 'actl_prem_id',
307 	 p_base_key_value	=> p_base_key_value);
308   --
309   hr_utility.set_location(l_proc, 10);
310   g_api_dml := true;  -- Set the api dml status
311   --
312   -- Update the specified datetrack row setting the effective
313   -- end date to the specified new effective end date.
314   --
315   update  ben_actl_prem_f t
316   set	  t.effective_end_date	  = p_new_effective_end_date,
317 	  t.object_version_number = l_object_version_number
318   where	  t.actl_prem_id	  = p_base_key_value
319   and	  p_effective_date
320   between t.effective_start_date and t.effective_end_date;
321   --
322   g_api_dml := false;   -- Unset the api dml status
323   p_object_version_number := l_object_version_number;
324   hr_utility.set_location(' Leaving:'||l_proc, 15);
325 --
326 Exception
327   When Others Then
328     g_api_dml := false;   -- Unset the api dml status
329     Raise;
330 End upd_effective_end_date;
331 --
332 -- ----------------------------------------------------------------------------
333 -- |---------------------------------< lck >----------------------------------|
334 -- ----------------------------------------------------------------------------
335 Procedure lck
336 	(p_effective_date	 in  date,
337 	 p_datetrack_mode	 in  varchar2,
338 	 p_actl_prem_id	 in  number,
339 	 p_object_version_number in  number,
340 	 p_validation_start_date out nocopy date,
341 	 p_validation_end_date	 out nocopy date) is
342 --
343   l_proc		  varchar2(72) := g_package||'lck';
344   l_validation_start_date date;
345   l_validation_end_date	  date;
346   l_object_invalid 	  exception;
347   l_argument		  varchar2(30);
348   --
349   -- Cursor C_Sel1 selects the current locked row as of session date
350   -- ensuring that the object version numbers match.
354 	actl_prem_id,
351   --
352   Cursor C_Sel1 is
353     select
355 	effective_start_date,
356 	effective_end_date,
357 	name,
358 	acty_ref_perd_cd,
359 	uom,
360 	rt_typ_cd,
361 	bnft_rt_typ_cd,
362 	val,
363 	mlt_cd,
364 	prdct_cd,
365 	rndg_cd,
366 	rndg_rl,
367         val_calc_rl,
368 	prem_asnmt_cd,
369 	prem_asnmt_lvl_cd,
370 	actl_prem_typ_cd,
371 	prem_pyr_cd,
372 	cr_lkbk_val,
373 	cr_lkbk_uom,
374 	cr_lkbk_crnt_py_only_flag,
375 	prsptv_r_rtsptv_cd,
376 	upr_lmt_val,
377 	upr_lmt_calc_rl,
378 	lwr_lmt_val,
379 	lwr_lmt_calc_rl,
380 	cost_allocation_keyflex_id,
381 	organization_id,
382 	oipl_id,
383 	pl_id,
384 	comp_lvl_fctr_id,
385 	business_group_id,
386         prtl_mo_det_mthd_cd,
387         prtl_mo_det_mthd_rl,
388         wsh_rl_dy_mo_num,
389         vrbl_rt_add_on_calc_rl,
390 	apr_attribute_category,
391 	apr_attribute1,
392 	apr_attribute2,
393 	apr_attribute3,
394 	apr_attribute4,
395 	apr_attribute5,
396 	apr_attribute6,
397 	apr_attribute7,
398 	apr_attribute8,
399 	apr_attribute9,
400 	apr_attribute10,
401 	apr_attribute11,
402 	apr_attribute12,
403 	apr_attribute13,
404 	apr_attribute14,
405 	apr_attribute15,
406 	apr_attribute16,
407 	apr_attribute17,
408 	apr_attribute18,
409 	apr_attribute19,
410 	apr_attribute20,
411 	apr_attribute21,
412 	apr_attribute22,
413 	apr_attribute23,
414 	apr_attribute24,
415 	apr_attribute25,
416 	apr_attribute26,
417 	apr_attribute27,
418 	apr_attribute28,
419 	apr_attribute29,
420 	apr_attribute30,
421 	object_version_number
422     from    ben_actl_prem_f
423     where   actl_prem_id         = p_actl_prem_id
424     and	    p_effective_date
425     between effective_start_date and effective_end_date
426     for update nowait;
427   --
428   --
429   --
430 Begin
431   hr_utility.set_location('Entering:'||l_proc, 5);
432   --
433   -- Ensure that all the mandatory arguments are not null
434   --
435   hr_api.mandatory_arg_error(p_api_name       => l_proc,
436                              p_argument       => 'effective_date',
437                              p_argument_value => p_effective_date);
438   --
439   hr_api.mandatory_arg_error(p_api_name       => l_proc,
440                              p_argument       => 'datetrack_mode',
441                              p_argument_value => p_datetrack_mode);
442   --
443   hr_api.mandatory_arg_error(p_api_name       => l_proc,
444                              p_argument       => 'actl_prem_id',
445                              p_argument_value => p_actl_prem_id);
446   --
447   hr_api.mandatory_arg_error(p_api_name       => l_proc,
448                              p_argument       => 'object_version_number',
449                              p_argument_value => p_object_version_number);
450   --
451   -- Check to ensure the datetrack mode is not INSERT.
452   --
453   If (p_datetrack_mode <> 'INSERT') then
454     --
455     -- We must select and lock the current row.
456     --
457     Open  C_Sel1;
458     Fetch C_Sel1 Into g_old_rec;
459     If C_Sel1%notfound then
460       Close C_Sel1;
461       --
462       -- The primary key is invalid therefore we must error
463       --
464       fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
465       fnd_message.raise_error;
466     End If;
467     Close C_Sel1;
468     If (p_object_version_number <> g_old_rec.object_version_number) Then
469         fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
470         fnd_message.raise_error;
471       End If;
472     hr_utility.set_location(l_proc, 15);
473     --
474     --
475     -- Validate the datetrack mode mode getting the validation start
476     -- and end dates for the specified datetrack operation.
477     --
478     dt_api.validate_dt_mode
479 	(p_effective_date	   => p_effective_date,
480 	 p_datetrack_mode	   => p_datetrack_mode,
481 	 p_base_table_name	   => 'ben_actl_prem_f',
482 	 p_base_key_column	   => 'actl_prem_id',
483 	 p_base_key_value 	   => p_actl_prem_id,
484 --	 p_parent_table_name1      => 'ben_comp_lvl_fctr',
485 --	 p_parent_key_column1      => 'comp_lvl_fctr_id',
486 --	 p_parent_key_value1       => g_old_rec.comp_lvl_fctr_id,
487 	 p_child_table_name1       => 'ben_oipl_f',
488 	 p_child_key_column1       => 'oipl_id',
489 	 p_child_table_name2       => 'ben_actl_prem_vrbl_rt_f',
490 	 p_child_key_column2       => 'actl_prem_vrbl_rt_id',
491 	 p_child_table_name3       => 'ben_prtt_prem_f',
492 	 p_child_key_column3       => 'prtt_prem_id',
493 --	 p_child_table_name4       => 'ben_actl_prem_vrbl_rt_rl_f',
494 --	 p_child_key_column4       => 'actl_prem_vrbl_rt_rl_id',
495          p_enforce_foreign_locking => false,
496 	 p_validation_start_date   => l_validation_start_date,
497  	 p_validation_end_date	   => l_validation_end_date);
498   Else
499     --
500     -- We are doing a datetrack 'INSERT' which is illegal within this
501     -- procedure therefore we must error (note: to lck on insert the
502     -- private procedure ins_lck should be called).
503     --
504     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
505     fnd_message.set_token('PROCEDURE', l_proc);
506     fnd_message.set_token('STEP','20');
507     fnd_message.raise_error;
508   End If;
509   --
510   -- Set the validation start and end date OUT arguments
511   --
512   p_validation_start_date := l_validation_start_date;
513   p_validation_end_date   := l_validation_end_date;
514   --
515   hr_utility.set_location(' Leaving:'||l_proc, 30);
519 Exception
516 --
517 -- We need to trap the ORA LOCK exception
518 --
520   When HR_Api.Object_Locked then
521     --
522     -- The object is locked therefore we need to supply a meaningful
523     -- error message.
524     --
525     fnd_message.set_name('PAY', 'HR_7165_OBJECT_LOCKED');
526     fnd_message.set_token('TABLE_NAME', 'ben_actl_prem_f');
527     fnd_message.raise_error;
528   When l_object_invalid then
529     --
530     -- The object doesn't exist or is invalid
531     --
532     fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
533     fnd_message.set_token('TABLE_NAME', 'ben_actl_prem_f');
534     fnd_message.raise_error;
535 End lck;
536 --
537 -- ----------------------------------------------------------------------------
538 -- |-----------------------------< convert_args >-----------------------------|
539 -- ----------------------------------------------------------------------------
540 Function convert_args
541 	(
542 	p_actl_prem_id                  in number,
543 	p_effective_start_date          in date,
544 	p_effective_end_date            in date,
545 	p_name                          in varchar2,
546 	p_acty_ref_perd_cd              in varchar2,
547 	p_uom                           in varchar2,
548 	p_rt_typ_cd                     in varchar2,
549 	p_bnft_rt_typ_cd                in varchar2,
550 	p_val                           in number,
551 	p_mlt_cd                        in varchar2,
552 	p_prdct_cd                      in varchar2,
553 	p_rndg_cd                       in varchar2,
554 	p_rndg_rl                       in number,
555         p_val_calc_rl                   in number,
556         p_prem_asnmt_cd                 in varchar2,
557         p_prem_asnmt_lvl_cd             in varchar2,
558         p_actl_prem_typ_cd              in varchar2,
559         p_prem_pyr_cd                   in varchar2,
560         p_cr_lkbk_val                   in number,
561         p_cr_lkbk_uom                   in varchar2,
562         p_cr_lkbk_crnt_py_only_flag     in varchar2,
563         p_prsptv_r_rtsptv_cd            in varchar2,
564         p_upr_lmt_val                   in number,
565         p_upr_lmt_calc_rl               in number,
566         p_lwr_lmt_val                   in number,
567         p_lwr_lmt_calc_rl               in number,
568         p_cost_allocation_keyflex_id    in number,
569 	p_organization_id               in number,
570         p_oipl_id                       in number,
571         p_pl_id                         in number,
572 	p_comp_lvl_fctr_id              in number,
573 	p_business_group_id             in number,
574         p_prtl_mo_det_mthd_cd           in varchar2,
575         p_prtl_mo_det_mthd_rl           in number,
576         p_wsh_rl_dy_mo_num              in number,
577         p_vrbl_rt_add_on_calc_rl        in number,
578 	p_apr_attribute_category        in varchar2,
579 	p_apr_attribute1                in varchar2,
580 	p_apr_attribute2                in varchar2,
581 	p_apr_attribute3                in varchar2,
582 	p_apr_attribute4                in varchar2,
583 	p_apr_attribute5                in varchar2,
584 	p_apr_attribute6                in varchar2,
585 	p_apr_attribute7                in varchar2,
586 	p_apr_attribute8                in varchar2,
587 	p_apr_attribute9                in varchar2,
588 	p_apr_attribute10               in varchar2,
589 	p_apr_attribute11               in varchar2,
590 	p_apr_attribute12               in varchar2,
591 	p_apr_attribute13               in varchar2,
592 	p_apr_attribute14               in varchar2,
593 	p_apr_attribute15               in varchar2,
594 	p_apr_attribute16               in varchar2,
595 	p_apr_attribute17               in varchar2,
596 	p_apr_attribute18               in varchar2,
597 	p_apr_attribute19               in varchar2,
598 	p_apr_attribute20               in varchar2,
599 	p_apr_attribute21               in varchar2,
600 	p_apr_attribute22               in varchar2,
601 	p_apr_attribute23               in varchar2,
602 	p_apr_attribute24               in varchar2,
603 	p_apr_attribute25               in varchar2,
604 	p_apr_attribute26               in varchar2,
605 	p_apr_attribute27               in varchar2,
606 	p_apr_attribute28               in varchar2,
607 	p_apr_attribute29               in varchar2,
608 	p_apr_attribute30               in varchar2,
609 	p_object_version_number         in number
610 	)
611 	Return g_rec_type is
612 --
613   l_rec	  g_rec_type;
614   l_proc  varchar2(72) := g_package||'convert_args';
615 --
616 Begin
617   --
618   hr_utility.set_location('Entering:'||l_proc, 5);
619   --
620   -- Convert arguments into local l_rec structure.
621   --
622   l_rec.actl_prem_id                     := p_actl_prem_id;
623   l_rec.effective_start_date             := p_effective_start_date;
624   l_rec.effective_end_date               := p_effective_end_date;
625   l_rec.name                             := p_name;
626   l_rec.acty_ref_perd_cd                 := p_acty_ref_perd_cd;
627   l_rec.uom                              := p_uom;
628   l_rec.rt_typ_cd                        := p_rt_typ_cd;
629   l_rec.bnft_rt_typ_cd                   := p_bnft_rt_typ_cd;
630   l_rec.val                              := p_val;
631   l_rec.mlt_cd                           := p_mlt_cd;
632   l_rec.prdct_cd                         := p_prdct_cd;
633   l_rec.rndg_cd                          := p_rndg_cd;
634   l_rec.rndg_rl                          := p_rndg_rl;
635   l_rec.val_calc_rl                      := p_val_calc_rl;
636   l_rec.prem_asnmt_cd                    := p_prem_asnmt_cd;
637   l_rec.prem_asnmt_lvl_cd                := p_prem_asnmt_lvl_cd;
638   l_rec.actl_prem_typ_cd                 := p_actl_prem_typ_cd;
639   l_rec.prem_pyr_cd                      := p_prem_pyr_cd;
643   l_rec.prsptv_r_rtsptv_cd               := p_prsptv_r_rtsptv_cd;
640   l_rec.cr_lkbk_val                    := p_cr_lkbk_val;
641   l_rec.cr_lkbk_uom                      := p_cr_lkbk_uom;
642   l_rec.cr_lkbk_crnt_py_only_flag        := p_cr_lkbk_crnt_py_only_flag;
644   l_rec.upr_lmt_val                      := p_upr_lmt_val;
645   l_rec.upr_lmt_calc_rl                  := p_upr_lmt_calc_rl;
646   l_rec.lwr_lmt_val                      := p_lwr_lmt_val;
647   l_rec.lwr_lmt_calc_rl                  := p_lwr_lmt_calc_rl;
648   l_rec.cost_allocation_keyflex_id       := p_cost_allocation_keyflex_id;
649   l_rec.organization_id                  := p_organization_id;
650   l_rec.oipl_id                          := p_oipl_id;
651   l_rec.pl_id                            := p_pl_id;
652   l_rec.comp_lvl_fctr_id                 := p_comp_lvl_fctr_id;
653   l_rec.business_group_id                := p_business_group_id;
654   l_rec.prtl_mo_det_mthd_cd              := p_prtl_mo_det_mthd_cd;
655   l_rec.prtl_mo_det_mthd_rl              := p_prtl_mo_det_mthd_rl;
656   l_rec.wsh_rl_dy_mo_num                 := p_wsh_rl_dy_mo_num;
657   l_rec.vrbl_rt_add_on_calc_rl           := p_vrbl_rt_add_on_calc_rl;
658   l_rec.apr_attribute_category           := p_apr_attribute_category;
659   l_rec.apr_attribute1                   := p_apr_attribute1;
660   l_rec.apr_attribute2                   := p_apr_attribute2;
661   l_rec.apr_attribute3                   := p_apr_attribute3;
662   l_rec.apr_attribute4                   := p_apr_attribute4;
663   l_rec.apr_attribute5                   := p_apr_attribute5;
664   l_rec.apr_attribute6                   := p_apr_attribute6;
665   l_rec.apr_attribute7                   := p_apr_attribute7;
666   l_rec.apr_attribute8                   := p_apr_attribute8;
667   l_rec.apr_attribute9                   := p_apr_attribute9;
668   l_rec.apr_attribute10                  := p_apr_attribute10;
669   l_rec.apr_attribute11                  := p_apr_attribute11;
670   l_rec.apr_attribute12                  := p_apr_attribute12;
671   l_rec.apr_attribute13                  := p_apr_attribute13;
672   l_rec.apr_attribute14                  := p_apr_attribute14;
673   l_rec.apr_attribute15                  := p_apr_attribute15;
674   l_rec.apr_attribute16                  := p_apr_attribute16;
675   l_rec.apr_attribute17                  := p_apr_attribute17;
676   l_rec.apr_attribute18                  := p_apr_attribute18;
677   l_rec.apr_attribute19                  := p_apr_attribute19;
678   l_rec.apr_attribute20                  := p_apr_attribute20;
679   l_rec.apr_attribute21                  := p_apr_attribute21;
680   l_rec.apr_attribute22                  := p_apr_attribute22;
681   l_rec.apr_attribute23                  := p_apr_attribute23;
682   l_rec.apr_attribute24                  := p_apr_attribute24;
683   l_rec.apr_attribute25                  := p_apr_attribute25;
684   l_rec.apr_attribute26                  := p_apr_attribute26;
685   l_rec.apr_attribute27                  := p_apr_attribute27;
686   l_rec.apr_attribute28                  := p_apr_attribute28;
687   l_rec.apr_attribute29                  := p_apr_attribute29;
688   l_rec.apr_attribute30                  := p_apr_attribute30;
689   l_rec.object_version_number            := p_object_version_number;
690   --
691   -- Return the plsql record structure.
692   --
693   hr_utility.set_location(' Leaving:'||l_proc, 10);
694   Return(l_rec);
695 --
696 End convert_args;
697 --
698 end ben_apr_shd;