[Home] [Help]
PACKAGE BODY: APPS.BEN_PPV_SHD
Source
1 Package Body ben_ppv_shd as
2 /* $Header: beppvrhi.pkb 120.5.12010000.2 2008/08/05 15:17:18 ubhat ship $ */
3
4 --
5 -- ----------------------------------------------------------------------------
6 -- | Private Global Definitions |
7 -- ----------------------------------------------------------------------------
8 --
9 g_package varchar2(33) := ' ben_ppv_shd.'; -- Global package name
10 --
11 -- ----------------------------------------------------------------------------
12 -- |------------------------< return_api_dml_status >-------------------------|
13 -- ----------------------------------------------------------------------------
14 Function return_api_dml_status Return Boolean Is
15 --
16 l_proc varchar2(72) := g_package||'return_api_dml_status';
17 --
18 Begin
19 hr_utility.set_location('Entering:'||l_proc, 5);
20 --
21 Return (nvl(g_api_dml, false));
22 --
23 hr_utility.set_location(' Leaving:'||l_proc, 10);
24 End return_api_dml_status;
25 --
26 -- ----------------------------------------------------------------------------
27 -- |---------------------------< constraint_error >---------------------------|
28 -- ----------------------------------------------------------------------------
29 Procedure constraint_error
30 (p_constraint_name in all_constraints.constraint_name%TYPE) Is
31 --
32 l_proc varchar2(72) := g_package||'constraint_error';
33 --
34 Begin
35 hr_utility.set_location('Entering:'||l_proc, 5);
36 --
37 If (p_constraint_name = 'PRTL_MO_RT_PRTN_VAL_F_PK') Then
38 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
39 fnd_message.set_token('PROCEDURE', l_proc);
40 fnd_message.set_token('STEP','5');
41 fnd_message.raise_error;
42 Else
43 fnd_message.set_name('PAY', 'HR_7877_API_INVALID_CONSTRAINT');
44 fnd_message.set_token('PROCEDURE', l_proc);
45 fnd_message.set_token('CONSTRAINT_NAME', p_constraint_name);
46 fnd_message.raise_error;
47 End If;
48 --
49 hr_utility.set_location(' Leaving:'||l_proc, 10);
50 End constraint_error;
51 --
52 -- ----------------------------------------------------------------------------
53 -- |-----------------------------< api_updating >-----------------------------|
54 -- ----------------------------------------------------------------------------
55 Function api_updating
56 (p_effective_date in date,
57 p_prtl_mo_rt_prtn_val_id in number,
58 p_object_version_number in number
59 ) Return Boolean Is
60 --
61 --
62 -- Cursor selects the 'current' row from the HR Schema
63 --
64 Cursor C_Sel1 is
65 select
66 prtl_mo_rt_prtn_val_id,
67 effective_end_date,
68 effective_start_date,
69 business_group_id,
70 rndg_cd,
71 to_dy_mo_num,
72 from_dy_mo_num,
73 pct_val,
74 acty_base_rt_id,
75 strt_r_stp_cvg_cd,
76 rndg_rl,
77 prtl_mo_prortn_rl,
78 actl_prem_id,
79 cvg_amt_calc_mthd_id,
80 num_days_month,
81 prorate_by_day_to_mon_flag,
82 pmrpv_attribute_category,
83 pmrpv_attribute1,
84 pmrpv_attribute2,
85 pmrpv_attribute3,
86 pmrpv_attribute4,
87 pmrpv_attribute5,
88 pmrpv_attribute6,
89 pmrpv_attribute7,
90 pmrpv_attribute8,
91 pmrpv_attribute9,
92 pmrpv_attribute10,
93 pmrpv_attribute11,
94 pmrpv_attribute12,
95 pmrpv_attribute13,
96 pmrpv_attribute14,
97 pmrpv_attribute15,
98 pmrpv_attribute16,
99 pmrpv_attribute17,
100 pmrpv_attribute18,
101 pmrpv_attribute19,
102 pmrpv_attribute20,
103 pmrpv_attribute21,
104 pmrpv_attribute22,
105 pmrpv_attribute23,
106 pmrpv_attribute24,
107 pmrpv_attribute25,
108 pmrpv_attribute26,
109 pmrpv_attribute27,
110 pmrpv_attribute28,
111 pmrpv_attribute29,
112 pmrpv_attribute30,
113 object_version_number
114 from ben_prtl_mo_rt_prtn_val_f
115 where prtl_mo_rt_prtn_val_id = p_prtl_mo_rt_prtn_val_id
116 and p_effective_date
117 between effective_start_date and effective_end_date;
118 --
119 l_proc varchar2(72) := g_package||'api_updating';
120 l_fct_ret boolean;
121 --
122 Begin
123 hr_utility.set_location('Entering:'||l_proc, 5);
124 --
125 If (p_effective_date is null or
126 p_prtl_mo_rt_prtn_val_id is null or
127 p_object_version_number is null) Then
128 --
129 -- One of the primary key arguments is null therefore we must
130 -- set the returning function value to false
131 --
132 l_fct_ret := false;
133 Else
134 If (p_prtl_mo_rt_prtn_val_id = g_old_rec.prtl_mo_rt_prtn_val_id and
135 p_object_version_number = g_old_rec.object_version_number) Then
136 hr_utility.set_location(l_proc, 10);
137 --
138 -- The g_old_rec is current therefore we must
139 -- set the returning function to true
140 --
141 l_fct_ret := true;
142 Else
143 --
144 -- Select the current row
145 --
146 Open C_Sel1;
147 Fetch C_Sel1 Into g_old_rec;
148 If C_Sel1%notfound Then
149 Close C_Sel1;
150 --
151 -- The primary key is invalid therefore we must error
152 --
153 hr_utility.set_message('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
154 hr_utility.raise_error;
155 End If;
156 Close C_Sel1;
157 If (p_object_version_number <> g_old_rec.object_version_number) Then
158 hr_utility.set_message('PAY', 'HR_7155_OBJECT_INVALID');
159 hr_utility.raise_error;
160 End If;
161 hr_utility.set_location(l_proc, 15);
162 l_fct_ret := true;
163 End If;
164 End If;
165 hr_utility.set_location(' Leaving:'||l_proc, 20);
166 Return (l_fct_ret);
167 --
168 End api_updating;
169 --
170 -- ----------------------------------------------------------------------------
171 -- |--------------------------< find_dt_del_modes >---------------------------|
172 -- ----------------------------------------------------------------------------
173 Procedure find_dt_del_modes
174 (p_effective_date in date,
175 p_base_key_value in number,
176 p_zap out nocopy boolean,
177 p_delete out nocopy boolean,
178 p_future_change out nocopy boolean,
179 p_delete_next_change out nocopy boolean) is
180 --
181 l_proc varchar2(72) := g_package||'find_dt_del_modes';
182 --
183 l_parent_key_value1 number;
184 l_parent_key_value2 number;
185 l_parent_key_value3 number;
186 --
187 Cursor C_Sel1 Is
188 select t.actl_prem_id,
189 t.cvg_amt_calc_mthd_id,
190 t.acty_base_rt_id
191 from ben_prtl_mo_rt_prtn_val_f t
192 where t.prtl_mo_rt_prtn_val_id = p_base_key_value
193 and p_effective_date
194 between t.effective_start_date and t.effective_end_date;
195 --
196 Begin
197 hr_utility.set_location('Entering:'||l_proc, 5);
198 Open C_Sel1;
199 Fetch C_Sel1 Into l_parent_key_value1,
200 l_parent_key_value2,
201 l_parent_key_value3;
202 If C_Sel1%notfound then
203 Close C_Sel1;
204 hr_utility.set_message('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
205 hr_utility.set_message_token('PROCEDURE', l_proc);
206 hr_utility.set_message_token('STEP','10');
207 hr_utility.raise_error;
208 End If;
209 Close C_Sel1;
210 --
211 -- Call the corresponding datetrack api
212 --
213 dt_api.find_dt_del_modes
214 (p_effective_date => p_effective_date,
215 p_base_table_name => 'ben_prtl_mo_rt_prtn_val_f',
216 p_base_key_column => 'prtl_mo_rt_prtn_val_id',
217 p_base_key_value => p_base_key_value,
218 p_parent_table_name1 => 'ben_actl_prem_f',
219 p_parent_key_column1 => 'actl_prem_id',
220 p_parent_key_value1 => l_parent_key_value1,
221 p_parent_table_name2 => 'ben_cvg_amt_calc_mthd_f',
222 p_parent_key_column2 => 'cvg_amt_calc_mthd_id',
223 p_parent_key_value2 => l_parent_key_value2,
224 p_parent_table_name3 => 'ben_acty_base_rt_f',
225 p_parent_key_column3 => 'acty_base_rt_id',
226 p_parent_key_value3 => l_parent_key_value3,
227 p_zap => p_zap,
228 p_delete => p_delete,
229 p_future_change => p_future_change,
230 p_delete_next_change => p_delete_next_change);
231 --
232 hr_utility.set_location(' Leaving:'||l_proc, 10);
233 End find_dt_del_modes;
234 --
235 -- ----------------------------------------------------------------------------
236 -- |--------------------------< find_dt_upd_modes >---------------------------|
237 -- ----------------------------------------------------------------------------
238 Procedure find_dt_upd_modes
239 (p_effective_date in date,
240 p_base_key_value in number,
241 p_correction out nocopy boolean,
242 p_update out nocopy boolean,
243 p_update_override out nocopy boolean,
244 p_update_change_insert out nocopy boolean) is
245 --
246 l_proc varchar2(72) := g_package||'find_dt_upd_modes';
247 --
248 Begin
249 hr_utility.set_location('Entering:'||l_proc, 5);
250 --
251 -- Call the corresponding datetrack api
252 --
253 dt_api.find_dt_upd_modes
254 (p_effective_date => p_effective_date,
255 p_base_table_name => 'ben_prtl_mo_rt_prtn_val_f',
256 p_base_key_column => 'prtl_mo_rt_prtn_val_id',
257 p_base_key_value => p_base_key_value,
258 p_correction => p_correction,
259 p_update => p_update,
260 p_update_override => p_update_override,
261 p_update_change_insert => p_update_change_insert);
262 --
263 hr_utility.set_location(' Leaving:'||l_proc, 10);
264 End find_dt_upd_modes;
265 --
266 -- ----------------------------------------------------------------------------
267 -- |------------------------< upd_effective_end_date >------------------------|
268 -- ----------------------------------------------------------------------------
269 Procedure upd_effective_end_date
270 (p_effective_date in date,
271 p_base_key_value in number,
272 p_new_effective_end_date in date,
273 p_validation_start_date in date,
274 p_validation_end_date in date,
275 p_object_version_number out nocopy number) is
276 --
277 l_proc varchar2(72) := g_package||'upd_effective_end_date';
278 l_object_version_number number;
279 --
280 Begin
281 hr_utility.set_location('Entering:'||l_proc, 5);
282 --
283 -- Because we are updating a row we must get the next object
284 -- version number.
285 --
286 l_object_version_number :=
287 dt_api.get_object_version_number
288 (p_base_table_name => 'ben_prtl_mo_rt_prtn_val_f',
289 p_base_key_column => 'prtl_mo_rt_prtn_val_id',
290 p_base_key_value => p_base_key_value);
291 --
292 hr_utility.set_location(l_proc, 10);
293 g_api_dml := true; -- Set the api dml status
294 --
295 -- Update the specified datetrack row setting the effective
296 -- end date to the specified new effective end date.
297 --
298 update ben_prtl_mo_rt_prtn_val_f t
299 set t.effective_end_date = p_new_effective_end_date,
300 t.object_version_number = l_object_version_number
301 where t.prtl_mo_rt_prtn_val_id = p_base_key_value
302 and p_effective_date
303 between t.effective_start_date and t.effective_end_date;
304 --
305 g_api_dml := false; -- Unset the api dml status
306 p_object_version_number := l_object_version_number;
307 hr_utility.set_location(' Leaving:'||l_proc, 15);
308 --
309 Exception
310 When Others Then
311 g_api_dml := false; -- Unset the api dml status
312 Raise;
313 End upd_effective_end_date;
314 --
315 -- ----------------------------------------------------------------------------
316 -- |---------------------------------< lck >----------------------------------|
317 -- ----------------------------------------------------------------------------
318 Procedure lck
319 (p_effective_date in date,
320 p_datetrack_mode in varchar2,
321 p_prtl_mo_rt_prtn_val_id in number,
322 p_object_version_number in number,
323 p_validation_start_date out nocopy date,
324 p_validation_end_date out nocopy date) is
325 --
326 l_proc varchar2(72) := g_package||'lck';
327 l_validation_start_date date;
328 l_validation_end_date date;
329 l_object_invalid exception;
330 l_argument varchar2(30);
331 --
332 -- Cursor C_Sel1 selects the current locked row as of session date
333 -- ensuring that the object version numbers match.
334 --
335 Cursor C_Sel1 is
336 select
337 prtl_mo_rt_prtn_val_id,
338 effective_end_date,
339 effective_start_date,
340 business_group_id,
341 rndg_cd,
342 to_dy_mo_num,
343 from_dy_mo_num,
344 pct_val,
345 acty_base_rt_id,
346 strt_r_stp_cvg_cd,
347 rndg_rl,
348 prtl_mo_prortn_rl,
349 actl_prem_id,
350 cvg_amt_calc_mthd_id,
351 num_days_month,
352 prorate_by_day_to_mon_flag,
353 pmrpv_attribute_category,
354 pmrpv_attribute1,
355 pmrpv_attribute2,
356 pmrpv_attribute3,
357 pmrpv_attribute4,
358 pmrpv_attribute5,
359 pmrpv_attribute6,
360 pmrpv_attribute7,
361 pmrpv_attribute8,
362 pmrpv_attribute9,
363 pmrpv_attribute10,
364 pmrpv_attribute11,
365 pmrpv_attribute12,
366 pmrpv_attribute13,
367 pmrpv_attribute14,
368 pmrpv_attribute15,
369 pmrpv_attribute16,
370 pmrpv_attribute17,
371 pmrpv_attribute18,
372 pmrpv_attribute19,
373 pmrpv_attribute20,
374 pmrpv_attribute21,
375 pmrpv_attribute22,
376 pmrpv_attribute23,
377 pmrpv_attribute24,
378 pmrpv_attribute25,
379 pmrpv_attribute26,
380 pmrpv_attribute27,
381 pmrpv_attribute28,
382 pmrpv_attribute29,
383 pmrpv_attribute30,
384 object_version_number
385 from ben_prtl_mo_rt_prtn_val_f
386 where prtl_mo_rt_prtn_val_id = p_prtl_mo_rt_prtn_val_id
387 and p_effective_date
388 between effective_start_date and effective_end_date
389 for update nowait;
390 --
391 --
392 --
393 Begin
394 hr_utility.set_location('Entering:'||l_proc, 5);
395 --
396 -- Ensure that all the mandatory arguments are not null
397 --
398 hr_api.mandatory_arg_error(p_api_name => l_proc,
399 p_argument => 'effective_date',
400 p_argument_value => p_effective_date);
401 --
402 hr_api.mandatory_arg_error(p_api_name => l_proc,
403 p_argument => 'datetrack_mode',
404 p_argument_value => p_datetrack_mode);
405 --
406 hr_api.mandatory_arg_error(p_api_name => l_proc,
407 p_argument => 'prtl_mo_rt_prtn_val_id',
408 p_argument_value => p_prtl_mo_rt_prtn_val_id);
409 --
410 hr_api.mandatory_arg_error(p_api_name => l_proc,
411 p_argument => 'object_version_number',
412 p_argument_value => p_object_version_number);
413 --
414 -- Check to ensure the datetrack mode is not INSERT.
415 --
416 If (p_datetrack_mode <> 'INSERT') then
417 --
418 -- We must select and lock the current row.
419 --
420 Open C_Sel1;
421 Fetch C_Sel1 Into g_old_rec;
422 If C_Sel1%notfound then
423 Close C_Sel1;
424 --
425 -- The primary key is invalid therefore we must error
426 --
427 hr_utility.set_message('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
428 hr_utility.raise_error;
429 End If;
430 Close C_Sel1;
431 If (p_object_version_number <> g_old_rec.object_version_number) Then
432 hr_utility.set_message('PAY', 'HR_7155_OBJECT_INVALID');
433 hr_utility.raise_error;
434 End If;
435 hr_utility.set_location(l_proc, 15);
436 --
440 --
437 --
438 -- Validate the datetrack mode mode getting the validation start
439 -- and end dates for the specified datetrack operation.
441 dt_api.validate_dt_mode
442 (p_effective_date => p_effective_date,
443 p_datetrack_mode => p_datetrack_mode,
444 p_base_table_name => 'ben_prtl_mo_rt_prtn_val_f',
445 p_base_key_column => 'prtl_mo_rt_prtn_val_id',
446 p_base_key_value => p_prtl_mo_rt_prtn_val_id,
447 p_parent_table_name1 => 'ben_actl_prem_f',
448 p_parent_key_column1 => 'actl_prem_id',
449 p_parent_key_value1 => g_old_rec.actl_prem_id,
450 p_parent_table_name2 => 'ben_cvg_amt_calc_mthd_f',
451 p_parent_key_column2 => 'cvg_amt_calc_mthd_id',
452 p_parent_key_value2 => g_old_rec.cvg_amt_calc_mthd_id,
453 p_parent_table_name3 => 'ben_acty_base_rt_f',
454 p_parent_key_column3 => 'acty_base_rt_id',
455 p_parent_key_value3 => g_old_rec.acty_base_rt_id,
456 p_enforce_foreign_locking => false , --true,
457 p_validation_start_date => l_validation_start_date,
458 p_validation_end_date => l_validation_end_date);
459 Else
460 --
461 -- We are doing a datetrack 'INSERT' which is illegal within this
462 -- procedure therefore we must error (note: to lck on insert the
463 -- private procedure ins_lck should be called).
464 --
465 hr_utility.set_message('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
466 hr_utility.set_message_token('PROCEDURE', l_proc);
467 hr_utility.set_message_token('STEP','20');
468 hr_utility.raise_error;
469 End If;
470 --
471 -- Set the validation start and end date OUT arguments
472 --
473 p_validation_start_date := l_validation_start_date;
474 p_validation_end_date := l_validation_end_date;
475 --
476 hr_utility.set_location(' Leaving:'||l_proc, 30);
477 --
478 -- We need to trap the ORA LOCK exception
479 --
480 Exception
481 When HR_Api.Object_Locked then
482 --
483 -- The object is locked therefore we need to supply a meaningful
484 -- error message.
485 --
486 hr_utility.set_message('PAY', 'HR_7165_OBJECT_LOCKED');
487 hr_utility.set_message_token('TABLE_NAME', 'ben_prtl_mo_rt_prtn_val_f');
488 hr_utility.raise_error;
489 When l_object_invalid then
490 --
491 -- The object doesn't exist or is invalid
492 --
493 hr_utility.set_message('PAY', 'HR_7155_OBJECT_INVALID');
494 hr_utility.set_message_token('TABLE_NAME', 'ben_prtl_mo_rt_prtn_val_f');
495 hr_utility.raise_error;
496 End lck;
497 --
498 -- ----------------------------------------------------------------------------
499 -- |-----------------------------< convert_args >-----------------------------|
500 -- ----------------------------------------------------------------------------
501 Function convert_args
502 (
503 p_prtl_mo_rt_prtn_val_id in number,
504 p_effective_end_date in date,
505 p_effective_start_date in date,
506 p_business_group_id in number,
507 p_rndg_cd in varchar2,
508 p_to_dy_mo_num in number,
509 p_from_dy_mo_num in number,
510 p_pct_val in number,
511 p_acty_base_rt_id in number,
512 p_strt_r_stp_cvg_cd in varchar2,
513 p_rndg_rl in number,
514 p_prtl_mo_prortn_rl in number,
515 p_actl_prem_id in number,
516 p_cvg_amt_calc_mthd_id in number,
517 p_num_days_month in number,
518 p_prorate_by_day_to_mon_flag in varchar2,
519 p_pmrpv_attribute_category in varchar2,
520 p_pmrpv_attribute1 in varchar2,
521 p_pmrpv_attribute2 in varchar2,
522 p_pmrpv_attribute3 in varchar2,
523 p_pmrpv_attribute4 in varchar2,
524 p_pmrpv_attribute5 in varchar2,
525 p_pmrpv_attribute6 in varchar2,
526 p_pmrpv_attribute7 in varchar2,
527 p_pmrpv_attribute8 in varchar2,
528 p_pmrpv_attribute9 in varchar2,
529 p_pmrpv_attribute10 in varchar2,
530 p_pmrpv_attribute11 in varchar2,
531 p_pmrpv_attribute12 in varchar2,
532 p_pmrpv_attribute13 in varchar2,
533 p_pmrpv_attribute14 in varchar2,
534 p_pmrpv_attribute15 in varchar2,
535 p_pmrpv_attribute16 in varchar2,
536 p_pmrpv_attribute17 in varchar2,
537 p_pmrpv_attribute18 in varchar2,
538 p_pmrpv_attribute19 in varchar2,
539 p_pmrpv_attribute20 in varchar2,
540 p_pmrpv_attribute21 in varchar2,
541 p_pmrpv_attribute22 in varchar2,
542 p_pmrpv_attribute23 in varchar2,
543 p_pmrpv_attribute24 in varchar2,
544 p_pmrpv_attribute25 in varchar2,
545 p_pmrpv_attribute26 in varchar2,
546 p_pmrpv_attribute27 in varchar2,
547 p_pmrpv_attribute28 in varchar2,
548 p_pmrpv_attribute29 in varchar2,
549 p_pmrpv_attribute30 in varchar2,
550 p_object_version_number in number
551 )
552 Return g_rec_type is
553 --
554 l_rec g_rec_type;
555 l_proc varchar2(72) := g_package||'convert_args';
556 --
560 --
557 Begin
558 --
559 hr_utility.set_location('Entering:'||l_proc, 5);
561 -- Convert arguments into local l_rec structure.
562 --
563 l_rec.prtl_mo_rt_prtn_val_id := p_prtl_mo_rt_prtn_val_id;
564 l_rec.effective_end_date := p_effective_end_date;
565 l_rec.effective_start_date := p_effective_start_date;
566 l_rec.business_group_id := p_business_group_id;
567 l_rec.rndg_cd := p_rndg_cd;
568 l_rec.to_dy_mo_num := p_to_dy_mo_num;
569 l_rec.from_dy_mo_num := p_from_dy_mo_num;
570 l_rec.pct_val := p_pct_val;
571 l_rec.acty_base_rt_id := p_acty_base_rt_id;
572 l_rec.strt_r_stp_cvg_cd := p_strt_r_stp_cvg_cd;
573 l_rec.rndg_rl := p_rndg_rl;
574 l_rec.prtl_mo_prortn_rl := p_prtl_mo_prortn_rl;
575 l_rec.actl_prem_id := p_actl_prem_id;
576 l_rec.cvg_amt_calc_mthd_id := p_cvg_amt_calc_mthd_id;
577 l_rec.num_days_month := p_num_days_month;
578 l_rec.prorate_by_day_to_mon_flag := p_prorate_by_day_to_mon_flag;
579 l_rec.pmrpv_attribute_category := p_pmrpv_attribute_category;
580 l_rec.pmrpv_attribute1 := p_pmrpv_attribute1;
581 l_rec.pmrpv_attribute2 := p_pmrpv_attribute2;
582 l_rec.pmrpv_attribute3 := p_pmrpv_attribute3;
583 l_rec.pmrpv_attribute4 := p_pmrpv_attribute4;
584 l_rec.pmrpv_attribute5 := p_pmrpv_attribute5;
585 l_rec.pmrpv_attribute6 := p_pmrpv_attribute6;
586 l_rec.pmrpv_attribute7 := p_pmrpv_attribute7;
587 l_rec.pmrpv_attribute8 := p_pmrpv_attribute8;
588 l_rec.pmrpv_attribute9 := p_pmrpv_attribute9;
589 l_rec.pmrpv_attribute10 := p_pmrpv_attribute10;
590 l_rec.pmrpv_attribute11 := p_pmrpv_attribute11;
591 l_rec.pmrpv_attribute12 := p_pmrpv_attribute12;
592 l_rec.pmrpv_attribute13 := p_pmrpv_attribute13;
593 l_rec.pmrpv_attribute14 := p_pmrpv_attribute14;
594 l_rec.pmrpv_attribute15 := p_pmrpv_attribute15;
595 l_rec.pmrpv_attribute16 := p_pmrpv_attribute16;
596 l_rec.pmrpv_attribute17 := p_pmrpv_attribute17;
597 l_rec.pmrpv_attribute18 := p_pmrpv_attribute18;
598 l_rec.pmrpv_attribute19 := p_pmrpv_attribute19;
599 l_rec.pmrpv_attribute20 := p_pmrpv_attribute20;
600 l_rec.pmrpv_attribute21 := p_pmrpv_attribute21;
601 l_rec.pmrpv_attribute22 := p_pmrpv_attribute22;
602 l_rec.pmrpv_attribute23 := p_pmrpv_attribute23;
603 l_rec.pmrpv_attribute24 := p_pmrpv_attribute24;
604 l_rec.pmrpv_attribute25 := p_pmrpv_attribute25;
605 l_rec.pmrpv_attribute26 := p_pmrpv_attribute26;
606 l_rec.pmrpv_attribute27 := p_pmrpv_attribute27;
607 l_rec.pmrpv_attribute28 := p_pmrpv_attribute28;
608 l_rec.pmrpv_attribute29 := p_pmrpv_attribute29;
609 l_rec.pmrpv_attribute30 := p_pmrpv_attribute30;
610 l_rec.object_version_number := p_object_version_number;
611 --
612 -- Return the plsql record structure.
613 --
614 hr_utility.set_location(' Leaving:'||l_proc, 10);
615 Return(l_rec);
616 --
617 End convert_args;
618 --
619 end ben_ppv_shd;