[Home] [Help]
PACKAGE BODY: APPS.PER_CTK_INS
Source
1 Package Body per_ctk_ins as
2 /* $Header: pectkrhi.pkb 120.7 2006/09/11 20:45:03 sturlapa noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' per_ctk_ins.'; -- Global package name
9 --
10 -- The following global variables are only to be used by
11 -- the set_base_key_value and pre_insert procedures.
12 --
13 g_task_in_checklist_id_i number default null;
14 --
15 -- ----------------------------------------------------------------------------
16 -- |------------------------< set_base_key_value >----------------------------|
17 -- ----------------------------------------------------------------------------
18 procedure set_base_key_value
19 (p_task_in_checklist_id in number) is
20 --
21 l_proc varchar2(72) := g_package||'set_base_key_value';
22 --
23 Begin
24 hr_utility.set_location('Entering:'||l_proc, 10);
25 --
26 per_ctk_ins.g_task_in_checklist_id_i := p_task_in_checklist_id;
27 --
28 hr_utility.set_location(' Leaving:'||l_proc, 20);
29 End set_base_key_value;
30 --
31 --
32 -- ----------------------------------------------------------------------------
33 -- |------------------------------< insert_dml >------------------------------|
34 -- ----------------------------------------------------------------------------
35 -- {Start Of Comments}
36 --
37 -- Description:
38 -- This procedure controls the actual dml insert logic. The processing of
39 -- this procedure are as follows:
40 -- 1) Initialise the object_version_number to 1 if the object_version_number
41 -- is defined as an attribute for this entity.
42 -- 2) To set and unset the g_api_dml status as required (as we are about to
43 -- perform dml).
44 -- 3) To insert the row into the schema.
45 -- 4) To trap any constraint violations that may have occurred.
46 -- 5) To raise any other errors.
47 --
48 -- Prerequisites:
49 -- This is an internal private procedure which must be called from the ins
50 -- procedure and must have all mandatory attributes set (except the
51 -- object_version_number which is initialised within this procedure).
52 --
53 -- In Parameters:
54 -- A Pl/Sql record structre.
55 --
56 -- Post Success:
57 -- The specified row will be inserted into the schema.
58 --
59 -- Post Failure:
60 -- On the insert dml failure it is important to note that we always reset the
61 -- g_api_dml status to false.
62 -- If a check, unique or parent integrity constraint violation is raised the
63 -- constraint_error procedure will be called.
64 -- If any other error is reported, the error will be raised after the
65 -- g_api_dml status is reset.
66 --
67 -- Developer Implementation Notes:
68 -- None.
69 --
70 -- Access Status:
71 -- Internal Row Handler Use Only.
72 --
73 -- {End Of Comments}
74 -- ----------------------------------------------------------------------------
75 Procedure insert_dml
76 (p_rec in out nocopy per_ctk_shd.g_rec_type
77 ) is
78 --
79 l_proc varchar2(72) := g_package||'insert_dml';
80 --
81 Begin
82 hr_utility.set_location('Entering:'||l_proc, 5);
83 p_rec.object_version_number := 1; -- Initialise the object version
84 --
85 --
86 --
87 -- Insert the row into: per_tasks_in_checklist
88 --
89 insert into per_tasks_in_checklist
90 (task_in_checklist_id
91 ,checklist_id
92 ,checklist_task_name
93 ,eligibility_object_id
94 ,eligibility_profile_id
95 ,ame_attribute_identifier
96 ,description
97 ,mandatory_flag
98 ,target_duration
99 ,target_duration_uom
100 ,task_sequence
101 ,object_version_number
102 ,action_url
103 ,attribute_category
104 ,attribute1
105 ,attribute2
106 ,attribute3
107 ,attribute4
108 ,attribute5
109 ,attribute6
110 ,attribute7
111 ,attribute8
112 ,attribute9
113 ,attribute10
114 ,attribute11
115 ,attribute12
116 ,attribute13
117 ,attribute14
118 ,attribute15
119 ,attribute16
120 ,attribute17
121 ,attribute18
122 ,attribute19
123 ,attribute20
124 ,information_category
125 ,information1
126 ,information2
127 ,information3
128 ,information4
129 ,information5
130 ,information6
131 ,information7
132 ,information8
133 ,information9
134 ,information10
135 ,information11
136 ,information12
137 ,information13
138 ,information14
139 ,information15
140 ,information16
141 ,information17
142 ,information18
143 ,information19
144 ,information20
145 )
146 Values
147 (p_rec.task_in_checklist_id
148 ,p_rec.checklist_id
149 ,p_rec.checklist_task_name
150 ,p_rec.eligibility_object_id
151 ,p_rec.eligibility_profile_id
152 ,p_rec.ame_attribute_identifier
153 ,p_rec.description
154 ,p_rec.mandatory_flag
155 ,p_rec.target_duration
156 ,p_rec.target_duration_uom
157 ,p_rec.task_sequence
158 ,p_rec.object_version_number
159 ,p_rec.action_url
160 ,p_rec.attribute_category
161 ,p_rec.attribute1
162 ,p_rec.attribute2
163 ,p_rec.attribute3
164 ,p_rec.attribute4
165 ,p_rec.attribute5
166 ,p_rec.attribute6
167 ,p_rec.attribute7
168 ,p_rec.attribute8
169 ,p_rec.attribute9
170 ,p_rec.attribute10
171 ,p_rec.attribute11
172 ,p_rec.attribute12
173 ,p_rec.attribute13
174 ,p_rec.attribute14
175 ,p_rec.attribute15
176 ,p_rec.attribute16
177 ,p_rec.attribute17
178 ,p_rec.attribute18
179 ,p_rec.attribute19
180 ,p_rec.attribute20
181 ,p_rec.information_category
182 ,p_rec.information1
183 ,p_rec.information2
184 ,p_rec.information3
185 ,p_rec.information4
186 ,p_rec.information5
187 ,p_rec.information6
188 ,p_rec.information7
189 ,p_rec.information8
190 ,p_rec.information9
191 ,p_rec.information10
192 ,p_rec.information11
193 ,p_rec.information12
194 ,p_rec.information13
195 ,p_rec.information14
196 ,p_rec.information15
197 ,p_rec.information16
198 ,p_rec.information17
199 ,p_rec.information18
200 ,p_rec.information19
201 ,p_rec.information20
202 );
203 --
204 --
205 --
206 hr_utility.set_location(' Leaving:'||l_proc, 10);
207 Exception
208 When hr_api.check_integrity_violated Then
209 -- A check constraint has been violated
210 --
211 per_ctk_shd.constraint_error
212 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
213 When hr_api.parent_integrity_violated Then
214 -- Parent integrity has been violated
215 --
216 per_ctk_shd.constraint_error
217 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
218 When hr_api.unique_integrity_violated Then
219 -- Unique integrity has been violated
220 --
221 per_ctk_shd.constraint_error
222 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
223 When Others Then
224 --
225 Raise;
226 End insert_dml;
227 --
228 -- ----------------------------------------------------------------------------
229 -- |------------------------------< pre_insert >------------------------------|
230 -- ----------------------------------------------------------------------------
231 -- {Start Of Comments}
232 --
233 -- Description:
234 -- This private procedure contains any processing which is required before
235 -- the insert dml. Presently, if the entity has a corresponding primary
236 -- key which is maintained by an associating sequence, the primary key for
237 -- the entity will be populated with the next sequence value in
238 -- preparation for the insert dml.
239 --
240 -- Prerequisites:
241 -- This is an internal procedure which is called from the ins procedure.
242 --
243 -- In Parameters:
244 -- A Pl/Sql record structure.
245 --
246 -- Post Success:
247 -- Processing continues.
248 --
249 -- Post Failure:
250 -- If an error has occurred, an error message and exception will be raised
251 -- but not handled.
252 --
253 -- Developer Implementation Notes:
254 -- Any pre-processing required before the insert dml is issued should be
255 -- coded within this procedure. As stated above, a good example is the
256 -- generation of a primary key number via a corresponding sequence.
257 -- It is important to note that any 3rd party maintenance should be reviewed
258 -- before placing in this procedure.
259 --
260 -- Access Status:
261 -- Internal Row Handler Use Only.
262 --
263 -- {End Of Comments}
264 -- ----------------------------------------------------------------------------
265 Procedure pre_insert
266 (p_rec in out nocopy per_ctk_shd.g_rec_type
267 ,p_effective_date in date
268 ) is
269 --
270 Cursor C_Sel1 is select per_tasks_in_checklist_s.nextval from sys.dual;
271 --
272 cursor c_bg_id(p_checklist_id number) is
273 select business_group_id
274 from per_checklists
275 where checklist_id = p_checklist_id;
276 --
277 Cursor C_Sel2 is
278 Select null
279 from per_tasks_in_checklist
280 where task_in_checklist_id =
281 per_ctk_ins.g_task_in_checklist_id_i;
282 --
283 cursor c_elig_prfl_dates(cur_p_elig_prfl_id number) is
284 select
285 effective_start_date
286 FROM
287 ben_eligy_prfl_f
288 WHERE
289 trunc(sysdate) between effective_start_date and effective_end_date
290 AND stat_cd = 'A'
291 AND bnft_cagr_prtn_cd = 'CHKLIST'
292 and ELIGY_PRFL_ID=cur_p_elig_prfl_id;
293 --
294 l_proc varchar2(72) := g_package||'pre_insert';
295 l_exists varchar2(1);
296 --
297 l_bgid number;
298 l_elig_obj_id number;
299 l_elig_obj_elig_prfl_id number;
300 l_prf_ovn number;
301 l_obj_ovn number;
302 l_effective_date date;
303 l_tab_name varchar2(30) := 'PER_TASKS_IN_CHECKLIST';
304 l_col_name varchar2(30) := 'TASK_IN_CHECKLIST_ID';
305 l_tic_id number;
306 l_effective_start_date date;
307 l_effective_end_date date;
308 --
309 Begin
310 hr_utility.set_location('Entering:'||l_proc, 5);
311 --
312 If (per_ctk_ins.g_task_in_checklist_id_i is not null) Then
313 --
314 -- Verify registered primary key values not already in use
315 --
316 Open C_Sel2;
317 Fetch C_Sel2 into l_exists;
318 If C_Sel2%found Then
319 Close C_Sel2;
320 --
321 -- The primary key values are already in use.
322 --
323 fnd_message.set_name('PER','PER_289391_KEY_ALREADY_USED');
324 fnd_message.set_token('TABLE_NAME','per_tasks_in_checklist');
325 fnd_message.raise_error;
326 End If;
327 Close C_Sel2;
328 --
329 -- Use registered key values and clear globals
330 --
331 p_rec.task_in_checklist_id :=
332 per_ctk_ins.g_task_in_checklist_id_i;
333 per_ctk_ins.g_task_in_checklist_id_i := null;
334 Else
335 --
336 -- No registerd key values, so select the next sequence number
337 --
338 --
339 -- Select the next sequence number
340 --
341 Open C_Sel1;
342 Fetch C_Sel1 Into p_rec.task_in_checklist_id;
343 Close C_Sel1;
344 End If;
345 --
346 --
347 -- Add Create Eligibility Object logic
348 --
349
350 --l_effective_end_date := hr_api.g_eot;
351 --l_effective_date := hr_api.g_sys;
352 --l_business_group_id :=
353 --
354 -- Get the business group_id
355 --
356 Open c_bg_id(p_rec.checklist_id);
357 Fetch c_bg_id Into l_bgid;
358 Close c_bg_id;
359 --
360 l_tic_id := p_rec.task_in_checklist_id;
361 --
362 --
363 -- Add Create Eligibility Object logic
364 --
365 if ( nvl(p_rec.eligibility_profile_id, hr_api.g_number) <> hr_api.g_number ) then
366 --
367 open c_elig_prfl_dates(p_rec.eligibility_profile_id);
368 fetch c_elig_prfl_dates into l_effective_date;
369 close c_elig_prfl_dates;
370
371 ben_elig_obj_api.create_ELIG_OBJ
372 (
373 p_validate => false
374 ,p_elig_obj_id => l_elig_obj_id
375 ,p_effective_start_date => l_effective_start_date
376 ,p_effective_end_date => l_effective_end_date
377 ,p_business_group_id => l_bgid
378 ,p_table_name => l_tab_name --'PER_TASKS_IN_CHECKLIST'
379 ,p_column_name => l_col_name
380 ,p_column_value => l_tic_id
381 ,p_object_version_number => l_obj_ovn
382 ,p_effective_date => l_effective_date
383 );
384
385
386 p_rec.eligibility_object_id := l_elig_obj_id;
387
388 ben_ELIG_OBJ_ELIG_PROFL_api. create_ELIG_OBJ_ELIG_PROFL
389 (
390 p_validate => false
391 ,p_elig_obj_id => p_rec.eligibility_object_id
392 ,p_elig_prfl_id => p_rec.eligibility_profile_id
393 ,p_mndtry_flag => 'N'
394 ,p_business_group_id => l_bgid
395 ,p_effective_start_date => l_effective_start_date
396 ,p_effective_end_date => l_effective_end_date
397 ,p_elig_obj_elig_prfl_id => l_elig_obj_elig_prfl_id
398 ,p_object_version_number => l_prf_ovn
399 ,p_effective_date => l_effective_date
400 );
401 --
402 end if;
403 --
404 hr_utility.set_location(' Leaving:'||l_proc, 10);
405 End pre_insert;
406 --
407 -- ----------------------------------------------------------------------------
408 -- |-----------------------------< post_insert >------------------------------|
409 -- ----------------------------------------------------------------------------
410 -- {Start Of Comments}
411 --
412 -- Description:
413 -- This private procedure contains any processing which is required after
414 -- the insert dml.
415 --
416 -- Prerequisites:
417 -- This is an internal procedure which is called from the ins procedure.
418 --
419 -- In Parameters:
420 -- A Pl/Sql record structre.
421 --
422 -- Post Success:
423 -- Processing continues.
424 --
425 -- Post Failure:
426 -- If an error has occurred, an error message and exception will be raised
427 -- but not handled.
428 --
429 -- Developer Implementation Notes:
430 -- Any post-processing required after the insert dml is issued should be
431 -- coded within this procedure. It is important to note that any 3rd party
432 -- maintenance should be reviewed before placing in this procedure.
433 --
434 -- Access Status:
435 -- Internal Row Handler Use Only.
436 --
437 -- {End Of Comments}
438 -- ----------------------------------------------------------------------------
439 Procedure post_insert
440 (p_effective_date in date
441 ,p_rec in per_ctk_shd.g_rec_type
442 ) is
443 --
444 l_proc varchar2(72) := g_package||'post_insert';
445 --
446 Begin
447 hr_utility.set_location('Entering:'||l_proc, 5);
448 begin
449 --
450 per_ctk_rki.after_insert
451 (p_effective_date => p_effective_date
452 ,p_task_in_checklist_id
453 => p_rec.task_in_checklist_id
454 ,p_checklist_id
455 => p_rec.checklist_id
456 ,p_checklist_task_name
457 => p_rec.checklist_task_name
458 ,p_eligibility_object_id
459 => p_rec.eligibility_object_id
460 ,p_eligibility_profile_id
461 => p_rec.eligibility_profile_id
462 ,p_ame_attribute_identifier
463 => p_rec.ame_attribute_identifier
464 ,p_description
465 => p_rec.description
466 ,p_mandatory_flag
467 => p_rec.mandatory_flag
468 ,p_target_duration
469 => p_rec.target_duration
470 ,p_target_duration_uom
471 => p_rec.target_duration_uom
472 ,p_task_sequence
473 => p_rec.task_sequence
474 ,p_object_version_number
475 => p_rec.object_version_number
476 ,p_action_url
477 => p_rec.action_url
478 ,p_attribute_category
479 => p_rec.attribute_category
480 ,p_attribute1
481 => p_rec.attribute1
482 ,p_attribute2
483 => p_rec.attribute2
484 ,p_attribute3
485 => p_rec.attribute3
486 ,p_attribute4
487 => p_rec.attribute4
488 ,p_attribute5
489 => p_rec.attribute5
490 ,p_attribute6
491 => p_rec.attribute6
492 ,p_attribute7
493 => p_rec.attribute7
494 ,p_attribute8
495 => p_rec.attribute8
496 ,p_attribute9
497 => p_rec.attribute9
498 ,p_attribute10
499 => p_rec.attribute10
500 ,p_attribute11
501 => p_rec.attribute11
502 ,p_attribute12
503 => p_rec.attribute12
504 ,p_attribute13
505 => p_rec.attribute13
506 ,p_attribute14
507 => p_rec.attribute14
508 ,p_attribute15
509 => p_rec.attribute15
510 ,p_attribute16
511 => p_rec.attribute16
512 ,p_attribute17
513 => p_rec.attribute17
514 ,p_attribute18
515 => p_rec.attribute18
516 ,p_attribute19
517 => p_rec.attribute19
518 ,p_attribute20
519 => p_rec.attribute20
520 ,p_information_category
521 => p_rec.information_category
522 ,p_information1
523 => p_rec.information1
524 ,p_information2
525 => p_rec.information2
526 ,p_information3
527 => p_rec.information3
528 ,p_information4
529 => p_rec.information4
530 ,p_information5
531 => p_rec.information5
532 ,p_information6
533 => p_rec.information6
534 ,p_information7
535 => p_rec.information7
536 ,p_information8
537 => p_rec.information8
538 ,p_information9
539 => p_rec.information9
540 ,p_information10
541 => p_rec.information10
542 ,p_information11
543 => p_rec.information11
544 ,p_information12
545 => p_rec.information12
546 ,p_information13
547 => p_rec.information13
548 ,p_information14
549 => p_rec.information14
550 ,p_information15
551 => p_rec.information15
552 ,p_information16
553 => p_rec.information16
554 ,p_information17
555 => p_rec.information17
556 ,p_information18
557 => p_rec.information18
558 ,p_information19
559 => p_rec.information19
560 ,p_information20
561 => p_rec.information20
562 );
563 --
564 exception
565 --
566 when hr_api.cannot_find_prog_unit then
567 --
568 hr_api.cannot_find_prog_unit_error
569 (p_module_name => 'PER_TASKS_IN_CHECKLIST'
570 ,p_hook_type => 'AI');
571 --
572 end;
573 --
574 hr_utility.set_location(' Leaving:'||l_proc, 10);
575 End post_insert;
576 --
577 -- ----------------------------------------------------------------------------
578 -- |---------------------------------< ins >----------------------------------|
579 -- ----------------------------------------------------------------------------
580 Procedure ins
581 (p_effective_date in date
582 ,p_rec in out nocopy per_ctk_shd.g_rec_type
583 ) is
584 --
585 l_proc varchar2(72) := g_package||'ins';
586 --
587 Begin
588 hr_utility.set_location('Entering:'||l_proc, 5);
589 --
590 -- Call the supporting insert validate operations
591 --
592 per_ctk_bus.insert_validate
593 (p_effective_date
594 ,p_rec
595 );
596 --
597 -- Call to raise any errors on multi-message list
598 hr_multi_message.end_validation_set;
599 --
600 -- Call the supporting pre-insert operation
601 --
602 per_ctk_ins.pre_insert(p_rec
603 ,p_effective_date);
604 --
605 -- Insert the row
606 --
607 per_ctk_ins.insert_dml(p_rec);
608 --
609 -- Call the supporting post-insert operation
610 --
611 per_ctk_ins.post_insert
612 (p_effective_date
613 ,p_rec
614 );
615 --
616 -- Call to raise any errors on multi-message list
617 hr_multi_message.end_validation_set;
618 --
619 hr_utility.set_location('Leaving:'||l_proc, 20);
620 end ins;
621 --
622 -- ----------------------------------------------------------------------------
623 -- |---------------------------------< ins >----------------------------------|
624 -- ----------------------------------------------------------------------------
625 Procedure ins
626 (p_effective_date in date
627 ,p_checklist_id in number
628 ,p_checklist_task_name in varchar2
629 ,p_eligibility_object_id in number default null
630 ,p_eligibility_profile_id in number default null
631 ,p_ame_attribute_identifier in varchar2 default null
632 ,p_description in varchar2 default null
633 ,p_mandatory_flag in varchar2 default null
634 ,p_target_duration in number default null
635 ,p_target_duration_uom in varchar2 default null
636 ,p_task_sequence in number default null
637 ,p_action_url in varchar2 default null
638 ,p_attribute_category in varchar2 default null
639 ,p_attribute1 in varchar2 default null
640 ,p_attribute2 in varchar2 default null
641 ,p_attribute3 in varchar2 default null
642 ,p_attribute4 in varchar2 default null
643 ,p_attribute5 in varchar2 default null
644 ,p_attribute6 in varchar2 default null
645 ,p_attribute7 in varchar2 default null
646 ,p_attribute8 in varchar2 default null
647 ,p_attribute9 in varchar2 default null
648 ,p_attribute10 in varchar2 default null
649 ,p_attribute11 in varchar2 default null
650 ,p_attribute12 in varchar2 default null
651 ,p_attribute13 in varchar2 default null
652 ,p_attribute14 in varchar2 default null
653 ,p_attribute15 in varchar2 default null
654 ,p_attribute16 in varchar2 default null
655 ,p_attribute17 in varchar2 default null
656 ,p_attribute18 in varchar2 default null
657 ,p_attribute19 in varchar2 default null
658 ,p_attribute20 in varchar2 default null
659 ,p_information_category in varchar2 default null
660 ,p_information1 in varchar2 default null
661 ,p_information2 in varchar2 default null
662 ,p_information3 in varchar2 default null
663 ,p_information4 in varchar2 default null
664 ,p_information5 in varchar2 default null
665 ,p_information6 in varchar2 default null
666 ,p_information7 in varchar2 default null
667 ,p_information8 in varchar2 default null
668 ,p_information9 in varchar2 default null
669 ,p_information10 in varchar2 default null
670 ,p_information11 in varchar2 default null
671 ,p_information12 in varchar2 default null
672 ,p_information13 in varchar2 default null
673 ,p_information14 in varchar2 default null
674 ,p_information15 in varchar2 default null
675 ,p_information16 in varchar2 default null
676 ,p_information17 in varchar2 default null
677 ,p_information18 in varchar2 default null
678 ,p_information19 in varchar2 default null
679 ,p_information20 in varchar2 default null
680 ,p_task_in_checklist_id out nocopy number
681 ,p_object_version_number out nocopy number
682 ) is
683 --
684 l_rec per_ctk_shd.g_rec_type;
685 l_proc varchar2(72) := g_package||'ins';
686 --
687 Begin
688 hr_utility.set_location('Entering:'||l_proc, 5);
689 --
690 -- Call conversion function to turn arguments into the
691 -- p_rec structure.
692 --
693 l_rec :=
694 per_ctk_shd.convert_args
695 (null
696 ,p_checklist_id
697 ,p_checklist_task_name
698 ,p_eligibility_object_id
699 ,p_eligibility_profile_id
700 ,p_ame_attribute_identifier
701 ,p_description
702 ,p_mandatory_flag
703 ,p_target_duration
704 ,p_target_duration_uom
705 ,p_task_sequence
706 ,null
707 ,p_action_url
708 ,p_attribute_category
709 ,p_attribute1
710 ,p_attribute2
711 ,p_attribute3
712 ,p_attribute4
713 ,p_attribute5
714 ,p_attribute6
715 ,p_attribute7
716 ,p_attribute8
717 ,p_attribute9
718 ,p_attribute10
719 ,p_attribute11
720 ,p_attribute12
721 ,p_attribute13
722 ,p_attribute14
723 ,p_attribute15
724 ,p_attribute16
725 ,p_attribute17
726 ,p_attribute18
727 ,p_attribute19
728 ,p_attribute20
729 ,p_information_category
730 ,p_information1
731 ,p_information2
732 ,p_information3
733 ,p_information4
734 ,p_information5
735 ,p_information6
736 ,p_information7
737 ,p_information8
738 ,p_information9
739 ,p_information10
740 ,p_information11
741 ,p_information12
742 ,p_information13
743 ,p_information14
744 ,p_information15
745 ,p_information16
746 ,p_information17
747 ,p_information18
748 ,p_information19
749 ,p_information20
750 );
751 --
752 -- Having converted the arguments into the per_ctk_rec
753 -- plsql record structure we call the corresponding record business process.
754 --
755 per_ctk_ins.ins
756 (p_effective_date
757 ,l_rec
758 );
759 --
760 -- As the primary key argument(s)
761 -- are specified as an OUT's we must set these values.
762 --
763 p_task_in_checklist_id := l_rec.task_in_checklist_id;
764 p_object_version_number := l_rec.object_version_number;
765 --
766 hr_utility.set_location(' Leaving:'||l_proc, 10);
767 End ins;
768 --
769 end per_ctk_ins;