[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;