DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_RATE_SWI

Source


1 Package Body hr_rate_swi As
2 /* $Header: pypyrswi.pkb 115.0 2004/01/05 05:59 lsilveir noship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'hr_rate_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |------------------------< create_assignment_rate >------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_assignment_rate
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_effective_date               in     date
14   ,p_business_group_id            in     number
15   ,p_name                         in     varchar2
16   ,p_rate_basis                   in     varchar2
17   ,p_asg_rate_type                in     varchar2  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_object_version_number           out nocopy number
40   ,p_rate_id                         out nocopy number
41   ,p_return_status                   out nocopy varchar2
42   ) is
43   --
44   -- Variables for API Boolean parameters
45   l_validate                      boolean;
46   --
47   -- Variables for IN/OUT parameters
48   --
49   -- Other variables
50   l_proc    varchar2(72) := g_package ||'create_assignment_rate';
51 Begin
52   hr_utility.set_location(' Entering:' || l_proc,10);
53   --
54   -- Issue a savepoint
55   --
56   savepoint create_assignment_rate_swi;
57   --
58   -- Initialise Multiple Message Detection
59   --
60   hr_multi_message.enable_message_list;
61   --
62   -- Remember IN OUT parameter IN values
63   --
64   --
65   -- Convert constant values to their corresponding boolean value
66   --
67   l_validate :=
68     hr_api.constant_to_boolean
69       (p_constant_value => p_validate);
70   --
71   -- Register Surrogate ID or user key values
72   --
73   --
74   -- Call API
75   --
76   hr_rate_api.create_assignment_rate
77     (p_validate                     => l_validate
78     ,p_effective_date               => p_effective_date
79     ,p_business_group_id            => p_business_group_id
80     ,p_name                         => p_name
81     ,p_rate_basis                   => p_rate_basis
82     ,p_asg_rate_type                => p_asg_rate_type
83     ,p_attribute_category           => p_attribute_category
84     ,p_attribute1                   => p_attribute1
85     ,p_attribute2                   => p_attribute2
86     ,p_attribute3                   => p_attribute3
87     ,p_attribute4                   => p_attribute4
88     ,p_attribute5                   => p_attribute5
89     ,p_attribute6                   => p_attribute6
90     ,p_attribute7                   => p_attribute7
91     ,p_attribute8                   => p_attribute8
92     ,p_attribute9                   => p_attribute9
93     ,p_attribute10                  => p_attribute10
94     ,p_attribute11                  => p_attribute11
95     ,p_attribute12                  => p_attribute12
96     ,p_attribute13                  => p_attribute13
97     ,p_attribute14                  => p_attribute14
98     ,p_attribute15                  => p_attribute15
99     ,p_attribute16                  => p_attribute16
100     ,p_attribute17                  => p_attribute17
101     ,p_attribute18                  => p_attribute18
102     ,p_attribute19                  => p_attribute19
103     ,p_attribute20                  => p_attribute20
104     ,p_object_version_number        => p_object_version_number
105     ,p_rate_id                      => p_rate_id
106     );
107   --
108   -- Convert API warning boolean parameter values to specific
109   -- messages and add them to Multiple Message List
110   --
111   --
112   -- Convert API non-warning boolean parameter values
113   --
114   --
115   -- Derive the API return status value based on whether
116   -- messages of any type exist in the Multiple Message List.
117   -- Also disable Multiple Message Detection.
118   --
119   p_return_status := hr_multi_message.get_return_status_disable;
120   hr_utility.set_location(' Leaving:' || l_proc,20);
121   --
122 exception
123   when hr_multi_message.error_message_exist then
124     --
125     -- Catch the Multiple Message List exception which
126     -- indicates API processing has been aborted because
127     -- at least one message exists in the list.
128     --
129     rollback to create_assignment_rate_swi;
130     --
131     -- Reset IN OUT parameters and set OUT parameters
132     --
133     p_object_version_number        := null;
134     p_rate_id                      := null;
135     p_return_status := hr_multi_message.get_return_status_disable;
136     hr_utility.set_location(' Leaving:' || l_proc, 30);
137   when others then
138     --
139     -- When Multiple Message Detection is enabled catch
140     -- any Application specific or other unexpected
141     -- exceptions.  Adding appropriate details to the
142     -- Multiple Message List.  Otherwise re-raise the
143     -- error.
144     --
145     rollback to create_assignment_rate_swi;
146     if hr_multi_message.unexpected_error_add(l_proc) then
147        hr_utility.set_location(' Leaving:' || l_proc,40);
148        raise;
149     end if;
150     --
151     -- Reset IN OUT and set OUT parameters
152     --
153     p_object_version_number        := null;
154     p_rate_id                      := null;
155     p_return_status := hr_multi_message.get_return_status_disable;
156     hr_utility.set_location(' Leaving:' || l_proc,50);
157 end create_assignment_rate;
158 -- ----------------------------------------------------------------------------
159 -- |------------------------------< create_rate >-----------------------------|
160 -- ----------------------------------------------------------------------------
161 PROCEDURE create_rate
162   (p_validate                     in     number    default hr_api.g_false_num
163   ,p_effective_date               in     date
164   ,p_business_group_id            in     number
165   ,p_name                         in     varchar2
166   ,p_rate_type                    in     varchar2
167   ,p_rate_uom                     in     varchar2
168   ,p_parent_spine_id              in     number    default null
169   ,p_comments                     in     varchar2  default null
170   ,p_rate_basis                   in     varchar2  default null
171   ,p_asg_rate_type                in     varchar2  default null
172   ,p_attribute_category           in     varchar2  default null
173   ,p_attribute1                   in     varchar2  default null
174   ,p_attribute2                   in     varchar2  default null
175   ,p_attribute3                   in     varchar2  default null
176   ,p_attribute4                   in     varchar2  default null
177   ,p_attribute5                   in     varchar2  default null
178   ,p_attribute6                   in     varchar2  default null
179   ,p_attribute7                   in     varchar2  default null
180   ,p_attribute8                   in     varchar2  default null
181   ,p_attribute9                   in     varchar2  default null
182   ,p_attribute10                  in     varchar2  default null
183   ,p_attribute11                  in     varchar2  default null
184   ,p_attribute12                  in     varchar2  default null
185   ,p_attribute13                  in     varchar2  default null
186   ,p_attribute14                  in     varchar2  default null
187   ,p_attribute15                  in     varchar2  default null
188   ,p_attribute16                  in     varchar2  default null
189   ,p_attribute17                  in     varchar2  default null
190   ,p_attribute18                  in     varchar2  default null
191   ,p_attribute19                  in     varchar2  default null
192   ,p_attribute20                  in     varchar2  default null
193   ,p_object_version_number           out nocopy number
194   ,p_rate_id                      in     number
195   ,p_return_status                   out nocopy varchar2
196   ) is
197   --
198   -- Variables for API Boolean parameters
199   l_validate                      boolean;
200   --
201   -- Variables for IN/OUT parameters
202   --
203   -- Other variables
204   l_rate_id                      number;
205   l_proc    varchar2(72) := g_package ||'create_rate';
206 Begin
207   hr_utility.set_location(' Entering:' || l_proc,10);
208   --
209   -- Issue a savepoint
210   --
211   savepoint create_rate_swi;
212   --
213   -- Initialise Multiple Message Detection
214   --
215   hr_multi_message.enable_message_list;
216   --
217   -- Remember IN OUT parameter IN values
218   --
219   --
220   -- Convert constant values to their corresponding boolean value
221   --
222   l_validate :=
223     hr_api.constant_to_boolean
224       (p_constant_value => p_validate);
225   --
226   -- Register Surrogate ID or user key values
227   --
228   pay_pyr_ins.set_base_key_value
229     (p_rate_id => p_rate_id
230     );
231   --
232   -- Call API
233   --
234   hr_rate_api.create_rate
235     (p_validate                     => l_validate
236     ,p_effective_date               => p_effective_date
237     ,p_business_group_id            => p_business_group_id
238     ,p_name                         => p_name
239     ,p_rate_type                    => p_rate_type
240     ,p_rate_uom                     => p_rate_uom
241     ,p_parent_spine_id              => p_parent_spine_id
242     ,p_comments                     => p_comments
243     ,p_rate_basis                   => p_rate_basis
244     ,p_asg_rate_type                => p_asg_rate_type
245     ,p_attribute_category           => p_attribute_category
246     ,p_attribute1                   => p_attribute1
247     ,p_attribute2                   => p_attribute2
248     ,p_attribute3                   => p_attribute3
249     ,p_attribute4                   => p_attribute4
250     ,p_attribute5                   => p_attribute5
251     ,p_attribute6                   => p_attribute6
252     ,p_attribute7                   => p_attribute7
253     ,p_attribute8                   => p_attribute8
254     ,p_attribute9                   => p_attribute9
255     ,p_attribute10                  => p_attribute10
256     ,p_attribute11                  => p_attribute11
257     ,p_attribute12                  => p_attribute12
258     ,p_attribute13                  => p_attribute13
259     ,p_attribute14                  => p_attribute14
260     ,p_attribute15                  => p_attribute15
261     ,p_attribute16                  => p_attribute16
262     ,p_attribute17                  => p_attribute17
263     ,p_attribute18                  => p_attribute18
264     ,p_attribute19                  => p_attribute19
265     ,p_attribute20                  => p_attribute20
266     ,p_object_version_number        => p_object_version_number
267     ,p_rate_id                      => l_rate_id
268     );
269   --
270   -- Convert API warning boolean parameter values to specific
271   -- messages and add them to Multiple Message List
272   --
273   --
274   -- Convert API non-warning boolean parameter values
275   --
276   --
277   -- Derive the API return status value based on whether
278   -- messages of any type exist in the Multiple Message List.
279   -- Also disable Multiple Message Detection.
280   --
281   p_return_status := hr_multi_message.get_return_status_disable;
282   hr_utility.set_location(' Leaving:' || l_proc,20);
283   --
284 exception
285   when hr_multi_message.error_message_exist then
286     --
287     -- Catch the Multiple Message List exception which
288     -- indicates API processing has been aborted because
289     -- at least one message exists in the list.
290     --
291     rollback to create_rate_swi;
292     --
293     -- Reset IN OUT parameters and set OUT parameters
294     --
295     p_object_version_number        := null;
296     p_return_status := hr_multi_message.get_return_status_disable;
297     hr_utility.set_location(' Leaving:' || l_proc, 30);
298   when others then
299     --
300     -- When Multiple Message Detection is enabled catch
301     -- any Application specific or other unexpected
302     -- exceptions.  Adding appropriate details to the
303     -- Multiple Message List.  Otherwise re-raise the
304     -- error.
305     --
306     rollback to create_rate_swi;
307     if hr_multi_message.unexpected_error_add(l_proc) then
308        hr_utility.set_location(' Leaving:' || l_proc,40);
309        raise;
310     end if;
311     --
312     -- Reset IN OUT and set OUT parameters
313     --
314     p_object_version_number        := null;
315     p_return_status := hr_multi_message.get_return_status_disable;
316     hr_utility.set_location(' Leaving:' || l_proc,50);
317 end create_rate;
318 -- ----------------------------------------------------------------------------
319 -- |------------------------------< delete_rate >-----------------------------|
320 -- ----------------------------------------------------------------------------
321 PROCEDURE delete_rate
322   (p_validate                     in     number    default hr_api.g_false_num
323   ,p_effective_date               in     date
324   ,p_rate_id                      in     number
325   ,p_rate_type                    in     varchar2
326   ,p_object_version_number        in out nocopy number
327   ,p_return_status                   out nocopy varchar2
328   ) is
329   --
330   -- Variables for API Boolean parameters
331   l_validate                      boolean;
332   --
333   -- Variables for IN/OUT parameters
334   l_object_version_number         number;
335   --
336   -- Other variables
337   l_proc    varchar2(72) := g_package ||'delete_rate';
338 Begin
339   hr_utility.set_location(' Entering:' || l_proc,10);
340   --
341   -- Issue a savepoint
342   --
343   savepoint delete_rate_swi;
344   --
345   -- Initialise Multiple Message Detection
346   --
347   hr_multi_message.enable_message_list;
348   --
349   -- Remember IN OUT parameter IN values
350   --
351   l_object_version_number         := p_object_version_number;
352   --
353   -- Convert constant values to their corresponding boolean value
354   --
355   l_validate :=
356     hr_api.constant_to_boolean
357       (p_constant_value => p_validate);
358   --
359   -- Register Surrogate ID or user key values
360   --
361   --
362   -- Call API
363   --
364   hr_rate_api.delete_rate
365     (p_validate                     => l_validate
366     ,p_effective_date               => p_effective_date
367     ,p_rate_id                      => p_rate_id
368     ,p_rate_type                    => p_rate_type
369     ,p_object_version_number        => p_object_version_number
370     );
371   --
372   -- Convert API warning boolean parameter values to specific
373   -- messages and add them to Multiple Message List
374   --
375   --
376   -- Convert API non-warning boolean parameter values
377   --
378   --
379   -- Derive the API return status value based on whether
380   -- messages of any type exist in the Multiple Message List.
381   -- Also disable Multiple Message Detection.
382   --
383   p_return_status := hr_multi_message.get_return_status_disable;
384   hr_utility.set_location(' Leaving:' || l_proc,20);
385   --
386 exception
387   when hr_multi_message.error_message_exist then
388     --
389     -- Catch the Multiple Message List exception which
390     -- indicates API processing has been aborted because
391     -- at least one message exists in the list.
392     --
393     rollback to delete_rate_swi;
394     --
395     -- Reset IN OUT parameters and set OUT parameters
396     --
397     p_object_version_number        := l_object_version_number;
398     p_return_status := hr_multi_message.get_return_status_disable;
399     hr_utility.set_location(' Leaving:' || l_proc, 30);
400   when others then
401     --
402     -- When Multiple Message Detection is enabled catch
403     -- any Application specific or other unexpected
404     -- exceptions.  Adding appropriate details to the
405     -- Multiple Message List.  Otherwise re-raise the
406     -- error.
407     --
408     rollback to delete_rate_swi;
409     if hr_multi_message.unexpected_error_add(l_proc) then
410        hr_utility.set_location(' Leaving:' || l_proc,40);
411        raise;
412     end if;
413     --
414     -- Reset IN OUT and set OUT parameters
415     --
416     p_object_version_number        := l_object_version_number;
417     p_return_status := hr_multi_message.get_return_status_disable;
418     hr_utility.set_location(' Leaving:' || l_proc,50);
419 end delete_rate;
420 -- ----------------------------------------------------------------------------
421 -- |------------------------< update_assignment_rate >------------------------|
422 -- ----------------------------------------------------------------------------
423 PROCEDURE update_assignment_rate
424   (p_validate                     in     number    default hr_api.g_false_num
425   ,p_rate_id                      in     number
426   ,p_object_version_number        in out nocopy number
427   ,p_effective_date               in     date
428   ,p_name                         in     varchar2  default hr_api.g_varchar2
429   ,p_rate_basis                   in     varchar2  default hr_api.g_varchar2
430   ,p_asg_rate_type                in     varchar2  default hr_api.g_varchar2
431   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
432   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
433   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
434   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
435   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
436   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
437   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
438   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
439   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
440   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
441   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
442   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
443   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
444   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
445   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
446   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
447   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
448   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
449   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
450   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
451   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
452   ,p_return_status                   out nocopy varchar2
453   ) is
454   --
455   -- Variables for API Boolean parameters
456   l_validate                      boolean;
457   --
458   -- Variables for IN/OUT parameters
459   l_object_version_number         number;
460   --
461   -- Other variables
462   l_proc    varchar2(72) := g_package ||'update_assignment_rate';
463 Begin
464   hr_utility.set_location(' Entering:' || l_proc,10);
465   --
466   -- Issue a savepoint
467   --
468   savepoint update_assignment_rate_swi;
469   --
470   -- Initialise Multiple Message Detection
471   --
472   hr_multi_message.enable_message_list;
473   --
474   -- Remember IN OUT parameter IN values
475   --
476   l_object_version_number         := p_object_version_number;
477   --
478   -- Convert constant values to their corresponding boolean value
479   --
480   l_validate :=
481     hr_api.constant_to_boolean
482       (p_constant_value => p_validate);
483   --
484   -- Register Surrogate ID or user key values
485   --
486   --
487   -- Call API
488   --
489   hr_rate_api.update_assignment_rate
490     (p_validate                     => l_validate
491     ,p_rate_id                      => p_rate_id
492     ,p_object_version_number        => p_object_version_number
493     ,p_effective_date               => p_effective_date
494     ,p_name                         => p_name
495     ,p_rate_basis                   => p_rate_basis
496     ,p_asg_rate_type                => p_asg_rate_type
497     ,p_attribute_category           => p_attribute_category
498     ,p_attribute1                   => p_attribute1
499     ,p_attribute2                   => p_attribute2
500     ,p_attribute3                   => p_attribute3
501     ,p_attribute4                   => p_attribute4
502     ,p_attribute5                   => p_attribute5
503     ,p_attribute6                   => p_attribute6
504     ,p_attribute7                   => p_attribute7
505     ,p_attribute8                   => p_attribute8
506     ,p_attribute9                   => p_attribute9
507     ,p_attribute10                  => p_attribute10
508     ,p_attribute11                  => p_attribute11
509     ,p_attribute12                  => p_attribute12
510     ,p_attribute13                  => p_attribute13
511     ,p_attribute14                  => p_attribute14
512     ,p_attribute15                  => p_attribute15
513     ,p_attribute16                  => p_attribute16
514     ,p_attribute17                  => p_attribute17
515     ,p_attribute18                  => p_attribute18
516     ,p_attribute19                  => p_attribute19
517     ,p_attribute20                  => p_attribute20
518     );
519   --
520   -- Convert API warning boolean parameter values to specific
521   -- messages and add them to Multiple Message List
522   --
523   --
524   -- Convert API non-warning boolean parameter values
525   --
526   --
527   -- Derive the API return status value based on whether
528   -- messages of any type exist in the Multiple Message List.
529   -- Also disable Multiple Message Detection.
530   --
531   p_return_status := hr_multi_message.get_return_status_disable;
532   hr_utility.set_location(' Leaving:' || l_proc,20);
533   --
534 exception
535   when hr_multi_message.error_message_exist then
536     --
537     -- Catch the Multiple Message List exception which
538     -- indicates API processing has been aborted because
539     -- at least one message exists in the list.
540     --
541     rollback to update_assignment_rate_swi;
542     --
543     -- Reset IN OUT parameters and set OUT parameters
544     --
545     p_object_version_number        := l_object_version_number;
546     p_return_status := hr_multi_message.get_return_status_disable;
547     hr_utility.set_location(' Leaving:' || l_proc, 30);
548   when others then
549     --
550     -- When Multiple Message Detection is enabled catch
551     -- any Application specific or other unexpected
552     -- exceptions.  Adding appropriate details to the
553     -- Multiple Message List.  Otherwise re-raise the
554     -- error.
555     --
556     rollback to update_assignment_rate_swi;
557     if hr_multi_message.unexpected_error_add(l_proc) then
558        hr_utility.set_location(' Leaving:' || l_proc,40);
559        raise;
560     end if;
561     --
562     -- Reset IN OUT and set OUT parameters
563     --
564     p_object_version_number        := l_object_version_number;
565     p_return_status := hr_multi_message.get_return_status_disable;
566     hr_utility.set_location(' Leaving:' || l_proc,50);
567 end update_assignment_rate;
568 -- ----------------------------------------------------------------------------
569 -- |------------------------------< update_rate >-----------------------------|
570 -- ----------------------------------------------------------------------------
571 PROCEDURE update_rate
572   (p_validate                     in     number    default hr_api.g_false_num
573   ,p_rate_id                      in     number
574   ,p_object_version_number        in out nocopy number
575   ,p_effective_date               in     date
576   ,p_name                         in     varchar2  default hr_api.g_varchar2
577   ,p_rate_uom                     in     varchar2  default hr_api.g_varchar2
578   ,p_parent_spine_id              in     number    default hr_api.g_number
579   ,p_comments                     in     varchar2  default hr_api.g_varchar2
580   ,p_rate_basis                   in     varchar2  default hr_api.g_varchar2
581   ,p_asg_rate_type                in     varchar2  default hr_api.g_varchar2
582   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
583   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
584   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
585   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
586   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
587   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
588   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
589   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
590   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
591   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
592   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
593   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
594   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
595   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
596   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
597   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
598   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
599   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
600   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
601   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
602   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
603   ,p_return_status                   out nocopy varchar2
604   ) is
605   --
606   -- Variables for API Boolean parameters
607   l_validate                      boolean;
608   --
609   -- Variables for IN/OUT parameters
610   l_object_version_number         number;
611   --
612   -- Other variables
613   l_proc    varchar2(72) := g_package ||'update_rate';
614 Begin
615   hr_utility.set_location(' Entering:' || l_proc,10);
616   --
617   -- Issue a savepoint
618   --
619   savepoint update_rate_swi;
620   --
621   -- Initialise Multiple Message Detection
622   --
623   hr_multi_message.enable_message_list;
624   --
625   -- Remember IN OUT parameter IN values
626   --
627   l_object_version_number         := p_object_version_number;
628   --
629   -- Convert constant values to their corresponding boolean value
630   --
631   l_validate :=
632     hr_api.constant_to_boolean
633       (p_constant_value => p_validate);
634   --
635   -- Register Surrogate ID or user key values
636   --
637   --
638   -- Call API
639   --
640   hr_rate_api.update_rate
641     (p_validate                     => l_validate
642     ,p_rate_id                      => p_rate_id
643     ,p_object_version_number        => p_object_version_number
644     ,p_effective_date               => p_effective_date
645     ,p_name                         => p_name
646     ,p_rate_uom                     => p_rate_uom
647     ,p_parent_spine_id              => p_parent_spine_id
648     ,p_comments                     => p_comments
649     ,p_rate_basis                   => p_rate_basis
650     ,p_asg_rate_type                => p_asg_rate_type
651     ,p_attribute_category           => p_attribute_category
652     ,p_attribute1                   => p_attribute1
653     ,p_attribute2                   => p_attribute2
654     ,p_attribute3                   => p_attribute3
655     ,p_attribute4                   => p_attribute4
656     ,p_attribute5                   => p_attribute5
657     ,p_attribute6                   => p_attribute6
658     ,p_attribute7                   => p_attribute7
659     ,p_attribute8                   => p_attribute8
660     ,p_attribute9                   => p_attribute9
661     ,p_attribute10                  => p_attribute10
662     ,p_attribute11                  => p_attribute11
663     ,p_attribute12                  => p_attribute12
664     ,p_attribute13                  => p_attribute13
665     ,p_attribute14                  => p_attribute14
666     ,p_attribute15                  => p_attribute15
667     ,p_attribute16                  => p_attribute16
668     ,p_attribute17                  => p_attribute17
669     ,p_attribute18                  => p_attribute18
670     ,p_attribute19                  => p_attribute19
671     ,p_attribute20                  => p_attribute20
672     );
673   --
674   -- Convert API warning boolean parameter values to specific
675   -- messages and add them to Multiple Message List
676   --
677   --
678   -- Convert API non-warning boolean parameter values
679   --
680   --
681   -- Derive the API return status value based on whether
682   -- messages of any type exist in the Multiple Message List.
683   -- Also disable Multiple Message Detection.
684   --
685   p_return_status := hr_multi_message.get_return_status_disable;
686   hr_utility.set_location(' Leaving:' || l_proc,20);
687   --
688 exception
689   when hr_multi_message.error_message_exist then
690     --
691     -- Catch the Multiple Message List exception which
692     -- indicates API processing has been aborted because
693     -- at least one message exists in the list.
694     --
695     rollback to update_rate_swi;
696     --
697     -- Reset IN OUT parameters and set OUT parameters
698     --
699     p_object_version_number        := l_object_version_number;
700     p_return_status := hr_multi_message.get_return_status_disable;
701     hr_utility.set_location(' Leaving:' || l_proc, 30);
702   when others then
703     --
704     -- When Multiple Message Detection is enabled catch
705     -- any Application specific or other unexpected
706     -- exceptions.  Adding appropriate details to the
707     -- Multiple Message List.  Otherwise re-raise the
708     -- error.
709     --
710     rollback to update_rate_swi;
711     if hr_multi_message.unexpected_error_add(l_proc) then
712        hr_utility.set_location(' Leaving:' || l_proc,40);
713        raise;
714     end if;
715     --
716     -- Reset IN OUT and set OUT parameters
717     --
718     p_object_version_number        := l_object_version_number;
719     p_return_status := hr_multi_message.get_return_status_disable;
720     hr_utility.set_location(' Leaving:' || l_proc,50);
721 end update_rate;
722 end hr_rate_swi;