DBA Data[Home] [Help]

PACKAGE BODY: APPS.AME_ITEM_CLASS_API

Source


1 Package Body AME_ITEM_CLASS_API as
2 /* $Header: amitcapi.pkb 120.1 2005/12/08 21:00 santosin noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := 'AME_ITEM_CLASS_API.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |----------------------< CREATE_AME_ITEM_CLASS >---------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 Procedure create_ame_item_class
13                         (p_validate                in         boolean  default false
14                         ,p_language_code           in         varchar2 default
15                                                                          hr_api.userenv_lang
16                         ,p_name                    in         varchar2
17                         ,p_user_item_class_name    in         varchar2
18                         ,p_item_class_id           out nocopy number
19                         ,p_object_version_number   out nocopy number
20                         ,p_start_date              out nocopy date
21                         ,p_end_date                out nocopy date
22                         ) is
23   --
24   -- Declare cursors and local variables
25   --
26   l_item_class_id         number;
27   l_proc                  varchar2(72) := g_package||'create_ame_item_class';
28   l_object_version_number number;
29   l_start_date            date;
30   l_end_date              date;
31   l_language_code         varchar2(30);
32   --
33   begin
34     hr_utility.set_location('Entering:'|| l_proc, 10);
35     --
36     -- Issue a savepoint
37     --
38     savepoint create_ame_item_class;
39     --
40     -- Remember IN OUT parameter IN values. None here.
41     --
42     -- Call Before Process User Hook
43     --
44     begin
45     --(sri: change the signature to include language_code
46       ame_item_class_bk1.create_ame_item_class_b
47                         (p_name                    => p_name);
48     exception
49       when hr_api.cannot_find_prog_unit then
50         hr_api.cannot_find_prog_unit_error
51                               (p_module_name => 'create_ame_item_class'
52                               ,p_hook_type   => 'BP'
53                               );
54     end;
55     --
56     -- Validate the language provided
57     --
58     l_language_code := p_language_code;
59     hr_api.validate_language_code(p_language_code => l_language_code);
60     --
61     -- Process Logic
62     --
63     ame_itc_ins.ins (p_effective_date           => sysdate
64                     ,p_name                     => p_name
65                     ,p_item_class_id            => l_item_class_id
66                     ,p_object_version_number    => l_object_version_number
67                     ,p_start_date               => l_start_date
68                     ,p_end_date                 => l_end_date
69                     );
70     --
71     -- Create the translation rows
72     --
73     ame_itl_ins.ins_tl
74       (p_language_code        => l_language_code
75       ,p_item_class_id        => l_item_class_id
76       ,p_user_item_class_name => p_user_item_class_name
77       );
78     --
79     -- Call After Process User Hook
80     --
81     begin
82       ame_item_class_bk1.create_ame_item_class_a
83                         (p_name                    => p_name
84                         ,p_item_class_id           => l_item_class_id
85                         ,p_object_version_number   => l_object_version_number
86                         ,p_start_date              => l_start_date
87                         ,p_end_date                => l_end_date
88                         );
89     exception
90       when hr_api.cannot_find_prog_unit then
91         hr_api.cannot_find_prog_unit_error
92                               (p_module_name => 'create_ame_item_class'
93                               ,p_hook_type   => 'AP'
94                               );
95     end;
96     --
97     -- When in validation only mode raise the Validate_Enabled exception
98     --
99     if p_validate then
100       raise hr_api.validate_enabled;
101     end if;
102     --
103     -- Set all IN OUT and OUT parameters with out values
104     --
105     p_item_class_id             := l_item_class_id;
106     p_object_version_number     := l_object_version_number;
107     p_start_date                := l_start_date;
108     p_end_date                  := l_end_date;
109     --
110     hr_utility.set_location(' Leaving:'||l_proc, 70);
111   exception
112     when hr_api.validate_enabled then
113       --
114       -- As the Validate_Enabled exception has been raised
115       -- we must rollback to the savepoint
116       --
117       rollback to create_ame_item_class;
118       --
119       -- Reset IN OUT parameters and set OUT parameters
120       -- (Any key or derived arguments must be set to null
121       -- when validation only mode is being used.)
122       p_item_class_id          := null;
123       p_object_version_number  := null;
124       p_start_date             := null;
125       p_end_date               := null;
126       --
127       hr_utility.set_location(' Leaving:'||l_proc, 80);
128     when others then
129       --
130       -- A validation or unexpected error has occured
131       --
132       rollback to create_ame_item_class;
133       --
134       -- Reset IN OUT parameters and set all
135       -- OUT parameters, including warnings, to null
136       --
137       p_item_class_id          := null;
138       p_object_version_number  := null;
139       p_start_date             := null;
140       p_end_date               := null;
141       --
142       hr_utility.set_location(' Leaving:'||l_proc, 90);
143       raise;
144   end create_ame_item_class;
145 --
146 -- ----------------------------------------------------------------------------
147 -- |-----------------------<UPDATE_AME_ITEM_CLASS>----------------------------|
148 -- ----------------------------------------------------------------------------
149 procedure update_ame_item_class
150         (p_validate                     in     boolean   default false
151         ,p_language_code                in     varchar2  default
152                                                           hr_api.userenv_lang
153         ,p_item_class_id                in     number
154         ,p_user_item_class_name         in     varchar2  default hr_api.g_varchar2
155         ,p_object_version_number        in out nocopy number
156         ,p_start_date                      out nocopy date
157         ,p_end_date                        out nocopy date
158         ) is
159   --
160   -- Declare cursors and local variables
161   --
162   l_proc                      varchar2(72) := g_package||'update_ame_item_class';
163   l_object_version_number     number;
164   l_start_date                date;
165   l_end_date                  date;
166   l_language_code             varchar2(30);
167   --
168   begin
169     hr_utility.set_location('Entering:'|| l_proc, 10);
170     --
171     -- Issue a savepoint
172     --
173     savepoint update_ame_item_class;
174     --
175     -- Remember IN OUT parameter IN values
176     --
177     l_object_version_number := p_object_version_number;
178     --
179     -- Call Before Process User Hook
180     --
181     begin
182        --(sri: change the signature to include language_code
183       ame_item_class_bk2.update_ame_item_class_b
184               (p_item_class_id            => p_item_class_id
185               ,p_user_item_class_name     => p_user_item_class_name
186               ,p_object_version_number    => p_object_version_number
187               );
188     exception
189       when hr_api.cannot_find_prog_unit then
190         hr_api.cannot_find_prog_unit_error
191                               (p_module_name => 'update_ame_item_class'
192                               ,p_hook_type   => 'BP'
193                               );
194     end;
195     --validate the language provided
196     l_language_code := p_language_code;
197     hr_api.validate_language_code(p_language_code => l_language_code);
198     --
199     -- Process Logic
200     --
201 /*     ame_itc_upd.upd
202       (p_effective_date        => sysdate
203       ,p_datetrack_mode        => hr_api.g_update
204       ,p_item_class_id         => p_item_class_id
205       ,p_object_version_number => p_object_version_number
206       ,p_name                  => hr_api.g_varchar2
207       ,p_start_date            => l_start_date
208       ,p_end_date              => l_end_date
209       );
210     --*/
211     -- Create the translation rows
212     --
213     ame_itl_upd.upd_tl
214       (p_language_code        => l_language_code
215       ,p_item_class_id        => p_item_class_id
216       ,p_user_item_class_name => p_user_item_class_name
217       );
218     --
219     -- Call After Process User Hook
220     --
221     begin
222       ame_item_class_bk2.update_ame_item_class_a
223               (p_item_class_id           => p_item_class_id
224               ,p_object_version_number   => p_object_version_number
225               ,p_user_item_class_name    => p_user_item_class_name
226               ,p_start_date              => l_start_date
227               ,p_end_date                => l_end_date
228               );
229     exception
230       when hr_api.cannot_find_prog_unit then
231         hr_api.cannot_find_prog_unit_error
232                               (p_module_name => 'update_ame_item_class'
233                               ,p_hook_type   => 'AP'
234                               );
235     end;
236     --
237     -- When in validation only mode raise the Validate_Enabled exception
238     --
239     if p_validate then
240       raise hr_api.validate_enabled;
241     end if;
242     --
243     -- Set all OUT parameters with out values.
244     --
245     p_start_date   := l_start_date;
246     p_end_date     := l_end_date;
247     --
248     hr_utility.set_location(' Leaving:'||l_proc, 70);
249   exception
250     when hr_api.validate_enabled then
251       --
252       -- As the Validate_Enabled exception has been raised
253       -- we must rollback to the savepoint
254       --
255       rollback to update_ame_item_class;
256       --
257       -- Reset IN OUT parameters and set OUT parameters
258       -- (Any key or derived arguments must be set to null
259       -- when validation only mode is being used.)
260       --
261       p_object_version_number  := l_object_version_number;
262       p_start_date             := null;
263       p_end_date               := null;
264       --
265       hr_utility.set_location(' Leaving:'||l_proc, 80);
266     when others then
267       --
268       -- A validation or unexpected error has occured
269       --
270       rollback to update_ame_item_class;
271       --
272       -- Reset IN OUT parameters and set all
273       -- OUT parameters, including warnings, to null
274       --
275       p_object_version_number  := l_object_version_number;
276       p_start_date             := null;
277       p_end_date               := null;
278       --
279       hr_utility.set_location(' Leaving:'||l_proc, 90);
280       raise;
281   end update_ame_item_class;
282 --
283 -- ----------------------------------------------------------------------------
284 -- |--------------------< DELETE_AME_ITEM_CLASS >-----------------------------|
285 -- ----------------------------------------------------------------------------
286 procedure delete_ame_item_class
287   (p_validate              in     boolean  default false
288   ,p_item_class_id         in     number
289   ,p_object_version_number in out nocopy number
290   ,p_start_date               out nocopy date
291   ,p_end_date                 out nocopy date
292   ) is
293   --
294   -- Declare cursors and local variables
295   --
296   cursor getItemClassUsageCur is
297     select application_id,
298            object_version_number
299       from ame_item_class_usages
300      where item_class_id = p_item_class_id
301        and sysdate between start_date and
302              nvl(end_date - ame_util.oneSecond, sysdate);
303   l_proc                   varchar2(72) := g_package||'delete_ame_item_class';
304   l_object_version_number  number;
305   l_start_date             date;
306   l_end_date               date;
307   l_start_date_child       date;
308   l_end_date_child         date;
309   l_applicationIds         ame_util.idList;
310   l_objectVersionNumbers   ame_util.idList;
311   --
312   begin
313     hr_utility.set_location('Entering:'|| l_proc, 10);
314     --
315     -- Issue a savepoint
316     --
317     savepoint delete_ame_item_class;
318     --
319     -- Remember IN OUT parameter IN values
320     --
321     l_object_version_number := p_object_version_number;
322     --
323     -- Call Before Process User Hook
324     --
325     begin
326       ame_item_class_bk3.delete_ame_item_class_b
327        (p_item_class_id         => p_item_class_id
328        ,p_object_version_number => p_object_version_number
329        );
330     exception
331       when hr_api.cannot_find_prog_unit then
332         hr_api.cannot_find_prog_unit_error
333                               (p_module_name => 'delete_ame_item_class'
334                               ,p_hook_type   => 'BP'
335                               );
336     end;
337     --
338     -- Process Logic
339     --
340     -- Remove the usages for the item_class.
341     --
342     open getItemClassUsageCur;
343     fetch getItemClassUsageCur bulk collect into l_applicationIds,
344                                                  l_objectVersionNumbers;
345     close getItemClassUsageCur;
346     for indx in 1..l_applicationIds.count
347     loop
348     delete_ame_item_class_usage
349       (p_validate              => p_validate
350       ,p_application_id        => l_applicationIds(indx)
351       ,p_item_class_id         => p_item_class_id
352       ,p_object_version_number => l_objectVersionNumbers(indx)
353       ,p_start_date            => l_start_date_child
354       ,p_end_date              => l_end_date_child
355       );
356     end loop;
357     --
358     -- Remove the Item Class
359     --
360     ame_itc_del.del
361         (p_effective_date          => sysdate
362         ,p_datetrack_mode          => hr_api.g_delete
363         ,p_item_class_id           => p_item_class_id
364         ,p_object_version_number   => p_object_version_number
365         ,p_start_date              => l_start_date
366         ,p_end_date                => l_end_date
367         );
368     --
369     -- Call After Process User Hook
370     --
371     begin
372       ame_item_class_bk3.delete_ame_item_class_a
373          (p_item_class_id           => p_item_class_id
374          ,p_object_version_number   => p_object_version_number
375          ,p_start_date              => l_start_date
376          ,p_end_date                => l_end_date
377           );
378     exception
379       when hr_api.cannot_find_prog_unit then
380         hr_api.cannot_find_prog_unit_error
381                               (p_module_name => 'delete_ame_item_class'
382                               ,p_hook_type   => 'AP'
383                               );
384     end;
385     --
386     -- When in validation only mode raise the Validate_Enabled exception
387     --
388     if p_validate then
389       raise hr_api.validate_enabled;
390     end if;
391     --
392     -- Set all IN OUT and OUT parameters with out values.
393     --
394     p_start_date  := l_start_date;
395     p_end_date    := l_end_date;
396     --
397     hr_utility.set_location(' Leaving:'||l_proc, 70);
398   exception
399     when hr_api.validate_enabled then
400       --
401       -- As the Validate_Enabled exception has been raised
402       -- we must rollback to the savepoint
403       --
404       rollback to delete_ame_item_class;
405       --
406       -- Reset IN OUT parameters and set OUT parameters
407       -- (Any key or derived arguments must be set to null
408       -- when validation only mode is being used.)
409       --
410       p_object_version_number := l_object_version_number;
411       p_start_date            := null;
412       p_end_date              := null;
413       --
414       hr_utility.set_location(' Leaving:'||l_proc, 80);
415     when others then
416       --
417       -- A validation or unexpected error has occured
418       --
419       rollback to delete_ame_item_class;
420       --
421       -- Reset IN OUT parameters and set all
422       -- OUT parameters, including warnings, to null
423       --
424       p_object_version_number := l_object_version_number;
425       p_start_date            := null;
426       p_end_date              := null;
427       --
428       hr_utility.set_location(' Leaving:'||l_proc, 90);
429       raise;
430   end delete_ame_item_class;
431 --
432 -- ----------------------------------------------------------------------------
433 -- |-------------------< CREATE_AME_ITEM_CLASS_USAGE >------------------------|
434 -- ----------------------------------------------------------------------------
435 --
436 Procedure create_ame_item_class_usage
437                         (p_validate                in     boolean  default false
438                         ,p_item_id_query           in     varchar2
439                         ,p_item_class_order_number in     number
440                         ,p_item_class_par_mode     in     varchar2
441                         ,p_item_class_sublist_mode in     varchar2
442                         ,p_application_id          in out nocopy number
443                         ,p_item_class_id           in out nocopy number
444                         ,p_object_version_number      out nocopy number
445                         ,p_start_date                 out nocopy date
446                         ,p_end_date                   out nocopy date
447                          ) is
448   -- Declare cursors and local variables
449   --
450   l_application_id        number;
451   l_item_class_id         number;
452   l_proc                  varchar2(72) := g_package||'create_ame_item_class_usage';
453   l_object_version_number number;
454   l_start_date            date;
455   l_end_date              date;
456   --
457   begin
458     hr_utility.set_location('Entering:'|| l_proc, 10);
459     l_application_id := p_application_id;
460     l_item_class_id := p_item_class_id;
461     --
462     -- Issue a savepoint
463     --
464     savepoint create_ame_item_class_usage;
465     --
466     -- Remember IN OUT parameter IN values. None here.
467     --
468     -- Call Before Process User Hook
469     --
470     begin
471       ame_item_class_bk4.create_ame_item_class_usage_b
472                         (p_item_id_query            => p_item_id_query
473                         ,p_item_class_order_number  => p_item_class_order_number
474                         ,p_item_class_par_mode      => p_item_class_par_mode
475                         ,p_item_class_sublist_mode  => p_item_class_sublist_mode
476                         ,p_application_id           => p_application_id
477                         ,p_item_class_id            => p_item_class_id
478                         );
479     exception
480       when hr_api.cannot_find_prog_unit then
481         hr_api.cannot_find_prog_unit_error
482                               (p_module_name => 'create_ame_item_class_usage'
483                               ,p_hook_type   => 'BP'
484                               );
485     end;
486     --
487     -- Process Logic
488     --
489     ame_itu_ins.ins
490           (p_effective_date           => sysdate
491           ,p_item_id_query            => p_item_id_query
492           ,p_item_class_order_number  => p_item_class_order_number
493           ,p_item_class_par_mode      => p_item_class_par_mode
494           ,p_item_class_sublist_mode  => p_item_class_sublist_mode
495           ,p_application_id           => l_application_id
496           ,p_item_class_id            => l_item_class_id
497           ,p_object_version_number    => l_object_version_number
498           ,p_start_date               => l_start_date
499           ,p_end_date                 => l_end_date
500           );
501     --
502     -- Call After Process User Hook
503     --
504     begin
505       ame_item_class_bk4.create_ame_item_class_usage_a
506                     (p_item_id_query            => p_item_id_query
507                     ,p_item_class_order_number  => p_item_class_order_number
508                     ,p_item_class_par_mode      => p_item_class_par_mode
509                     ,p_item_class_sublist_mode  => p_item_class_sublist_mode
510                     ,p_application_id           => l_application_id
511                     ,p_item_class_id            => l_item_class_id
512                     ,p_object_version_number    => l_object_version_number
513                     ,p_start_date               => l_start_date
514                     ,p_end_date                 => l_end_date
515                     );
516     exception
517       when hr_api.cannot_find_prog_unit then
518         hr_api.cannot_find_prog_unit_error
519                               (p_module_name => 'create_ame_item_class_usage'
520                               ,p_hook_type   => 'AP'
521                               );
522     end;
523     --
524     -- When in validation only mode raise the Validate_Enabled exception
525     --
526     if p_validate then
527       raise hr_api.validate_enabled;
528     end if;
529     --
530     -- Set all IN OUT and OUT parameters with out values
531     --
532     p_application_id            := l_application_id;
533     p_item_class_id             := l_item_class_id;
534     p_object_version_number     := l_object_version_number;
535     p_start_date                := l_start_date;
536     p_end_date                  := l_end_date;
537     --
538     hr_utility.set_location(' Leaving:'||l_proc, 70);
539   exception
540     when hr_api.validate_enabled then
541       --
542       -- As the Validate_Enabled exception has been raised
543       -- we must rollback to the savepoint
544       --
545       rollback to create_ame_item_class_usage;
546       --
547       -- Reset IN OUT parameters and set OUT parameters
548       -- (Any key or derived arguments must be set to null
549       -- when validation only mode is being used.)
550       p_application_id         := null;
551       p_item_class_id          := null;
552       p_object_version_number  := null;
553       p_start_date             := null;
554       p_end_date               := null;
555       --
556       hr_utility.set_location(' Leaving:'||l_proc, 80);
557     when others then
558       --
559       -- A validation or unexpected error has occured
560       --
561       rollback to create_ame_item_class_usage;
562       --
563       -- Reset IN OUT parameters and set all
564       -- OUT parameters, including warnings, to null
565       --
566       p_application_id         := null;
567       p_item_class_id          := null;
568       p_object_version_number  := null;
569       p_start_date             := null;
570       p_end_date               := null;
571       --
572       hr_utility.set_location(' Leaving:'||l_proc, 90);
573       raise;
574   end create_ame_item_class_usage;
575 --
576 -- ----------------------------------------------------------------------------
577 -- |---------------------<UPDATE_AME_ITEM_CLASS_USAGE>------------------------|
578 -- ----------------------------------------------------------------------------
579 procedure update_ame_item_class_usage
580         (p_validate                     in     boolean   default false
581         ,p_application_id               in     number
582         ,p_item_class_id                in     number
583         ,p_item_id_query                in     varchar2  default hr_api.g_varchar2
584         ,p_item_class_order_number      in     number    default hr_api.g_number
585         ,p_item_class_par_mode          in     varchar2  default hr_api.g_varchar2
586         ,p_item_class_sublist_mode      in     varchar2  default hr_api.g_varchar2
587         ,p_object_version_number        in out nocopy number
588         ,p_start_date                   out nocopy date
589         ,p_end_date                     out nocopy date
590         ) is
591   --
592   -- Declare cursors and local variables
593   --
594   l_proc                      varchar2(72) := g_package||'update_ame_item_class_usage';
595   l_object_version_number     number;
596   l_start_date                date;
597   l_end_date                  date;
598   --
599   begin
600     hr_utility.set_location('Entering:'|| l_proc, 10);
601     --
602     -- Issue a savepoint
603     --
604     savepoint update_ame_item_class_usage;
605     --
606     -- Remember IN OUT parameter IN values
607     --
608     l_object_version_number := p_object_version_number;
609     --
610     -- Call Before Process User Hook
611     --
612     begin
613       ame_item_class_bk5.update_ame_item_class_usage_b
614                 (p_application_id          => p_application_id
615                 ,p_item_class_id           => p_item_class_id
616                 ,p_object_version_number   => p_object_version_number
617                 ,p_item_id_query           => p_item_id_query
618                 ,p_item_class_order_number => p_item_class_order_number
619                 ,p_item_class_par_mode     => p_item_class_par_mode
620                 ,p_item_class_sublist_mode => p_item_class_sublist_mode
621                 );
622     exception
623       when hr_api.cannot_find_prog_unit then
624         hr_api.cannot_find_prog_unit_error
625                               (p_module_name => 'update_ame_item_class_usage'
626                               ,p_hook_type   => 'BP'
627                               );
628     end;
629     --
630     -- Process Logic
631     --
632     ame_itu_upd.upd
633       (p_effective_date           => sysdate
634       ,p_datetrack_mode           => hr_api.g_update
635       ,p_application_id           => p_application_id
636       ,p_item_class_id            => p_item_class_id
637       ,p_object_version_number    => p_object_version_number
638       ,p_item_id_query            => p_item_id_query
639       ,p_item_class_order_number  => p_item_class_order_number
640       ,p_item_class_par_mode      => p_item_class_par_mode
641       ,p_item_class_sublist_mode  => p_item_class_sublist_mode
642       ,p_start_date               => l_start_date
643       ,p_end_date                 => l_end_date
644       );
645     --
646     -- Call After Process User Hook
647     --
648     begin
649       ame_item_class_bk5.update_ame_item_class_usage_a
650                 (p_application_id            => p_application_id
651                 ,p_item_class_id             => p_item_class_id
652                 ,p_object_version_number     => p_object_version_number
653                 ,p_item_id_query             => p_item_id_query
654                 ,p_item_class_order_number   => p_item_class_order_number
655                 ,p_item_class_par_mode       => p_item_class_par_mode
656                 ,p_item_class_sublist_mode   => p_item_class_sublist_mode
657                 ,p_start_date                => l_start_date
658                 ,p_end_date                  => l_end_date
659                 );
660 
661     exception
662       when hr_api.cannot_find_prog_unit then
663         hr_api.cannot_find_prog_unit_error
664                               (p_module_name => 'update_ame_item_class_usage'
665                               ,p_hook_type   => 'AP'
666                               );
667     end;
668     --
669     -- When in validation only mode raise the Validate_Enabled exception
670     --
671     if p_validate then
672       raise hr_api.validate_enabled;
673     end if;
674     --
675     -- Set all OUT parameters with out values.
676     --
677     p_start_date   := l_start_date;
678     p_end_date     := l_end_date;
679     --
680     hr_utility.set_location(' Leaving:'||l_proc, 70);
681   exception
682     when hr_api.validate_enabled then
683       --
684       -- As the Validate_Enabled exception has been raised
685       -- we must rollback to the savepoint
686       --
687       rollback to update_ame_item_class_usage;
688       --
689       -- Reset IN OUT parameters and set OUT parameters
690       -- (Any key or derived arguments must be set to null
691       -- when validation only mode is being used.)
692       --
693       p_object_version_number  := l_object_version_number;
694       p_start_date             := null;
695       p_end_date               := null;
696       --
697       hr_utility.set_location(' Leaving:'||l_proc, 80);
698     when others then
699       --
700       -- A validation or unexpected error has occured
701       --
702       rollback to update_ame_item_class_usage;
703       --
704       -- Reset IN OUT parameters and set all
705       -- OUT parameters, including warnings, to null
706       --
707       p_object_version_number  := l_object_version_number;
708       p_start_date             := null;
709       p_end_date               := null;
710       --
711       hr_utility.set_location(' Leaving:'||l_proc, 90);
712       raise;
713   end update_ame_item_class_usage;
714 --
715 -- ----------------------------------------------------------------------------
716 -- |-------------------< DELETE_AME_ITEM_CLASS_USAGE >------------------------|
717 -- ----------------------------------------------------------------------------
718 procedure delete_ame_item_class_usage
719                           (p_validate              in boolean  default false
720                           ,p_application_id        in number
721                           ,p_item_class_id         in number
722                           ,p_object_version_number in out nocopy number
723                           ,p_start_date               out nocopy date
724                           ,p_end_date                 out nocopy date
725                           ) is
726   --
727   -- Declare cursors and local variables
728   --
729   l_proc                   varchar2(72) := g_package||'delete_ame_item_class_usage';
730   l_object_version_number  number;
731   l_start_date             date;
732   l_end_date               date;
733   --
734   begin
735     hr_utility.set_location('Entering:'|| l_proc, 10);
736     --
737     -- Issue a savepoint
738     --
739     savepoint delete_ame_item_class_usage;
740     --
741     -- Remember IN OUT parameter IN values
742     --
743     l_object_version_number := p_object_version_number;
744     --
745     -- Call Before Process User Hook
746     --
747     begin
748       ame_item_class_bk6.delete_ame_item_class_usage_b
749               (p_application_id         => p_application_id
750               ,p_item_class_id          => p_item_class_id
751               ,p_object_version_number  => p_object_version_number
752               );
753 
754     exception
755       when hr_api.cannot_find_prog_unit then
756         hr_api.cannot_find_prog_unit_error
757                               (p_module_name => 'delete_ame_item_class_usage'
758                               ,p_hook_type   => 'BP'
759                               );
760     end;
761     --
762     -- Process Logic
763     --
764     ame_itu_del.del
765         (p_effective_date        => sysdate
766         ,p_datetrack_mode        => hr_api.g_delete
767         ,p_application_id        => p_application_id
768         ,p_item_class_id         => p_item_class_id
769         ,p_object_version_number => p_object_version_number
770         ,p_start_date            => l_start_date
771         ,p_end_date              => l_end_date
772         );
773     --
774     -- Call After Process User Hook
775     --
776     begin
777       ame_item_class_bk6.delete_ame_item_class_usage_a
778         (p_application_id         => p_application_id
779         ,p_item_class_id          => p_item_class_id
780         ,p_object_version_number  => p_object_version_number
781         ,p_start_date             => l_start_date
782         ,p_end_date               => l_end_date
783         );
784     exception
785       when hr_api.cannot_find_prog_unit then
786         hr_api.cannot_find_prog_unit_error
787                               (p_module_name => 'delete_ame_item_class_usage'
788                               ,p_hook_type   => 'AP'
789                               );
790     end;
791     --
792     -- When in validation only mode raise the Validate_Enabled exception
793     --
794     if p_validate then
795       raise hr_api.validate_enabled;
796     end if;
797     --
798     -- Set all IN OUT and OUT parameters with out values.
799     --
800     p_start_date  := l_start_date;
801     p_end_date    := l_end_date;
802     --
803     hr_utility.set_location(' Leaving:'||l_proc, 70);
804   exception
805     when hr_api.validate_enabled then
806       --
807       -- As the Validate_Enabled exception has been raised
808       -- we must rollback to the savepoint
809       --
810       rollback to delete_ame_item_class_usage;
811       --
812       -- Reset IN OUT parameters and set OUT parameters
813       -- (Any key or derived arguments must be set to null
814       -- when validation only mode is being used.)
815       --
816       p_object_version_number := l_object_version_number;
817       p_start_date            := null;
818       p_end_date              := null;
819       --
820       hr_utility.set_location(' Leaving:'||l_proc, 80);
821     when others then
822       --
823       -- A validation or unexpected error has occured
824       --
825       rollback to delete_ame_item_class_usage;
826       --
827       -- Reset IN OUT parameters and set all
828       -- OUT parameters, including warnings, to null
829       --
830       p_object_version_number := l_object_version_number;
831       p_start_date            := null;
832       p_end_date              := null;
833       --
834       hr_utility.set_location(' Leaving:'||l_proc, 90);
835       raise;
836   end delete_ame_item_class_usage;
837 --
838 end AME_ITEM_CLASS_API;