DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_COMP_ELEMENT_OUTCOME_SWI

Source


1 Package Body HR_COMP_ELEMENT_OUTCOME_SWI As
2 /* $Header: hrceoswi.pkb 120.0 2005/09/30 00:34 hpandya noship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'hr_comp_element_outcome_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |------------------------< create_element_outcome >------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_element_outcome
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_effective_date               in     date
14   ,p_competence_element_id        in     number
15   ,p_outcome_id                   in     number
16   ,p_date_from                    in     date
17   ,p_date_to                      in     date      default null
18   ,p_attribute_category           in     varchar2  default null
19   ,p_attribute1                   in     varchar2  default null
20   ,p_attribute2                   in     varchar2  default null
21   ,p_attribute3                   in     varchar2  default null
22   ,p_attribute4                   in     varchar2  default null
23   ,p_attribute5                   in     varchar2  default null
24   ,p_attribute6                   in     varchar2  default null
25   ,p_attribute7                   in     varchar2  default null
26   ,p_attribute8                   in     varchar2  default null
27   ,p_attribute9                   in     varchar2  default null
28   ,p_attribute10                  in     varchar2  default null
29   ,p_attribute11                  in     varchar2  default null
30   ,p_attribute12                  in     varchar2  default null
31   ,p_attribute13                  in     varchar2  default null
32   ,p_attribute14                  in     varchar2  default null
33   ,p_attribute15                  in     varchar2  default null
34   ,p_attribute16                  in     varchar2  default null
35   ,p_attribute17                  in     varchar2  default null
36   ,p_attribute18                  in     varchar2  default null
37   ,p_attribute19                  in     varchar2  default null
38   ,p_attribute20                  in     varchar2  default null
39   ,p_information_category         in     varchar2  default null
40   ,p_information1                 in     varchar2  default null
41   ,p_information2                 in     varchar2  default null
42   ,p_information3                 in     varchar2  default null
43   ,p_information4                 in     varchar2  default null
44   ,p_information5                 in     varchar2  default null
45   ,p_information6                 in     varchar2  default null
46   ,p_information7                 in     varchar2  default null
47   ,p_information8                 in     varchar2  default null
48   ,p_information9                 in     varchar2  default null
49   ,p_information10                in     varchar2  default null
50   ,p_information11                in     varchar2  default null
51   ,p_information12                in     varchar2  default null
52   ,p_information13                in     varchar2  default null
53   ,p_information14                in     varchar2  default null
54   ,p_information15                in     varchar2  default null
55   ,p_information16                in     varchar2  default null
56   ,p_information17                in     varchar2  default null
57   ,p_information18                in     varchar2  default null
58   ,p_information19                in     varchar2  default null
59   ,p_information20                in     varchar2  default null
60   ,p_comp_element_outcome_id      in     number
61   ,p_object_version_number        out nocopy number
62   ,p_return_status                out nocopy varchar2
63   ) is
64   --
65   -- Variables for API Boolean parameters
66   l_validate                      boolean;
67   l_competence_element_id         number;
68   --
69   -- Variables for IN/OUT parameters
70   --
71   -- Other variables
72   l_comp_element_outcome_id      number;
73   l_proc    varchar2(72) := g_package ||'create_element_outcome';
74 Begin
75   hr_utility.set_location(' Entering:' || l_proc,10);
76   --
77   -- Issue a savepoint
78   --
79   savepoint create_element_outcome_swi;
80   --
81   -- Initialise Multiple Message Detection
82   --
83   hr_multi_message.enable_message_list;
84   --
85   -- Remember IN OUT parameter IN values
86    -- Heena: In Enter New Level of competency, Outcome can be in Create as well as Update mode.
87    if (( HR_COMPETENCE_ELEMENT_SWI.g_competence_element_id is not null) and
88                 (HR_COMPETENCE_ELEMENT_SWI.g_session_id= ICX_SEC.G_SESSION_ID)) then
89          l_competence_element_id := HR_COMPETENCE_ELEMENT_SWI.g_competence_element_id;
90    else
91          l_competence_element_id := p_competence_element_id;
92    end if;
93   --
94   --
95   -- Convert constant values to their corresponding boolean value
96   --
97   l_validate :=
98     hr_api.constant_to_boolean
99       (p_constant_value => p_validate);
100   --
101   -- Register Surrogate ID or user key values
102   --
103   if p_comp_element_outcome_id is not null then
104     per_ceo_ins.set_base_key_value
105       (p_comp_element_outcome_id => p_comp_element_outcome_id
106       );
107   end if;
108   --
109   -- Call API
110   --
111   hr_comp_element_outcome_api.create_element_outcome
112     (p_validate                     => l_validate
113     ,p_effective_date               => p_effective_date
114     ,p_competence_element_id        => l_competence_element_id
115     ,p_outcome_id                   => p_outcome_id
116     ,p_date_from                    => p_date_from
117     ,p_date_to                      => p_date_to
118     ,p_attribute_category           => p_attribute_category
119     ,p_attribute1                   => p_attribute1
120     ,p_attribute2                   => p_attribute2
121     ,p_attribute3                   => p_attribute3
122     ,p_attribute4                   => p_attribute4
123     ,p_attribute5                   => p_attribute5
124     ,p_attribute6                   => p_attribute6
125     ,p_attribute7                   => p_attribute7
126     ,p_attribute8                   => p_attribute8
127     ,p_attribute9                   => p_attribute9
128     ,p_attribute10                  => p_attribute10
129     ,p_attribute11                  => p_attribute11
130     ,p_attribute12                  => p_attribute12
131     ,p_attribute13                  => p_attribute13
132     ,p_attribute14                  => p_attribute14
133     ,p_attribute15                  => p_attribute15
134     ,p_attribute16                  => p_attribute16
135     ,p_attribute17                  => p_attribute17
136     ,p_attribute18                  => p_attribute18
137     ,p_attribute19                  => p_attribute19
138     ,p_attribute20                  => p_attribute20
139     ,p_information_category         => p_information_category
140     ,p_information1                 => p_information1
141     ,p_information2                 => p_information2
142     ,p_information3                 => p_information3
143     ,p_information4                 => p_information4
144     ,p_information5                 => p_information5
145     ,p_information6                 => p_information6
146     ,p_information7                 => p_information7
147     ,p_information8                 => p_information8
148     ,p_information9                 => p_information9
149     ,p_information10                => p_information10
150     ,p_information11                => p_information11
151     ,p_information12                => p_information12
152     ,p_information13                => p_information13
153     ,p_information14                => p_information14
154     ,p_information15                => p_information15
155     ,p_information16                => p_information16
156     ,p_information17                => p_information17
157     ,p_information18                => p_information18
158     ,p_information19                => p_information19
159     ,p_information20                => p_information20
160     ,p_comp_element_outcome_id      => l_comp_element_outcome_id
161     ,p_object_version_number        => p_object_version_number
162     );
163   --
164   -- Convert API warning boolean parameter values to specific
165   -- messages and add them to Multiple Message List
166   --
167   --
168   -- Convert API non-warning boolean parameter values
169   --
170   --
171   -- Derive the API return status value based on whether
172   -- messages of any type exist in the Multiple Message List.
173   -- Also disable Multiple Message Detection.
174   --
175   p_return_status := hr_multi_message.get_return_status_disable;
176   hr_utility.set_location(' Leaving:' || l_proc,20);
177   --
178 exception
179   when hr_multi_message.error_message_exist then
180     --
181     -- Catch the Multiple Message List exception which
182     -- indicates API processing has been aborted because
183     -- at least one message exists in the list.
184     --
185     rollback to create_element_outcome_swi;
186     --
187     -- Reset IN OUT parameters and set OUT parameters
188     --
189     p_object_version_number        := null;
190     p_return_status := hr_multi_message.get_return_status_disable;
191     hr_utility.set_location(' Leaving:' || l_proc, 30);
192   when others then
193     --
194     -- When Multiple Message Detection is enabled catch
195     -- any Application specific or other unexpected
196     -- exceptions.  Adding appropriate details to the
197     -- Multiple Message List.  Otherwise re-raise the
198     -- error.
199     --
200     rollback to create_element_outcome_swi;
201     if hr_multi_message.unexpected_error_add(l_proc) then
202        hr_utility.set_location(' Leaving:' || l_proc,40);
203        raise;
204     end if;
205     --
206     -- Reset IN OUT and set OUT parameters
207     --
208     p_object_version_number        := null;
209     p_return_status := hr_multi_message.get_return_status_disable;
210     hr_utility.set_location(' Leaving:' || l_proc,50);
211 end create_element_outcome;
212 -- ----------------------------------------------------------------------------
213 -- |------------------------< update_element_outcome >------------------------|
214 -- ----------------------------------------------------------------------------
215 PROCEDURE update_element_outcome
216   (p_validate                     in     number    default hr_api.g_false_num
217   ,p_effective_date               in     date
218   ,p_comp_element_outcome_id      in     number
219   ,p_object_version_number        in out nocopy number
220   ,p_competence_element_id        in     number    default hr_api.g_number
221   ,p_outcome_id                   in     number    default hr_api.g_number
222   ,p_date_from                    in     date      default hr_api.g_date
223   ,p_date_to                      in     date      default hr_api.g_date
224   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
225   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
226   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
227   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
228   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
229   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
230   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
231   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
232   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
233   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
234   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
235   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
236   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
237   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
238   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
239   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
240   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
241   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
242   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
243   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
244   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
245   ,p_information_category         in     varchar2  default hr_api.g_varchar2
246   ,p_information1                 in     varchar2  default hr_api.g_varchar2
247   ,p_information2                 in     varchar2  default hr_api.g_varchar2
248   ,p_information3                 in     varchar2  default hr_api.g_varchar2
249   ,p_information4                 in     varchar2  default hr_api.g_varchar2
250   ,p_information5                 in     varchar2  default hr_api.g_varchar2
251   ,p_information6                 in     varchar2  default hr_api.g_varchar2
252   ,p_information7                 in     varchar2  default hr_api.g_varchar2
253   ,p_information8                 in     varchar2  default hr_api.g_varchar2
254   ,p_information9                 in     varchar2  default hr_api.g_varchar2
255   ,p_information10                in     varchar2  default hr_api.g_varchar2
256   ,p_information11                in     varchar2  default hr_api.g_varchar2
257   ,p_information12                in     varchar2  default hr_api.g_varchar2
258   ,p_information13                in     varchar2  default hr_api.g_varchar2
259   ,p_information14                in     varchar2  default hr_api.g_varchar2
260   ,p_information15                in     varchar2  default hr_api.g_varchar2
261   ,p_information16                in     varchar2  default hr_api.g_varchar2
262   ,p_information17                in     varchar2  default hr_api.g_varchar2
263   ,p_information18                in     varchar2  default hr_api.g_varchar2
264   ,p_information19                in     varchar2  default hr_api.g_varchar2
265   ,p_information20                in     varchar2  default hr_api.g_varchar2
266   ,p_return_status                out nocopy varchar2
267 --   ,p_datetrack_update_mode        in     varchar2  default hr_api.g_correction
268   ) is
269   --
270   -- Variables for API Boolean parameters
271   l_validate                      boolean;
272   --
273   -- Variables for IN/OUT parameters
274   l_object_version_number         number;
275   --
276   -- Other variables
277   l_competence_element_id       number;
278   l_comp_element_outcome_id     number;
279   l_effective_date_to           date;
280   l_datetrack_update_mode       varchar2(10);
281   l_proc    varchar2(72)       := g_package ||'update_element_outcome';
282 Begin
283   hr_utility.set_location(' Entering:' || l_proc,10);
284   --
285   -- Issue a savepoint
286   --
287   savepoint update_element_outcome_swi;
288   --
289   -- Initialise Multiple Message Detection
290   --
291   hr_multi_message.enable_message_list;
292   --
293   -- Remember IN OUT parameter IN values
294   --
295   l_object_version_number         := p_object_version_number;
296   --
297   -- Convert constant values to their corresponding boolean value
298   --
299   l_validate :=
300     hr_api.constant_to_boolean
301       (p_constant_value => p_validate);
302   --
303   -- Register Surrogate ID or user key values
304   --
305   --
306   -- Call API
307   --
308   -- Heena : Evaluating the possibility of not using p_datetrack_update_mode.
309   -- Heena: In Enter New Level of competency, Outcome can be in Create as well as Update mode.
310    if (( HR_COMPETENCE_ELEMENT_SWI.g_competence_element_id is not null) and
311                 (HR_COMPETENCE_ELEMENT_SWI.g_session_id= ICX_SEC.G_SESSION_ID)) then
312          l_competence_element_id := HR_COMPETENCE_ELEMENT_SWI.g_competence_element_id;
313          l_datetrack_update_mode := 'UPDATE';
314    else
315          l_competence_element_id := p_competence_element_id;
316          l_datetrack_update_mode := 'CORRECT';
317    end if;
318 
319   if ( l_datetrack_update_mode = 'CORRECT') then
320 
321   hr_comp_element_outcome_api.update_element_outcome
322     (p_validate                     => l_validate
323     ,p_effective_date               => p_effective_date
324     ,p_comp_element_outcome_id      => p_comp_element_outcome_id
325     ,p_object_version_number        => p_object_version_number
326     ,p_competence_element_id        => p_competence_element_id
327     ,p_outcome_id                   => p_outcome_id
328     ,p_date_from                    => p_date_from
329     ,p_date_to                      => p_date_to
330     ,p_attribute_category           => p_attribute_category
331     ,p_attribute1                   => p_attribute1
332     ,p_attribute2                   => p_attribute2
333     ,p_attribute3                   => p_attribute3
334     ,p_attribute4                   => p_attribute4
335     ,p_attribute5                   => p_attribute5
336     ,p_attribute6                   => p_attribute6
337     ,p_attribute7                   => p_attribute7
338     ,p_attribute8                   => p_attribute8
339     ,p_attribute9                   => p_attribute9
340     ,p_attribute10                  => p_attribute10
341     ,p_attribute11                  => p_attribute11
342     ,p_attribute12                  => p_attribute12
343     ,p_attribute13                  => p_attribute13
344     ,p_attribute14                  => p_attribute14
345     ,p_attribute15                  => p_attribute15
346     ,p_attribute16                  => p_attribute16
347     ,p_attribute17                  => p_attribute17
348     ,p_attribute18                  => p_attribute18
349     ,p_attribute19                  => p_attribute19
350     ,p_attribute20                  => p_attribute20
351     ,p_information_category         => p_information_category
352     ,p_information1                 => p_information1
353     ,p_information2                 => p_information2
354     ,p_information3                 => p_information3
355     ,p_information4                 => p_information4
356     ,p_information5                 => p_information5
357     ,p_information6                 => p_information6
358     ,p_information7                 => p_information7
359     ,p_information8                 => p_information8
360     ,p_information9                 => p_information9
361     ,p_information10                => p_information10
362     ,p_information11                => p_information11
363     ,p_information12                => p_information12
364     ,p_information13                => p_information13
365     ,p_information14                => p_information14
366     ,p_information15                => p_information15
367     ,p_information16                => p_information16
368     ,p_information17                => p_information17
369     ,p_information18                => p_information18
370     ,p_information19                => p_information19
371     ,p_information20                => p_information20
372     );
373 
374 /*  hr_comp_element_outcome_api.update_element_outcome
375     (p_validate                     => l_validate
376     ,p_effective_date               => p_effective_date
377     ,p_comp_element_outcome_id      => p_comp_element_outcome_id
378     ,p_object_version_number        => p_object_version_number
379     ,p_competence_element_id        => p_competence_element_id
380     ,p_outcome_id                   => p_outcome_id
381     ,p_date_from                    => p_date_from
382     ,p_date_to                      => p_date_to
383     ,p_attribute_category           => p_attribute_category
384     ,p_attribute1                   => p_attribute1
385     ,p_attribute2                   => p_attribute2
386     ,p_attribute3                   => p_attribute3
387     ,p_attribute4                   => p_attribute4
388     ,p_attribute5                   => p_attribute5
389     ,p_attribute6                   => p_attribute6
390     ,p_attribute7                   => p_attribute7
391     ,p_attribute8                   => p_attribute8
392     ,p_attribute9                   => p_attribute9
393     ,p_attribute10                  => p_attribute10
394     ,p_attribute11                  => p_attribute11
395     ,p_attribute12                  => p_attribute12
396     ,p_attribute13                  => p_attribute13
397     ,p_attribute14                  => p_attribute14
398     ,p_attribute15                  => p_attribute15
399     ,p_attribute16                  => p_attribute16
400     ,p_attribute17                  => p_attribute17
401     ,p_attribute18                  => p_attribute18
402     ,p_attribute19                  => p_attribute19
403     ,p_attribute20                  => p_attribute20
404     ,p_information_category         => p_information_category
405     ,p_information1                 => p_information1
406     ,p_information2                 => p_information2
407     ,p_information3                 => p_information3
408     ,p_information4                 => p_information4
409     ,p_information5                 => p_information5
410     ,p_information6                 => p_information6
411     ,p_information7                 => p_information7
412     ,p_information8                 => p_information8
413     ,p_information9                 => p_information9
414     ,p_information10                => p_information10
415     ,p_information11                => p_information11
416     ,p_information12                => p_information12
417     ,p_information13                => p_information13
418     ,p_information14                => p_information14
419     ,p_information15                => p_information15
420     ,p_information16                => p_information16
421     ,p_information17                => p_information17
422     ,p_information18                => p_information18
423     ,p_information19                => p_information19
424     ,p_information20                => p_information20
425     );*/
426  else -- if  (p_datetrack_update_mode =hr_api.g_update) then
427    -- Heena: We do not end date the outcode.
428    -- We want to maintain history by end-dating the previous row and  inserting a new Row.
429    -- This is date Track update
430      -- l_effective_date_to:=p_date_from - 1;
431      -- End-date the existing row
432      /*hr_comp_element_outcome_api.update_element_outcome(
433       p_comp_element_outcome_id      => p_comp_element_outcome_id
434      ,p_object_version_number        => p_object_version_number
435      ,p_date_to                      =>l_effective_date_to
436      ,p_effective_date               => p_effective_date
437      );*/
438     --  Add new row
439      hr_comp_element_outcome_api.create_element_outcome
440     (p_validate                     => l_validate
441     ,p_effective_date               => p_effective_date
442     ,p_competence_element_id        => l_competence_element_id
443     ,p_outcome_id                   => p_outcome_id
444     ,p_date_from                    => p_date_from
445     ,p_date_to                      =>  p_date_to
446     ,p_attribute_category           => p_attribute_category
447     ,p_attribute1                   => p_attribute1
448     ,p_attribute2                   => p_attribute2
449     ,p_attribute3                   => p_attribute3
450     ,p_attribute4                   => p_attribute4
451     ,p_attribute5                   => p_attribute5
452     ,p_attribute6                   => p_attribute6
453     ,p_attribute7                   => p_attribute7
454     ,p_attribute8                   => p_attribute8
455     ,p_attribute9                   => p_attribute9
456     ,p_attribute10                  => p_attribute10
457     ,p_attribute11                  => p_attribute11
458     ,p_attribute12                  => p_attribute12
459     ,p_attribute13                  => p_attribute13
460     ,p_attribute14                  => p_attribute14
461     ,p_attribute15                  => p_attribute15
462     ,p_attribute16                  => p_attribute16
463     ,p_attribute17                  => p_attribute17
464     ,p_attribute18                  => p_attribute18
465     ,p_attribute19                  => p_attribute19
466     ,p_attribute20                  => p_attribute20
467     ,p_information_category         => p_information_category
468     ,p_information1                 => p_information1
469     ,p_information2                 => p_information2
470     ,p_information3                 => p_information3
471     ,p_information4                 => p_information4
472     ,p_information5                 => p_information5
473     ,p_information6                 => p_information6
474     ,p_information7                 => p_information7
475     ,p_information8                 => p_information8
476     ,p_information9                 => p_information9
477     ,p_information10                => p_information10
478     ,p_information11                => p_information11
479     ,p_information12                => p_information12
480     ,p_information13                => p_information13
481     ,p_information14                => p_information14
482     ,p_information15                => p_information15
483     ,p_information16                => p_information16
484     ,p_information17                => p_information17
485     ,p_information18                => p_information18
486     ,p_information19                => p_information19
487     ,p_information20                => p_information20
488     ,p_comp_element_outcome_id      => l_comp_element_outcome_id
489     ,p_object_version_number        => p_object_version_number
490    );
491    end if;
492 
493   --
494   -- Convert API warning boolean parameter values to specific
495   -- messages and add them to Multiple Message List
496   --
497   --
498   -- Convert API non-warning boolean parameter values
499   --
500   --
501   -- Derive the API return status value based on whether
502   -- messages of any type exist in the Multiple Message List.
503   -- Also disable Multiple Message Detection.
504   --
505   p_return_status := hr_multi_message.get_return_status_disable;
506   hr_utility.set_location(' Leaving:' || l_proc,20);
507   --
508 exception
509   when hr_multi_message.error_message_exist then
510     --
511     -- Catch the Multiple Message List exception which
512     -- indicates API processing has been aborted because
513     -- at least one message exists in the list.
514     --
515     rollback to update_element_outcome_swi;
516     --
517     -- Reset IN OUT parameters and set OUT parameters
518     --
519     p_object_version_number        := l_object_version_number;
520     p_return_status := hr_multi_message.get_return_status_disable;
521     hr_utility.set_location(' Leaving:' || l_proc, 30);
522   when others then
523     --
524     -- When Multiple Message Detection is enabled catch
525     -- any Application specific or other unexpected
526     -- exceptions.  Adding appropriate details to the
527     -- Multiple Message List.  Otherwise re-raise the
528     -- error.
529     --
530     rollback to update_element_outcome_swi;
531     if hr_multi_message.unexpected_error_add(l_proc) then
532        hr_utility.set_location(' Leaving:' || l_proc,40);
533        raise;
534     end if;
535     --
536     -- Reset IN OUT and set OUT parameters
537     --
538     p_object_version_number        := l_object_version_number;
539     p_return_status := hr_multi_message.get_return_status_disable;
540     hr_utility.set_location(' Leaving:' || l_proc,50);
541 end update_element_outcome;
542 -- ----------------------------------------------------------------------------
543 -- |------------------------< delete_element_outcome >------------------------|
544 -- ----------------------------------------------------------------------------
545 PROCEDURE delete_element_outcome
546   (p_validate                     in     number
547   ,p_comp_element_outcome_id      in     number
548   ,p_object_version_number        in out nocopy number
549   ,p_return_status                   out nocopy varchar2
550   ) is
551   --
552   -- Variables for API Boolean parameters
553   l_validate                      boolean;
554   --
555   -- Variables for IN/OUT parameters
556   l_object_version_number         number;
557   --
558   -- Other variables
559   l_proc    varchar2(72) := g_package ||'delete_element_outcome';
560 Begin
561   hr_utility.set_location(' Entering:' || l_proc,10);
562   --
563   -- Issue a savepoint
564   --
565   savepoint delete_element_outcome_swi;
566   --
567   -- Initialise Multiple Message Detection
568   --
569   hr_multi_message.enable_message_list;
570   --
571   -- Remember IN OUT parameter IN values
572   --
573   l_object_version_number         := p_object_version_number;
574   --
575   -- Convert constant values to their corresponding boolean value
576   --
577   l_validate :=
578     hr_api.constant_to_boolean
579       (p_constant_value => p_validate);
580   --
581   -- Register Surrogate ID or user key values
582   --
583   --
584   -- Call API
585   --
586   hr_comp_element_outcome_api.delete_element_outcome
587     (p_validate                     => l_validate
588     ,p_comp_element_outcome_id      => p_comp_element_outcome_id
589     ,p_object_version_number        => p_object_version_number
590     );
591   --
592   -- Convert API warning boolean parameter values to specific
593   -- messages and add them to Multiple Message List
594   --
595   --
596   -- Convert API non-warning boolean parameter values
597   --
598   --
599   -- Derive the API return status value based on whether
600   -- messages of any type exist in the Multiple Message List.
601   -- Also disable Multiple Message Detection.
602   --
603   p_return_status := hr_multi_message.get_return_status_disable;
604   hr_utility.set_location(' Leaving:' || l_proc,20);
605   --
606 exception
607   when hr_multi_message.error_message_exist then
608     --
609     -- Catch the Multiple Message List exception which
610     -- indicates API processing has been aborted because
611     -- at least one message exists in the list.
612     --
613     rollback to delete_element_outcome_swi;
614     --
615     -- Reset IN OUT parameters and set OUT parameters
616     --
617     p_object_version_number        := l_object_version_number;
618     p_return_status := hr_multi_message.get_return_status_disable;
619     hr_utility.set_location(' Leaving:' || l_proc, 30);
620   when others then
621     --
622     -- When Multiple Message Detection is enabled catch
623     -- any Application specific or other unexpected
624     -- exceptions.  Adding appropriate details to the
625     -- Multiple Message List.  Otherwise re-raise the
626     -- error.
627     --
628     rollback to delete_element_outcome_swi;
629     if hr_multi_message.unexpected_error_add(l_proc) then
630        hr_utility.set_location(' Leaving:' || l_proc,40);
631        raise;
632     end if;
633     --
634     -- Reset IN OUT and set OUT parameters
635     --
636     p_object_version_number        := l_object_version_number;
637     p_return_status := hr_multi_message.get_return_status_disable;
638     hr_utility.set_location(' Leaving:' || l_proc,50);
639 end delete_element_outcome;
640 
641 Procedure process_api
642 ( p_document            in         CLOB
643  ,p_return_status       out nocopy VARCHAR2
644  ,p_validate            in         number    default hr_api.g_false_num
645  ,p_effective_date      in         date      default null
646 )
647 IS
648    l_postState VARCHAR2(2);
649    l_return_status VARCHAR2(1);
650    l_commitElement xmldom.DOMElement;
651    l_object_version_number number;
652    l_parser xmlparser.Parser;
653    l_CommitNode xmldom.DOMNode;
654    l_proc    varchar2(72) := g_package || 'process_api';
655 
656 BEGIN
657 
658    hr_utility.set_location(' Entering:' || l_proc,10);
659    hr_utility.set_location(' CLOB --> xmldom.DOMNode:' || l_proc,15);
660 
661    l_parser      := xmlparser.newParser;
662    xmlparser.ParseCLOB(l_parser,p_document);
663    l_CommitNode  := xmldom.makeNode(xmldom.getDocumentElement(xmlparser.getDocument(l_parser)));
664 
665    hr_utility.set_location('Extracting the PostState:' || l_proc,20);
666 
667    l_commitElement := xmldom.makeElement(l_CommitNode);
668    l_postState := xmldom.getAttribute(l_commitElement, 'PS');
669    l_object_version_number := hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectVersionNumber');
670 
671    if l_postState = '0' then
672 
673 	 create_element_outcome
674 	(p_validate                     => p_validate
675 	,p_effective_date               => p_effective_date
676 	,p_competence_element_id        => hr_transaction_swi.getNumberValue(l_CommitNode,'CompetenceElementId',null)
677 	,p_outcome_id                   => hr_transaction_swi.getNumberValue(l_CommitNode,'OutcomeId',null)
678 	,p_date_from                    => hr_transaction_swi.getDateValue(l_CommitNode,'DateFrom',null)
679 	,p_date_to                      => hr_transaction_swi.getDateValue(l_CommitNode,'DateTo',null)
680 	,p_attribute_category           => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory',null)
681 	,p_attribute1                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1',null)
682 	,p_attribute2                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2',null)
683 	,p_attribute3                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3',null)
684 	,p_attribute4                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4',null)
685 	,p_attribute5                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5',null)
686 	,p_attribute6                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6',null)
687 	,p_attribute7                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7',null)
688 	,p_attribute8                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8',null)
689 	,p_attribute9                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9',null)
690 	,p_attribute10                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10',null)
691 	,p_attribute11                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11',null)
692 	,p_attribute12                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12',null)
693 	,p_attribute13                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13',null)
694 	,p_attribute14                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14',null)
695 	,p_attribute15                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15',null)
696 	,p_attribute16                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16',null)
697 	,p_attribute17                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17',null)
698 	,p_attribute18                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18',null)
699 	,p_attribute19                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19',null)
700 	,p_attribute20                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20',null)
701 	,p_information_category         => hr_transaction_swi.getVarchar2Value(l_CommitNode,'InformationCategory',null)
702 	,p_information1                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information1',null)
703 	,p_information2                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information2',null)
704 	,p_information3                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information3',null)
705 	,p_information4                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information4',null)
706 	,p_information5                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information5',null)
707 	,p_information6                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information6',null)
708 	,p_information7                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information7',null)
709 	,p_information8                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information8',null)
710 	,p_information9                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information9',null)
711 	,p_information10                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information10',null)
712 	,p_information11                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information11',null)
713 	,p_information12                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information12',null)
714 	,p_information13                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information13',null)
715 	,p_information14                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information14',null)
716 	,p_information15                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information15',null)
717 	,p_information16                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information16',null)
718 	,p_information17                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information17',null)
719 	,p_information18                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information18',null)
720 	,p_information19                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information19',null)
721 	,p_information20                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information20',null)
722 	,p_comp_element_outcome_id      => hr_transaction_swi.getNumberValue(l_CommitNode,'CompElementOutcomeId',null)
723 	,p_object_version_number        => l_object_version_number
724 	,p_return_status                => l_return_status
725 	);
726    elsif l_postState = '2' then
727 	  update_element_outcome
728 	  (p_validate                     =>     p_validate
729 	  ,p_effective_date               =>     p_effective_date
730 	  ,p_comp_element_outcome_id      =>     hr_transaction_swi.getNumberValue(l_CommitNode,'CompElementOutcomeId')
731 	  ,p_object_version_number        =>     l_object_version_number
732 	  ,p_competence_element_id        =>     hr_transaction_swi.getNumberValue(l_CommitNode,'CompetenceElementId')
733 	  ,p_outcome_id                   =>     hr_transaction_swi.getNumberValue(l_CommitNode,'OutcomeId')
734 	  ,p_date_from                    =>     hr_transaction_swi.getDateValue(l_CommitNode,'DateFrom')
735 	  ,p_date_to                      =>     hr_transaction_swi.getDateValue(l_CommitNode,'DateTo')
736 	  ,p_attribute_category           =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory')
737 	  ,p_attribute1                   =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1')
738 	  ,p_attribute2                   =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2')
739 	  ,p_attribute3                   =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3')
740 	  ,p_attribute4                   =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4')
741 	  ,p_attribute5                   =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5')
742 	  ,p_attribute6                   =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6')
743 	  ,p_attribute7                   =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7')
744 	  ,p_attribute8                   =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8')
745 	  ,p_attribute9                   =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9')
746 	  ,p_attribute10                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10')
747 	  ,p_attribute11                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11')
748 	  ,p_attribute12                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12')
749 	  ,p_attribute13                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13')
750 	  ,p_attribute14                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14')
751 	  ,p_attribute15                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15')
752 	  ,p_attribute16                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16')
753 	  ,p_attribute17                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17')
754 	  ,p_attribute18                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18')
755 	  ,p_attribute19                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19')
756 	  ,p_attribute20                  =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20')
757 	  ,p_information_category         =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'InformationCategory')
758 	  ,p_information1                 =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information1')
759 	  ,p_information2                 =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information2')
760 	  ,p_information3                 =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information3')
761 	  ,p_information4                 =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information4')
762 	  ,p_information5                 =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information5')
763 	  ,p_information6                 =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information6')
764 	  ,p_information7                 =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information7')
765 	  ,p_information8                 =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information8')
766 	  ,p_information9                 =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information9')
767 	  ,p_information10                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information10')
768 	  ,p_information11                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information11')
769 	  ,p_information12                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information12')
770 	  ,p_information13                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information13')
771 	  ,p_information14                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information14')
772 	  ,p_information15                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information15')
773 	  ,p_information16                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information16')
774 	  ,p_information17                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information17')
775 	  ,p_information18                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information18')
776 	  ,p_information19                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information19')
777 	  ,p_information20                =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'Information20')
778 	  ,p_return_status                =>     l_return_status
779 --	  ,p_datetrack_update_mode        =>     hr_transaction_swi.getVarchar2Value(l_CommitNode,'DatetrackUpdate',hr_api.g_correction)
780 	  );
781 
782    elsif l_postState = '3' then
783 
784     delete_element_outcome
785     (p_validate                     => p_validate
786     ,p_comp_element_outcome_id      => hr_transaction_swi.getNumberValue(l_CommitNode,'CompElementOutcomeId')
787     ,p_object_version_number        => l_object_version_number
788     ,p_return_status                => l_return_status
789     );
790 
791    end if;
792 
793    p_return_status := l_return_status;
794 
795    hr_utility.set_location('Exiting:' || l_proc,40);
796 
797 
798 END process_api;
799 
800 end hr_comp_element_outcome_swi;