[Home] [Help]
PACKAGE BODY: APPS.PER_POS_STRUCTURE_VERSION_API
Source
1 PACKAGE BODY per_pos_structure_version_api AS
2 /* $Header: pepsvapi.pkb 115.6 2002/12/11 13:48:04 eumenyio noship $ */
3 --
4 -- Package Variables
5 --
6 -- ----------------------------------------------------------------------------
7 -- |--------------------< create_pos_structure_version >----------------------|
8 -- ----------------------------------------------------------------------------
9 --
10 PROCEDURE create_pos_structure_version
11 (p_validate in boolean default false
12 ,p_effective_date in date
13 ,p_position_structure_id in number
14 ,p_date_from in date
15 ,p_version_number in number
16 ,p_copy_structure_version_id in number default null
17 ,p_date_to in date default null
18 ,p_request_id in number default null
19 ,p_program_application_id in number default null
20 ,p_program_id in number default null
21 ,p_program_update_date in date default null
22 ,p_pos_structure_version_id out nocopy number
23 ,p_object_version_number out nocopy number
24 ,p_gap_warning out nocopy boolean
25 ) IS
26 --
27 -- Declare cursors and local variables
28 --
29 l_proc VARCHAR2(72) := g_package||'create_pos_structure_version';
30 l_pos_structure_version_id per_pos_Structure_versions.pos_structure_version_id%TYPE;
31 l_object_version_number per_pos_structure_versions.object_version_number%TYPE;
32 --
33 BEGIN
34 hr_utility.set_location('Entering:'|| l_proc, 10);
35 --
36 -- Issue a savepoint
37 --
38 savepoint create_pos_structure_version;
39 --
40
41 begin
42
43 per_pos_structure_version_bk1.create_pos_structure_version_b
44 (p_validate => p_validate
45 ,p_effective_date => p_effective_date
46 ,p_position_structure_id => p_position_structure_id
47 ,p_date_from => p_date_from
48 ,p_version_number => p_version_number
49 ,p_copy_structure_version_id => p_copy_structure_version_id
50 ,p_date_to => p_date_to
51 ,p_request_id => p_request_id
52 ,p_program_application_id => p_program_application_id
53 ,p_program_id => p_program_id
54 ,p_program_update_date => p_program_update_date
55 );
56 exception
57 when hr_api.cannot_find_prog_unit then
58 hr_api.cannot_find_prog_unit_error
59 (p_module_name => 'create_pos_structure_version'
60 ,p_hook_type => 'BP'
61 );
62 end;
63
64 --
65 --
66 hr_utility.set_location(l_proc, 20);
67 --
68 -- Process Logic
69 --
70 per_psv_ins.ins
71 (p_effective_date => p_effective_date
72 ,p_position_structure_id => p_position_structure_id
73 ,p_date_from => p_date_from
74 ,p_version_number => p_version_number
75 ,p_copy_structure_version_id => p_copy_structure_version_id
76 ,p_date_to => p_date_to
77 ,p_request_id => p_request_id
78 ,p_program_application_id => p_program_application_id
79 ,p_program_id => p_program_id
80 ,p_program_update_date => p_program_update_date
81 ,p_pos_structure_version_id => l_pos_structure_version_id
82 ,p_object_version_number => l_object_version_number
83 ,p_gap_warning => p_gap_warning
84 );
85 --
86 hr_utility.set_location(l_proc, 60);
87 --
88 -- When in validation only mode raise the Validate_Enabled exception
89 --
90 IF p_validate THEN
91 RAISE hr_api.validate_enabled;
92 END IF;
93 --
94 -- Set all output arguments
95 --
96 p_pos_structure_version_id := l_pos_structure_version_id;
97 p_object_version_number := l_object_version_number;
98 --
99 hr_utility.set_location(' Leaving:'||l_proc, 70);
100 --
101
102
103
104 begin
105
106 per_pos_structure_version_bk1.create_pos_structure_version_a
107 (p_validate => p_validate
108 ,p_effective_date => p_effective_date
109 ,p_position_structure_id => p_position_structure_id
110 ,p_date_from => p_date_from
111 ,p_version_number => p_version_number
112 ,p_copy_structure_version_id => p_copy_structure_version_id
113 ,p_date_to => p_date_to
114 ,p_request_id => p_request_id
115 ,p_program_application_id => p_program_application_id
116 ,p_program_id => p_program_id
117 ,p_program_update_date => p_program_update_date
118 ,p_pos_structure_version_id => l_pos_structure_version_id
119 ,p_object_version_number => l_object_version_number
120 ,p_gap_warning => p_gap_warning);
121 exception
122 when hr_api.cannot_find_prog_unit then
123 hr_api.cannot_find_prog_unit_error
124 (p_module_name => 'create_pos_structure_version'
125 ,p_hook_type => 'AP'
126 );
127 end;
128
129
130 EXCEPTION
131 --
132 WHEN hr_api.validate_enabled THEN
133 --
134 -- As the Validate_Enabled exception has been raised
135 -- we must rollback to the savepoint
136 --
137 ROLLBACK TO create_pos_structure_version;
138 --
139 -- Only set output warning arguments
140 -- (Any key or derived arguments must be set to null
141 -- when validation only mode is being used.)
142 --
143 p_pos_structure_version_id := NULL;
144 p_object_version_number := NULL;
145 hr_utility.set_location(' Leaving:'||l_proc, 80);
146 WHEN OTHERS THEN
147 --
148 -- A validation or unexpected error has occurred
149 p_pos_structure_version_id := NULL;
150 p_object_version_number := NULL;
151 p_gap_warning := NULL;
152 ROLLBACK TO create_pos_structure_version;
153 hr_utility.set_location(' Leaving:'||l_proc, 90);
154 RAISE;
155 --
156 END create_pos_structure_version;
157
158
159
160 -- ----------------------------------------------------------------------------
161 -- |---------------------< update_pos_structure_version >---------------------|
162 -- ----------------------------------------------------------------------------
163 --
164 --
165 PROCEDURE update_pos_structure_version
166 (p_validate in boolean default false
167 ,p_effective_date in date
168 ,p_date_from in date
169 ,p_version_number in number
170 ,p_copy_structure_version_id in number default hr_api.g_number
171 ,p_date_to in date default hr_api.g_date
172 ,p_request_id in number default hr_api.g_number
173 ,p_program_application_id in number default hr_api.g_number
174 ,p_program_id in number default hr_api.g_number
175 ,p_program_update_date in date default hr_api.g_date
176 ,p_pos_structure_version_id in number
177 ,p_object_version_number in out nocopy number
178 ,p_gap_warning out nocopy boolean) IS
179 --
180 -- Declare cursors and local variables
181 --
182 l_proc VARCHAR2(72) := g_package||'update_pos_structures';
183 l_object_version_number per_position_structures.object_version_number%TYPE;
184 l_temp_ovn number := p_object_version_number;
185 BEGIN
186
187 --
188 -- Issue a savepoint.
189 --
190 savepoint update_pos_structure_version;
191 --
192 begin
193 per_pos_structure_version_bk2.update_pos_structure_version_b
194 ( p_validate => p_validate
195 ,p_effective_date => p_effective_date
196 ,p_date_from => p_date_from
197 ,p_version_number => p_version_number
198 ,p_copy_structure_version_id => p_copy_structure_version_id
199 ,p_date_to => p_date_to
200 ,p_request_id => p_request_id
201 ,p_program_application_id => p_program_application_id
202 ,p_program_id => p_program_id
203 ,p_program_update_date => p_program_update_date
204 ,p_pos_structure_version_id => p_pos_structure_version_id
205 ,p_object_version_number => p_object_version_number
206 );
207
208 exception
209 when hr_api.cannot_find_prog_unit then
210 hr_api.cannot_find_prog_unit_error
211 (p_module_name => 'update_pos_structure'
212 ,p_hook_type => 'BP'
213 );
214 end;
215 --
216 hr_utility.set_location('Entering:'|| l_proc, 10);
217 --
218 --
219 hr_utility.set_location(l_proc, 20);
220 --
221 --
222 -- Process Logic
223 --
224 l_object_version_number := p_object_version_number;
225 --
226 --
227 --
228 per_psv_upd.upd
229 (p_effective_date => p_effective_date
230 ,p_position_structure_id => hr_api.g_number
231 ,p_date_from => p_date_from
232 ,p_version_number => p_version_number
233 ,p_copy_structure_version_id => p_copy_structure_version_id
234 ,p_date_to => p_date_to
235 ,p_request_id => p_request_id
236 ,p_program_application_id => p_program_application_id
237 ,p_program_id => p_program_id
238 ,p_program_update_date => p_program_update_date
239 ,p_pos_structure_version_id => p_pos_structure_version_id
240 ,p_object_version_number => l_object_version_number
241 ,p_gap_warning => p_gap_warning );
242 --
243 --
244 --
245 --
246 hr_utility.set_location(l_proc, 60);
247 --
248 -- When in validation only mode raise the Validate_Enabled exception
249 --
250 IF p_validate THEN
251 RAISE hr_api.validate_enabled;
252 END IF;
253 --
254 -- Set all output arguments. If p_validate was TRUE, this bit is
255 -- never reached, so p_object_version_number is passed back unchanged.
256 --
257 p_object_version_number := l_object_version_number;
258 --
259 hr_utility.set_location(' Leaving:'||l_proc, 70);
260 --
261
262 begin
263 per_pos_structure_version_bk2.update_pos_structure_version_a
264 (p_validate => p_validate
265 ,p_effective_date => p_effective_date
266 ,p_date_from => p_date_from
267 ,p_version_number => p_version_number
268 ,p_copy_structure_version_id => p_copy_structure_version_id
269 ,p_date_to => p_date_to
270 ,p_request_id => p_request_id
271 ,p_program_application_id => p_program_application_id
272 ,p_program_id => p_program_id
273 ,p_program_update_date => p_program_update_date
274 ,p_pos_structure_version_id => p_pos_structure_version_id
275 ,p_object_version_number => p_object_version_number
276 ,p_gap_warning => p_gap_warning);
277
278 exception
279 when hr_api.cannot_find_prog_unit then
280 hr_api.cannot_find_prog_unit_error
281 (p_module_name => 'update_pos_structure_version'
282 ,p_hook_type => 'AP'
283 );
284 end;
285
286 EXCEPTION
287 --
288 WHEN hr_api.validate_enabled THEN
289 --
290 -- As the Validate_Enabled exception has been raised
291 -- we must rollback to the savepoint
292 --
293 ROLLBACK TO update_pos_structure_version;
294 --
295 -- Only set output warning arguments
296 -- (Any key or derived arguments must be set to null
297 -- when validation only mode is being used.)
298
299 hr_utility.set_location(' Leaving:'||l_proc, 80);
300 WHEN OTHERS THEN
301 --
302 -- A validation or unexpected error has occurred
303 p_gap_warning := NULL;
304 p_object_version_number := l_temp_ovn;
305 ROLLBACK TO update_pos_structure_version;
306 hr_utility.set_location(' Leaving:'||l_proc, 90);
307 RAISE;
308 --
309 --
310 END update_pos_structure_version;
311
312 -- ----------------------------------------------------------------------------
313 -- |---------------------< delete_pos_structure_version >---------------------|
314 -- ----------------------------------------------------------------------------
315 --
316 PROCEDURE delete_pos_structure_version
317 ( p_validate IN BOOLEAN default false
318 ,p_pos_structure_version_id IN number
319 ,p_object_version_number IN number )
320
321 IS
322 --
323 --
324 -- Declare cursors and local variables
325 --
326 l_proc VARCHAR2(72) := g_package||'delete_pos_structure_version';
327 --
328 BEGIN
329
330 --
331 -- Issue a savepoint
332 --
333 savepoint delete_pos_structure_version;
334 --
335 begin
336 per_pos_structure_version_bk3.delete_pos_structure_version_b
337 ( p_validate => p_validate
338 , p_pos_structure_version_id => p_pos_structure_version_id
339 , p_object_version_number => p_object_version_number
340 );
341
342 exception
343 when hr_api.cannot_find_prog_unit then
344 hr_api.cannot_find_prog_unit_error
345 (p_module_name => 'delete_pos_structure_version'
346 ,p_hook_type => 'BP'
347 );
348 end;
349
350 --
351 -- Process Logic
352 -- =============
353 --
354 -- Need to lock main table to maintain the locking ladder order
355 --
356 hr_utility.set_location( l_proc, 30);
357 per_psv_shd.lck (p_pos_structure_version_id => p_pos_structure_version_id,
358 p_object_version_number => p_object_version_number );
359 --
360 hr_utility.set_location( l_proc, 40);
361 per_psv_del.del ( p_pos_structure_version_id => p_pos_structure_version_id,
362 p_object_version_number => p_object_version_number );
363 --
364 --
365 hr_utility.set_location(' Leaving:'||l_proc, 60);
366 --
367 -- When in validation only mode raise the Validate_Enabled exception
368 --
369 IF p_validate THEN
370 RAISE hr_api.validate_enabled;
371 END IF;
372 --
373 --
374 begin
375 per_pos_structure_version_bk3.delete_pos_structure_version_a
376 (p_validate => p_validate
377 ,p_pos_structure_version_id => p_pos_structure_version_id
378 ,p_object_version_number => p_object_version_number
379 );
380
381 exception
382 when hr_api.cannot_find_prog_unit then
383 hr_api.cannot_find_prog_unit_error
384 (p_module_name => 'delete_pos_structure_version'
385 ,p_hook_type => 'AP'
386 );
387 end;
388
389
390 EXCEPTION
391 --
392 WHEN hr_api.validate_enabled THEN
393 --
394 -- As the Validate_Enabled exception has been raised
395 -- we must rollback to the savepoint
396 --
397 ROLLBACK TO delete_pos_structure_version;
398 --
399 -- Only set output warning arguments
400 -- (Any key or derived arguments must be set to null
401 -- when validation only mode is being used.)
402 --
403 hr_utility.set_location(' Leaving:'||l_proc, 80);
404 WHEN OTHERS THEN
405 --
406 -- A validation or unexpected error has occurred
407 ROLLBACK TO delete_pos_structure_version;
408 hr_utility.set_location(' Leaving:'||l_proc, 90);
409 RAISE;
410 --
411 end delete_pos_structure_version;
412 --
413 --
414 END per_pos_structure_version_api;