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