[Home] [Help]
PACKAGE BODY: APPS.HR_PERFORMANCE_RATINGS_SWI
Source
1 Package Body hr_performance_ratings_swi As
2 /* $Header: peprtswi.pkb 120.1 2006/02/13 14:13:54 vbala noship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'hr_performance_ratings_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-----------------------< create_performance_rating >----------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_performance_rating
12 (p_validate in number default hr_api.g_false_num
13 ,p_effective_date in date
14 ,p_appraisal_id in number
15 ,p_person_id in number default null
16 ,p_objective_id in number
17 ,p_performance_level_id in number default null
18 ,p_comments in varchar2 default null
19 ,p_attribute_category in varchar2 default null
20 ,p_attribute1 in varchar2 default null
21 ,p_attribute2 in varchar2 default null
22 ,p_attribute3 in varchar2 default null
23 ,p_attribute4 in varchar2 default null
24 ,p_attribute5 in varchar2 default null
25 ,p_attribute6 in varchar2 default null
26 ,p_attribute7 in varchar2 default null
27 ,p_attribute8 in varchar2 default null
28 ,p_attribute9 in varchar2 default null
29 ,p_attribute10 in varchar2 default null
30 ,p_attribute11 in varchar2 default null
31 ,p_attribute12 in varchar2 default null
32 ,p_attribute13 in varchar2 default null
33 ,p_attribute14 in varchar2 default null
34 ,p_attribute15 in varchar2 default null
35 ,p_attribute16 in varchar2 default null
36 ,p_attribute17 in varchar2 default null
37 ,p_attribute18 in varchar2 default null
38 ,p_attribute19 in varchar2 default null
39 ,p_attribute20 in varchar2 default null
40 ,p_performance_rating_id in number
41 ,p_object_version_number out nocopy number
42 ,p_return_status out nocopy varchar2
43 ,p_appr_line_score in number default null
44 ) is
45 --
46 -- Variables for API Boolean parameters
47 l_validate boolean;
48 l_performance_rating_id number;
49 --
50 -- Variables for IN/OUT parameters
51 --
52 -- Other variables
53 l_proc varchar2(72) := g_package ||'create_performance_rating';
54 Begin
55 hr_utility.set_location(' Entering:' || l_proc,10);
56 --
57 -- Issue a savepoint
58 --
59 savepoint create_performance_rating_swi;
60 --
61 -- Initialise Multiple Message Detection
62 --
63 hr_multi_message.enable_message_list;
64 --
65 -- Remember IN OUT parameter IN values
66 --
67 --
68 -- Convert constant values to their corresponding boolean value
69 --
70 l_validate :=
71 hr_api.constant_to_boolean
72 (p_constant_value => p_validate);
73 --
74 -- Register Surrogate ID or user key values
75 --
76 per_prt_ins.set_base_key_value
77 (p_performance_rating_id => p_performance_rating_id
78 );
79
80 --
81 -- Call API
82 --
83 hr_performance_ratings_api.create_performance_rating
84 (p_validate => l_validate
85 ,p_effective_date => p_effective_date
86 ,p_appraisal_id => p_appraisal_id
87 ,p_person_id => p_person_id
88 ,p_objective_id => p_objective_id
89 ,p_performance_level_id => p_performance_level_id
90 ,p_comments => p_comments
91 ,p_attribute_category => p_attribute_category
92 ,p_attribute1 => p_attribute1
93 ,p_attribute2 => p_attribute2
94 ,p_attribute3 => p_attribute3
95 ,p_attribute4 => p_attribute4
96 ,p_attribute5 => p_attribute5
97 ,p_attribute6 => p_attribute6
98 ,p_attribute7 => p_attribute7
99 ,p_attribute8 => p_attribute8
100 ,p_attribute9 => p_attribute9
101 ,p_attribute10 => p_attribute10
102 ,p_attribute11 => p_attribute11
103 ,p_attribute12 => p_attribute12
104 ,p_attribute13 => p_attribute13
105 ,p_attribute14 => p_attribute14
106 ,p_attribute15 => p_attribute15
107 ,p_attribute16 => p_attribute16
108 ,p_attribute17 => p_attribute17
109 ,p_attribute18 => p_attribute18
110 ,p_attribute19 => p_attribute19
111 ,p_attribute20 => p_attribute20
112 ,p_performance_rating_id => l_performance_rating_id
113 ,p_object_version_number => p_object_version_number
114 ,p_appr_line_score => p_appr_line_score
115 );
116 --
117 -- Convert API warning boolean parameter values to specific
118 -- messages and add them to Multiple Message List
119 --
120 --
121 -- Convert API non-warning boolean parameter values
122 --
123 --
124 -- Derive the API return status value based on whether
125 -- messages of any type exist in the Multiple Message List.
126 -- Also disable Multiple Message Detection.
127 --
128 p_return_status := hr_multi_message.get_return_status_disable;
129 hr_utility.set_location(' Leaving:' || l_proc,20);
130 --
131 exception
132 when hr_multi_message.error_message_exist then
133 --
134 -- Catch the Multiple Message List exception which
135 -- indicates API processing has been aborted because
136 -- at least one message exists in the list.
137 --
138 rollback to create_performance_rating_swi;
139 --
140 -- Reset IN OUT parameters and set OUT parameters
141 --
142 p_object_version_number := null;
143 p_return_status := hr_multi_message.get_return_status_disable;
144 hr_utility.set_location(' Leaving:' || l_proc, 30);
145 when others then
146 --
147 -- When Multiple Message Detection is enabled catch
148 -- any Application specific or other unexpected
149 -- exceptions. Adding appropriate details to the
150 -- Multiple Message List. Otherwise re-raise the
151 -- error.
152 --
153 rollback to create_performance_rating_swi;
154 if hr_multi_message.unexpected_error_add(l_proc) then
155 hr_utility.set_location(' Leaving:' || l_proc,40);
156 raise;
157 end if;
158 --
159 -- Reset IN OUT and set OUT parameters
160 --
161 p_object_version_number := null;
162 p_return_status := hr_multi_message.get_return_status_disable;
163 hr_utility.set_location(' Leaving:' || l_proc,50);
164 end create_performance_rating;
165 -- ----------------------------------------------------------------------------
166 -- |-----------------------< delete_performance_rating >----------------------|
167 -- ----------------------------------------------------------------------------
168 PROCEDURE delete_performance_rating
169 (p_validate in number default hr_api.g_false_num
170 ,p_performance_rating_id in number
171 ,p_object_version_number in number
172 ,p_return_status out nocopy varchar2
173 ) is
174 --
175 -- Variables for API Boolean parameters
176 l_validate boolean;
177 --
178 -- Variables for IN/OUT parameters
179 --
180 -- Other variables
181 l_proc varchar2(72) := g_package ||'delete_performance_rating';
182 Begin
183 hr_utility.set_location(' Entering:' || l_proc,10);
184 --
185 -- Issue a savepoint
186 --
187 savepoint delete_performance_rating_swi;
188 --
189 -- Initialise Multiple Message Detection
190 --
191 hr_multi_message.enable_message_list;
192 --
193 -- Remember IN OUT parameter IN values
194 --
195 --
196 -- Convert constant values to their corresponding boolean value
197 --
198 l_validate :=
199 hr_api.constant_to_boolean
200 (p_constant_value => p_validate);
201 --
202 -- Register Surrogate ID or user key values
203 --
204 --
205 -- Call API
206 --
207 hr_performance_ratings_api.delete_performance_rating
208 (p_validate => l_validate
209 ,p_performance_rating_id => p_performance_rating_id
210 ,p_object_version_number => p_object_version_number
211 );
212 --
213 -- Convert API warning boolean parameter values to specific
214 -- messages and add them to Multiple Message List
215 --
216 --
217 -- Convert API non-warning boolean parameter values
218 --
219 --
220 -- Derive the API return status value based on whether
221 -- messages of any type exist in the Multiple Message List.
222 -- Also disable Multiple Message Detection.
223 --
224 p_return_status := hr_multi_message.get_return_status_disable;
225 hr_utility.set_location(' Leaving:' || l_proc,20);
226 --
227 exception
228 when hr_multi_message.error_message_exist then
229 --
230 -- Catch the Multiple Message List exception which
231 -- indicates API processing has been aborted because
232 -- at least one message exists in the list.
233 --
234 rollback to delete_performance_rating_swi;
235 --
236 -- Reset IN OUT parameters and set OUT parameters
237 --
238 p_return_status := hr_multi_message.get_return_status_disable;
239 hr_utility.set_location(' Leaving:' || l_proc, 30);
240 when others then
241 --
242 -- When Multiple Message Detection is enabled catch
243 -- any Application specific or other unexpected
244 -- exceptions. Adding appropriate details to the
245 -- Multiple Message List. Otherwise re-raise the
246 -- error.
247 --
248 rollback to delete_performance_rating_swi;
249 if hr_multi_message.unexpected_error_add(l_proc) then
250 hr_utility.set_location(' Leaving:' || l_proc,40);
251 raise;
252 end if;
253 --
254 -- Reset IN OUT and set OUT parameters
255 --
256 p_return_status := hr_multi_message.get_return_status_disable;
257 hr_utility.set_location(' Leaving:' || l_proc,50);
258 end delete_performance_rating;
259 -- ----------------------------------------------------------------------------
260 -- |-----------------------< update_performance_rating >----------------------|
261 -- ----------------------------------------------------------------------------
262 PROCEDURE update_performance_rating
263 (p_validate in number default hr_api.g_false_num
264 ,p_effective_date in date
265 ,p_performance_rating_id in number
266 ,p_person_id in number default hr_api.g_number
267 ,p_object_version_number in out nocopy number
268 ,p_appraisal_id in number default hr_api.g_number
269 ,p_objective_id in number default hr_api.g_number
270 ,p_performance_level_id in number default hr_api.g_number
271 ,p_comments in varchar2 default hr_api.g_varchar2
272 ,p_attribute_category in varchar2 default hr_api.g_varchar2
273 ,p_attribute1 in varchar2 default hr_api.g_varchar2
274 ,p_attribute2 in varchar2 default hr_api.g_varchar2
275 ,p_attribute3 in varchar2 default hr_api.g_varchar2
276 ,p_attribute4 in varchar2 default hr_api.g_varchar2
277 ,p_attribute5 in varchar2 default hr_api.g_varchar2
278 ,p_attribute6 in varchar2 default hr_api.g_varchar2
279 ,p_attribute7 in varchar2 default hr_api.g_varchar2
280 ,p_attribute8 in varchar2 default hr_api.g_varchar2
281 ,p_attribute9 in varchar2 default hr_api.g_varchar2
282 ,p_attribute10 in varchar2 default hr_api.g_varchar2
283 ,p_attribute11 in varchar2 default hr_api.g_varchar2
284 ,p_attribute12 in varchar2 default hr_api.g_varchar2
285 ,p_attribute13 in varchar2 default hr_api.g_varchar2
286 ,p_attribute14 in varchar2 default hr_api.g_varchar2
287 ,p_attribute15 in varchar2 default hr_api.g_varchar2
288 ,p_attribute16 in varchar2 default hr_api.g_varchar2
289 ,p_attribute17 in varchar2 default hr_api.g_varchar2
290 ,p_attribute18 in varchar2 default hr_api.g_varchar2
291 ,p_attribute19 in varchar2 default hr_api.g_varchar2
292 ,p_attribute20 in varchar2 default hr_api.g_varchar2
293 ,p_return_status out nocopy varchar2
294 ,p_appr_line_score in number default hr_api.g_number
295 ) is
296 --
297 -- Variables for API Boolean parameters
298 l_validate boolean;
299 --
300 -- Variables for IN/OUT parameters
301 l_object_version_number number;
302 --
303 -- Other variables
304 l_proc varchar2(72) := g_package ||'update_performance_rating';
305 Begin
306 hr_utility.set_location(' Entering:' || l_proc,10);
307 --
308 -- Issue a savepoint
309 --
310 savepoint update_performance_rating_swi;
311 --
312 -- Initialise Multiple Message Detection
313 --
314 hr_multi_message.enable_message_list;
315 --
316 -- Remember IN OUT parameter IN values
317 --
318 l_object_version_number := p_object_version_number;
319 --
320 -- Convert constant values to their corresponding boolean value
321 --
322 l_validate :=
323 hr_api.constant_to_boolean
324 (p_constant_value => p_validate);
325 --
326 -- Register Surrogate ID or user key values
327 --
328 --
329 -- Call API
330 --
331 hr_performance_ratings_api.update_performance_rating
332 (p_validate => l_validate
333 ,p_effective_date => p_effective_date
334 ,p_performance_rating_id => p_performance_rating_id
335 ,p_person_id => p_person_id
336 ,p_object_version_number => p_object_version_number
337 ,p_appraisal_id => p_appraisal_id
338 ,p_objective_id => p_objective_id
339 ,p_performance_level_id => p_performance_level_id
340 ,p_comments => p_comments
341 ,p_attribute_category => p_attribute_category
342 ,p_attribute1 => p_attribute1
343 ,p_attribute2 => p_attribute2
344 ,p_attribute3 => p_attribute3
345 ,p_attribute4 => p_attribute4
346 ,p_attribute5 => p_attribute5
347 ,p_attribute6 => p_attribute6
348 ,p_attribute7 => p_attribute7
349 ,p_attribute8 => p_attribute8
350 ,p_attribute9 => p_attribute9
351 ,p_attribute10 => p_attribute10
352 ,p_attribute11 => p_attribute11
353 ,p_attribute12 => p_attribute12
354 ,p_attribute13 => p_attribute13
355 ,p_attribute14 => p_attribute14
356 ,p_attribute15 => p_attribute15
357 ,p_attribute16 => p_attribute16
358 ,p_attribute17 => p_attribute17
359 ,p_attribute18 => p_attribute18
360 ,p_attribute19 => p_attribute19
361 ,p_attribute20 => p_attribute20
362 ,p_appr_line_score => p_appr_line_score
363 );
364 --
365 -- Convert API warning boolean parameter values to specific
366 -- messages and add them to Multiple Message List
367 --
368 --
369 -- Convert API non-warning boolean parameter values
370 --
371 --
372 -- Derive the API return status value based on whether
373 -- messages of any type exist in the Multiple Message List.
374 -- Also disable Multiple Message Detection.
375 --
376 p_return_status := hr_multi_message.get_return_status_disable;
377 hr_utility.set_location(' Leaving:' || l_proc,20);
378 --
379 exception
380 when hr_multi_message.error_message_exist then
381 --
382 -- Catch the Multiple Message List exception which
383 -- indicates API processing has been aborted because
384 -- at least one message exists in the list.
385 --
386 rollback to update_performance_rating_swi;
387 --
388 -- Reset IN OUT parameters and set OUT parameters
389 --
390 p_object_version_number := l_object_version_number;
391 p_return_status := hr_multi_message.get_return_status_disable;
392 hr_utility.set_location(' Leaving:' || l_proc, 30);
393 when others then
394 --
395 -- When Multiple Message Detection is enabled catch
396 -- any Application specific or other unexpected
397 -- exceptions. Adding appropriate details to the
398 -- Multiple Message List. Otherwise re-raise the
399 -- error.
400 --
401 rollback to update_performance_rating_swi;
402 if hr_multi_message.unexpected_error_add(l_proc) then
403 hr_utility.set_location(' Leaving:' || l_proc,40);
404 raise;
405 end if;
406 --
407 -- Reset IN OUT and set OUT parameters
408 --
409 p_object_version_number := l_object_version_number;
410 p_return_status := hr_multi_message.get_return_status_disable;
411 hr_utility.set_location(' Leaving:' || l_proc,50);
412 end update_performance_rating;
413
414 -- ----------------------------------------------------------------------------
415 -- |---------------------------< process_api >--------------------------------|
416 -- ----------------------------------------------------------------------------
417
418 Procedure process_api
419 ( p_document in CLOB
420 ,p_return_status out nocopy VARCHAR2
421 ,p_validate in number default hr_api.g_false_num
422 ,p_effective_date in date default null
423 )
424 IS
425 l_postState VARCHAR2(2);
426 l_return_status VARCHAR2(1);
427 l_object_version_number number;
428 l_commitElement xmldom.DOMElement;
429 l_parser xmlparser.Parser;
430 l_CommitNode xmldom.DOMNode;
431 l_proc varchar2(72) := g_package || 'process_api';
432
433 BEGIN
434
435 hr_utility.set_location(' Entering:' || l_proc,10);
436 hr_utility.set_location(' CLOB --> xmldom.DOMNode:' || l_proc,15);
437
438 l_parser := xmlparser.newParser;
439 xmlparser.ParseCLOB(l_parser,p_document);
440 l_CommitNode := xmldom.makeNode(xmldom.getDocumentElement(xmlparser.getDocument(l_parser)));
441
442 hr_utility.set_location('Extracting the PostState:' || l_proc,20);
443
444 l_commitElement := xmldom.makeElement(l_CommitNode);
445 l_postState := xmldom.getAttribute(l_commitElement, 'PS');
446 l_object_version_number := hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectVersionNumber');
447
448 if l_postState = '0' then
449
450 create_performance_rating
451 ( p_validate => p_validate
452 ,p_effective_date => p_effective_date
453 ,p_appraisal_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AppraisalId',null)
454 ,p_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PersonId',null)
455 ,p_objective_id => hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectiveId',null)
456 ,p_performance_level_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PerformanceLevelId',null)
457 ,p_comments => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Comments',null)
458 ,p_attribute_category => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory',null)
459 ,p_attribute1 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1',null)
460 ,p_attribute2 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2',null)
461 ,p_attribute3 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3',null)
462 ,p_attribute4 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4',null)
463 ,p_attribute5 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5',null)
464 ,p_attribute6 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6',null)
465 ,p_attribute7 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7',null)
466 ,p_attribute8 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8',null)
467 ,p_attribute9 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9',null)
468 ,p_attribute10 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10',null)
469 ,p_attribute11 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11',null)
470 ,p_attribute12 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12',null)
471 ,p_attribute13 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13',null)
472 ,p_attribute14 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14',null)
473 ,p_attribute15 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15',null)
474 ,p_attribute16 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16',null)
475 ,p_attribute17 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17',null)
476 ,p_attribute18 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18',null)
477 ,p_attribute19 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19',null)
478 ,p_attribute20 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20',null)
479 ,p_performance_rating_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PerformanceRatingId',null)
480 ,p_object_version_number => l_object_version_number
481 ,p_return_status => l_return_status
482 ,p_appr_line_score => hr_transaction_swi.getNumberValue(l_CommitNode,'ApprLineScore',null)
483 );
484
485 elsif l_postState = '2' then
486
487 update_performance_rating
488 ( p_validate => p_validate
489 ,p_effective_date => p_effective_date
490 ,p_performance_rating_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PerformanceRatingId')
491 ,p_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PersonId')
492 ,p_object_version_number => l_object_version_number
493 ,p_appraisal_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AppraisalId')
494 ,p_objective_id => hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectiveId')
495 ,p_performance_level_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PerformanceLevelId')
496 ,p_comments => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Comments')
497 ,p_attribute_category => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory')
498 ,p_attribute1 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1')
499 ,p_attribute2 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2')
500 ,p_attribute3 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3')
501 ,p_attribute4 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4')
502 ,p_attribute5 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5')
503 ,p_attribute6 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6')
504 ,p_attribute7 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7')
505 ,p_attribute8 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8')
506 ,p_attribute9 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9')
507 ,p_attribute10 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10')
508 ,p_attribute11 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11')
509 ,p_attribute12 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12')
510 ,p_attribute13 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13')
511 ,p_attribute14 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14')
512 ,p_attribute15 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15')
513 ,p_attribute16 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16')
514 ,p_attribute17 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17')
515 ,p_attribute18 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18')
516 ,p_attribute19 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19')
517 ,p_attribute20 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20')
518 ,p_return_status => l_return_status
519 ,p_appr_line_score => hr_transaction_swi.getNumberValue(l_CommitNode,'ApprLineScore')
520 );
521
522 elsif l_postState = '3' then
523
524 delete_performance_rating
525 ( p_validate => p_validate
526 ,p_performance_rating_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PerformanceRatingId')
527 ,p_object_version_number => l_object_version_number
528 ,p_return_status => l_return_status
529 );
530
531 p_return_status := l_return_status;
532
533 end if;
534
535 hr_utility.set_location('Exiting:' || l_proc,40);
536
537 END process_api;
538
539 end hr_performance_ratings_swi;