DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_PERF_MGMT_PLAN_SWI

Source


1 Package Body hr_perf_mgmt_plan_swi As
2 /* $Header: pepmpswi.pkb 120.2 2006/08/11 06:38:34 tpapired noship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'hr_perf_mgmt_plan_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-------------------------< create_perf_mgmt_plan >------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_perf_mgmt_plan
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_effective_date               in     date
14   ,p_plan_name                    in     varchar2
15   ,p_administrator_person_id      in     number
16   ,p_previous_plan_id             in     number    default null
17   ,p_start_date                   in     date
18   ,p_end_date                     in     date
19   ,p_hierarchy_type_code          in     varchar2  default null
20   ,p_supervisor_id                in     number    default null
21   ,p_supervisor_assignment_id     in     number    default null
22   ,p_organization_structure_id    in     number    default null
23   ,p_org_structure_version_id     in     number    default null
24   ,p_top_organization_id          in     number    default null
25   ,p_position_structure_id        in     number    default null
26   ,p_pos_structure_version_id     in     number    default null
27   ,p_top_position_id              in     number    default null
28   ,p_hierarchy_levels             in     number    default null
29   ,p_automatic_enrollment_flag    in     varchar2  default null
30   ,p_assignment_types_code        in     varchar2  default null
31   ,p_primary_asg_only_flag        in     varchar2  default null
32   ,p_include_obj_setting_flag     in     varchar2  default null
33   ,p_obj_setting_start_date       in     date      default null
34   ,p_obj_setting_deadline         in     date      default null
35   ,p_obj_set_outside_period_flag  in     varchar2  default null
36   ,p_method_code                  in     varchar2  default null
37   ,p_notify_population_flag       in     varchar2  default null
38   ,p_automatic_allocation_flag    in     varchar2  default null
39   ,p_copy_past_objectives_flag    in     varchar2  default null
40   ,p_sharing_alignment_task_flag  in     varchar2  default null
41   ,p_include_appraisals_flag      in     varchar2  default null
42   ,p_change_sc_status_flag in     varchar2  default null
43   ,p_attribute_category           in     varchar2  default null
44   ,p_attribute1                   in     varchar2  default null
45   ,p_attribute2                   in     varchar2  default null
46   ,p_attribute3                   in     varchar2  default null
47   ,p_attribute4                   in     varchar2  default null
48   ,p_attribute5                   in     varchar2  default null
49   ,p_attribute6                   in     varchar2  default null
50   ,p_attribute7                   in     varchar2  default null
51   ,p_attribute8                   in     varchar2  default null
52   ,p_attribute9                   in     varchar2  default null
53   ,p_attribute10                  in     varchar2  default null
54   ,p_attribute11                  in     varchar2  default null
55   ,p_attribute12                  in     varchar2  default null
56   ,p_attribute13                  in     varchar2  default null
57   ,p_attribute14                  in     varchar2  default null
58   ,p_attribute15                  in     varchar2  default null
59   ,p_attribute16                  in     varchar2  default null
60   ,p_attribute17                  in     varchar2  default null
61   ,p_attribute18                  in     varchar2  default null
62   ,p_attribute19                  in     varchar2  default null
63   ,p_attribute20                  in     varchar2  default null
64   ,p_attribute21                  in     varchar2  default null
65   ,p_attribute22                  in     varchar2  default null
66   ,p_attribute23                  in     varchar2  default null
67   ,p_attribute24                  in     varchar2  default null
68   ,p_attribute25                  in     varchar2  default null
69   ,p_attribute26                  in     varchar2  default null
70   ,p_attribute27                  in     varchar2  default null
71   ,p_attribute28                  in     varchar2  default null
72   ,p_attribute29                  in     varchar2  default null
73   ,p_attribute30                  in     varchar2  default null
74   ,p_plan_id                      in     number
75   ,p_object_version_number           out nocopy number
76   ,p_status_code                     out nocopy varchar2
77   ,p_return_status                   out nocopy varchar2
78   ) is
79   --
80   -- Variables for API Boolean parameters
81   l_validate                      boolean;
82   l_duplicate_name_warning        boolean;
83   l_no_life_events_warning        boolean;
84   --
85   -- Variables for IN/OUT parameters
86   --
87   -- Other variables
88   l_plan_id                      number;
89   l_proc    varchar2(72) := g_package ||'create_perf_mgmt_plan';
90 Begin
91   hr_utility.set_location(' Entering:' || l_proc,10);
92   --
93   -- Issue a savepoint
94   --
95   savepoint create_perf_mgmt_plan_swi;
96   --
97   -- Initialise Multiple Message Detection
98   --
99   hr_multi_message.enable_message_list;
100   --
101   -- Remember IN OUT parameter IN values
102   --
103   --
104   -- Convert constant values to their corresponding boolean value
105   --
106   l_validate :=
107     hr_api.constant_to_boolean
108       (p_constant_value => p_validate);
109   --
110   -- Register Surrogate ID or user key values
111   --
112   per_pmp_ins.set_base_key_value
113     (p_plan_id => p_plan_id
114     );
115   --
116   -- Call API
117   --
118   hr_perf_mgmt_plan_api.create_perf_mgmt_plan
119     (p_validate                     => l_validate
120     ,p_effective_date               => p_effective_date
121     ,p_plan_name                    => p_plan_name
122     ,p_administrator_person_id      => p_administrator_person_id
123     ,p_previous_plan_id             => p_previous_plan_id
124     ,p_start_date                   => p_start_date
125     ,p_end_date                     => p_end_date
126     ,p_hierarchy_type_code          => p_hierarchy_type_code
127     ,p_supervisor_id                => p_supervisor_id
128     ,p_supervisor_assignment_id     => p_supervisor_assignment_id
129     ,p_organization_structure_id    => p_organization_structure_id
130     ,p_org_structure_version_id     => p_org_structure_version_id
131     ,p_top_organization_id          => p_top_organization_id
132     ,p_position_structure_id        => p_position_structure_id
133     ,p_pos_structure_version_id     => p_pos_structure_version_id
134     ,p_top_position_id              => p_top_position_id
135     ,p_hierarchy_levels             => p_hierarchy_levels
136     ,p_automatic_enrollment_flag    => p_automatic_enrollment_flag
137     ,p_assignment_types_code        => p_assignment_types_code
138     ,p_primary_asg_only_flag        => p_primary_asg_only_flag
139     ,p_include_obj_setting_flag     => p_include_obj_setting_flag
140     ,p_obj_setting_start_date       => p_obj_setting_start_date
141     ,p_obj_setting_deadline         => p_obj_setting_deadline
142     ,p_obj_set_outside_period_flag  => p_obj_set_outside_period_flag
143     ,p_method_code                  => p_method_code
144     ,p_notify_population_flag       => p_notify_population_flag
145     ,p_automatic_allocation_flag    => p_automatic_allocation_flag
146     ,p_copy_past_objectives_flag    => p_copy_past_objectives_flag
147     ,p_sharing_alignment_task_flag  => p_sharing_alignment_task_flag
148     ,p_include_appraisals_flag      => p_include_appraisals_flag
149  ,p_change_sc_status_flag  => p_change_sc_status_flag
150     ,p_attribute_category           => p_attribute_category
151     ,p_attribute1                   => p_attribute1
152     ,p_attribute2                   => p_attribute2
153     ,p_attribute3                   => p_attribute3
154     ,p_attribute4                   => p_attribute4
155     ,p_attribute5                   => p_attribute5
156     ,p_attribute6                   => p_attribute6
157     ,p_attribute7                   => p_attribute7
158     ,p_attribute8                   => p_attribute8
159     ,p_attribute9                   => p_attribute9
160     ,p_attribute10                  => p_attribute10
161     ,p_attribute11                  => p_attribute11
162     ,p_attribute12                  => p_attribute12
163     ,p_attribute13                  => p_attribute13
164     ,p_attribute14                  => p_attribute14
165     ,p_attribute15                  => p_attribute15
166     ,p_attribute16                  => p_attribute16
167     ,p_attribute17                  => p_attribute17
168     ,p_attribute18                  => p_attribute18
169     ,p_attribute19                  => p_attribute19
170     ,p_attribute20                  => p_attribute20
171     ,p_attribute21                  => p_attribute21
172     ,p_attribute22                  => p_attribute22
173     ,p_attribute23                  => p_attribute23
174     ,p_attribute24                  => p_attribute24
175     ,p_attribute25                  => p_attribute25
176     ,p_attribute26                  => p_attribute26
177     ,p_attribute27                  => p_attribute27
178     ,p_attribute28                  => p_attribute28
179     ,p_attribute29                  => p_attribute29
180     ,p_attribute30                  => p_attribute30
181     ,p_plan_id                      => l_plan_id
182     ,p_object_version_number        => p_object_version_number
183     ,p_status_code                  => p_status_code
184     ,p_duplicate_name_warning       => l_duplicate_name_warning
185     ,p_no_life_events_warning       => l_no_life_events_warning
186     );
187   --
188   -- Convert API warning boolean parameter values to specific
189   -- messages and add them to Multiple Message List
190   --
191   if l_duplicate_name_warning then
192      fnd_message.set_name('PER', 'HR_50231_WPM_DUP_PLAN_WARN');
193       hr_multi_message.add
194         (p_message_type => hr_multi_message.g_warning_msg
195         );
196   end if;
197   if l_no_life_events_warning then
198      fnd_message.set_name('PER', 'HR_50247_WPM_PLAN_AUTO_ENROL_W');
199       hr_multi_message.add
200         (p_message_type => hr_multi_message.g_warning_msg
201         );
202   end if;  --
203   -- Convert API non-warning boolean parameter values
204   --
205   --
206   -- Derive the API return status value based on whether
207   -- messages of any type exist in the Multiple Message List.
208   -- Also disable Multiple Message Detection.
209   --
210   p_return_status := hr_multi_message.get_return_status_disable;
211   hr_utility.set_location(' Leaving:' || l_proc,20);
212   --
213 exception
214   when hr_multi_message.error_message_exist then
215     --
216     -- Catch the Multiple Message List exception which
217     -- indicates API processing has been aborted because
218     -- at least one message exists in the list.
219     --
220     rollback to create_perf_mgmt_plan_swi;
221     --
222     -- Reset IN OUT parameters and set OUT parameters
223     --
224     p_object_version_number        := null;
225     p_status_code                  := null;
226     p_return_status := hr_multi_message.get_return_status_disable;
227     hr_utility.set_location(' Leaving:' || l_proc, 30);
228   when others then
229     --
230     -- When Multiple Message Detection is enabled catch
231     -- any Application specific or other unexpected
232     -- exceptions.  Adding appropriate details to the
233     -- Multiple Message List.  Otherwise re-raise the
234     -- error.
235     --
236     rollback to create_perf_mgmt_plan_swi;
237     if hr_multi_message.unexpected_error_add(l_proc) then
238        hr_utility.set_location(' Leaving:' || l_proc,40);
239        raise;
240     end if;
241     --
242     -- Reset IN OUT and set OUT parameters
243     --
244     p_object_version_number        := null;
245     p_status_code                  := null;
246     p_return_status := hr_multi_message.get_return_status_disable;
247     hr_utility.set_location(' Leaving:' || l_proc,50);
248 end create_perf_mgmt_plan;
249 -- ----------------------------------------------------------------------------
250 -- |-------------------------< delete_perf_mgmt_plan >------------------------|
251 -- ----------------------------------------------------------------------------
252 PROCEDURE delete_perf_mgmt_plan
253   (p_validate                     in     number    default hr_api.g_false_num
254   ,p_plan_id                      in     number
255   ,p_object_version_number        in     number
256   ,p_return_status                   out nocopy varchar2
257   ) is
258   --
259   -- Variables for API Boolean parameters
260   l_validate                      boolean;
261   --
262   -- Variables for IN/OUT parameters
263   --
264   -- Other variables
265   l_proc    varchar2(72) := g_package ||'delete_perf_mgmt_plan';
266 Begin
267   hr_utility.set_location(' Entering:' || l_proc,10);
268   --
269   -- Issue a savepoint
270   --
271   savepoint delete_perf_mgmt_plan_swi;
272   --
273   -- Initialise Multiple Message Detection
274   --
275   hr_multi_message.enable_message_list;
276   --
277   -- Remember IN OUT parameter IN values
278   --
279   --
280   -- Convert constant values to their corresponding boolean value
281   --
282   l_validate :=
283     hr_api.constant_to_boolean
284       (p_constant_value => p_validate);
285   --
286   -- Register Surrogate ID or user key values
287   --
288   --
289   -- Call API
290   --
291   hr_perf_mgmt_plan_api.delete_perf_mgmt_plan
292     (p_validate                     => l_validate
293     ,p_plan_id                      => p_plan_id
294     ,p_object_version_number        => p_object_version_number
295     );
296   --
297   -- Convert API warning boolean parameter values to specific
298   -- messages and add them to Multiple Message List
299   --
300   --
301   -- Convert API non-warning boolean parameter values
302   --
303   --
304   -- Derive the API return status value based on whether
305   -- messages of any type exist in the Multiple Message List.
306   -- Also disable Multiple Message Detection.
307   --
308   p_return_status := hr_multi_message.get_return_status_disable;
309   hr_utility.set_location(' Leaving:' || l_proc,20);
310   --
311 exception
312   when hr_multi_message.error_message_exist then
313     --
314     -- Catch the Multiple Message List exception which
315     -- indicates API processing has been aborted because
316     -- at least one message exists in the list.
317     --
318     rollback to delete_perf_mgmt_plan_swi;
319     --
320     -- Reset IN OUT parameters and set OUT parameters
321     --
322     p_return_status := hr_multi_message.get_return_status_disable;
323     hr_utility.set_location(' Leaving:' || l_proc, 30);
324   when others then
325     --
326     -- When Multiple Message Detection is enabled catch
327     -- any Application specific or other unexpected
328     -- exceptions.  Adding appropriate details to the
329     -- Multiple Message List.  Otherwise re-raise the
330     -- error.
331     --
332     rollback to delete_perf_mgmt_plan_swi;
333     if hr_multi_message.unexpected_error_add(l_proc) then
334        hr_utility.set_location(' Leaving:' || l_proc,40);
335        raise;
336     end if;
337     --
338     -- Reset IN OUT and set OUT parameters
339     --
340     p_return_status := hr_multi_message.get_return_status_disable;
341     hr_utility.set_location(' Leaving:' || l_proc,50);
342 end delete_perf_mgmt_plan;
343 -- ----------------------------------------------------------------------------
344 -- |-------------------------< update_perf_mgmt_plan >------------------------|
345 -- ----------------------------------------------------------------------------
346 PROCEDURE update_perf_mgmt_plan
347   (p_validate                     in     number    default hr_api.g_false_num
348   ,p_effective_date               in     date
349   ,p_plan_id                      in     number
350   ,p_plan_name                    in     varchar2  default hr_api.g_varchar2
351   ,p_administrator_person_id      in     number    default hr_api.g_number
352   ,p_previous_plan_id             in     number    default hr_api.g_number
353   ,p_start_date                   in     date      default hr_api.g_date
354   ,p_end_date                     in     date      default hr_api.g_date
355   ,p_hierarchy_type_code          in     varchar2  default hr_api.g_varchar2
356   ,p_supervisor_id                in     number    default hr_api.g_number
357   ,p_supervisor_assignment_id     in     number    default hr_api.g_number
358   ,p_organization_structure_id    in     number    default hr_api.g_number
359   ,p_org_structure_version_id     in     number    default hr_api.g_number
360   ,p_top_organization_id          in     number    default hr_api.g_number
361   ,p_position_structure_id        in     number    default hr_api.g_number
362   ,p_pos_structure_version_id     in     number    default hr_api.g_number
363   ,p_top_position_id              in     number    default hr_api.g_number
364   ,p_hierarchy_levels             in     number    default hr_api.g_number
365   ,p_automatic_enrollment_flag    in     varchar2  default hr_api.g_varchar2
366   ,p_assignment_types_code        in     varchar2  default hr_api.g_varchar2
367   ,p_primary_asg_only_flag        in     varchar2  default hr_api.g_varchar2
368   ,p_include_obj_setting_flag     in     varchar2  default hr_api.g_varchar2
369   ,p_obj_setting_start_date       in     date      default hr_api.g_date
370   ,p_obj_setting_deadline         in     date      default hr_api.g_date
371   ,p_obj_set_outside_period_flag  in     varchar2  default hr_api.g_varchar2
372   ,p_method_code                  in     varchar2  default hr_api.g_varchar2
373   ,p_notify_population_flag       in     varchar2  default hr_api.g_varchar2
374   ,p_automatic_allocation_flag    in     varchar2  default hr_api.g_varchar2
375   ,p_copy_past_objectives_flag    in     varchar2  default hr_api.g_varchar2
376   ,p_sharing_alignment_task_flag  in     varchar2  default hr_api.g_varchar2
377   ,p_include_appraisals_flag      in     varchar2  default hr_api.g_varchar2
378   ,p_change_sc_status_flag in     varchar2  default hr_api.g_varchar2
379   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
380   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
381   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
382   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
383   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
384   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
385   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
386   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
387   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
388   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
389   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
390   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
391   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
392   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
393   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
394   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
395   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
396   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
397   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
398   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
399   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
400   ,p_attribute21                  in     varchar2  default hr_api.g_varchar2
401   ,p_attribute22                  in     varchar2  default hr_api.g_varchar2
402   ,p_attribute23                  in     varchar2  default hr_api.g_varchar2
403   ,p_attribute24                  in     varchar2  default hr_api.g_varchar2
404   ,p_attribute25                  in     varchar2  default hr_api.g_varchar2
405   ,p_attribute26                  in     varchar2  default hr_api.g_varchar2
406   ,p_attribute27                  in     varchar2  default hr_api.g_varchar2
407   ,p_attribute28                  in     varchar2  default hr_api.g_varchar2
408   ,p_attribute29                  in     varchar2  default hr_api.g_varchar2
409   ,p_attribute30                  in     varchar2  default hr_api.g_varchar2
410   ,p_object_version_number        in out nocopy number
411   ,p_status_code                     out nocopy varchar2
412   ,p_return_status                   out nocopy varchar2
413   ) is
414   --
415   -- Variables for API Boolean parameters
416   l_validate                      boolean;
417   l_duplicate_name_warning        boolean;
418   l_no_life_events_warning        boolean;
419   --
420   -- Variables for IN/OUT parameters
421   l_object_version_number         number;
422   --
423   -- Other variables
424   l_proc    varchar2(72) := g_package ||'update_perf_mgmt_plan';
425 Begin
426   hr_utility.set_location(' Entering:' || l_proc,10);
427   --
428   -- Issue a savepoint
429   --
430   savepoint update_perf_mgmt_plan_swi;
431   --
432   -- Initialise Multiple Message Detection
433   --
434   hr_multi_message.enable_message_list;
435   --
436   -- Remember IN OUT parameter IN values
437   --
438   l_object_version_number         := p_object_version_number;
439   --
440   -- Convert constant values to their corresponding boolean value
441   --
442   l_validate :=
443     hr_api.constant_to_boolean
444       (p_constant_value => p_validate);
445   --
446   -- Register Surrogate ID or user key values
447   --
448   --
449   -- Call API
450   --
451   hr_perf_mgmt_plan_api.update_perf_mgmt_plan
452     (p_validate                     => l_validate
453     ,p_effective_date               => p_effective_date
454     ,p_plan_id                      => p_plan_id
455     ,p_plan_name                    => p_plan_name
456     ,p_administrator_person_id      => p_administrator_person_id
457     ,p_previous_plan_id             => p_previous_plan_id
458     ,p_start_date                   => p_start_date
459     ,p_end_date                     => p_end_date
460     ,p_hierarchy_type_code          => p_hierarchy_type_code
461     ,p_supervisor_id                => p_supervisor_id
462     ,p_supervisor_assignment_id     => p_supervisor_assignment_id
463     ,p_organization_structure_id    => p_organization_structure_id
464     ,p_org_structure_version_id     => p_org_structure_version_id
465     ,p_top_organization_id          => p_top_organization_id
466     ,p_position_structure_id        => p_position_structure_id
467     ,p_pos_structure_version_id     => p_pos_structure_version_id
468     ,p_top_position_id              => p_top_position_id
469     ,p_hierarchy_levels             => p_hierarchy_levels
470     ,p_automatic_enrollment_flag    => p_automatic_enrollment_flag
471     ,p_assignment_types_code        => p_assignment_types_code
472     ,p_primary_asg_only_flag        => p_primary_asg_only_flag
473     ,p_include_obj_setting_flag     => p_include_obj_setting_flag
474     ,p_obj_setting_start_date       => p_obj_setting_start_date
475     ,p_obj_setting_deadline         => p_obj_setting_deadline
476     ,p_obj_set_outside_period_flag  => p_obj_set_outside_period_flag
477     ,p_method_code                  => p_method_code
478     ,p_notify_population_flag       => p_notify_population_flag
479     ,p_automatic_allocation_flag    => p_automatic_allocation_flag
480     ,p_copy_past_objectives_flag    => p_copy_past_objectives_flag
481     ,p_sharing_alignment_task_flag  => p_sharing_alignment_task_flag
482     ,p_include_appraisals_flag      => p_include_appraisals_flag
483  ,p_change_sc_status_flag  => p_change_sc_status_flag
484     ,p_attribute_category           => p_attribute_category
485     ,p_attribute1                   => p_attribute1
486     ,p_attribute2                   => p_attribute2
487     ,p_attribute3                   => p_attribute3
488     ,p_attribute4                   => p_attribute4
489     ,p_attribute5                   => p_attribute5
490     ,p_attribute6                   => p_attribute6
491     ,p_attribute7                   => p_attribute7
492     ,p_attribute8                   => p_attribute8
493     ,p_attribute9                   => p_attribute9
494     ,p_attribute10                  => p_attribute10
495     ,p_attribute11                  => p_attribute11
496     ,p_attribute12                  => p_attribute12
497     ,p_attribute13                  => p_attribute13
498     ,p_attribute14                  => p_attribute14
499     ,p_attribute15                  => p_attribute15
500     ,p_attribute16                  => p_attribute16
501     ,p_attribute17                  => p_attribute17
502     ,p_attribute18                  => p_attribute18
503     ,p_attribute19                  => p_attribute19
504     ,p_attribute20                  => p_attribute20
505     ,p_attribute21                  => p_attribute21
506     ,p_attribute22                  => p_attribute22
507     ,p_attribute23                  => p_attribute23
508     ,p_attribute24                  => p_attribute24
509     ,p_attribute25                  => p_attribute25
510     ,p_attribute26                  => p_attribute26
511     ,p_attribute27                  => p_attribute27
512     ,p_attribute28                  => p_attribute28
513     ,p_attribute29                  => p_attribute29
514     ,p_attribute30                  => p_attribute30
515     ,p_object_version_number        => p_object_version_number
516     ,p_status_code                  => p_status_code
517     ,p_duplicate_name_warning       => l_duplicate_name_warning
518     ,p_no_life_events_warning       => l_no_life_events_warning
519     );
520   --
521   -- Convert API warning boolean parameter values to specific
522   -- messages and add them to Multiple Message List
523   --
524   if l_duplicate_name_warning then
525      fnd_message.set_name('PER', 'HR_50231_WPM_DUP_PLAN_WARN');
526       hr_multi_message.add
527         (p_message_type => hr_multi_message.g_warning_msg
528         );
529   end if;
530   if l_no_life_events_warning then
531      fnd_message.set_name('PER', 'HR_50247_WPM_PLAN_AUTO_ENROL_W');
532       hr_multi_message.add
533         (p_message_type => hr_multi_message.g_warning_msg
534         );
535   end if;  --
536   -- Convert API non-warning boolean parameter values
537   --
538   --
539   -- Derive the API return status value based on whether
540   -- messages of any type exist in the Multiple Message List.
541   -- Also disable Multiple Message Detection.
542   --
543   p_return_status := hr_multi_message.get_return_status_disable;
544   hr_utility.set_location(' Leaving:' || l_proc,20);
545   --
546 exception
547   when hr_multi_message.error_message_exist then
548     --
549     -- Catch the Multiple Message List exception which
550     -- indicates API processing has been aborted because
551     -- at least one message exists in the list.
552     --
553     rollback to update_perf_mgmt_plan_swi;
554     --
555     -- Reset IN OUT parameters and set OUT parameters
556     --
557     p_object_version_number        := l_object_version_number;
558     p_status_code                  := null;
559     p_return_status := hr_multi_message.get_return_status_disable;
560     hr_utility.set_location(' Leaving:' || l_proc, 30);
561   when others then
562     --
563     -- When Multiple Message Detection is enabled catch
564     -- any Application specific or other unexpected
565     -- exceptions.  Adding appropriate details to the
566     -- Multiple Message List.  Otherwise re-raise the
567     -- error.
568     --
569     rollback to update_perf_mgmt_plan_swi;
570     if hr_multi_message.unexpected_error_add(l_proc) then
571        hr_utility.set_location(' Leaving:' || l_proc,40);
572        raise;
573     end if;
574     --
575     -- Reset IN OUT and set OUT parameters
576     --
577     p_object_version_number        := l_object_version_number;
578     p_status_code                  := null;
579     p_return_status := hr_multi_message.get_return_status_disable;
580     hr_utility.set_location(' Leaving:' || l_proc,50);
581 end update_perf_mgmt_plan;
582 end hr_perf_mgmt_plan_swi;