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