DBA Data[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;