DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_PMP_INS

Source


1 Package Body per_pmp_ins as
2 /* $Header: pepmprhi.pkb 120.8 2006/07/28 22:03:57 svittal noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  per_pmp_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_plan_id_i  number   default null;
14 --
15 -- ----------------------------------------------------------------------------
16 -- |------------------------< set_base_key_value >----------------------------|
17 -- ----------------------------------------------------------------------------
18 procedure set_base_key_value
19   (p_plan_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_pmp_ins.g_plan_id_i := p_plan_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_pmp_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   -- Insert the row into: per_perf_mgmt_plans
87   --
88   insert into per_perf_mgmt_plans
89       (plan_id
90       ,object_version_number
91       ,plan_name
92       ,administrator_person_id
93       ,previous_plan_id
94       ,start_date
95       ,end_date
96       ,status_code
97       ,hierarchy_type_code
98       ,supervisor_id
99       ,supervisor_assignment_id
100       ,organization_structure_id
101       ,org_structure_version_id
102       ,top_organization_id
103       ,position_structure_id
104       ,pos_structure_version_id
105       ,top_position_id
106       ,hierarchy_levels
107       ,automatic_enrollment_flag
108       ,assignment_types_code
109       ,primary_asg_only_flag
110       ,include_obj_setting_flag
111       ,obj_setting_start_date
112       ,obj_setting_deadline
113       ,obj_set_outside_period_flag
114       ,method_code
115       ,notify_population_flag
116       ,automatic_allocation_flag
117       ,copy_past_objectives_flag
118       ,sharing_alignment_task_flag
119       ,include_appraisals_flag
120       ,change_sc_status_flag
121       ,attribute_category
122       ,attribute1
123       ,attribute2
124       ,attribute3
125       ,attribute4
126       ,attribute5
127       ,attribute6
128       ,attribute7
129       ,attribute8
130       ,attribute9
131       ,attribute10
132       ,attribute11
133       ,attribute12
134       ,attribute13
135       ,attribute14
136       ,attribute15
137       ,attribute16
138       ,attribute17
139       ,attribute18
140       ,attribute19
141       ,attribute20
142       ,attribute21
143       ,attribute22
144       ,attribute23
145       ,attribute24
146       ,attribute25
147       ,attribute26
148       ,attribute27
149       ,attribute28
150       ,attribute29
151       ,attribute30
152       )
153   Values
154     (p_rec.plan_id
155     ,p_rec.object_version_number
156     ,p_rec.plan_name
157     ,p_rec.administrator_person_id
158     ,p_rec.previous_plan_id
159     ,p_rec.start_date
160     ,p_rec.end_date
161     ,p_rec.status_code
162     ,p_rec.hierarchy_type_code
163     ,p_rec.supervisor_id
164     ,p_rec.supervisor_assignment_id
165     ,p_rec.organization_structure_id
166     ,p_rec.org_structure_version_id
167     ,p_rec.top_organization_id
168     ,p_rec.position_structure_id
169     ,p_rec.pos_structure_version_id
170     ,p_rec.top_position_id
171     ,p_rec.hierarchy_levels
172     ,p_rec.automatic_enrollment_flag
173     ,p_rec.assignment_types_code
174     ,p_rec.primary_asg_only_flag
175     ,p_rec.include_obj_setting_flag
176     ,p_rec.obj_setting_start_date
177     ,p_rec.obj_setting_deadline
178     ,p_rec.obj_set_outside_period_flag
179     ,p_rec.method_code
180     ,p_rec.notify_population_flag
181     ,p_rec.automatic_allocation_flag
182     ,p_rec.copy_past_objectives_flag
183     ,p_rec.sharing_alignment_task_flag
184     ,p_rec.include_appraisals_flag
185     ,p_rec.change_sc_status_flag
186     ,p_rec.attribute_category
187     ,p_rec.attribute1
188     ,p_rec.attribute2
189     ,p_rec.attribute3
190     ,p_rec.attribute4
191     ,p_rec.attribute5
192     ,p_rec.attribute6
193     ,p_rec.attribute7
194     ,p_rec.attribute8
195     ,p_rec.attribute9
196     ,p_rec.attribute10
197     ,p_rec.attribute11
198     ,p_rec.attribute12
199     ,p_rec.attribute13
200     ,p_rec.attribute14
201     ,p_rec.attribute15
202     ,p_rec.attribute16
203     ,p_rec.attribute17
204     ,p_rec.attribute18
205     ,p_rec.attribute19
206     ,p_rec.attribute20
207     ,p_rec.attribute21
208     ,p_rec.attribute22
209     ,p_rec.attribute23
210     ,p_rec.attribute24
211     ,p_rec.attribute25
212     ,p_rec.attribute26
213     ,p_rec.attribute27
214     ,p_rec.attribute28
215     ,p_rec.attribute29
216     ,p_rec.attribute30
217     );
218   --
219   --
220   hr_utility.set_location(' Leaving:'||l_proc, 10);
221 Exception
222   When hr_api.check_integrity_violated Then
223     -- A check constraint has been violated
224     --
225     per_pmp_shd.constraint_error
226       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
227   When hr_api.parent_integrity_violated Then
228     -- Parent integrity has been violated
229     --
230     per_pmp_shd.constraint_error
231       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
232   When hr_api.unique_integrity_violated Then
233     -- Unique integrity has been violated
234     --
235     per_pmp_shd.constraint_error
236       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
237   When Others Then
238     --
239     Raise;
240 End insert_dml;
241 --
242 -- ----------------------------------------------------------------------------
243 -- |------------------------------< pre_insert >------------------------------|
244 -- ----------------------------------------------------------------------------
245 -- {Start Of Comments}
246 --
247 -- Description:
248 --   This private procedure contains any processing which is required before
249 --   the insert dml. Presently, if the entity has a corresponding primary
250 --   key which is maintained by an associating sequence, the primary key for
251 --   the entity will be populated with the next sequence value in
252 --   preparation for the insert dml.
253 --
254 -- Prerequisites:
255 --   This is an internal procedure which is called from the ins procedure.
256 --
257 -- In Parameters:
258 --   A Pl/Sql record structure.
259 --
260 -- Post Success:
261 --   Processing continues.
262 --
263 -- Post Failure:
264 --   If an error has occurred, an error message and exception will be raised
265 --   but not handled.
266 --
267 -- Developer Implementation Notes:
268 --   Any pre-processing required before the insert dml is issued should be
269 --   coded within this procedure. As stated above, a good example is the
270 --   generation of a primary key number via a corresponding sequence.
271 --   It is important to note that any 3rd party maintenance should be reviewed
272 --   before placing in this procedure.
273 --
274 -- Access Status:
275 --   Internal Row Handler Use Only.
276 --
277 -- {End Of Comments}
278 -- ----------------------------------------------------------------------------
279 Procedure pre_insert
280   (p_rec  in out nocopy per_pmp_shd.g_rec_type
281   ) is
282 --
283   Cursor C_Sel1 is select per_perf_mgmt_plans_s.nextval from sys.dual;
284 --
285   Cursor C_Sel2 is
286     Select null
287       from per_perf_mgmt_plans
288      where plan_id =
289              per_pmp_ins.g_plan_id_i;
290 --
291   l_proc   varchar2(72) := g_package||'pre_insert';
292   l_exists varchar2(1);
293 --
294 Begin
295   hr_utility.set_location('Entering:'||l_proc, 5);
296   --
297   If (per_pmp_ins.g_plan_id_i is not null) Then
298     --
299     -- Verify registered primary key values not already in use
300     --
301     Open C_Sel2;
302     Fetch C_Sel2 into l_exists;
303     If C_Sel2%found Then
304        Close C_Sel2;
305        --
306        -- The primary key values are already in use.
307        --
308        fnd_message.set_name('PER','PER_289391_KEY_ALREADY_USED');
309        fnd_message.set_token('TABLE_NAME','per_perf_mgmt_plans');
310        fnd_message.raise_error;
311     End If;
312     Close C_Sel2;
313     --
314     -- Use registered key values and clear globals
315     --
316     p_rec.plan_id :=
317       per_pmp_ins.g_plan_id_i;
318     per_pmp_ins.g_plan_id_i := null;
319   Else
320     --
321     -- No registerd key values, so select the next sequence number
322     --
323     --
324     -- Select the next sequence number
325     --
326     Open C_Sel1;
327     Fetch C_Sel1 Into p_rec.plan_id;
328     Close C_Sel1;
329   End If;
330   --
331   hr_utility.set_location(' Leaving:'||l_proc, 10);
332 End pre_insert;
333 --
334 -- ----------------------------------------------------------------------------
335 -- |-----------------------------< post_insert >------------------------------|
336 -- ----------------------------------------------------------------------------
337 -- {Start Of Comments}
338 --
339 -- Description:
340 --   This private procedure contains any processing which is required after
341 --   the insert dml.
342 --
343 -- Prerequisites:
344 --   This is an internal procedure which is called from the ins procedure.
345 --
346 -- In Parameters:
347 --   A Pl/Sql record structre.
348 --
349 -- Post Success:
350 --   Processing continues.
351 --
352 -- Post Failure:
353 --   If an error has occurred, an error message and exception will be raised
354 --   but not handled.
355 --
356 -- Developer Implementation Notes:
357 --   Any post-processing required after the insert dml is issued should be
358 --   coded within this procedure. It is important to note that any 3rd party
359 --   maintenance should be reviewed before placing in this procedure.
360 --
361 -- Access Status:
362 --   Internal Row Handler Use Only.
363 --
364 -- {End Of Comments}
365 -- ----------------------------------------------------------------------------
366 Procedure post_insert
367   (p_effective_date               in date
368   ,p_rec                          in per_pmp_shd.g_rec_type
369   ,p_duplicate_name_warning       in boolean
370   ,p_no_life_events_warning       in boolean
371   ) is
372 --
373   l_proc  varchar2(72) := g_package||'post_insert';
374 --
375 Begin
376   hr_utility.set_location('Entering:'||l_proc, 5);
377   begin
378     --
379     per_pmp_rki.after_insert
380       (p_effective_date              => p_effective_date
381       ,p_plan_id
382       => p_rec.plan_id
383       ,p_object_version_number
384       => p_rec.object_version_number
385       ,p_plan_name
386       => p_rec.plan_name
387       ,p_administrator_person_id
388       => p_rec.administrator_person_id
389       ,p_previous_plan_id
390       => p_rec.previous_plan_id
391       ,p_start_date
392       => p_rec.start_date
393       ,p_end_date
394       => p_rec.end_date
395       ,p_status_code
396       => p_rec.status_code
397       ,p_hierarchy_type_code
398       => p_rec.hierarchy_type_code
399       ,p_supervisor_id
400       => p_rec.supervisor_id
401       ,p_supervisor_assignment_id
402       => p_rec.supervisor_assignment_id
403       ,p_organization_structure_id
404       => p_rec.organization_structure_id
405       ,p_org_structure_version_id
406       => p_rec.org_structure_version_id
407       ,p_top_organization_id
408       => p_rec.top_organization_id
409       ,p_position_structure_id
410       => p_rec.position_structure_id
411       ,p_pos_structure_version_id
412       => p_rec.pos_structure_version_id
413       ,p_top_position_id
414       => p_rec.top_position_id
415       ,p_hierarchy_levels
416       => p_rec.hierarchy_levels
420       => p_rec.assignment_types_code
417       ,p_automatic_enrollment_flag
418       => p_rec.automatic_enrollment_flag
419       ,p_assignment_types_code
421       ,p_primary_asg_only_flag
422       => p_rec.primary_asg_only_flag
423       ,p_include_obj_setting_flag
424       => p_rec.include_obj_setting_flag
425       ,p_obj_setting_start_date
426       => p_rec.obj_setting_start_date
427       ,p_obj_setting_deadline
428       => p_rec.obj_setting_deadline
429       ,p_obj_set_outside_period_flag
430       => p_rec.obj_set_outside_period_flag
431       ,p_method_code
432       => p_rec.method_code
433       ,p_notify_population_flag
434       => p_rec.notify_population_flag
435       ,p_automatic_allocation_flag
436       => p_rec.automatic_allocation_flag
437       ,p_copy_past_objectives_flag
438       => p_rec.copy_past_objectives_flag
439       ,p_sharing_alignment_task_flag
440       => p_rec.sharing_alignment_task_flag
441       ,p_include_appraisals_flag
442       => p_rec.include_appraisals_flag
443       ,p_change_sc_status_flag =>   p_rec.change_sc_status_flag
444       ,p_attribute_category
445       => p_rec.attribute_category
446       ,p_attribute1
447       => p_rec.attribute1
448       ,p_attribute2
449       => p_rec.attribute2
450       ,p_attribute3
451       => p_rec.attribute3
452       ,p_attribute4
453       => p_rec.attribute4
454       ,p_attribute5
455       => p_rec.attribute5
456       ,p_attribute6
457       => p_rec.attribute6
458       ,p_attribute7
459       => p_rec.attribute7
460       ,p_attribute8
461       => p_rec.attribute8
462       ,p_attribute9
463       => p_rec.attribute9
464       ,p_attribute10
465       => p_rec.attribute10
466       ,p_attribute11
467       => p_rec.attribute11
468       ,p_attribute12
469       => p_rec.attribute12
470       ,p_attribute13
471       => p_rec.attribute13
472       ,p_attribute14
473       => p_rec.attribute14
474       ,p_attribute15
475       => p_rec.attribute15
476       ,p_attribute16
477       => p_rec.attribute16
478       ,p_attribute17
479       => p_rec.attribute17
480       ,p_attribute18
481       => p_rec.attribute18
482       ,p_attribute19
483       => p_rec.attribute19
484       ,p_attribute20
485       => p_rec.attribute20
486       ,p_attribute21
487       => p_rec.attribute21
488       ,p_attribute22
489       => p_rec.attribute22
490       ,p_attribute23
491       => p_rec.attribute23
492       ,p_attribute24
493       => p_rec.attribute24
494       ,p_attribute25
495       => p_rec.attribute25
496       ,p_attribute26
497       => p_rec.attribute26
498       ,p_attribute27
499       => p_rec.attribute27
500       ,p_attribute28
501       => p_rec.attribute28
502       ,p_attribute29
503       => p_rec.attribute29
504       ,p_attribute30
505       => p_rec.attribute30
506       );
507     --
508   exception
509     --
510     when hr_api.cannot_find_prog_unit then
511       --
512       hr_api.cannot_find_prog_unit_error
513         (p_module_name => 'PER_PERF_MGMT_PLANS'
514         ,p_hook_type   => 'AI');
515       --
516   end;
517   --
518   hr_utility.set_location(' Leaving:'||l_proc, 10);
519 End post_insert;
520 --
521 -- ----------------------------------------------------------------------------
522 -- |---------------------------------< ins >----------------------------------|
523 -- ----------------------------------------------------------------------------
524 Procedure ins
525   (p_effective_date               in date
526   ,p_rec                          in out nocopy per_pmp_shd.g_rec_type
527   ,p_duplicate_name_warning       out nocopy boolean
528   ,p_no_life_events_warning       out nocopy boolean
529   ) is
530 --
531   l_proc  varchar2(72) := g_package||'ins';
532 --
533 Begin
534   hr_utility.set_location('Entering:'||l_proc, 5);
535   --
536   -- Call the supporting insert validate operations
537   --
538   per_pmp_bus.insert_validate
539      (p_effective_date
540      ,p_rec
541      ,p_duplicate_name_warning
542      ,p_no_life_events_warning
543      );
544 
545   --
546   -- Call to raise any errors on multi-message list
547   hr_multi_message.end_validation_set;
548   --
549   -- Call the supporting pre-insert operation
550   --
551   per_pmp_ins.pre_insert(p_rec);
552   --
553   -- Insert the row
554   --
555   per_pmp_ins.insert_dml(p_rec);
556   --
557   -- Call the supporting post-insert operation
558   --
559   per_pmp_ins.post_insert
560      (p_effective_date
561      ,p_rec
562      ,p_duplicate_name_warning
563      ,p_no_life_events_warning
564      );
565   --
566   -- Call to raise any errors on multi-message list
567   hr_multi_message.end_validation_set;
568   --
569   hr_utility.set_location('Leaving:'||l_proc, 20);
570 end ins;
571 --
572 -- ----------------------------------------------------------------------------
573 -- |---------------------------------< ins >----------------------------------|
574 -- ----------------------------------------------------------------------------
575 Procedure ins
576   (p_effective_date               in     date
577   ,p_plan_name                      in     varchar2
578   ,p_administrator_person_id        in     number
579   ,p_previous_plan_id               in     number   default null
580   ,p_start_date                     in     date
581   ,p_end_date                       in     date
582   ,p_automatic_enrollment_flag      in     varchar2
586   ,p_obj_set_outside_period_flag    in     varchar2
583   ,p_assignment_types_code          in     varchar2
584   ,p_primary_asg_only_flag          in     varchar2
585   ,p_include_obj_setting_flag       in     varchar2
587   ,p_method_code                    in     varchar2
588   ,p_notify_population_flag         in     varchar2
589   ,p_automatic_allocation_flag      in     varchar2
590   ,p_copy_past_objectives_flag      in     varchar2
591   ,p_sharing_alignment_task_flag    in     varchar2
592   ,p_include_appraisals_flag        in     varchar2
593   ,p_hierarchy_type_code            in     varchar2 default null
594   ,p_supervisor_id                  in     number   default null
595   ,p_supervisor_assignment_id       in     number   default null
596   ,p_organization_structure_id      in     number   default null
597   ,p_org_structure_version_id       in     number   default null
598   ,p_top_organization_id            in     number   default null
599   ,p_position_structure_id          in     number   default null
600   ,p_pos_structure_version_id       in     number   default null
601   ,p_top_position_id                in     number   default null
602   ,p_hierarchy_levels               in     number   default null
603   ,p_obj_setting_start_date         in     date     default null
604   ,p_obj_setting_deadline           in     date     default null
605   ,p_change_sc_status_flag   in     varchar2
606   ,p_attribute_category             in     varchar2 default null
607   ,p_attribute1                     in     varchar2 default null
608   ,p_attribute2                     in     varchar2 default null
609   ,p_attribute3                     in     varchar2 default null
610   ,p_attribute4                     in     varchar2 default null
611   ,p_attribute5                     in     varchar2 default null
612   ,p_attribute6                     in     varchar2 default null
613   ,p_attribute7                     in     varchar2 default null
614   ,p_attribute8                     in     varchar2 default null
615   ,p_attribute9                     in     varchar2 default null
616   ,p_attribute10                    in     varchar2 default null
617   ,p_attribute11                    in     varchar2 default null
618   ,p_attribute12                    in     varchar2 default null
619   ,p_attribute13                    in     varchar2 default null
620   ,p_attribute14                    in     varchar2 default null
621   ,p_attribute15                    in     varchar2 default null
622   ,p_attribute16                    in     varchar2 default null
623   ,p_attribute17                    in     varchar2 default null
624   ,p_attribute18                    in     varchar2 default null
625   ,p_attribute19                    in     varchar2 default null
626   ,p_attribute20                    in     varchar2 default null
627   ,p_attribute21                    in     varchar2 default null
628   ,p_attribute22                    in     varchar2 default null
629   ,p_attribute23                    in     varchar2 default null
630   ,p_attribute24                    in     varchar2 default null
631   ,p_attribute25                    in     varchar2 default null
632   ,p_attribute26                    in     varchar2 default null
633   ,p_attribute27                    in     varchar2 default null
634   ,p_attribute28                    in     varchar2 default null
635   ,p_attribute29                    in     varchar2 default null
636   ,p_attribute30                    in     varchar2 default null
637   ,p_plan_id                           out nocopy number
638   ,p_object_version_number             out nocopy number
639   ,p_status_code                       out nocopy varchar2
640   ,p_duplicate_name_warning            out nocopy boolean
641   ,p_no_life_events_warning            out nocopy boolean
642   ) is
643 --
644   l_rec   per_pmp_shd.g_rec_type;
645   l_proc  varchar2(72) := g_package||'ins';
646   l_status_code  CONSTANT varchar2(5) := 'DRAFT';
647 --
648 Begin
649   hr_utility.set_location('Entering:'||l_proc, 5);
650   --
651   -- Call conversion function to turn arguments into the
652   -- p_rec structure.
653   --
654   l_rec :=
655   per_pmp_shd.convert_args
656     (null
657     ,null
658     ,p_plan_name
659     ,p_administrator_person_id
660     ,p_previous_plan_id
661     ,p_start_date
662     ,p_end_date
663     ,l_status_code
664     ,p_hierarchy_type_code
665     ,p_supervisor_id
666     ,p_supervisor_assignment_id
667     ,p_organization_structure_id
668     ,p_org_structure_version_id
669     ,p_top_organization_id
670     ,p_position_structure_id
671     ,p_pos_structure_version_id
672     ,p_top_position_id
673     ,p_hierarchy_levels
674     ,p_automatic_enrollment_flag
675     ,p_assignment_types_code
676     ,p_primary_asg_only_flag
677     ,p_include_obj_setting_flag
678     ,p_obj_setting_start_date
679     ,p_obj_setting_deadline
680     ,p_obj_set_outside_period_flag
681     ,p_method_code
682     ,p_notify_population_flag
683     ,p_automatic_allocation_flag
684     ,p_copy_past_objectives_flag
685     ,p_sharing_alignment_task_flag
686     ,p_include_appraisals_flag
687     ,p_change_sc_status_flag
688     ,p_attribute_category
689     ,p_attribute1
690     ,p_attribute2
691     ,p_attribute3
692     ,p_attribute4
693     ,p_attribute5
694     ,p_attribute6
695     ,p_attribute7
696     ,p_attribute8
697     ,p_attribute9
698     ,p_attribute10
699     ,p_attribute11
700     ,p_attribute12
701     ,p_attribute13
702     ,p_attribute14
703     ,p_attribute15
704     ,p_attribute16
705     ,p_attribute17
706     ,p_attribute18
707     ,p_attribute19
708     ,p_attribute20
709     ,p_attribute21
710     ,p_attribute22
711     ,p_attribute23
712     ,p_attribute24
713     ,p_attribute25
714     ,p_attribute26
715     ,p_attribute27
716     ,p_attribute28
717     ,p_attribute29
718     ,p_attribute30
719     );
720 
721   --
722   -- Having converted the arguments into the per_pmp_rec
723   -- plsql record structure we call the corresponding record business process.
724   --
725   per_pmp_ins.ins
726      (p_effective_date
727      ,l_rec
728      ,p_duplicate_name_warning
729      ,p_no_life_events_warning
730      );
731   --
732   -- As the primary key argument(s)
733   -- are specified as an OUT's we must set these values.
734   --
735   p_plan_id := l_rec.plan_id;
736   p_object_version_number := l_rec.object_version_number;
737   p_status_code := l_rec.status_code;
738   --
739   hr_utility.set_location(' Leaving:'||l_proc, 10);
740 
741 End ins;
742 --
743 end per_pmp_ins;