DBA Data[Home] [Help]

PACKAGE BODY: APPS.AME_APPROVER_TYPE_API

Source


1 Package Body ame_approver_type_api as
2 /* $Header: amaptapi.pkb 120.1 2006/04/21 08:43:18 avarri noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := 'ame_approver_type_api.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< create_ame_approver_type >--------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_ame_approver_type
13   (p_validate                      in            boolean  default false
14   ,p_orig_system                   in            varchar2
15   ,p_approver_type_id              out nocopy    number
16   ,p_object_version_number         out nocopy    number
17   ,p_start_date                    out nocopy    date
18   ,p_end_date                      out nocopy    date
19   ) is
20   --
21   -- Declare cursors and local variables
22   --
23   l_proc             varchar2(72)   := g_package||'create_ame_approver_type';
24   l_approver_type_id                number;
25   l_object_version_number           number;
26   l_start_date                      date;
27   l_end_date                        date;
28   l_swi_call                        boolean;
29   l_swi_package_name varchar2(30)   := 'ame_approver_type_swi';
30 --
31   begin
32     hr_utility.set_location('Entering:'|| l_proc, 10);
33     --
34     -- Issue a savepoint
35     --
36     savepoint create_ame_approver_type;
37     --
38     -- Remember IN OUT parameter IN values. None here.
39     --
40     -- Call Before Process User Hook
41   begin
42     ame_approver_type_bk1.create_ame_approver_type_b
43       (p_approver_type_id       => p_approver_type_id
44       ,p_orig_system            => p_orig_system
45       );
46   exception
47     when hr_api.cannot_find_prog_unit then
48       hr_api.cannot_find_prog_unit_error
49         (p_module_name  => 'create_ame_approver_type'
50         ,p_hook_type    => 'BP'
51         );
52   end;
53   --
54   -- Validation in addition to Row Handlers
55   --
56   --
57   -- Process Logic
58   --
59   l_swi_call := true;
60   --
61  ame_apt_ins.ins(p_effective_date               => sysdate
62                 ,p_approver_type_id             => l_approver_type_id
63                 ,p_orig_system                  => p_orig_system
64                 ,p_object_version_number        => l_object_version_number
65                 ,p_start_date                   => l_start_date
66                 ,p_end_date                     => l_end_date
67                 );
68   --
69   -- Call After Process User Hook
70   --
71   begin
72     ame_approver_type_bk1.create_ame_approver_type_a
73       (p_orig_system                   => p_orig_system
74       ,p_approver_type_id              => l_approver_type_id
75       ,p_object_version_number         => l_object_version_number
76       ,p_start_date                    => l_start_date
77       ,p_end_date                      => l_end_date
78       );
79   exception
80     when hr_api.cannot_find_prog_unit then
81       hr_api.cannot_find_prog_unit_error
82         (p_module_name => 'create_ame_approver_type'
83         ,p_hook_type   => 'AP'
84         );
85   end;
86   --
87   -- When in validation only mode raise the Validate_Enabled exception
88   --
89   if p_validate then
90     raise hr_api.validate_enabled;
91   end if;
92   --
93   -- Set all IN OUT and OUT parameters with out values
94   --
95   p_approver_type_id           := l_approver_type_id;
96   p_object_version_number      := l_object_version_number;
97   p_start_date                 := l_start_date;
98   p_end_date                   := l_end_date;
99 
100   --
101   hr_utility.set_location(' Leaving:'||l_proc, 70);
102 exception
103   when hr_api.validate_enabled then
104     --
105     -- As the Validate_Enabled exception has been raised
106     -- we must rollback to the savepoint
107     --
108     rollback to create_ame_approver_type;
109     --
110     -- Reset IN OUT parameters and set OUT parameters
111     -- (Any key or derived arguments must be set to null
112     -- when validation only mode is being used.)
113     --
114    p_approver_type_id           := null;
115    p_object_version_number      := null;
116    p_start_date                 := null;
117    p_end_date                   := null;
118  hr_utility.set_location(' Leaving:'||l_proc, 80);
119   when others then
120     --
121     -- A validation or unexpected error has occured
122     --
123     rollback to create_ame_approver_type;
124     --
125     -- Reset IN OUT parameters and set all
126     -- OUT parameters, including warnings, to null
127     --
128     p_approver_type_id           := null;
129     p_object_version_number      := null;
130     p_start_date                 := null;
131     p_end_date                   := null;
132 
133     hr_utility.set_location(' Leaving:'||l_proc, 90);
134     raise;
135 end create_ame_approver_type;
136 --
137 -- ----------------------------------------------------------------------------
138 -- |--------------------< delete_ame_approver_type >--------------------------|
139 -- ----------------------------------------------------------------------------
140 --
141 procedure delete_ame_approver_type
142   (p_validate                   in      boolean  default false
143   ,p_approver_type_id           in      number
144   ,p_object_version_number      in out  nocopy   number
145   ,p_start_date                    out  nocopy   date
146   ,p_end_date                      out  nocopy   date
147   ) is
148   --
149   -- Declare cursors and local variables
150   --
151   cursor attribute_cur(p_approver_type_id in number,
152                            p_effective_date in date) is
153     select attribute_id, object_version_number
154       from ame_attributes
155       where
156         approver_type_id = p_approver_type_id
157         and p_effective_date
158         between start_date and nvl(end_date - ame_util.oneSecond, p_effective_date);
159   --
160   l_proc                       varchar2(72) := g_package||'delete_ame_approver_type';
161   l_effective_date             date;
162 
163   l_attribute_ids          ame_util.idList;
164   l_atr_object_version_number  number;
165   l_atr_object_version_numbers ame_util.idList;
166   l_atr_start_date             date;
167   l_atr_end_date               date;
168   l_apt_object_version_number  number;
169   l_apt_start_date             date;
170   l_apt_end_date               date;
171   l_apg_object_version_number  number;
172   l_apg_orig_system            varchar2(100);
173   l_approver_group_ids          ame_util.idList;
174   l_apu_approver_type_ids      ame_util.idList;
175   l_apu_object_version_number  number;
176   l_apu_object_version_numbers ame_util.idList;
177   l_apu_start_date             date;
178   l_apu_end_date               date;
179   l_rule_types                 ame_util.idList;
180   l_effective_date2            date;
181   l_config_count               number;
182   l_rule_usage_count           number;
183   --
184 begin
185   hr_utility.set_location('Entering:'|| l_proc, 10);
186   -- Issue a savepoint.
187   --
188   -- Set the effective date to the sysdate
189   l_effective_date            := sysdate;
190   l_apt_object_version_number := p_object_version_number;
191   l_atr_object_version_number := p_object_version_number;
192 
193   savepoint delete_ame_approver_type;
194   --
195   -- Process Logic
196   -- Call DBMS_UTILITY.FORMAT_CALL_STACK to check if the call has been made
197   -- from the 'AME_APPROVER_SWI' package.
198   -- if (instrb(DBMS_UTILITY.FORMAT_CALL_STACK,'AME_APPROVER_SWI') = 0) then
199   -- Call Before Process User Hook
200   begin
201     ame_approver_type_bk2.delete_ame_approver_type_b
202       (p_approver_type_id        => p_approver_type_id
203       ,p_object_version_number   => p_object_version_number
204       );
205     exception
206       when hr_api.cannot_find_prog_unit then
207         hr_api.cannot_find_prog_unit_error
208         (p_module_name => 'delete_ame_approver_type'
209         ,p_hook_type   => 'BP'
210         );
211   end;
212   --
213   -- Remove approvertype
214   --
215   l_effective_date2 := sysdate;
216   l_apt_object_version_number := p_object_version_number;
217   ame_apt_del.del(p_approver_type_id      => p_approver_type_id
218                  ,p_datetrack_mode        => hr_api.g_delete
219                  ,p_object_version_number => l_apt_object_version_number
220                  ,p_effective_date        => sysdate
221                  ,p_start_date            => l_apt_start_date
222                  ,p_end_date              => l_apt_end_date
223                  );
224   --
225   -- Call After Process User Hook
226   --
227   begin
228      ame_approver_type_bk2.delete_ame_approver_type_a
229       (p_approver_type_id        => p_approver_type_id
230       ,p_object_version_number   => l_apt_object_version_number
231       ,p_start_date              => l_apt_start_date
232       ,p_end_date                => l_apt_end_date
233       );
234     exception
235       when hr_api.cannot_find_prog_unit then
236         hr_api.cannot_find_prog_unit_error(p_module_name => 'delete_ame_approver_type'
237                                           ,p_hook_type   => 'AP'
238                                           );
239   end;
240   if p_validate then
241     raise hr_api.validate_enabled;
242   end if;
243   --
244   p_object_version_number := l_apt_object_version_number;
245   p_start_date := l_apt_start_date;
246   p_end_date := l_apt_end_date;
247   hr_utility.set_location(' Leaving:'||l_proc, 50);
248 exception
249   when hr_api.validate_enabled then
250     --
251     -- As the Validate_Enabled exception has been raised
252     -- we must rollback to the savepoint
253     --
254     ROLLBACK TO delete_ame_approver_type;
255     --
256     p_object_version_number := null;
257     p_start_date := null;
258     p_end_date := null;
259     --
260     hr_utility.set_location(' Leaving:'||l_proc, 60);
261   when others then
262     --
263     -- A validation or unexpected error has occurred
264     p_object_version_number := null;
265     p_start_date := null;
266     p_end_date := null;
267     --
268     hr_utility.set_location(' Leaving:'||l_proc, 70);
269     ROLLBACK TO delete_ame_approver_type;
270     raise;
271     --
272     -- End of fix.
273     --
274 end delete_ame_approver_type;
275 --
276 end ame_approver_type_api;