[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;