[Home] [Help]
PACKAGE BODY: APPS.PER_PTU_INS
Source
1 Package Body per_ptu_ins as
2 /* $Header: pepturhi.pkb 120.0 2005/05/31 15:57:51 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' per_ptu_ins.'; -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |----------------------------< dt_insert_dml >-----------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 -- This procedure controls the actual dml insert logic for datetrack. The
17 -- functions of this procedure are as follows:
18 -- 1) Get the object_version_number.
19 -- 2) To set the effective start and end dates to the corresponding
20 -- validation start and end dates. Also, the object version number
21 -- record attribute is set.
22 -- 3) To insert the row into the schema with the derived effective start
23 -- and end dates and the object version number.
24 -- 4) To trap any constraint violations that may have occurred.
25 -- 5) To raise any other errors.
26 --
27 -- Prerequisites:
28 -- This is an internal private procedure which must be called from the
29 -- insert_dml and pre_update (logic permitting) procedure and must have
30 -- all mandatory arguments set.
31 --
32 -- In Parameters:
33 -- A Pl/Sql record structre.
34 --
35 -- Post Success:
36 -- The specified row will be inserted into the schema.
37 --
38 -- Post Failure:
39 -- If a check or unique integrity constraint violation is raised the
40 -- constraint_error procedure will be called.
41 --
42 -- Developer Implementation Notes:
43 -- This is an internal datetrack maintenance procedure which should
44 -- not be modified in anyway.
45 --
46 -- Access Status:
47 -- Internal Row Handler Use Only.
48 --
49 -- {End Of Comments}
50 -- ----------------------------------------------------------------------------
51 Procedure dt_insert_dml
52 (p_rec in out nocopy per_ptu_shd.g_rec_type,
53 p_effective_date in date,
54 p_datetrack_mode in varchar2,
55 p_validation_start_date in date,
56 p_validation_end_date in date) is
57 --
58 -- Cursor to select 'old' created AOL who column values
59 --
60 Cursor C_Sel1 Is
61 select t.created_by,
62 t.creation_date
63 from per_person_type_usages_f t
64 where t.person_type_usage_id = p_rec.person_type_usage_id
65 and t.effective_start_date =
66 per_ptu_shd.g_old_rec.effective_start_date
67 and t.effective_end_date = (p_validation_start_date - 1);
68 --
69 l_proc varchar2(72) := g_package||'dt_insert_dml';
70 l_created_by per_person_type_usages_f.created_by%TYPE;
71 l_creation_date per_person_type_usages_f.creation_date%TYPE;
72 l_last_update_date per_person_type_usages_f.last_update_date%TYPE;
73 l_last_updated_by per_person_type_usages_f.last_updated_by%TYPE;
74 l_last_update_login per_person_type_usages_f.last_update_login%TYPE;
75 --
76 Begin
77 hr_utility.set_location('Entering:'||l_proc, 5);
78 --
79 -- Get the object version number for the insert
80 --
81 p_rec.object_version_number :=
82 dt_api.get_object_version_number
83 (p_base_table_name => 'per_person_type_usages_f',
84 p_base_key_column => 'person_type_usage_id',
85 p_base_key_value => p_rec.person_type_usage_id);
86 --
87 -- Set the effective start and end dates to the corresponding
88 -- validation start and end dates
89 --
90 p_rec.effective_start_date := p_validation_start_date;
91 p_rec.effective_end_date := p_validation_end_date;
92 --
93 -- If the datetrack_mode is not INSERT then we must populate the WHO
94 -- columns with the 'old' creation values and 'new' updated values.
95 --
96 If (p_datetrack_mode <> 'INSERT') then
97 hr_utility.set_location(l_proc, 10);
98 --
99 -- Select the 'old' created values
100 --
101 Open C_Sel1;
102 Fetch C_Sel1 Into l_created_by, l_creation_date;
103 If C_Sel1%notfound Then
104 --
105 -- The previous 'old' created row has not been found. We need
106 -- to error as an internal datetrack problem exists.
107 --
108 Close C_Sel1;
109 hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
110 hr_utility.set_message_token('PROCEDURE', l_proc);
111 hr_utility.set_message_token('STEP','10');
112 hr_utility.raise_error;
113 End If;
114 Close C_Sel1;
115 --
116 -- Set the AOL updated WHO values
117 --
118 l_last_update_date := sysdate;
119 l_last_updated_by := fnd_global.user_id;
120 l_last_update_login := fnd_global.login_id;
121 End If;
122 --
123 --
124 -- Insert the row into: per_person_type_usages_f
125 --
126 insert into per_person_type_usages_f
127 ( person_type_usage_id,
128 person_id,
129 person_type_id,
130 effective_start_date,
131 effective_end_date,
132 object_version_number,
133 request_id,
134 program_application_id,
135 program_id,
136 program_update_date,
137 attribute_category,
138 attribute1,
139 attribute2,
140 attribute3,
141 attribute4,
142 attribute5,
143 attribute6,
144 attribute7,
145 attribute8,
146 attribute9,
147 attribute10,
148 attribute11,
149 attribute12,
150 attribute13,
151 attribute14,
152 attribute15,
153 attribute16,
154 attribute17,
155 attribute18,
156 attribute19,
157 attribute20,
158 attribute21,
159 attribute22,
160 attribute23,
161 attribute24,
162 attribute25,
163 attribute26,
164 attribute27,
165 attribute28,
166 attribute29,
167 attribute30,
168 created_by,
169 creation_date,
170 last_update_date,
171 last_updated_by,
172 last_update_login
173 )
174 Values
175 ( p_rec.person_type_usage_id,
176 p_rec.person_id,
177 p_rec.person_type_id,
178 p_rec.effective_start_date,
179 p_rec.effective_end_date,
180 p_rec.object_version_number,
181 p_rec.request_id,
182 p_rec.program_application_id,
183 p_rec.program_id,
184 p_rec.program_update_date,
185 p_rec.attribute_category,
186 p_rec.attribute1,
187 p_rec.attribute2,
188 p_rec.attribute3,
189 p_rec.attribute4,
190 p_rec.attribute5,
191 p_rec.attribute6,
192 p_rec.attribute7,
193 p_rec.attribute8,
194 p_rec.attribute9,
195 p_rec.attribute10,
196 p_rec.attribute11,
197 p_rec.attribute12,
198 p_rec.attribute13,
199 p_rec.attribute14,
200 p_rec.attribute15,
201 p_rec.attribute16,
202 p_rec.attribute17,
203 p_rec.attribute18,
204 p_rec.attribute19,
205 p_rec.attribute20,
206 p_rec.attribute21,
207 p_rec.attribute22,
208 p_rec.attribute23,
209 p_rec.attribute24,
210 p_rec.attribute25,
211 p_rec.attribute26,
212 p_rec.attribute27,
213 p_rec.attribute28,
214 p_rec.attribute29,
215 p_rec.attribute30,
216 l_created_by,
217 l_creation_date,
218 l_last_update_date,
219 l_last_updated_by,
220 l_last_update_login
221 );
222 --
223 hr_utility.set_location(' Leaving:'||l_proc, 15);
224 --
225 Exception
226 When hr_api.check_integrity_violated Then
227 -- A check constraint has been violated
228 per_ptu_shd.constraint_error
229 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
230 When hr_api.unique_integrity_violated Then
231 -- Unique integrity has been violated
232 per_ptu_shd.constraint_error
233 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
234 When Others Then
235 Raise;
236 End dt_insert_dml;
237 --
238 -- ----------------------------------------------------------------------------
239 -- |------------------------------< insert_dml >------------------------------|
240 -- ----------------------------------------------------------------------------
241 Procedure insert_dml
242 (p_rec in out nocopy per_ptu_shd.g_rec_type,
243 p_effective_date in date,
244 p_datetrack_mode in varchar2,
245 p_validation_start_date in date,
246 p_validation_end_date in date) is
247 --
248 l_proc varchar2(72) := g_package||'insert_dml';
249 --
250 Begin
251 hr_utility.set_location('Entering:'||l_proc, 5);
252 --
253 dt_insert_dml(p_rec => p_rec,
254 p_effective_date => p_effective_date,
255 p_datetrack_mode => p_datetrack_mode,
256 p_validation_start_date => p_validation_start_date,
257 p_validation_end_date => p_validation_end_date);
258 --
259 hr_utility.set_location(' Leaving:'||l_proc, 10);
260 End insert_dml;
261 --
262 -- ----------------------------------------------------------------------------
263 -- |------------------------------< pre_insert >------------------------------|
264 -- ----------------------------------------------------------------------------
265 -- {Start Of Comments}
266 --
267 -- Description:
268 -- This private procedure contains any processing which is required before
269 -- the insert dml. Presently, if the entity has a corresponding primary
270 -- key which is maintained by an associating sequence, the primary key for
271 -- the entity will be populated with the next sequence value in
272 -- preparation for the insert dml.
273 -- Also, if comments are defined for this entity, the comments insert
274 -- logic will also be called, generating a comment_id if required.
275 --
276 -- Prerequisites:
277 -- This is an internal procedure which is called from the ins procedure.
278 --
279 -- In Parameters:
280 -- A Pl/Sql record structre.
281 --
282 -- Post Success:
283 -- Processing continues.
284 --
285 -- Post Failure:
286 -- If an error has occurred, an error message and exception will be raised
287 -- but not handled.
288 --
289 -- Developer Implementation Notes:
290 -- Any pre-processing required before the insert dml is issued should be
291 -- coded within this procedure. As stated above, a good example is the
292 -- generation of a primary key number via a corresponding sequence.
293 -- It is important to note that any 3rd party maintenance should be reviewed
294 -- before placing in this procedure.
295 --
296 -- Access Status:
297 -- Internal Row Handler Use Only.
298 --
299 -- {End Of Comments}
300 -- ----------------------------------------------------------------------------
301 Procedure pre_insert
302 (p_rec in out nocopy per_ptu_shd.g_rec_type,
303 p_effective_date in date,
304 p_datetrack_mode in varchar2,
305 p_validation_start_date in date,
306 p_validation_end_date in date) is
307 --
308 l_proc varchar2(72) := g_package||'pre_insert';
309 --
310 Cursor C_Sel1 is select per_person_type_usages_s.nextval from sys.dual;
311 --
312 Begin
313 hr_utility.set_location('Entering:'||l_proc, 5);
314 --
315 --
316 -- Select the next sequence number
317 --
318 Open C_Sel1;
319 Fetch C_Sel1 Into p_rec.person_type_usage_id;
320 Close C_Sel1;
321 --
322 --
323 hr_utility.set_location(' Leaving:'||l_proc, 10);
324 End pre_insert;
325 --
326 -- ----------------------------------------------------------------------------
327 -- |-----------------------------< post_insert >------------------------------|
328 -- ----------------------------------------------------------------------------
329 -- {Start Of Comments}
330 --
331 -- Description:
332 -- This private procedure contains any processing which is required after the
333 -- insert dml.
334 --
335 -- Prerequisites:
336 -- This is an internal procedure which is called from the ins procedure.
337 --
338 -- In Parameters:
339 -- A Pl/Sql record structre.
340 --
341 -- Post Success:
342 -- Processing continues.
343 --
344 -- Post Failure:
345 -- If an error has occurred, an error message and exception will be raised
346 -- but not handled.
347 --
348 -- Developer Implementation Notes:
349 -- Any post-processing required after the insert dml is issued should be
350 -- coded within this procedure. It is important to note that any 3rd party
351 -- maintenance should be reviewed before placing in this procedure.
352 --
353 -- Access Status:
354 -- Internal Row Handler Use Only.
355 --
356 -- {End Of Comments}
357 -- ----------------------------------------------------------------------------
358 Procedure post_insert
359 (p_rec in per_ptu_shd.g_rec_type,
360 p_effective_date in date,
361 p_datetrack_mode in varchar2,
362 p_validation_start_date in date,
363 p_validation_end_date in date) is
364 --
365 l_proc varchar2(72) := g_package||'post_insert';
366 --
367 -- Start of Fix for WWBUG 1408379
368 --
369 l_old ben_ptu_ler.g_ptu_ler_rec;
370 l_new ben_ptu_ler.g_ptu_ler_rec;
371 --
372 -- End of Fix for WWBUG 1408379
373 --
374 --
375 Begin
376 hr_utility.set_location('Entering:'||l_proc, 5);
377 --
378 --
379 -- Start of API User Hook for post_insert.
380 begin
381 per_ptu_rki.after_insert
382 (
383 p_person_type_usage_id => p_rec.person_type_usage_id,
384 p_person_id => p_rec.person_id,
385 p_person_type_id => p_rec.person_type_id,
386 p_effective_start_date => p_rec.effective_start_date,
387 p_effective_end_date => p_rec.effective_end_date,
388 p_object_version_number => p_rec.object_version_number,
389 p_request_id => p_rec.request_id,
390 p_program_application_id => p_rec.program_application_id,
391 p_program_id => p_rec.program_id,
392 p_program_update_date => p_rec.program_update_date,
393 p_attribute_category => p_rec.attribute_category
394 ,p_attribute1 => p_rec.attribute1
395 ,p_attribute2 => p_rec.attribute2
396 ,p_attribute3 => p_rec.attribute3
397 ,p_attribute4 => p_rec.attribute4
398 ,p_attribute5 => p_rec.attribute5
399 ,p_attribute6 => p_rec.attribute6
400 ,p_attribute7 => p_rec.attribute7
401 ,p_attribute8 => p_rec.attribute8
402 ,p_attribute9 => p_rec.attribute9
403 ,p_attribute10 => p_rec.attribute10
404 ,p_attribute11 => p_rec.attribute11
405 ,p_attribute12 => p_rec.attribute12
406 ,p_attribute13 => p_rec.attribute13
407 ,p_attribute14 => p_rec.attribute14
408 ,p_attribute15 => p_rec.attribute15
409 ,p_attribute16 => p_rec.attribute16
410 ,p_attribute17 => p_rec.attribute17
411 ,p_attribute18 => p_rec.attribute18
412 ,p_attribute19 => p_rec.attribute19
413 ,p_attribute20 => p_rec.attribute20
414 ,p_attribute21 => p_rec.attribute21
415 ,p_attribute22 => p_rec.attribute22
416 ,p_attribute23 => p_rec.attribute23
417 ,p_attribute24 => p_rec.attribute24
418 ,p_attribute25 => p_rec.attribute25
419 ,p_attribute26 => p_rec.attribute26
420 ,p_attribute27 => p_rec.attribute27
421 ,p_attribute28 => p_rec.attribute28
422 ,p_attribute29 => p_rec.attribute29
423 ,p_attribute30 => p_rec.attribute30
424 ,p_effective_date => p_effective_date
425 ,p_validation_start_date => p_validation_start_date
426 ,p_validation_end_date => p_validation_end_date );
427 exception
428 when hr_api.cannot_find_prog_unit then
429 hr_api.cannot_find_prog_unit_error
430 (p_module_name => 'PER_PERSON_TYPE_USAGES_F'
431 ,p_hook_type => 'AI'
432 );
433 end;
434 --
435 -- Start of Fix for WWBUG 1408379
436 --
437 l_old.person_type_usage_id := null;
438 l_old.person_id := null;
439 l_old.person_type_id := null;
440 l_old.effective_start_date := null;
441 l_old.effective_end_date := null;
442 l_new.person_type_usage_id := p_rec.person_type_usage_id;
443 l_new.person_id := p_rec.person_id;
444 l_new.person_type_id := p_rec.person_type_id;
445 l_new.effective_start_date := p_rec.effective_start_date;
446 l_new.effective_end_date := p_rec.effective_end_date;
447 --
448 ben_ptu_ler.ler_chk(p_old => l_old,
449 p_new => l_new,
450 p_effective_date => p_rec.effective_start_date);
451 --
452 -- End of Fix for WWBUG 1408379
453 --
454 --
455 -- End of API User Hook for post_insert.
456 --
457 hr_utility.set_location(' Leaving:'||l_proc, 10);
458 End post_insert;
459 --
460 -- ----------------------------------------------------------------------------
461 -- |-------------------------------< ins_lck >--------------------------------|
462 -- ----------------------------------------------------------------------------
463 -- {Start Of Comments}
464 --
465 -- Description:
466 -- The ins_lck process has one main function to perform. When inserting
467 -- a datetracked row, we must validate the DT mode.
468 -- be manipulated.
469 --
470 -- Prerequisites:
471 -- This procedure can only be called for the datetrack mode of INSERT.
472 --
473 -- In Parameters:
474 --
475 -- Post Success:
476 -- On successful completion of the ins_lck process the parental
477 -- datetracked rows will be locked providing the p_enforce_foreign_locking
478 -- argument value is TRUE.
479 -- If the p_enforce_foreign_locking argument value is FALSE then the
480 -- parential rows are not locked.
481 --
482 -- Post Failure:
483 -- The Lck process can fail for:
484 -- 1) When attempting to lock the row the row could already be locked by
485 -- another user. This will raise the HR_Api.Object_Locked exception.
486 -- 2) When attempting to the lock the parent which doesn't exist.
487 -- For the entity to be locked the parent must exist!
488 --
489 -- Developer Implementation Notes:
490 -- None.
491 --
492 -- Access Status:
493 -- Internal Row Handler Use Only.
494 --
495 -- {End Of Comments}
496 -- ----------------------------------------------------------------------------
497 Procedure ins_lck
498 (p_effective_date in date,
499 p_datetrack_mode in varchar2,
500 p_rec in per_ptu_shd.g_rec_type,
501 p_validation_start_date out nocopy date,
502 p_validation_end_date out nocopy date) is
503 --
504 l_proc varchar2(72) := g_package||'ins_lck';
505 l_validation_start_date date;
506 l_validation_end_date date;
507 --
508 Begin
509 hr_utility.set_location('Entering:'||l_proc, 5);
510 --
511 -- Validate the datetrack mode mode getting the validation start
512 -- and end dates for the specified datetrack operation.
513 --
514 dt_api.validate_dt_mode
515 (p_effective_date => p_effective_date,
516 p_datetrack_mode => p_datetrack_mode,
517 p_base_table_name => 'per_person_type_usages_f',
518 p_base_key_column => 'person_type_usage_id',
519 p_base_key_value => p_rec.person_type_usage_id,
520 p_parent_table_name1 => 'per_all_people_f',
521 p_parent_key_column1 => 'person_id',
522 p_parent_key_value1 => p_rec.person_id,
523 p_enforce_foreign_locking => true,
524 p_validation_start_date => l_validation_start_date,
525 p_validation_end_date => l_validation_end_date);
526 --
527 -- Set the validation start and end date OUT arguments
528 --
529 p_validation_start_date := l_validation_start_date;
530 p_validation_end_date := l_validation_end_date;
531 --
532 hr_utility.set_location(' Leaving:'||l_proc, 10);
533 --
534 End ins_lck;
535 --
536 -- ----------------------------------------------------------------------------
537 -- |---------------------------------< ins >----------------------------------|
538 -- ----------------------------------------------------------------------------
539 Procedure ins
540 (
541 p_rec in out nocopy per_ptu_shd.g_rec_type,
542 p_effective_date in date
543 ) is
544 --
545 l_proc varchar2(72) := g_package||'ins';
546 l_datetrack_mode varchar2(30) := 'INSERT';
547 l_validation_start_date date;
548 l_validation_end_date date;
549 --
550 Begin
551 hr_utility.set_location('Entering:'||l_proc, 5);
552 --
553 -- Call the lock operation
554 --
555 ins_lck
556 (p_effective_date => p_effective_date,
557 p_datetrack_mode => l_datetrack_mode,
558 p_rec => p_rec,
559 p_validation_start_date => l_validation_start_date,
560 p_validation_end_date => l_validation_end_date);
561 --
562 -- Call the supporting insert validate operations
563 --
564 per_ptu_bus.insert_validate
565 (p_rec => p_rec,
566 p_effective_date => p_effective_date,
567 p_datetrack_mode => l_datetrack_mode,
568 p_validation_start_date => l_validation_start_date,
569 p_validation_end_date => l_validation_end_date);
570 --
571 -- Call the supporting pre-insert operation
572 --
573 pre_insert
574 (p_rec => p_rec,
575 p_effective_date => p_effective_date,
576 p_datetrack_mode => l_datetrack_mode,
577 p_validation_start_date => l_validation_start_date,
578 p_validation_end_date => l_validation_end_date);
579 --
580 -- Insert the row
581 --
582 insert_dml
583 (p_rec => p_rec,
584 p_effective_date => p_effective_date,
585 p_datetrack_mode => l_datetrack_mode,
586 p_validation_start_date => l_validation_start_date,
587 p_validation_end_date => l_validation_end_date);
588 --
589 -- Call the supporting post-insert operation
590 --
591 post_insert
592 (p_rec => p_rec,
593 p_effective_date => p_effective_date,
594 p_datetrack_mode => l_datetrack_mode,
595 p_validation_start_date => l_validation_start_date,
596 p_validation_end_date => l_validation_end_date);
597 end ins;
598 --
599 -- ----------------------------------------------------------------------------
600 -- |---------------------------------< ins >----------------------------------|
601 -- ----------------------------------------------------------------------------
602 Procedure ins
603 (
604 p_person_type_usage_id out nocopy number,
605 p_person_id in number,
606 p_person_type_id in number,
607 p_effective_start_date out nocopy date,
608 p_effective_end_date out nocopy date,
609 p_object_version_number out nocopy number,
610 p_request_id in number default null,
611 p_program_application_id in number default null,
612 p_program_id in number default null,
613 p_program_update_date in date default null,
614 p_attribute_category in varchar2 default null,
615 p_attribute1 in varchar2 default null,
616 p_attribute2 in varchar2 default null,
617 p_attribute3 in varchar2 default null,
618 p_attribute4 in varchar2 default null,
619 p_attribute5 in varchar2 default null,
620 p_attribute6 in varchar2 default null,
621 p_attribute7 in varchar2 default null,
622 p_attribute8 in varchar2 default null,
623 p_attribute9 in varchar2 default null,
624 p_attribute10 in varchar2 default null,
625 p_attribute11 in varchar2 default null,
626 p_attribute12 in varchar2 default null,
627 p_attribute13 in varchar2 default null,
628 p_attribute14 in varchar2 default null,
629 p_attribute15 in varchar2 default null,
630 p_attribute16 in varchar2 default null,
631 p_attribute17 in varchar2 default null,
632 p_attribute18 in varchar2 default null,
633 p_attribute19 in varchar2 default null,
634 p_attribute20 in varchar2 default null,
635 p_attribute21 in varchar2 default null,
636 p_attribute22 in varchar2 default null,
637 p_attribute23 in varchar2 default null,
638 p_attribute24 in varchar2 default null,
639 p_attribute25 in varchar2 default null,
640 p_attribute26 in varchar2 default null,
641 p_attribute27 in varchar2 default null,
642 p_attribute28 in varchar2 default null,
643 p_attribute29 in varchar2 default null,
644 p_attribute30 in varchar2 default null,
645 p_effective_date in date
646 ) is
647 --
648 l_rec per_ptu_shd.g_rec_type;
649 l_proc varchar2(72) := g_package||'ins';
650 --
651 Begin
652 hr_utility.set_location('Entering:'||l_proc, 5);
653 --
654 -- Call conversion function to turn arguments into the
655 -- p_rec structure.
656 --
657 l_rec :=
658 per_ptu_shd.convert_args
659 (
660 null,
661 p_person_id,
662 p_person_type_id,
663 null,
664 null,
665 null,
666 p_request_id,
667 p_program_application_id,
668 p_program_id,
669 p_program_update_date,
670 p_attribute_category,
671 p_attribute1,
672 p_attribute2,
673 p_attribute3,
674 p_attribute4,
675 p_attribute5,
676 p_attribute6,
677 p_attribute7,
678 p_attribute8,
679 p_attribute9,
680 p_attribute10,
681 p_attribute11,
682 p_attribute12,
683 p_attribute13,
684 p_attribute14,
685 p_attribute15,
686 p_attribute16,
687 p_attribute17,
688 p_attribute18,
689 p_attribute19,
690 p_attribute20,
691 p_attribute21,
692 p_attribute22,
693 p_attribute23,
694 p_attribute24,
695 p_attribute25,
696 p_attribute26,
697 p_attribute27,
698 p_attribute28,
699 p_attribute29,
700 p_attribute30
701 );
702 --
703 -- Having converted the arguments into the per_ptu_rec
704 -- plsql record structure we call the corresponding record
705 -- business process.
706 --
707 ins(l_rec, p_effective_date);
708 --
709 -- Set the OUT arguments.
710 --
711 p_person_type_usage_id := l_rec.person_type_usage_id;
712 p_effective_start_date := l_rec.effective_start_date;
713 p_effective_end_date := l_rec.effective_end_date;
714 p_object_version_number := l_rec.object_version_number;
715 --
716 --
717 hr_utility.set_location(' Leaving:'||l_proc, 10);
718 End ins;
719 --
720 end per_ptu_ins;