[Home] [Help]
PACKAGE BODY: APPS.BEN_PRG_SHD
Source
1 Package Body ben_prg_shd as
2 /* $Header: beprgrhi.pkb 120.0.12010000.2 2008/08/05 15:20:31 ubhat ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' ben_prg_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_PL_REGN_FK1') 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_PL_REGN_FK2') 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 ElsIf (p_constraint_name = 'BEN_PL_REGN_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_pl_regn_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 pl_regn_id,
76 effective_end_date,
77 effective_start_date,
78 business_group_id,
79 regn_id,
80 pl_id,
81 rptg_grp_id,
82 hghly_compd_det_rl,
83 key_ee_det_rl,
84 cntr_nndscrn_rl,
85 cvg_nndscrn_rl,
86 five_pct_ownr_rl,
87 regy_pl_typ_cd,
88 prg_attribute_category,
89 prg_attribute1,
90 prg_attribute2,
91 prg_attribute3,
92 prg_attribute4,
93 prg_attribute5,
94 prg_attribute6,
95 prg_attribute7,
96 prg_attribute8,
97 prg_attribute9,
98 prg_attribute10,
99 prg_attribute11,
100 prg_attribute12,
101 prg_attribute13,
102 prg_attribute14,
103 prg_attribute15,
104 prg_attribute16,
105 prg_attribute17,
106 prg_attribute18,
107 prg_attribute19,
108 prg_attribute20,
109 prg_attribute21,
110 prg_attribute22,
111 prg_attribute23,
112 prg_attribute24,
113 prg_attribute25,
114 prg_attribute26,
115 prg_attribute27,
116 prg_attribute28,
117 prg_attribute29,
118 prg_attribute30,
119 object_version_number
120 from ben_pl_regn_f
121 where pl_regn_id = p_pl_regn_id
122 and p_effective_date
123 between effective_start_date and effective_end_date;
124 --
125 l_proc varchar2(72) := g_package||'api_updating';
126 l_fct_ret boolean;
127 --
128 Begin
129 hr_utility.set_location('Entering:'||l_proc, 5);
130 --
131 If (p_effective_date is null or
132 p_pl_regn_id is null or
133 p_object_version_number is null) Then
134 --
135 -- One of the primary key arguments is null therefore we must
136 -- set the returning function value to false
137 --
138 l_fct_ret := false;
139 Else
140 If (p_pl_regn_id = g_old_rec.pl_regn_id and
141 p_object_version_number = g_old_rec.object_version_number) Then
142 hr_utility.set_location(l_proc, 10);
143 --
144 -- The g_old_rec is current therefore we must
145 -- set the returning function to true
146 --
147 l_fct_ret := true;
148 Else
149 --
150 -- Select the current row
151 --
152 Open C_Sel1;
153 Fetch C_Sel1 Into g_old_rec;
154 If C_Sel1%notfound Then
155 Close C_Sel1;
156 --
157 -- The primary key is invalid therefore we must error
158 --
159 fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
160 fnd_message.raise_error;
161 End If;
162 Close C_Sel1;
163 If (p_object_version_number <> g_old_rec.object_version_number) Then
164 fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
165 fnd_message.raise_error;
166 End If;
167 hr_utility.set_location(l_proc, 15);
168 l_fct_ret := true;
169 End If;
170 End If;
171 hr_utility.set_location(' Leaving:'||l_proc, 20);
172 Return (l_fct_ret);
173 --
174 End api_updating;
175 --
176 -- ----------------------------------------------------------------------------
177 -- |--------------------------< find_dt_del_modes >---------------------------|
178 -- ----------------------------------------------------------------------------
179 Procedure find_dt_del_modes
180 (p_effective_date in date,
181 p_base_key_value in number,
182 p_zap out nocopy boolean,
183 p_delete out nocopy boolean,
184 p_future_change out nocopy boolean,
185 p_delete_next_change out nocopy boolean) is
186 --
187 l_proc varchar2(72) := g_package||'find_dt_del_modes';
188 --
189 l_parent_key_value1 number;
190 l_parent_key_value2 number;
191 l_parent_key_value3 number;
192 l_parent_key_value4 number;
193 l_parent_key_value5 number;
194 l_parent_key_value6 number;
195 l_parent_key_value7 number;
196 --
197 Cursor C_Sel1 Is
198 select t.hghly_compd_det_rl,
199 t.key_ee_det_rl,
200 t.cntr_nndscrn_rl,
201 t.cvg_nndscrn_rl,
202 t.five_pct_ownr_rl,
203 t.regn_id,
204 t.pl_id
205 from ben_pl_regn_f t
206 where t.pl_regn_id = p_base_key_value
207 and p_effective_date
208 between t.effective_start_date and t.effective_end_date;
209 --
210 Begin
211 hr_utility.set_location('Entering:'||l_proc, 5);
212 Open C_Sel1;
213 Fetch C_Sel1 Into l_parent_key_value1,
214 l_parent_key_value2,
215 l_parent_key_value3,
216 l_parent_key_value4,
217 l_parent_key_value5,
218 l_parent_key_value6,
219 l_parent_key_value7;
220 If C_Sel1%notfound then
221 Close C_Sel1;
222 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
223 fnd_message.set_token('PROCEDURE', l_proc);
224 fnd_message.set_token('STEP','10');
225 fnd_message.raise_error;
226 End If;
227 Close C_Sel1;
228 --
229 -- Call the corresponding datetrack api
230 --
231 dt_api.find_dt_del_modes
232 (p_effective_date => p_effective_date,
233 p_base_table_name => 'ben_pl_regn_f',
234 p_base_key_column => 'pl_regn_id',
235 p_base_key_value => p_base_key_value,
236 p_parent_table_name1 => 'ff_formulas_f',
237 p_parent_key_column1 => 'formula_id',
238 p_parent_key_value1 => l_parent_key_value1,
239 p_parent_table_name2 => 'ff_formulas_f',
240 p_parent_key_column2 => 'formula_id',
241 p_parent_key_value2 => l_parent_key_value2,
242 p_parent_table_name3 => 'ff_formulas_f',
243 p_parent_key_column3 => 'formula_id',
244 p_parent_key_value3 => l_parent_key_value3,
245 p_parent_table_name4 => 'ff_formulas_f',
246 p_parent_key_column4 => 'formula_id',
247 p_parent_key_value4 => l_parent_key_value4,
248 p_parent_table_name5 => 'ff_formulas_f',
249 p_parent_key_column5 => 'formula_id',
250 p_parent_key_value5 => l_parent_key_value5,
251 p_parent_table_name6 => 'ben_regn_f',
252 p_parent_key_column6 => 'regn_id',
253 p_parent_key_value6 => l_parent_key_value6,
254 p_parent_table_name7 => 'ben_pl_f',
255 p_parent_key_column7 => 'pl_id',
256 p_parent_key_value7 => l_parent_key_value7,
257 p_zap => p_zap,
258 p_delete => p_delete,
259 p_future_change => p_future_change,
260 p_delete_next_change => p_delete_next_change);
261 --
262 hr_utility.set_location(' Leaving:'||l_proc, 10);
263 End find_dt_del_modes;
264 --
265 -- ----------------------------------------------------------------------------
266 -- |--------------------------< find_dt_upd_modes >---------------------------|
267 -- ----------------------------------------------------------------------------
268 Procedure find_dt_upd_modes
269 (p_effective_date in date,
270 p_base_key_value in number,
271 p_correction out nocopy boolean,
272 p_update out nocopy boolean,
273 p_update_override out nocopy boolean,
274 p_update_change_insert out nocopy boolean) is
275 --
276 l_proc varchar2(72) := g_package||'find_dt_upd_modes';
277 --
278 Begin
279 hr_utility.set_location('Entering:'||l_proc, 5);
280 --
281 -- Call the corresponding datetrack api
282 --
283 dt_api.find_dt_upd_modes
284 (p_effective_date => p_effective_date,
285 p_base_table_name => 'ben_pl_regn_f',
286 p_base_key_column => 'pl_regn_id',
287 p_base_key_value => p_base_key_value,
288 p_correction => p_correction,
289 p_update => p_update,
290 p_update_override => p_update_override,
291 p_update_change_insert => p_update_change_insert);
292 --
293 hr_utility.set_location(' Leaving:'||l_proc, 10);
294 End find_dt_upd_modes;
295 --
296 -- ----------------------------------------------------------------------------
297 -- |------------------------< upd_effective_end_date >------------------------|
298 -- ----------------------------------------------------------------------------
299 Procedure upd_effective_end_date
300 (p_effective_date in date,
301 p_base_key_value in number,
302 p_new_effective_end_date in date,
303 p_validation_start_date in date,
304 p_validation_end_date in date,
305 p_object_version_number out nocopy number) is
306 --
307 l_proc varchar2(72) := g_package||'upd_effective_end_date';
308 l_object_version_number number;
309 --
310 Begin
311 hr_utility.set_location('Entering:'||l_proc, 5);
312 --
313 -- Because we are updating a row we must get the next object
314 -- version number.
315 --
316 l_object_version_number :=
317 dt_api.get_object_version_number
318 (p_base_table_name => 'ben_pl_regn_f',
319 p_base_key_column => 'pl_regn_id',
320 p_base_key_value => p_base_key_value);
321 --
322 hr_utility.set_location(l_proc, 10);
323 g_api_dml := true; -- Set the api dml status
324 --
325 -- Update the specified datetrack row setting the effective
326 -- end date to the specified new effective end date.
327 --
328 update ben_pl_regn_f t
329 set t.effective_end_date = p_new_effective_end_date,
330 t.object_version_number = l_object_version_number
331 where t.pl_regn_id = p_base_key_value
332 and p_effective_date
333 between t.effective_start_date and t.effective_end_date;
334 --
335 g_api_dml := false; -- Unset the api dml status
336 p_object_version_number := l_object_version_number;
337 hr_utility.set_location(' Leaving:'||l_proc, 15);
338 --
339 Exception
340 When Others Then
341 g_api_dml := false; -- Unset the api dml status
342 Raise;
343 End upd_effective_end_date;
344 --
345 -- ----------------------------------------------------------------------------
346 -- |---------------------------------< lck >----------------------------------|
347 -- ----------------------------------------------------------------------------
348 Procedure lck
349 (p_effective_date in date,
350 p_datetrack_mode in varchar2,
351 p_pl_regn_id in number,
352 p_object_version_number in number,
353 p_validation_start_date out nocopy date,
354 p_validation_end_date out nocopy date) is
355 --
356 l_proc varchar2(72) := g_package||'lck';
357 l_validation_start_date date;
358 l_validation_end_date date;
359 l_object_invalid exception;
360 l_argument varchar2(30);
361 --
362 -- Cursor C_Sel1 selects the current locked row as of session date
363 -- ensuring that the object version numbers match.
364 --
365 Cursor C_Sel1 is
366 select
367 pl_regn_id,
368 effective_end_date,
369 effective_start_date,
370 business_group_id,
371 regn_id,
372 pl_id,
373 rptg_grp_id,
374 hghly_compd_det_rl,
375 key_ee_det_rl,
376 cntr_nndscrn_rl,
377 cvg_nndscrn_rl,
378 five_pct_ownr_rl,
379 regy_pl_typ_cd,
380 prg_attribute_category,
381 prg_attribute1,
382 prg_attribute2,
383 prg_attribute3,
384 prg_attribute4,
385 prg_attribute5,
386 prg_attribute6,
387 prg_attribute7,
388 prg_attribute8,
389 prg_attribute9,
390 prg_attribute10,
391 prg_attribute11,
392 prg_attribute12,
393 prg_attribute13,
394 prg_attribute14,
395 prg_attribute15,
396 prg_attribute16,
397 prg_attribute17,
398 prg_attribute18,
399 prg_attribute19,
400 prg_attribute20,
401 prg_attribute21,
402 prg_attribute22,
403 prg_attribute23,
404 prg_attribute24,
405 prg_attribute25,
406 prg_attribute26,
407 prg_attribute27,
408 prg_attribute28,
409 prg_attribute29,
410 prg_attribute30,
411 object_version_number
412 from ben_pl_regn_f
413 where pl_regn_id = p_pl_regn_id
414 and p_effective_date
415 between effective_start_date and effective_end_date
416 for update nowait;
417 --
418 --
419 --
420 Begin
421 hr_utility.set_location('Entering:'||l_proc, 5);
422 --
423 -- Ensure that all the mandatory arguments are not null
424 --
425 hr_api.mandatory_arg_error(p_api_name => l_proc,
426 p_argument => 'effective_date',
427 p_argument_value => p_effective_date);
428 --
429 hr_api.mandatory_arg_error(p_api_name => l_proc,
430 p_argument => 'datetrack_mode',
431 p_argument_value => p_datetrack_mode);
432 --
433 hr_api.mandatory_arg_error(p_api_name => l_proc,
434 p_argument => 'pl_regn_id',
435 p_argument_value => p_pl_regn_id);
436 --
437 hr_api.mandatory_arg_error(p_api_name => l_proc,
438 p_argument => 'object_version_number',
439 p_argument_value => p_object_version_number);
440 --
441 -- Check to ensure the datetrack mode is not INSERT.
442 --
443 If (p_datetrack_mode <> 'INSERT') then
444 --
445 -- We must select and lock the current row.
446 --
447 Open C_Sel1;
448 Fetch C_Sel1 Into g_old_rec;
449 If C_Sel1%notfound then
450 Close C_Sel1;
451 --
452 -- The primary key is invalid therefore we must error
453 --
457 Close C_Sel1;
454 fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
455 fnd_message.raise_error;
456 End If;
458 If (p_object_version_number <> g_old_rec.object_version_number) Then
459 fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
460 fnd_message.raise_error;
461 End If;
462 hr_utility.set_location(l_proc, 15);
463 --
464 --
465 -- Validate the datetrack mode mode getting the validation start
466 -- and end dates for the specified datetrack operation.
467 --
468 dt_api.validate_dt_mode
469 (p_effective_date => p_effective_date,
470 p_datetrack_mode => p_datetrack_mode,
471 p_base_table_name => 'ben_pl_regn_f',
472 p_base_key_column => 'pl_regn_id',
473 p_base_key_value => p_pl_regn_id,
474 p_parent_table_name1 => 'ff_formulas_f',
475 p_parent_key_column1 => 'formula_id',
476 p_parent_key_value1 => g_old_rec.hghly_compd_det_rl,
477 p_parent_table_name2 => 'ff_formulas_f',
478 p_parent_key_column2 => 'formula_id',
479 p_parent_key_value2 => g_old_rec.key_ee_det_rl,
480 p_parent_table_name3 => 'ff_formulas_f',
481 p_parent_key_column3 => 'formula_id',
482 p_parent_key_value3 => g_old_rec.cntr_nndscrn_rl,
483 p_parent_table_name4 => 'ff_formulas_f',
484 p_parent_key_column4 => 'formula_id',
485 p_parent_key_value4 => g_old_rec.cvg_nndscrn_rl,
486 p_parent_table_name5 => 'ff_formulas_f',
487 p_parent_key_column5 => 'formula_id',
488 p_parent_key_value5 => g_old_rec.five_pct_ownr_rl,
489 p_parent_table_name6 => 'ben_regn_f',
490 p_parent_key_column6 => 'regn_id',
491 p_parent_key_value6 => g_old_rec.regn_id,
492 p_parent_table_name7 => 'ben_pl_f',
493 p_parent_key_column7 => 'pl_id',
494 p_parent_key_value7 => g_old_rec.pl_id,
495 p_enforce_foreign_locking => false , --true,
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);
516 --
517 -- We need to trap the ORA LOCK exception
518 --
519 Exception
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_pl_regn_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_pl_regn_f');
534 fnd_message.raise_error;
535 End lck;
536 --
537 -- ----------------------------------------------------------------------------
538 -- |-----------------------------< convert_args >-----------------------------|
539 -- ----------------------------------------------------------------------------
540 Function convert_args
541 (
542 p_pl_regn_id in number,
543 p_effective_end_date in date,
544 p_effective_start_date in date,
545 p_business_group_id in number,
546 p_regn_id in number,
547 p_pl_id in number,
548 p_rptg_grp_id in number,
549 p_hghly_compd_det_rl in number,
550 p_key_ee_det_rl in number,
551 p_cntr_nndscrn_rl in number,
552 p_cvg_nndscrn_rl in number,
553 p_five_pct_ownr_rl in number,
554 p_regy_pl_typ_cd in varchar2,
555 p_prg_attribute_category in varchar2,
556 p_prg_attribute1 in varchar2,
557 p_prg_attribute2 in varchar2,
558 p_prg_attribute3 in varchar2,
559 p_prg_attribute4 in varchar2,
560 p_prg_attribute5 in varchar2,
561 p_prg_attribute6 in varchar2,
562 p_prg_attribute7 in varchar2,
563 p_prg_attribute8 in varchar2,
564 p_prg_attribute9 in varchar2,
565 p_prg_attribute10 in varchar2,
566 p_prg_attribute11 in varchar2,
567 p_prg_attribute12 in varchar2,
568 p_prg_attribute13 in varchar2,
569 p_prg_attribute14 in varchar2,
570 p_prg_attribute15 in varchar2,
571 p_prg_attribute16 in varchar2,
572 p_prg_attribute17 in varchar2,
573 p_prg_attribute18 in varchar2,
574 p_prg_attribute19 in varchar2,
575 p_prg_attribute20 in varchar2,
576 p_prg_attribute21 in varchar2,
577 p_prg_attribute22 in varchar2,
578 p_prg_attribute23 in varchar2,
579 p_prg_attribute24 in varchar2,
580 p_prg_attribute25 in varchar2,
581 p_prg_attribute26 in varchar2,
582 p_prg_attribute27 in varchar2,
583 p_prg_attribute28 in varchar2,
584 p_prg_attribute29 in varchar2,
585 p_prg_attribute30 in varchar2,
586 p_object_version_number in number
587 )
588 Return g_rec_type is
589 --
590 l_rec g_rec_type;
591 l_proc varchar2(72) := g_package||'convert_args';
592 --
593 Begin
594 --
595 hr_utility.set_location('Entering:'||l_proc, 5);
596 --
597 -- Convert arguments into local l_rec structure.
598 --
599 l_rec.pl_regn_id := p_pl_regn_id;
600 l_rec.effective_end_date := p_effective_end_date;
601 l_rec.effective_start_date := p_effective_start_date;
602 l_rec.business_group_id := p_business_group_id;
603 l_rec.regn_id := p_regn_id;
604 l_rec.pl_id := p_pl_id;
605 l_rec.rptg_grp_id := p_rptg_grp_id;
606 l_rec.hghly_compd_det_rl := p_hghly_compd_det_rl;
607 l_rec.key_ee_det_rl := p_key_ee_det_rl;
608 l_rec.cntr_nndscrn_rl := p_cntr_nndscrn_rl;
609 l_rec.cvg_nndscrn_rl := p_cvg_nndscrn_rl;
610 l_rec.five_pct_ownr_rl := p_five_pct_ownr_rl;
611 l_rec.regy_pl_typ_cd := p_regy_pl_typ_cd;
612 l_rec.prg_attribute_category := p_prg_attribute_category;
613 l_rec.prg_attribute1 := p_prg_attribute1;
614 l_rec.prg_attribute2 := p_prg_attribute2;
615 l_rec.prg_attribute3 := p_prg_attribute3;
616 l_rec.prg_attribute4 := p_prg_attribute4;
617 l_rec.prg_attribute5 := p_prg_attribute5;
618 l_rec.prg_attribute6 := p_prg_attribute6;
619 l_rec.prg_attribute7 := p_prg_attribute7;
620 l_rec.prg_attribute8 := p_prg_attribute8;
621 l_rec.prg_attribute9 := p_prg_attribute9;
622 l_rec.prg_attribute10 := p_prg_attribute10;
623 l_rec.prg_attribute11 := p_prg_attribute11;
624 l_rec.prg_attribute12 := p_prg_attribute12;
625 l_rec.prg_attribute13 := p_prg_attribute13;
626 l_rec.prg_attribute14 := p_prg_attribute14;
627 l_rec.prg_attribute15 := p_prg_attribute15;
628 l_rec.prg_attribute16 := p_prg_attribute16;
629 l_rec.prg_attribute17 := p_prg_attribute17;
630 l_rec.prg_attribute18 := p_prg_attribute18;
631 l_rec.prg_attribute19 := p_prg_attribute19;
632 l_rec.prg_attribute20 := p_prg_attribute20;
633 l_rec.prg_attribute21 := p_prg_attribute21;
634 l_rec.prg_attribute22 := p_prg_attribute22;
635 l_rec.prg_attribute23 := p_prg_attribute23;
636 l_rec.prg_attribute24 := p_prg_attribute24;
637 l_rec.prg_attribute25 := p_prg_attribute25;
638 l_rec.prg_attribute26 := p_prg_attribute26;
639 l_rec.prg_attribute27 := p_prg_attribute27;
640 l_rec.prg_attribute28 := p_prg_attribute28;
641 l_rec.prg_attribute29 := p_prg_attribute29;
642 l_rec.prg_attribute30 := p_prg_attribute30;
643 l_rec.object_version_number := p_object_version_number;
644 --
645 -- Return the plsql record structure.
646 --
647 hr_utility.set_location(' Leaving:'||l_proc, 10);
648 Return(l_rec);
649 --
650 End convert_args;
651 --
652 end ben_prg_shd;