[Home] [Help]
PACKAGE BODY: APPS.PER_CTC_SHD
Source
1 Package Body per_ctc_shd as
2 /* $Header: pectcrhi.pkb 115.20 2003/02/11 14:24:18 vramanai ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' per_ctc_shd.'; -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |---------------------------< constraint_error >---------------------------|
12 -- ----------------------------------------------------------------------------
13 Procedure constraint_error
14 (p_constraint_name in all_constraints.constraint_name%TYPE) Is
15 --
16 l_proc varchar2(72) := g_package||'constraint_error';
17 --
18 Begin
19 hr_utility.set_location('Entering:'||l_proc, 5);
20 --
21 If (p_constraint_name = 'PER_CONTRACTS_F_PK') Then
22
23 hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
24 hr_utility.set_message_token('PROCEDURE', l_proc);
25 hr_utility.set_message_token('STEP','5');
26 hr_utility.raise_error;
27
28 elsif (p_constraint_name = 'PER_CONTRACTS_F_FK1') then
29
30 hr_utility.set_message(801, 'PER_52832_CTR_INV_BG');
31 hr_utility.set_message_token('PROCEDURE', l_proc);
32 hr_utility.set_message_token('STEP','10');
33 hr_utility.raise_error;
34
35 elsif (p_constraint_name = 'PER_CONTRACTS_F_FK2') then
36
37 hr_utility.set_message(801, 'PER_52845_CTR_INV_PID');
38 hr_utility.set_message_token('PROCEDURE', l_proc);
39 hr_utility.set_message_token('STEP','15');
40 hr_utility.raise_error;
41
42 else
43
44 hr_utility.set_message(801, 'HR_7877_API_INVALID_CONSTRAINT');
45 hr_utility.set_message_token('PROCEDURE', l_proc);
46 hr_utility.set_message_token('CONSTRAINT_NAME', p_constraint_name);
47 hr_utility.raise_error;
48
49 End If;
50 --
51 hr_utility.set_location(' Leaving:'||l_proc, 20);
52 End constraint_error;
53 --
54 -- ----------------------------------------------------------------------------
55 -- |-----------------------------< api_updating >-----------------------------|
56 -- ----------------------------------------------------------------------------
57 Function api_updating
58 (p_effective_date in date,
59 p_contract_id in number,
60 p_object_version_number in number
61 ) Return Boolean Is
62 --
63 --
64 -- Cursor selects the 'current' row from the HR Schema
65 --
66 Cursor C_Sel1 is
67 select
68 contract_id,
69 effective_start_date,
70 effective_end_date,
71 business_group_id,
72 object_version_number,
73 person_id,
74 reference,
75 type,
76 status,
77 status_reason,
78 doc_status,
79 doc_status_change_date,
80 description,
81 duration,
82 duration_units,
83 contractual_job_title,
84 parties,
85 start_reason,
86 end_reason,
87 number_of_extensions,
88 extension_reason,
89 extension_period,
90 extension_period_units,
91 ctr_information_category,
92 ctr_information1,
93 ctr_information2,
94 ctr_information3,
95 ctr_information4,
96 ctr_information5,
97 ctr_information6,
98 ctr_information7,
99 ctr_information8,
100 ctr_information9,
101 ctr_information10,
102 ctr_information11,
103 ctr_information12,
104 ctr_information13,
105 ctr_information14,
106 ctr_information15,
107 ctr_information16,
108 ctr_information17,
109 ctr_information18,
110 ctr_information19,
111 ctr_information20,
112 attribute_category,
113 attribute1,
114 attribute2,
115 attribute3,
116 attribute4,
117 attribute5,
118 attribute6,
119 attribute7,
120 attribute8,
121 attribute9,
122 attribute10,
123 attribute11,
124 attribute12,
125 attribute13,
126 attribute14,
127 attribute15,
128 attribute16,
129 attribute17,
130 attribute18,
131 attribute19,
132 attribute20
133 from per_contracts_f
134 where contract_id = p_contract_id
135 and p_effective_date
136 between effective_start_date and effective_end_date;
137 --
138 l_proc varchar2(72) := g_package||'api_updating';
139 l_fct_ret boolean;
140 --
141 Begin
142 hr_utility.set_location('Entering:'||l_proc, 5);
143 --
144 If (p_effective_date is null or
145 p_contract_id is null or
146 p_object_version_number is null) Then
147 --
148 -- One of the primary key arguments is null therefore we must
149 -- set the returning function value to false
150 --
151 l_fct_ret := false;
152 Else
153 If (p_contract_id = g_old_rec.contract_id and
154 p_object_version_number = g_old_rec.object_version_number) Then
155 hr_utility.set_location(l_proc, 10);
156 --
157 -- The g_old_rec is current therefore we must
158 -- set the returning function to true
159 --
160 l_fct_ret := true;
161 Else
162 --
163 -- Select the current row
164 --
165 Open C_Sel1;
166 Fetch C_Sel1 Into g_old_rec;
167 If C_Sel1%notfound Then
168 Close C_Sel1;
169 --
170 -- The primary key is invalid therefore we must error
171 --
172 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
173 hr_utility.raise_error;
174 End If;
175 Close C_Sel1;
176 If (p_object_version_number <> g_old_rec.object_version_number) Then
177 hr_utility.set_message(801, 'HR_7155_OBJECT_INVALID');
178 hr_utility.raise_error;
179 End If;
180 hr_utility.set_location(l_proc, 15);
181 l_fct_ret := true;
182 End If;
183 End If;
184 hr_utility.set_location(' Leaving:'||l_proc, 20);
185 Return (l_fct_ret);
186 --
187 End api_updating;
188 --
189 -- ----------------------------------------------------------------------------
190 -- |--------------------------< find_dt_del_modes >---------------------------|
191 -- ----------------------------------------------------------------------------
192 Procedure find_dt_del_modes
193 (p_effective_date in date,
194 p_base_key_value in number,
195 p_zap out nocopy boolean,
196 p_delete out nocopy boolean,
197 p_future_change out nocopy boolean,
198 p_delete_next_change out nocopy boolean) is
199 --
200 l_proc varchar2(72) := g_package||'find_dt_del_modes';
201 --
202 l_parent_key_value1 number;
203 --
204 Cursor C_Sel1 Is
205 select ctc.person_id
206 from per_contracts_f ctc
207 where ctc.contract_id = p_base_key_value
208 and p_effective_date between ctc.effective_start_date
209 and ctc.effective_end_date;
210 --
211 Begin
212 hr_utility.set_location('Entering:'||l_proc, 5);
213 --
214 Open C_Sel1;
215 Fetch C_Sel1 Into l_parent_key_value1;
216 --
217 If C_Sel1%notfound then
218 Close C_Sel1;
219 hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
220 hr_utility.set_message_token('PROCEDURE', l_proc);
221 hr_utility.set_message_token('STEP','10');
222 hr_utility.raise_error;
223 End If;
224 Close C_Sel1;
225 --
226 -- Call the corresponding datetrack api
227 --
228 dt_api.find_dt_del_modes
229 (p_effective_date => p_effective_date,
230 p_base_table_name => 'per_contracts_f',
231 p_base_key_column => 'contract_id',
232 p_base_key_value => p_base_key_value,
233 p_parent_table_name1 => 'per_people_f',
234 p_parent_key_column1 => 'person_id',
235 p_parent_key_value1 => l_parent_key_value1,
236 p_zap => p_zap,
237 p_delete => p_delete,
238 p_future_change => p_future_change,
239 p_delete_next_change => p_delete_next_change);
240 --
241 -- delete mode is never allowed for contracts
242 --
243 p_delete := False;
244 --
245 hr_utility.set_location(' Leaving:'||l_proc, 10);
246 End find_dt_del_modes;
247 --
248 -- ----------------------------------------------------------------------------
249 -- |--------------------------< find_dt_upd_modes >---------------------------|
250 -- ----------------------------------------------------------------------------
251 Procedure find_dt_upd_modes
252 (p_effective_date in date,
253 p_base_key_value in number,
254 p_correction out nocopy boolean,
255 p_update out nocopy boolean,
256 p_update_override out nocopy boolean,
257 p_update_change_insert out nocopy boolean) is
258 --
259 l_proc varchar2(72) := g_package||'find_dt_upd_modes';
260 --
261 Begin
262 hr_utility.set_location('Entering:'||l_proc, 5);
263 --
264 -- Call the corresponding datetrack api
265 --
266 dt_api.find_dt_upd_modes
267 (p_effective_date => p_effective_date,
268 p_base_table_name => 'per_contracts_f',
269 p_base_key_column => 'contract_id',
270 p_base_key_value => p_base_key_value,
271 p_correction => p_correction,
272 p_update => p_update,
273 p_update_override => p_update_override,
274 p_update_change_insert => p_update_change_insert);
275 --
276 hr_utility.set_location(' Leaving:'||l_proc, 10);
277 End find_dt_upd_modes;
278 --
279 -- ----------------------------------------------------------------------------
280 -- |------------------------< upd_effective_end_date >------------------------|
281 -- ----------------------------------------------------------------------------
282 Procedure upd_effective_end_date
283 (p_effective_date in date,
284 p_base_key_value in number,
285 p_new_effective_end_date in date,
286 p_validation_start_date in date,
287 p_validation_end_date in date,
288 p_object_version_number out nocopy number) is
289 --
290 l_proc varchar2(72) := g_package||'upd_effective_end_date';
291 l_object_version_number number;
292 --
293 Begin
294 hr_utility.set_location('Entering:'||l_proc, 5);
295 --
296 -- Because we are updating a row we must get the next object
297 -- version number.
298 --
299 l_object_version_number :=
300 dt_api.get_object_version_number
301 (p_base_table_name => 'per_contracts_f',
302 p_base_key_column => 'contract_id',
303 p_base_key_value => p_base_key_value);
304 --
305 hr_utility.set_location(l_proc, 10);
306 --
307 -- Update the specified datetrack row setting the effective
308 -- end date to the specified new effective end date.
309 --
310 update per_contracts_f t
311 set t.effective_end_date = p_new_effective_end_date,
312 t.object_version_number = l_object_version_number
313 where t.contract_id = p_base_key_value
314 and p_effective_date
315 between t.effective_start_date and t.effective_end_date;
316 --
317 p_object_version_number := l_object_version_number;
318 hr_utility.set_location(' Leaving:'||l_proc, 15);
319 --
320 Exception
321 When Others Then
322 Raise;
323 End upd_effective_end_date;
324 --
325 -- ----------------------------------------------------------------------------
326 -- |---------------------------------< lck >----------------------------------|
327 -- ----------------------------------------------------------------------------
328 Procedure lck
329 (p_effective_date in date,
330 p_datetrack_mode in varchar2,
331 p_contract_id in number,
332 p_object_version_number in number,
333 p_validation_start_date out nocopy date,
334 p_validation_end_date out nocopy date) is
335 --
336 l_proc varchar2(72) := g_package||'lck';
337 l_validation_start_date date;
338 l_validation_end_date date;
339 l_object_invalid exception;
340 l_argument varchar2(30);
341 --
342 -- Cursor C_Sel1 selects the current locked row as of session date
343 -- ensuring that the object version numbers match.
344 --
345 Cursor C_Sel1 is
346 select
347 contract_id,
348 effective_start_date,
349 effective_end_date,
350 business_group_id,
351 object_version_number,
352 person_id,
353 reference,
354 type,
355 status,
356 status_reason,
357 doc_status,
358 doc_status_change_date,
359 description,
360 duration,
361 duration_units,
362 contractual_job_title,
363 parties,
364 start_reason,
365 end_reason,
366 number_of_extensions,
367 extension_reason,
368 extension_period,
369 extension_period_units,
370 ctr_information_category,
371 ctr_information1,
372 ctr_information2,
373 ctr_information3,
374 ctr_information4,
375 ctr_information5,
376 ctr_information6,
377 ctr_information7,
378 ctr_information8,
379 ctr_information9,
380 ctr_information10,
381 ctr_information11,
382 ctr_information12,
383 ctr_information13,
384 ctr_information14,
385 ctr_information15,
386 ctr_information16,
387 ctr_information17,
388 ctr_information18,
389 ctr_information19,
390 ctr_information20,
391 attribute_category,
392 attribute1,
393 attribute2,
394 attribute3,
395 attribute4,
396 attribute5,
397 attribute6,
398 attribute7,
399 attribute8,
400 attribute9,
401 attribute10,
402 attribute11,
403 attribute12,
404 attribute13,
405 attribute14,
406 attribute15,
407 attribute16,
408 attribute17,
409 attribute18,
410 attribute19,
411 attribute20
412 from per_contracts_f
413 where contract_id = p_contract_id
414 and p_effective_date
415 between effective_start_date and effective_end_date
416 for update nowait;
417 --
418 Begin
419 hr_utility.set_location('Entering:'||l_proc, 5);
420 --
421 -- Ensure that all the mandatory arguments are not null
422 --
423 hr_api.mandatory_arg_error(p_api_name => l_proc,
424 p_argument => 'effective_date',
425 p_argument_value => p_effective_date);
426 --
427 hr_api.mandatory_arg_error(p_api_name => l_proc,
428 p_argument => 'datetrack_mode',
429 p_argument_value => p_datetrack_mode);
430 --
431 hr_api.mandatory_arg_error(p_api_name => l_proc,
432 p_argument => 'contract_id',
433 p_argument_value => p_contract_id);
434 --
435 hr_api.mandatory_arg_error(p_api_name => l_proc,
436 p_argument => 'object_version_number',
437 p_argument_value => p_object_version_number);
438 --
439 -- Check to ensure the datetrack mode is not INSERT.
440 --
441 If (p_datetrack_mode <> 'INSERT') then
442 --
443 -- We must select and lock the current row.
444 --
445 Open C_Sel1;
446 Fetch C_Sel1 Into g_old_rec;
447 If C_Sel1%notfound then
448 Close C_Sel1;
449 --
450 -- The primary key is invalid therefore we must error
451 --
452 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
453 hr_utility.raise_error;
454 End If;
455 Close C_Sel1;
456 If (p_object_version_number <> g_old_rec.object_version_number) Then
457 hr_utility.set_message(801, 'HR_7155_OBJECT_INVALID');
458 hr_utility.raise_error;
459 End If;
460 hr_utility.set_location(l_proc, 15);
461 --
465 dt_api.validate_dt_mode
462 -- Validate the datetrack mode mode getting the validation start
463 -- and end dates for the specified datetrack operation.
464 --
466 (p_effective_date => p_effective_date,
467 p_datetrack_mode => p_datetrack_mode,
468 p_base_table_name => 'per_contracts_f',
469 p_base_key_column => 'contract_id',
470 p_base_key_value => p_contract_id,
471 p_parent_table_name1 => 'per_people_f',
472 p_parent_key_column1 => 'person_id',
473 p_parent_key_value1 => g_old_rec.person_id,
474 p_enforce_foreign_locking => true,
475 p_validation_start_date => l_validation_start_date,
476 p_validation_end_date => l_validation_end_date);
477 Else
478 --
479 -- We are doing a datetrack 'INSERT' which is illegal within this
480 -- procedure therefore we must error (note: to lck on insert the
481 -- private procedure ins_lck should be called).
482 --
483 hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
484 hr_utility.set_message_token('PROCEDURE', l_proc);
485 hr_utility.set_message_token('STEP','20');
486 hr_utility.raise_error;
487 End If;
488 --
489 -- Set the validation start and end date OUT arguments
490 --
491 p_validation_start_date := l_validation_start_date;
492 p_validation_end_date := l_validation_end_date;
493 --
494 hr_utility.set_location(' Leaving:'||l_proc, 30);
495 --
496 -- We need to trap the ORA LOCK exception
497 --
498 Exception
499 When HR_Api.Object_Locked then
500 --
501 -- The object is locked therefore we need to supply a meaningful
502 -- error message.
503 --
504 hr_utility.set_message(801, 'HR_7165_OBJECT_LOCKED');
505 hr_utility.set_message_token('TABLE_NAME', 'per_contracts_f');
506 hr_utility.raise_error;
507 When l_object_invalid then
508 --
509 -- The object doesn't exist or is invalid
510 --
511 hr_utility.set_message(801, 'HR_7155_OBJECT_INVALID');
512 hr_utility.set_message_token('TABLE_NAME', 'per_contracts_f');
513 hr_utility.raise_error;
514 End lck;
515 --
516 -- ----------------------------------------------------------------------------
517 -- |---------------------------------< lock_record >--------------------------|
518 -- ----------------------------------------------------------------------------
519 --
520 Procedure lock_record
521 (
522 p_contract_id in per_contracts_f.contract_id%TYPE,
523 p_effective_date in date,
524 p_object_version_number in per_contracts_f.object_version_number%TYPE
525 ) is
526 --
527 -- Cursor selects the 'current' row from the HR Schema
528 --
529 Cursor C_Sel1 is
530 select
531 contract_id,
532 effective_start_date,
533 effective_end_date,
534 business_group_id,
535 object_version_number,
536 person_id,
537 reference,
538 type,
539 status,
540 status_reason,
541 doc_status,
542 doc_status_change_date,
543 description,
544 duration,
545 duration_units,
546 contractual_job_title,
547 parties,
548 start_reason,
549 end_reason,
550 number_of_extensions,
551 extension_reason,
552 extension_period,
553 extension_period_units,
554 ctr_information_category,
555 ctr_information1,
556 ctr_information2,
557 ctr_information3,
558 ctr_information4,
559 ctr_information5,
560 ctr_information6,
561 ctr_information7,
562 ctr_information8,
563 ctr_information9,
564 ctr_information10,
565 ctr_information11,
566 ctr_information12,
567 ctr_information13,
568 ctr_information14,
569 ctr_information15,
570 ctr_information16,
571 ctr_information17,
572 ctr_information18,
573 ctr_information19,
574 ctr_information20,
575 attribute_category,
576 attribute1,
577 attribute2,
578 attribute3,
579 attribute4,
580 attribute5,
581 attribute6,
582 attribute7,
583 attribute8,
584 attribute9,
585 attribute10,
586 attribute11,
587 attribute12,
588 attribute13,
589 attribute14,
590 attribute15,
591 attribute16,
592 attribute17,
593 attribute18,
594 attribute19,
595 attribute20
596 from per_contracts_f
597 where contract_id = p_contract_id
598 and p_effective_date
599 between effective_start_date and effective_end_date
600 for update nowait;
601 --
602 l_proc varchar2(72) := g_package||'lock_record';
603 --
604 Begin
605 hr_utility.set_location('Entering:'||l_proc, 5);
606 --
607 -- mandatory argument checking
608 --
609 hr_api.mandatory_arg_error
610 (p_api_name => l_proc,
611 p_argument => 'contract_id',
612 p_argument_value => p_contract_id);
613
614 hr_api.mandatory_arg_error
615 (p_api_name => l_proc,
616 p_argument => 'effective_date',
617 p_argument_value => p_effective_date);
618
622 p_argument_value => p_object_version_number);
619 hr_api.mandatory_arg_error
620 (p_api_name => l_proc,
621 p_argument => 'object_version_number',
623
624 Open C_Sel1;
625 Fetch C_Sel1 Into g_old_rec;
626 If C_Sel1%notfound then
627 Close C_Sel1;
628 --
629 -- The primary key is invalid therefore we must error
630 --
631 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
632 hr_utility.raise_error;
633 End If;
634 Close C_Sel1;
635 If (p_object_version_number <> g_old_rec.object_version_number) Then
636 hr_utility.set_message(801, 'HR_7155_OBJECT_INVALID');
637 hr_utility.raise_error;
638 End If;
639 --
640 hr_utility.set_location(' Leaving:'||l_proc, 10);
641 --
642 -- We need to trap the ORA LOCK exception
643 --
644 Exception
645 When HR_Api.Object_Locked then
646 --
647 -- The object is locked therefore we need to supply a meaningful
648 -- error message.
649 --
650 hr_utility.set_message(801, 'HR_7165_OBJECT_LOCKED');
651 hr_utility.set_message_token('TABLE_NAME', 'per_contracts_f');
652 hr_utility.raise_error;
653 End lock_record;
654 --
655 -- ----------------------------------------------------------------------------
656 -- |-----------------------------< convert_args >-----------------------------|
657 -- ----------------------------------------------------------------------------
658 Function convert_args
659 (
660 p_contract_id in number,
661 p_effective_start_date in date,
662 p_effective_end_date in date,
663 p_business_group_id in number,
664 p_object_version_number in number,
665 p_person_id in number,
666 p_reference in varchar2,
667 p_type in varchar2,
668 p_status in varchar2,
669 p_status_reason in varchar2,
670 p_doc_status in varchar2,
671 p_doc_status_change_date in date,
672 p_description in varchar2,
673 p_duration in number,
674 p_duration_units in varchar2,
675 p_contractual_job_title in varchar2,
676 p_parties in varchar2,
677 p_start_reason in varchar2,
678 p_end_reason in varchar2,
679 p_number_of_extensions in number,
680 p_extension_reason in varchar2,
681 p_extension_period in number,
682 p_extension_period_units in varchar2,
683 p_ctr_information_category in varchar2,
684 p_ctr_information1 in varchar2,
685 p_ctr_information2 in varchar2,
686 p_ctr_information3 in varchar2,
687 p_ctr_information4 in varchar2,
688 p_ctr_information5 in varchar2,
689 p_ctr_information6 in varchar2,
690 p_ctr_information7 in varchar2,
691 p_ctr_information8 in varchar2,
692 p_ctr_information9 in varchar2,
693 p_ctr_information10 in varchar2,
694 p_ctr_information11 in varchar2,
695 p_ctr_information12 in varchar2,
696 p_ctr_information13 in varchar2,
697 p_ctr_information14 in varchar2,
698 p_ctr_information15 in varchar2,
699 p_ctr_information16 in varchar2,
700 p_ctr_information17 in varchar2,
701 p_ctr_information18 in varchar2,
702 p_ctr_information19 in varchar2,
703 p_ctr_information20 in varchar2,
704 p_attribute_category in varchar2,
705 p_attribute1 in varchar2,
706 p_attribute2 in varchar2,
707 p_attribute3 in varchar2,
708 p_attribute4 in varchar2,
709 p_attribute5 in varchar2,
710 p_attribute6 in varchar2,
711 p_attribute7 in varchar2,
712 p_attribute8 in varchar2,
713 p_attribute9 in varchar2,
714 p_attribute10 in varchar2,
715 p_attribute11 in varchar2,
716 p_attribute12 in varchar2,
717 p_attribute13 in varchar2,
718 p_attribute14 in varchar2,
719 p_attribute15 in varchar2,
720 p_attribute16 in varchar2,
721 p_attribute17 in varchar2,
722 p_attribute18 in varchar2,
723 p_attribute19 in varchar2,
724 p_attribute20 in varchar2
725 )
726 Return g_rec_type is
727 --
728 l_rec g_rec_type;
729 l_proc varchar2(72) := g_package||'convert_args';
730 --
731 Begin
732 --
733 hr_utility.set_location('Entering:'||l_proc, 5);
734 --
735 -- Convert arguments into local l_rec structure.
736 --
737 l_rec.contract_id := p_contract_id;
738 l_rec.effective_start_date := p_effective_start_date;
739 l_rec.effective_end_date := p_effective_end_date;
740 l_rec.business_group_id := p_business_group_id;
744 l_rec.type := p_type;
741 l_rec.object_version_number := p_object_version_number;
742 l_rec.person_id := p_person_id;
743 l_rec.reference := p_reference;
745 l_rec.status := p_status;
746 l_rec.status_reason := p_status_reason;
747 l_rec.doc_status := p_doc_status;
748 l_rec.doc_status_change_date := p_doc_status_change_date;
749 l_rec.description := p_description;
750 l_rec.duration := p_duration;
751 l_rec.duration_units := p_duration_units;
752 l_rec.contractual_job_title := p_contractual_job_title;
753 l_rec.parties := p_parties;
754 l_rec.start_reason := p_start_reason;
755 l_rec.end_reason := p_end_reason;
756 l_rec.number_of_extensions := p_number_of_extensions;
757 l_rec.extension_reason := p_extension_reason;
758 l_rec.extension_period := p_extension_period;
759 l_rec.extension_period_units := p_extension_period_units;
760 l_rec.ctr_information_category := p_ctr_information_category;
761 l_rec.ctr_information1 := p_ctr_information1;
762 l_rec.ctr_information2 := p_ctr_information2;
763 l_rec.ctr_information3 := p_ctr_information3;
764 l_rec.ctr_information4 := p_ctr_information4;
765 l_rec.ctr_information5 := p_ctr_information5;
766 l_rec.ctr_information6 := p_ctr_information6;
767 l_rec.ctr_information7 := p_ctr_information7;
768 l_rec.ctr_information8 := p_ctr_information8;
769 l_rec.ctr_information9 := p_ctr_information9;
770 l_rec.ctr_information10 := p_ctr_information10;
771 l_rec.ctr_information11 := p_ctr_information11;
772 l_rec.ctr_information12 := p_ctr_information12;
773 l_rec.ctr_information13 := p_ctr_information13;
774 l_rec.ctr_information14 := p_ctr_information14;
775 l_rec.ctr_information15 := p_ctr_information15;
776 l_rec.ctr_information16 := p_ctr_information16;
777 l_rec.ctr_information17 := p_ctr_information17;
778 l_rec.ctr_information18 := p_ctr_information18;
779 l_rec.ctr_information19 := p_ctr_information19;
780 l_rec.ctr_information20 := p_ctr_information20;
781 l_rec.attribute_category := p_attribute_category;
782 l_rec.attribute1 := p_attribute1;
783 l_rec.attribute2 := p_attribute2;
784 l_rec.attribute3 := p_attribute3;
785 l_rec.attribute4 := p_attribute4;
786 l_rec.attribute5 := p_attribute5;
787 l_rec.attribute6 := p_attribute6;
788 l_rec.attribute7 := p_attribute7;
789 l_rec.attribute8 := p_attribute8;
790 l_rec.attribute9 := p_attribute9;
791 l_rec.attribute10 := p_attribute10;
792 l_rec.attribute11 := p_attribute11;
793 l_rec.attribute12 := p_attribute12;
794 l_rec.attribute13 := p_attribute13;
795 l_rec.attribute14 := p_attribute14;
796 l_rec.attribute15 := p_attribute15;
797 l_rec.attribute16 := p_attribute16;
798 l_rec.attribute17 := p_attribute17;
799 l_rec.attribute18 := p_attribute18;
800 l_rec.attribute19 := p_attribute19;
801 l_rec.attribute20 := p_attribute20;
802 --
803 -- Return the plsql record structure.
804 --
805 hr_utility.set_location(' Leaving:'||l_proc, 10);
806 Return(l_rec);
807 --
808 End convert_args;
809 --
810 end per_ctc_shd;