DBA Data[Home] [Help]

PACKAGE BODY: APPS.AME_RULE_SWI

Source


1 Package Body ame_rule_swi As
2 /* $Header: amrulswi.pkb 120.3 2005/10/25 02:49 tkolla noship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'ame_rule_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |----------------------------< create_ame_rule >---------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_ame_rule
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_rule_key                     in     varchar2
14   ,p_description                  in     varchar2
15   ,p_rule_type                    in     varchar2
16   ,p_item_class_id                in     number    default null
17   ,p_condition_id                 in     number    default null
18   ,p_action_id                    in     number    default null
19   ,p_application_id               in     number    default null
20   ,p_priority                     in     number    default null
21   ,p_approver_category            in     varchar2  default null
22   ,p_rul_start_date               in out nocopy date
23   ,p_rul_end_date                 in out nocopy date
24   ,p_rule_id                      in     number
25   ,p_rul_object_version_number       out nocopy number
26   ,p_rlu_object_version_number       out nocopy number
27   ,p_rlu_start_date                  out nocopy date
28   ,p_rlu_end_date                    out nocopy date
29   ,p_cnu_object_version_number       out nocopy number
30   ,p_cnu_start_date                  out nocopy date
31   ,p_cnu_end_date                    out nocopy date
32   ,p_acu_object_version_number       out nocopy number
33   ,p_acu_start_date                  out nocopy date
34   ,p_acu_end_date                    out nocopy date
35   ,p_return_status                   out nocopy varchar2
36   ) is
37   --
38   -- Variables for API Boolean parameters
39   l_validate                      boolean;
40   --
41   -- Variables for IN/OUT parameters
42   l_rul_start_date                date;
43   l_rul_end_date                  date;
44   --
45   -- Other variables
46   l_rule_id                      number;
47   l_proc    varchar2(72) := g_package ||'create_ame_rule';
48 Begin
49   hr_utility.set_location(' Entering:' || l_proc,10);
50   --
51   -- Issue a savepoint
52   --
53   savepoint create_ame_rule_swi;
54   --
55   -- Initialise Multiple Message Detection
56   --
57   hr_multi_message.enable_message_list;
58   --
59   -- Remember IN OUT parameter IN values
60   --
61   l_rul_start_date                := p_rul_start_date;
62   l_rul_end_date                  := p_rul_end_date;
63   --
64   -- Convert constant values to their corresponding boolean value
65   --
66   l_validate :=
67     hr_api.constant_to_boolean
68       (p_constant_value => p_validate);
69   --
70   -- Register Surrogate ID or user key values
71   --
72   ame_rul_ins.set_base_key_value
73     (p_rule_id => p_rule_id
74     );
75   --
76   -- Call API
77   --
78   ame_rule_api.create_ame_rule
79     (p_validate                     => l_validate
80     ,p_rule_key                     => p_rule_key
81     ,p_description                  => p_description
82     ,p_rule_type                    => p_rule_type
83     ,p_item_class_id                => p_item_class_id
84     ,p_condition_id                 => p_condition_id
85     ,p_action_id                    => p_action_id
86     ,p_application_id               => p_application_id
87     ,p_priority                     => p_priority
88     ,p_approver_category            => p_approver_category
89     ,p_rul_start_date               => l_rul_start_date
90     ,p_rul_end_date                 => l_rul_end_date
91     ,p_rule_id                      => l_rule_id
92     ,p_rul_object_version_number    => p_rul_object_version_number
93     ,p_rlu_object_version_number    => p_rlu_object_version_number
94     ,p_rlu_start_date               => p_rlu_start_date
95     ,p_rlu_end_date                 => p_rlu_end_date
96     ,p_cnu_object_version_number    => p_cnu_object_version_number
97     ,p_cnu_start_date               => p_cnu_start_date
98     ,p_cnu_end_date                 => p_cnu_end_date
99     ,p_acu_object_version_number    => p_acu_object_version_number
100     ,p_acu_start_date               => p_acu_start_date
101     ,p_acu_end_date                 => p_acu_end_date
102     );
103   --
104   -- Convert API warning boolean parameter values to specific
105   -- messages and add them to Multiple Message List
106   --
107   --
108   -- Convert API non-warning boolean parameter values
109   --
110   --
111   -- Derive the API return status value based on whether
112   -- messages of any type exist in the Multiple Message List.
113   -- Also disable Multiple Message Detection.
114   --
115   p_return_status := hr_multi_message.get_return_status_disable;
116   hr_utility.set_location(' Leaving:' || l_proc,20);
117   --
118 exception
119   when hr_multi_message.error_message_exist then
120     --
121     -- Catch the Multiple Message List exception which
122     -- indicates API processing has been aborted because
123     -- at least one message exists in the list.
124     --
125     rollback to create_ame_rule_swi;
126     --
127     -- Reset IN OUT parameters and set OUT parameters
128     --
129     p_rul_start_date               := l_rul_start_date;
130     p_rul_end_date                 := l_rul_end_date;
131     p_rul_object_version_number    := null;
132     p_rlu_object_version_number    := null;
133     p_rlu_start_date               := null;
134     p_rlu_end_date                 := null;
135     p_cnu_object_version_number    := null;
136     p_cnu_start_date               := null;
137     p_cnu_end_date                 := null;
138     p_acu_object_version_number    := null;
139     p_acu_start_date               := null;
140     p_acu_end_date                 := null;
141     p_return_status := hr_multi_message.get_return_status_disable;
142     hr_utility.set_location(' Leaving:' || l_proc, 30);
143   when others then
144     --
145     -- When Multiple Message Detection is enabled catch
146     -- any Application specific or other unexpected
147     -- exceptions.  Adding appropriate details to the
148     -- Multiple Message List.  Otherwise re-raise the
149     -- error.
150     --
151     rollback to create_ame_rule_swi;
152     if hr_multi_message.unexpected_error_add(l_proc) then
153        hr_utility.set_location(' Leaving:' || l_proc,40);
154        raise;
155     end if;
156     --
157     -- Reset IN OUT and set OUT parameters
158     --
159     p_rul_start_date               := l_rul_start_date;
160     p_rul_end_date                 := l_rul_end_date;
161     p_rul_object_version_number    := null;
162     p_rlu_object_version_number    := null;
163     p_rlu_start_date               := null;
164     p_rlu_end_date                 := null;
165     p_cnu_object_version_number    := null;
166     p_cnu_start_date               := null;
167     p_cnu_end_date                 := null;
168     p_acu_object_version_number    := null;
169     p_acu_start_date               := null;
170     p_acu_end_date                 := null;
171     p_return_status := hr_multi_message.get_return_status_disable;
172     hr_utility.set_location(' Leaving:' || l_proc,50);
173 end create_ame_rule;
174 -- ----------------------------------------------------------------------------
175 -- |-------------------------< create_ame_rule_usage >------------------------|
176 -- ----------------------------------------------------------------------------
177 PROCEDURE create_ame_rule_usage
178   (p_validate                     in     number    default hr_api.g_false_num
179   ,p_rule_id                      in     number
180   ,p_application_id               in     number
181   ,p_priority                     in     number    default null
182   ,p_approver_category            in     varchar2  default null
183   ,p_start_date                   in out nocopy date
184   ,p_end_date                     in out nocopy date
185   ,p_object_version_number           out nocopy number
186   ,p_return_status                   out nocopy varchar2
187   ) is
188   --
189   -- Variables for API Boolean parameters
190   l_validate                      boolean;
191   --
192   -- Variables for IN/OUT parameters
193   l_start_date                    date;
194   l_end_date                      date;
195   --
196   -- Other variables
197   l_proc    varchar2(72) := g_package ||'create_ame_rule_usage';
198 Begin
199   hr_utility.set_location(' Entering:' || l_proc,10);
200   --
201   -- Issue a savepoint
202   --
203   savepoint create_ame_rule_usage_swi;
204   --
205   -- Initialise Multiple Message Detection
206   --
207   hr_multi_message.enable_message_list;
208   --
209   -- Remember IN OUT parameter IN values
210   --
211   l_start_date                := p_start_date;
212   l_end_date                      := p_end_date;
213   --
214   -- Convert constant values to their corresponding boolean value
215   --
216   l_validate :=
217     hr_api.constant_to_boolean
218       (p_constant_value => p_validate);
219   --
220   -- Register Surrogate ID or user key values
221   --
222   --
223   -- Call API
224   --
225   ame_rule_api.create_ame_rule_usage
226     (p_validate                     => l_validate
227     ,p_rule_id                      => p_rule_id
228     ,p_application_id               => p_application_id
229     ,p_priority                     => p_priority
230     ,p_approver_category            => p_approver_category
231     ,p_start_date                   => l_start_date
232     ,p_end_date                     => l_end_date
233     ,p_object_version_number        => p_object_version_number
234     );
235   --
236   -- Convert API warning boolean parameter values to specific
237   -- messages and add them to Multiple Message List
238   --
239   --
240   -- Convert API non-warning boolean parameter values
241   --
242   --
243   -- Derive the API return status value based on whether
244   -- messages of any type exist in the Multiple Message List.
245   -- Also disable Multiple Message Detection.
246   --
247   p_return_status := hr_multi_message.get_return_status_disable;
248   hr_utility.set_location(' Leaving:' || l_proc,20);
249   --
250 exception
251   when hr_multi_message.error_message_exist then
252     --
253     -- Catch the Multiple Message List exception which
254     -- indicates API processing has been aborted because
255     -- at least one message exists in the list.
256     --
257     rollback to create_ame_rule_usage_swi;
258     --
259     -- Reset IN OUT parameters and set OUT parameters
260     --
261     p_start_date                   := l_start_date;
262     p_end_date                     := l_end_date;
263     p_object_version_number        := null;
264     p_return_status := hr_multi_message.get_return_status_disable;
265     hr_utility.set_location(' Leaving:' || l_proc, 30);
266   when others then
267     --
268     -- When Multiple Message Detection is enabled catch
269     -- any Application specific or other unexpected
270     -- exceptions.  Adding appropriate details to the
271     -- Multiple Message List.  Otherwise re-raise the
272     -- error.
273     --
274     rollback to create_ame_rule_usage_swi;
275     if hr_multi_message.unexpected_error_add(l_proc) then
276        hr_utility.set_location(' Leaving:' || l_proc,40);
277        raise;
278     end if;
279     --
280     -- Reset IN OUT and set OUT parameters
281     --
282     p_start_date                   := l_start_date;
283     p_end_date                     := l_end_date;
284     p_object_version_number        := null;
285     p_return_status := hr_multi_message.get_return_status_disable;
286     hr_utility.set_location(' Leaving:' || l_proc,50);
287 end create_ame_rule_usage;
288 -- ----------------------------------------------------------------------------
289 -- |---------------------< create_ame_condition_to_rule >---------------------|
290 -- ----------------------------------------------------------------------------
291 PROCEDURE create_ame_condition_to_rule
292   (p_validate                     in     number    default hr_api.g_false_num
293   ,p_rule_id                      in     number
294   ,p_condition_id                 in     number
295   ,p_object_version_number           out nocopy number
296   ,p_start_date                      out nocopy date
297   ,p_end_date                        out nocopy date
298   ,p_return_status                   out nocopy varchar2
299   ,p_effective_date               in     date      default null
300   ) is
301   --
302   -- Variables for API Boolean parameters
303   l_validate                      boolean;
304   --
305   -- Variables for IN/OUT parameters
306   --
307   -- Other variables
308   l_proc    varchar2(72) := g_package ||'create_ame_condition_to_rule';
309 Begin
310   hr_utility.set_location(' Entering:' || l_proc,10);
311   --
312   -- Issue a savepoint
313   --
314   savepoint create_ame_cond_to_rule_swi;
315   --
316   -- Initialise Multiple Message Detection
317   --
318   hr_multi_message.enable_message_list;
319   --
320   -- Remember IN OUT parameter IN values
321   --
322   --
323   -- Convert constant values to their corresponding boolean value
324   --
325   l_validate :=
326     hr_api.constant_to_boolean
327       (p_constant_value => p_validate);
328   --
329   -- Register Surrogate ID or user key values
330   --
331   --
332   -- Call API
333   --
334   ame_rule_api.create_ame_condition_to_rule
335     (p_validate                     => l_validate
336     ,p_rule_id                      => p_rule_id
337     ,p_condition_id                 => p_condition_id
338     ,p_object_version_number        => p_object_version_number
339     ,p_start_date                   => p_start_date
340     ,p_end_date                     => p_end_date
341     ,p_effective_date               => p_effective_date
342     );
343   --
344   -- Convert API warning boolean parameter values to specific
345   -- messages and add them to Multiple Message List
346   --
347   --
348   -- Convert API non-warning boolean parameter values
349   --
350   --
351   -- Derive the API return status value based on whether
352   -- messages of any type exist in the Multiple Message List.
353   -- Also disable Multiple Message Detection.
354   --
355   p_return_status := hr_multi_message.get_return_status_disable;
356   hr_utility.set_location(' Leaving:' || l_proc,20);
357   --
358 exception
359   when hr_multi_message.error_message_exist then
360     --
361     -- Catch the Multiple Message List exception which
362     -- indicates API processing has been aborted because
363     -- at least one message exists in the list.
364     --
365     rollback to create_ame_cond_to_rule_swi;
366     --
367     -- Reset IN OUT parameters and set OUT parameters
368     --
369     p_object_version_number        := null;
370     p_start_date                   := null;
371     p_end_date                     := null;
372     p_return_status := hr_multi_message.get_return_status_disable;
373     hr_utility.set_location(' Leaving:' || l_proc, 30);
374   when others then
375     --
376     -- When Multiple Message Detection is enabled catch
377     -- any Application specific or other unexpected
378     -- exceptions.  Adding appropriate details to the
379     -- Multiple Message List.  Otherwise re-raise the
380     -- error.
381     --
382     rollback to create_ame_cond_to_rule_swi;
383     if hr_multi_message.unexpected_error_add(l_proc) then
384        hr_utility.set_location(' Leaving:' || l_proc,40);
385        raise;
386     end if;
387     --
388     -- Reset IN OUT and set OUT parameters
389     --
390     p_object_version_number        := null;
391     p_start_date                   := null;
392     p_end_date                     := null;
393     p_return_status := hr_multi_message.get_return_status_disable;
394     hr_utility.set_location(' Leaving:' || l_proc,50);
395 end create_ame_condition_to_rule;
396 -- ----------------------------------------------------------------------------
397 -- |-----------------------< create_ame_action_to_rule >----------------------|
398 -- ----------------------------------------------------------------------------
399 PROCEDURE create_ame_action_to_rule
400   (p_validate                     in     number    default hr_api.g_false_num
401   ,p_rule_id                      in     number
402   ,p_action_id                    in     number
403   ,p_object_version_number           out nocopy number
404   ,p_start_date                      out nocopy date
405   ,p_end_date                        out nocopy date
406   ,p_return_status                   out nocopy varchar2
407   ,p_effective_date               in     date      default null
408   ) is
409   --
410   -- Variables for API Boolean parameters
411   l_validate                      boolean;
412   --
413   -- Variables for IN/OUT parameters
414   --
415   -- Other variables
416   l_proc    varchar2(72) := g_package ||'create_ame_action_to_rule';
417 Begin
418   hr_utility.set_location(' Entering:' || l_proc,10);
419   --
420   -- Issue a savepoint
421   --
422   savepoint create_ame_action_to_rule_swi;
423   --
424   -- Initialise Multiple Message Detection
425   --
426   hr_multi_message.enable_message_list;
427   --
428   -- Remember IN OUT parameter IN values
429   --
430   --
431   -- Convert constant values to their corresponding boolean value
432   --
433   l_validate :=
434     hr_api.constant_to_boolean
435       (p_constant_value => p_validate);
436   --
437   -- Register Surrogate ID or user key values
438   --
439   --
440   -- Call API
441   --
442   ame_rule_api.create_ame_action_to_rule
443     (p_validate                     => l_validate
444     ,p_rule_id                      => p_rule_id
445     ,p_action_id                    => p_action_id
446     ,p_object_version_number        => p_object_version_number
447     ,p_start_date                   => p_start_date
448     ,p_end_date                     => p_end_date
449     ,p_effective_date               => p_effective_date
450     );
451   --
452   -- Convert API warning boolean parameter values to specific
453   -- messages and add them to Multiple Message List
454   --
455   --
456   -- Convert API non-warning boolean parameter values
457   --
458   --
459   -- Derive the API return status value based on whether
460   -- messages of any type exist in the Multiple Message List.
461   -- Also disable Multiple Message Detection.
462   --
463   p_return_status := hr_multi_message.get_return_status_disable;
464   hr_utility.set_location(' Leaving:' || l_proc,20);
465   --
466 exception
467   when hr_multi_message.error_message_exist then
468     --
469     -- Catch the Multiple Message List exception which
470     -- indicates API processing has been aborted because
471     -- at least one message exists in the list.
472     --
473     rollback to create_ame_action_to_rule_swi;
474     --
475     -- Reset IN OUT parameters and set OUT parameters
476     --
477     p_object_version_number        := null;
478     p_start_date                   := null;
479     p_end_date                     := null;
480     p_return_status := hr_multi_message.get_return_status_disable;
481     hr_utility.set_location(' Leaving:' || l_proc, 30);
482   when others then
483     --
484     -- When Multiple Message Detection is enabled catch
485     -- any Application specific or other unexpected
486     -- exceptions.  Adding appropriate details to the
487     -- Multiple Message List.  Otherwise re-raise the
488     -- error.
489     --
490     rollback to create_ame_action_to_rule_swi;
491     if hr_multi_message.unexpected_error_add(l_proc) then
492        hr_utility.set_location(' Leaving:' || l_proc,40);
493        raise;
494     end if;
495     --
496     -- Reset IN OUT and set OUT parameters
497     --
498     p_object_version_number        := null;
499     p_start_date                   := null;
500     p_end_date                     := null;
501     p_return_status := hr_multi_message.get_return_status_disable;
502     hr_utility.set_location(' Leaving:' || l_proc,50);
503 end create_ame_action_to_rule;
504 -- ----------------------------------------------------------------------------
505 -- |----------------------------< update_ame_rule >---------------------------|
506 -- ----------------------------------------------------------------------------
507 PROCEDURE update_ame_rule
508   (p_validate                     in     number    default hr_api.g_false_num
509   ,p_rule_id                      in     number
510   ,p_description                  in     varchar2  default hr_api.g_varchar2
511   ,p_object_version_number        in out nocopy number
512   ,p_start_date                   in out nocopy date
513   ,p_end_date                     in out nocopy date
514   ,p_return_status                   out nocopy varchar2
515   ) is
516   --
517   -- Variables for API Boolean parameters
518   l_validate                      boolean;
519   --
520   -- Variables for IN/OUT parameters
521   l_object_version_number         number;
522   l_start_date                    date;
523   l_end_date                      date;
524   --
525   -- Other variables
526   l_proc    varchar2(72) := g_package ||'update_ame_rule';
527 Begin
528   hr_utility.set_location(' Entering:' || l_proc,10);
529   --
530   -- Issue a savepoint
531   --
532   savepoint update_ame_rule_swi;
533   --
534   -- Initialise Multiple Message Detection
535   --
536   hr_multi_message.enable_message_list;
537   --
538   -- Remember IN OUT parameter IN values
539   --
540   l_object_version_number         := p_object_version_number;
541   l_start_date                    := p_start_date;
542   l_end_date                      := p_end_date;
543   --
544   -- Convert constant values to their corresponding boolean value
545   --
546   l_validate :=
547     hr_api.constant_to_boolean
548       (p_constant_value => p_validate);
549   --
550   -- Register Surrogate ID or user key values
551   --
552   --
553   -- Call API
554   --
555   ame_rule_api.update_ame_rule
556     (p_validate                     => l_validate
557     ,p_rule_id                      => p_rule_id
558     ,p_description                  => p_description
559     ,p_object_version_number        => p_object_version_number
560     ,p_start_date                   => p_start_date
561     ,p_end_date                     => p_end_date
562     ,p_effective_date               => g_effective_date
563     );
564   --
565   -- Convert API warning boolean parameter values to specific
566   -- messages and add them to Multiple Message List
567   --
568   --
569   -- Convert API non-warning boolean parameter values
570   --
571   --
572   -- Derive the API return status value based on whether
573   -- messages of any type exist in the Multiple Message List.
574   -- Also disable Multiple Message Detection.
575   --
576   p_return_status := hr_multi_message.get_return_status_disable;
577   hr_utility.set_location(' Leaving:' || l_proc,20);
578   --
579 exception
580   when hr_multi_message.error_message_exist then
581     --
582     -- Catch the Multiple Message List exception which
583     -- indicates API processing has been aborted because
584     -- at least one message exists in the list.
585     --
586     rollback to update_ame_rule_swi;
587     --
588     -- Reset IN OUT parameters and set OUT parameters
589     --
590     p_object_version_number        := l_object_version_number;
591     p_start_date                   := l_start_date;
592     p_end_date                     := l_end_date;
593     p_return_status := hr_multi_message.get_return_status_disable;
594     hr_utility.set_location(' Leaving:' || l_proc, 30);
595   when others then
596     --
597     -- When Multiple Message Detection is enabled catch
598     -- any Application specific or other unexpected
599     -- exceptions.  Adding appropriate details to the
600     -- Multiple Message List.  Otherwise re-raise the
601     -- error.
602     --
603     rollback to update_ame_rule_swi;
604     if hr_multi_message.unexpected_error_add(l_proc) then
605        hr_utility.set_location(' Leaving:' || l_proc,40);
606        raise;
607     end if;
608     --
609     -- Reset IN OUT and set OUT parameters
610     --
611     p_object_version_number        := l_object_version_number;
612     p_start_date                   := l_start_date;
613     p_end_date                     := l_end_date;
614     p_return_status := hr_multi_message.get_return_status_disable;
615     hr_utility.set_location(' Leaving:' || l_proc,50);
616 end update_ame_rule;
617 -- ----------------------------------------------------------------------------
618 -- |-------------------------< update_ame_rule_usage >------------------------|
619 -- ----------------------------------------------------------------------------
620 PROCEDURE update_ame_rule_usage
621   (p_validate                     in     number    default hr_api.g_false_num
622   ,p_rule_id                      in     number
623   ,p_application_id               in     number
624   ,p_priority                     in     number    default hr_api.g_number
625   ,p_approver_category            in     varchar2  default hr_api.g_varchar2
626   ,p_old_start_date               in     date
627   ,p_object_version_number        in out nocopy number
628   ,p_start_date                   in out nocopy date
629   ,p_end_date                     in out nocopy date
630   ,p_return_status                   out nocopy varchar2
631   ) is
632   --
633   -- Variables for API Boolean parameters
634   l_validate                      boolean;
635   --
636   -- Variables for IN/OUT parameters
637   l_object_version_number         number;
638   l_start_date                    date;
639   l_end_date                      date;
640   --
641   -- Other variables
642   l_proc    varchar2(72) := g_package ||'update_ame_rule_usage';
643 Begin
644   hr_utility.set_location(' Entering:' || l_proc,10);
645   --
646   -- Issue a savepoint
647   --
648   savepoint update_ame_rule_usage_swi;
649   --
650   -- Initialise Multiple Message Detection
651   --
652   hr_multi_message.enable_message_list;
653   --
654   -- Remember IN OUT parameter IN values
655   --
656   l_object_version_number         := p_object_version_number;
657 
658   l_start_date                    := p_start_date;
659   l_end_date                      := p_end_date;
660   --
661   -- Convert constant values to their corresponding boolean value
662   --
663   l_validate :=
664     hr_api.constant_to_boolean
665       (p_constant_value => p_validate);
666   --
667   -- Register Surrogate ID or user key values
668   --
669   --
670   -- Call API
671   --
672   ame_rule_api.update_ame_rule_usage
673     (p_validate                     => l_validate
674     ,p_rule_id                      => p_rule_id
675     ,p_application_id               => p_application_id
676     ,p_priority                     => p_priority
677     ,p_approver_category            => p_approver_category
678     ,p_old_start_date               => p_old_start_date
679     ,p_object_version_number        => p_object_version_number
680     ,p_start_date                   => l_start_date
681     ,p_end_date                     => l_end_date
682     ,p_effective_date               => g_effective_date
683     );
684   --
685   -- Convert API warning boolean parameter values to specific
686   -- messages and add them to Multiple Message List
687   --
688   --
689   -- Convert API non-warning boolean parameter values
690   --
691   --
692   -- Derive the API return status value based on whether
693   -- messages of any type exist in the Multiple Message List.
694   -- Also disable Multiple Message Detection.
695   --
696   p_return_status := hr_multi_message.get_return_status_disable;
697   hr_utility.set_location(' Leaving:' || l_proc,20);
698   --
699 exception
700   when hr_multi_message.error_message_exist then
701     --
702     -- Catch the Multiple Message List exception which
703     -- indicates API processing has been aborted because
704     -- at least one message exists in the list.
705     --
706     rollback to update_ame_rule_usage_swi;
707     --
708     -- Reset IN OUT parameters and set OUT parameters
709     --
710     p_object_version_number        := l_object_version_number;
711     p_start_date                   := l_start_date;
712     p_end_date                     := l_end_date;
713     p_return_status := hr_multi_message.get_return_status_disable;
714     hr_utility.set_location(' Leaving:' || l_proc, 30);
715   when others then
716     --
717     -- When Multiple Message Detection is enabled catch
718     -- any Application specific or other unexpected
719     -- exceptions.  Adding appropriate details to the
720     -- Multiple Message List.  Otherwise re-raise the
721     -- error.
722     --
723     rollback to update_ame_rule_usage_swi;
724     if hr_multi_message.unexpected_error_add(l_proc) then
725        hr_utility.set_location(' Leaving:' || l_proc,40);
726        raise;
727     end if;
728     --
729     -- Reset IN OUT and set OUT parameters
730     --
731     p_object_version_number        := l_object_version_number;
732     p_start_date                   := l_start_date;
733     p_end_date                     := l_end_date;
734     p_return_status := hr_multi_message.get_return_status_disable;
735     hr_utility.set_location(' Leaving:' || l_proc,50);
736 end update_ame_rule_usage;
737 -- ----------------------------------------------------------------------------
738 -- |-------------------------< delete_ame_rule_usage >------------------------|
739 -- ----------------------------------------------------------------------------
740 PROCEDURE delete_ame_rule_usage
741   (p_validate                     in     number    default hr_api.g_false_num
742   ,p_rule_id                      in     number
743   ,p_application_id               in     number
744   ,p_object_version_number        in out nocopy number
745   ,p_start_date                   in out nocopy date
746   ,p_end_date                     in out nocopy date
747   ,p_return_status                   out nocopy varchar2
748   ) is
749   --
750   -- Variables for API Boolean parameters
751   l_validate                      boolean;
752   --
753   -- Variables for IN/OUT parameters
754   l_object_version_number         number;
755   l_start_date                    date;
756   l_end_date                      date;
757   --
758   -- Other variables
759   l_proc    varchar2(72) := g_package ||'delete_ame_rule_usage';
760 Begin
761   hr_utility.set_location(' Entering:' || l_proc,10);
762   --
763   -- Issue a savepoint
764   --
765   savepoint delete_ame_rule_usage_swi;
766   --
767   -- Initialise Multiple Message Detection
768   --
769   hr_multi_message.enable_message_list;
770   --
771   -- Remember IN OUT parameter IN values
772   --
773   l_object_version_number         := p_object_version_number;
774   l_start_date                    := p_start_date;
775   l_end_date                      := p_end_date;
776   --
777   -- Convert constant values to their corresponding boolean value
778   --
779   l_validate :=
780     hr_api.constant_to_boolean
781       (p_constant_value => p_validate);
782   --
783   -- Register Surrogate ID or user key values
784   --
785   --
786   -- Call API
787   --
788   ame_rule_api.delete_ame_rule_usage
789     (p_validate                     => l_validate
790     ,p_rule_id                      => p_rule_id
791     ,p_application_id               => p_application_id
792     ,p_object_version_number        => p_object_version_number
793     ,p_start_date                   => p_start_date
794     ,p_end_date                     => p_end_date
795     );
796   --
797   -- Convert API warning boolean parameter values to specific
798   -- messages and add them to Multiple Message List
799   --
800   --
801   -- Convert API non-warning boolean parameter values
802   --
803   --
804   -- Derive the API return status value based on whether
805   -- messages of any type exist in the Multiple Message List.
806   -- Also disable Multiple Message Detection.
807   --
808   p_return_status := hr_multi_message.get_return_status_disable;
809   hr_utility.set_location(' Leaving:' || l_proc,20);
810   --
811 exception
812   when hr_multi_message.error_message_exist then
813     --
814     -- Catch the Multiple Message List exception which
815     -- indicates API processing has been aborted because
816     -- at least one message exists in the list.
817     --
818     rollback to delete_ame_rule_usage_swi;
819     --
820     -- Reset IN OUT parameters and set OUT parameters
821     --
822     p_object_version_number        := l_object_version_number;
823     p_start_date                   := l_start_date;
824     p_end_date                     := l_end_date;
825     p_return_status := hr_multi_message.get_return_status_disable;
826     hr_utility.set_location(' Leaving:' || l_proc, 30);
827   when others then
828     --
829     -- When Multiple Message Detection is enabled catch
830     -- any Application specific or other unexpected
831     -- exceptions.  Adding appropriate details to the
832     -- Multiple Message List.  Otherwise re-raise the
833     -- error.
834     --
835     rollback to delete_ame_rule_usage_swi;
836     if hr_multi_message.unexpected_error_add(l_proc) then
837        hr_utility.set_location(' Leaving:' || l_proc,40);
838        raise;
839     end if;
840     --
841     -- Reset IN OUT and set OUT parameters
842     --
843     p_object_version_number        := l_object_version_number;
844     p_start_date                   := l_start_date;
845     p_end_date                     := l_end_date;
846     p_return_status := hr_multi_message.get_return_status_disable;
847     hr_utility.set_location(' Leaving:' || l_proc,50);
848 end delete_ame_rule_usage;
849 -- ----------------------------------------------------------------------------
850 -- |-----------------------< delete_ame_rule_condition >----------------------|
851 -- ----------------------------------------------------------------------------
852 PROCEDURE delete_ame_rule_condition
853   (p_validate                     in     number    default hr_api.g_false_num
854   ,p_rule_id                      in     number
855   ,p_condition_id                 in     number
856   ,p_object_version_number        in out nocopy number
857   ,p_start_date                      out nocopy date
858   ,p_end_date                        out nocopy date
859   ,p_return_status                   out nocopy varchar2
860   ) is
861   --
862   -- Variables for API Boolean parameters
863   l_validate                      boolean;
864   --
865   -- Variables for IN/OUT parameters
866   l_object_version_number         number;
867   --
868   -- Other variables
869   l_proc    varchar2(72) := g_package ||'delete_ame_rule_condition';
870 Begin
871   hr_utility.set_location(' Entering:' || l_proc,10);
872   --
873   -- Issue a savepoint
874   --
875   savepoint delete_ame_rule_condition_swi;
876   --
877   -- Initialise Multiple Message Detection
878   --
879   hr_multi_message.enable_message_list;
880   --
881   -- Remember IN OUT parameter IN values
882   --
883   l_object_version_number         := p_object_version_number;
884   --
885   -- Convert constant values to their corresponding boolean value
886   --
887   l_validate :=
888     hr_api.constant_to_boolean
889       (p_constant_value => p_validate);
890   --
891   -- Register Surrogate ID or user key values
892   --
893   --
894   -- Call API
895   --
896   ame_rule_api.delete_ame_rule_condition
897     (p_validate                     => l_validate
898     ,p_rule_id                      => p_rule_id
899     ,p_condition_id                 => p_condition_id
900     ,p_object_version_number        => p_object_version_number
901     ,p_start_date                   => p_start_date
902     ,p_end_date                     => p_end_date
903     ,p_effective_date               => g_effective_date
904     );
905   --
906   -- Convert API warning boolean parameter values to specific
907   -- messages and add them to Multiple Message List
908   --
909   --
910   -- Convert API non-warning boolean parameter values
911   --
912   --
913   -- Derive the API return status value based on whether
914   -- messages of any type exist in the Multiple Message List.
915   -- Also disable Multiple Message Detection.
916   --
917   p_return_status := hr_multi_message.get_return_status_disable;
918   hr_utility.set_location(' Leaving:' || l_proc,20);
919   --
920 exception
921   when hr_multi_message.error_message_exist then
922     --
923     -- Catch the Multiple Message List exception which
924     -- indicates API processing has been aborted because
925     -- at least one message exists in the list.
926     --
927     rollback to delete_ame_rule_condition_swi;
928     --
929     -- Reset IN OUT parameters and set OUT parameters
930     --
931     p_object_version_number        := l_object_version_number;
932     p_start_date                   := null;
933     p_end_date                     := null;
934     p_return_status := hr_multi_message.get_return_status_disable;
935     hr_utility.set_location(' Leaving:' || l_proc, 30);
936   when others then
937     --
938     -- When Multiple Message Detection is enabled catch
939     -- any Application specific or other unexpected
940     -- exceptions.  Adding appropriate details to the
941     -- Multiple Message List.  Otherwise re-raise the
942     -- error.
943     --
944     rollback to delete_ame_rule_condition_swi;
945     if hr_multi_message.unexpected_error_add(l_proc) then
946        hr_utility.set_location(' Leaving:' || l_proc,40);
947        raise;
948     end if;
949     --
950     -- Reset IN OUT and set OUT parameters
951     --
952     p_object_version_number        := l_object_version_number;
953     p_start_date                   := null;
954     p_end_date                     := null;
955     p_return_status := hr_multi_message.get_return_status_disable;
956     hr_utility.set_location(' Leaving:' || l_proc,50);
957 end delete_ame_rule_condition;
958 -- ----------------------------------------------------------------------------
959 -- |------------------------< delete_ame_rule_action >------------------------|
960 -- ----------------------------------------------------------------------------
961 PROCEDURE delete_ame_rule_action
962   (p_validate                     in     number    default hr_api.g_false_num
963   ,p_rule_id                      in     number
964   ,p_action_id                    in     number
965   ,p_object_version_number        in out nocopy number
966   ,p_start_date                      out nocopy date
967   ,p_end_date                        out nocopy date
968   ,p_return_status                   out nocopy varchar2
969   ) is
970   --
971   -- Variables for API Boolean parameters
972   l_validate                      boolean;
973   --
974   -- Variables for IN/OUT parameters
975   l_object_version_number         number;
976   --
977   -- Other variables
978   l_proc    varchar2(72) := g_package ||'delete_ame_rule_action';
979 Begin
980   hr_utility.set_location(' Entering:' || l_proc,10);
981   --
982   -- Issue a savepoint
983   --
984   savepoint delete_ame_rule_action_swi;
985   --
986   -- Initialise Multiple Message Detection
987   --
988   hr_multi_message.enable_message_list;
989   --
990   -- Remember IN OUT parameter IN values
991   --
992   l_object_version_number         := p_object_version_number;
993   --
994   -- Convert constant values to their corresponding boolean value
995   --
996   l_validate :=
997     hr_api.constant_to_boolean
998       (p_constant_value => p_validate);
999   --
1000   -- Register Surrogate ID or user key values
1001   --
1002   --
1003   -- Call API
1004   --
1005   ame_rule_api.delete_ame_rule_action
1006     (p_validate                     => l_validate
1007     ,p_rule_id                      => p_rule_id
1008     ,p_action_id                    => p_action_id
1009     ,p_object_version_number        => p_object_version_number
1010     ,p_start_date                   => p_start_date
1011     ,p_end_date                     => p_end_date
1012     ,p_effective_date               => g_effective_date
1013     );
1014   --
1015   -- Convert API warning boolean parameter values to specific
1016   -- messages and add them to Multiple Message List
1017   --
1018   --
1019   -- Convert API non-warning boolean parameter values
1020   --
1021   --
1022   -- Derive the API return status value based on whether
1023   -- messages of any type exist in the Multiple Message List.
1024   -- Also disable Multiple Message Detection.
1025   --
1026   p_return_status := hr_multi_message.get_return_status_disable;
1027   hr_utility.set_location(' Leaving:' || l_proc,20);
1028   --
1029 exception
1030   when hr_multi_message.error_message_exist then
1031     --
1032     -- Catch the Multiple Message List exception which
1033     -- indicates API processing has been aborted because
1034     -- at least one message exists in the list.
1035     --
1036     rollback to delete_ame_rule_action_swi;
1037     --
1038     -- Reset IN OUT parameters and set OUT parameters
1039     --
1040     p_object_version_number        := l_object_version_number;
1041     p_start_date                   := null;
1042     p_end_date                     := null;
1043     p_return_status := hr_multi_message.get_return_status_disable;
1044     hr_utility.set_location(' Leaving:' || l_proc, 30);
1045   when others then
1046     --
1047     -- When Multiple Message Detection is enabled catch
1048     -- any Application specific or other unexpected
1049     -- exceptions.  Adding appropriate details to the
1050     -- Multiple Message List.  Otherwise re-raise the
1051     -- error.
1052     --
1053     rollback to delete_ame_rule_action_swi;
1054     if hr_multi_message.unexpected_error_add(l_proc) then
1055        hr_utility.set_location(' Leaving:' || l_proc,40);
1056        raise;
1057     end if;
1058     --
1059     -- Reset IN OUT and set OUT parameters
1060     --
1061     p_object_version_number        := l_object_version_number;
1062     p_start_date                   := null;
1063     p_end_date                     := null;
1064     p_return_status := hr_multi_message.get_return_status_disable;
1065     hr_utility.set_location(' Leaving:' || l_proc,50);
1066 end delete_ame_rule_action;
1067 
1068 -- ----------------------------------------------------------------------------
1069 -- |------------------------< set_effective_date >------------------------|
1070 -- ----------------------------------------------------------------------------
1071 PROCEDURE set_effective_date
1072   (p_effective_date                  in date
1073   ) is
1074   --
1075   -- Other variables
1076   l_proc    varchar2(72) := g_package ||'set_effective_date';
1077 Begin
1078   hr_utility.set_location(' Entering:' || l_proc,10);
1079 
1080   g_effective_date :=  p_effective_date;
1081 
1082   hr_utility.set_location(' Leaving:' || l_proc,20);
1083 end set_effective_date;
1084 
1085 end ame_rule_swi;