DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_POSITION_STRUCTURE_API

Source


1 PACKAGE BODY per_position_structure_api AS
2 /* $Header: pepstapi.pkb 115.7 2002/12/11 12:15:52 eumenyio noship $ */
3 --
4 -- Package Variables
5 --
6 -- ----------------------------------------------------------------------------
7 -- |------------------< create_pos_struct_and_def_ver >--------------------|
8 -- ----------------------------------------------------------------------------
9 --
10 PROCEDURE create_pos_struct_and_def_ver
11   (p_validate                       IN     BOOLEAN   DEFAULT false
12   ,p_effective_date                 in     date
13   ,p_name                           in     varchar2
14   ,p_business_group_id              in     number
15   ,p_comments                       in     varchar2 default null
16   ,p_primary_position_flag         in     varchar2 default 'N'
17   ,p_request_id                     in     number   default null
18   ,p_program_application_id         in     number   default null
19   ,p_program_id                     in     number   default null
20   ,p_program_update_date            in     date     default null
21   ,p_attribute_category             in     varchar2 default null
22   ,p_attribute1                     in     varchar2 default null
23   ,p_attribute2                     in     varchar2 default null
24   ,p_attribute3                     in     varchar2 default null
25   ,p_attribute4                     in     varchar2 default null
26   ,p_attribute5                     in     varchar2 default null
27   ,p_attribute6                     in     varchar2 default null
28   ,p_attribute7                     in     varchar2 default null
29   ,p_attribute8                     in     varchar2 default null
30   ,p_attribute9                     in     varchar2 default null
31   ,p_attribute10                    in     varchar2 default null
32   ,p_attribute11                    in     varchar2 default null
33   ,p_attribute12                    in     varchar2 default null
34   ,p_attribute13                    in     varchar2 default null
35   ,p_attribute14                    in     varchar2 default null
36   ,p_attribute15                    in     varchar2 default null
37   ,p_attribute16                    in     varchar2 default null
38   ,p_attribute17                    in     varchar2 default null
39   ,p_attribute18                    in     varchar2 default null
40   ,p_attribute19                    in     varchar2 default null
41   ,p_attribute20                    in     varchar2 default null
42   ,p_position_structure_id         out nocopy number
43   ,p_object_version_number             out nocopy number
44 
45   ) IS
46 l_bin   number(9);
47 l_gap_warning boolean;
48 begin
49 
50 create_position_structure
51   (p_validate                     => p_validate
52   ,p_effective_date               => p_effective_date
53   ,p_name                         => p_name
54   ,p_business_group_id            => p_business_group_id
55   ,p_comments                     => p_comments
56   ,p_primary_position_flag       => p_primary_position_flag
57   ,p_request_id                   => p_request_id
58   ,p_program_application_id       => p_program_application_id
59   ,p_program_id                   => p_program_id
60   ,p_program_update_date          => p_program_update_date
61   ,p_attribute_category           => p_attribute_category
62   ,p_attribute1                   => p_attribute1
63   ,p_attribute2                   => p_attribute2
64   ,p_attribute3                   => p_attribute3
65   ,p_attribute4                   => p_attribute4
66   ,p_attribute5                   => p_attribute5
67   ,p_attribute6                   => p_attribute6
68   ,p_attribute7                   => p_attribute7
69   ,p_attribute8                   => p_attribute8
70   ,p_attribute9                   => p_attribute9
71   ,p_attribute10                  => p_attribute10
72   ,p_attribute11                  => p_attribute11
73   ,p_attribute12                  => p_attribute12
74   ,p_attribute13                  => p_attribute13
75   ,p_attribute14                  => p_attribute14
76   ,p_attribute15                  => p_attribute15
77   ,p_attribute16                  => p_attribute16
78   ,p_attribute17                  => p_attribute17
79   ,p_attribute18                  => p_attribute18
80   ,p_attribute19                  => p_attribute19
81   ,p_attribute20                  => p_attribute20
82   ,p_position_structure_id    => p_position_structure_id
83   ,p_object_version_number        => p_object_version_number
84   );
85 per_pos_structure_version_api.create_pos_structure_version
86   (p_validate                     => p_validate
87   ,p_effective_date               => p_effective_date
88   ,p_position_structure_id    => p_position_structure_id
89   ,p_date_from                    => p_effective_date
90   ,p_version_number               => 1
91   ,p_request_id                   => p_request_id
92   ,p_program_application_id       => p_program_application_id
93   ,p_program_id                   => p_program_id
94   ,p_program_update_date          => p_program_update_date
95   ,p_pos_structure_version_id     => l_bin
96   ,p_object_version_number        => l_bin
97   ,p_gap_warning                  => l_gap_warning
98   );
99 end create_pos_struct_and_def_ver;
100 
101 
102 -- ----------------------------------------------------------------------------
103 -- |--------------------< create_position_structure >---------------------|
104 -- ----------------------------------------------------------------------------
105 --
106 PROCEDURE create_position_structure
107   (p_validate                       IN     BOOLEAN   DEFAULT false
108   ,p_effective_date                 in     date
109   ,p_name                           in     varchar2
110   ,p_business_group_id              in     number
111   ,p_comments                       in     varchar2 default null
112   ,p_primary_position_flag         in     varchar2 default 'N'
113   ,p_request_id                     in     number   default null
114   ,p_program_application_id         in     number   default null
115   ,p_program_id                     in     number   default null
116   ,p_program_update_date            in     date     default null
117   ,p_attribute_category             in     varchar2 default null
118   ,p_attribute1                     in     varchar2 default null
119   ,p_attribute2                     in     varchar2 default null
120   ,p_attribute3                     in     varchar2 default null
121   ,p_attribute4                     in     varchar2 default null
122   ,p_attribute5                     in     varchar2 default null
123   ,p_attribute6                     in     varchar2 default null
124   ,p_attribute7                     in     varchar2 default null
125   ,p_attribute8                     in     varchar2 default null
126   ,p_attribute9                     in     varchar2 default null
127   ,p_attribute10                    in     varchar2 default null
128   ,p_attribute11                    in     varchar2 default null
129   ,p_attribute12                    in     varchar2 default null
130   ,p_attribute13                    in     varchar2 default null
131   ,p_attribute14                    in     varchar2 default null
132   ,p_attribute15                    in     varchar2 default null
133   ,p_attribute16                    in     varchar2 default null
134   ,p_attribute17                    in     varchar2 default null
135   ,p_attribute18                    in     varchar2 default null
136   ,p_attribute19                    in     varchar2 default null
137   ,p_attribute20                    in     varchar2 default null
138   ,p_position_structure_id         out nocopy number
139   ,p_object_version_number             out nocopy number
140 
141   ) IS
142   --
143   -- Declare cursors and local variables
144   --
145   l_proc                  VARCHAR2(72) := g_package||'create_position_structure';
146   l_position_structure_id       per_position_Structures.position_structure_id%TYPE;
147   l_object_version_number per_position_structures.object_version_number%TYPE;
148   --
149 BEGIN
150   hr_utility.set_location('Entering:'|| l_proc, 10);
151   --
152   -- Issue a savepoint
153   --
154   savepoint create_position_structure;
155   --
156 
157 begin
158 
159 per_pos_structure_bk1.create_pos_structure_b
160   (p_validate                     => p_validate
161   ,p_effective_date               => p_effective_date
162   ,p_name                         => p_name
163   ,p_business_group_id            => p_business_group_id
164   ,p_comments                     => p_comments
165   ,p_primary_position_flag       => p_primary_position_flag
166   ,p_request_id                   => p_request_id
167   ,p_program_application_id       => p_program_application_id
168   ,p_program_id                   => p_program_id
169   ,p_program_update_date          => p_program_update_date
170   ,p_attribute_category           => p_attribute_category
171   ,p_attribute1                   => p_attribute1
172   ,p_attribute2                   => p_attribute2
173   ,p_attribute3                   => p_attribute3
174   ,p_attribute4                   => p_attribute4
175   ,p_attribute5                   => p_attribute5
176   ,p_attribute6                   => p_attribute6
177   ,p_attribute7                   => p_attribute7
178   ,p_attribute8                   => p_attribute8
179   ,p_attribute9                   => p_attribute9
180   ,p_attribute10                  => p_attribute10
181   ,p_attribute11                  => p_attribute11
182   ,p_attribute12                  => p_attribute12
183   ,p_attribute13                  => p_attribute13
184   ,p_attribute14                  => p_attribute14
185   ,p_attribute15                  => p_attribute15
186   ,p_attribute16                  => p_attribute16
187   ,p_attribute17                  => p_attribute17
188   ,p_attribute18                  => p_attribute18
189   ,p_attribute19                  => p_attribute19
190   ,p_attribute20                  => p_attribute20
191   );
192   exception
193     when hr_api.cannot_find_prog_unit then
194       hr_api.cannot_find_prog_unit_error
195         (p_module_name => 'create_position_structure'
196         ,p_hook_type   => 'BP'
197         );
198   end;
199 
200   --
201   --
202   --
203   hr_utility.set_location(l_proc, 20);
204   --
205   -- Process Logic
206   --
207   per_pst_ins.ins
208   (p_effective_date                  =>p_effective_date
209   ,p_name                            =>p_name
210   ,p_business_group_id               =>p_business_group_id
211   ,p_comments                        =>p_comments
212   ,p_primary_position_flag          =>p_primary_position_flag
213   ,p_request_id                      =>p_request_id
214   ,p_program_application_id          =>p_program_application_id
215   ,p_program_id                      =>p_program_id
216   ,p_program_update_date             =>p_program_update_date
217   ,p_attribute_category              =>p_attribute_category
218   ,p_attribute1                      =>p_attribute1
219   ,p_attribute2                      =>p_attribute2
220   ,p_attribute3                      =>p_attribute3
221   ,p_attribute4                      =>p_attribute4
222   ,p_attribute5                      =>p_attribute5
223   ,p_attribute6                      =>p_attribute6
224   ,p_attribute7                      =>p_attribute7
225   ,p_attribute8                      =>p_attribute8
226   ,p_attribute9                      =>p_attribute9
227   ,p_attribute10                     =>p_attribute10
228   ,p_attribute11                     =>p_attribute11
229   ,p_attribute12                     =>p_attribute12
230   ,p_attribute13                     =>p_attribute13
231   ,p_attribute14                     =>p_attribute14
232   ,p_attribute15                     =>p_attribute15
233   ,p_attribute16                     =>p_attribute16
234   ,p_attribute17                     =>p_attribute17
235   ,p_attribute18                     =>p_attribute18
236   ,p_attribute19                     =>p_attribute19
237   ,p_attribute20                     =>p_attribute20
238   ,p_position_structure_id       =>l_position_structure_id
239   ,p_object_version_number           =>l_object_version_number );
240 
241   --
242   hr_utility.set_location(l_proc, 60);
243   --
244   -- When in validation only mode raise the Validate_Enabled exception
245   --
246   IF p_validate THEN
247     RAISE hr_api.validate_enabled;
248   END IF;
249   --
250   -- Set all output arguments
251   --
252   p_position_structure_id := l_position_structure_id;
253   p_object_version_number := l_object_version_number;
254   --
255   hr_utility.set_location(' Leaving:'||l_proc, 70);
256   --
257 
258 
259 
260 begin
261 
262 per_pos_structure_bk1.create_pos_structure_a
263   (p_validate                     => p_validate
264   ,p_effective_date               => p_effective_date
265   ,p_name                         => p_name
266   ,p_business_group_id            => p_business_group_id
267   ,p_comments                     => p_comments
268   ,p_primary_position_flag       => p_primary_position_flag
269   ,p_request_id                   => p_request_id
270   ,p_program_application_id       => p_program_application_id
271   ,p_program_id                   => p_program_id
272   ,p_program_update_date          => p_program_update_date
273   ,p_attribute_category           => p_attribute_category
274   ,p_attribute1                   => p_attribute1
275   ,p_attribute2                   => p_attribute2
276   ,p_attribute3                   => p_attribute3
277   ,p_attribute4                   => p_attribute4
278   ,p_attribute5                   => p_attribute5
279   ,p_attribute6                   => p_attribute6
280   ,p_attribute7                   => p_attribute7
281   ,p_attribute8                   => p_attribute8
282   ,p_attribute9                   => p_attribute9
283   ,p_attribute10                  => p_attribute10
284   ,p_attribute11                  => p_attribute11
285   ,p_attribute12                  => p_attribute12
286   ,p_attribute13                  => p_attribute13
290   ,p_attribute17                  => p_attribute17
287   ,p_attribute14                  => p_attribute14
288   ,p_attribute15                  => p_attribute15
289   ,p_attribute16                  => p_attribute16
291   ,p_attribute18                  => p_attribute18
292   ,p_attribute19                  => p_attribute19
293   ,p_attribute20                  => p_attribute20
294   ,p_object_version_number        => p_object_version_number
295   ,p_position_structure_id        => p_position_structure_id);
296   exception
297     when hr_api.cannot_find_prog_unit then
298       hr_api.cannot_find_prog_unit_error
299         (p_module_name => 'create_position_structure'
300         ,p_hook_type   => 'AP'
301         );
302   end;
303 
304 
305 EXCEPTION
306   --
307   WHEN hr_api.validate_enabled THEN
308     --
309     -- As the Validate_Enabled exception has been raised
310     -- we must rollback to the savepoint
311     --
312     ROLLBACK TO create_position_structure;
313     --
314     -- Only set output warning arguments
315     -- (Any key or derived arguments must be set to null
316     -- when validation only mode is being used.)
317     --
318     p_position_structure_id := NULL;
319     p_object_version_number  := NULL;
320     hr_utility.set_location(' Leaving:'||l_proc, 80);
321   WHEN OTHERS THEN
322     --
323     -- A validation or unexpected error has occurred
324     p_position_structure_id := NULL;
325     p_object_version_number  := NULL;
326     ROLLBACK TO create_position_structure;
327     hr_utility.set_location(' Leaving:'||l_proc, 90);
328     RAISE;
329    --
330 END create_position_structure;
331 
332 
333 
334 
335 -- ----------------------------------------------------------------------------
336 -- |-------------------< update_position_structure >----------------------|
337 -- ----------------------------------------------------------------------------
338 --
339 --
340 PROCEDURE update_position_structure
341   (p_validate                     in     boolean   default false
342   ,p_effective_date               in     date
343   ,p_position_structure_id    in     number
344   ,p_name                         in     varchar2  default hr_api.g_varchar2
345   ,p_comments                     in     varchar2  default hr_api.g_varchar2
346   ,p_primary_position_flag       in     varchar2  default hr_api.g_varchar2
347   ,p_request_id                   in     number    default hr_api.g_number
348   ,p_program_application_id       in     number    default hr_api.g_number
349   ,p_program_id                   in     number    default hr_api.g_number
350   ,p_program_update_date          in     date      default hr_api.g_date
351   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
352   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
353   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
354   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
355   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
356   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
357   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
358   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
359   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
360   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
361   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
362   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
363   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
364   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
365   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
366   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
367   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
368   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
369   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
370   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
371   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
372   ,p_object_version_number        in out nocopy number
373 ) IS
374   --
375   -- Declare cursors and local variables
376   --
377   l_proc                  VARCHAR2(72) := g_package||'update_position_structures';
378   l_object_version_number per_position_structures.object_version_number%TYPE;
379   l_temp_ovn              number       := p_object_version_number;
380 BEGIN
381 
382   --
383   -- Issue a savepoint.
384   --
385   savepoint update_position_structure;
386   --
387 begin
388 per_pos_structure_bk2.update_pos_structure_b
389   (p_validate                       =>  p_validate
390   ,p_effective_date                 =>  p_effective_date
391   ,p_position_structure_id      =>  p_position_structure_id
392   ,p_object_version_number          =>  p_object_version_number
393   ,p_name                           =>  p_name
394   ,p_comments                       =>  p_comments
395   ,p_primary_position_flag         =>  p_primary_position_flag
396   ,p_request_id                     =>  p_request_id
397   ,p_program_application_id         =>  p_program_application_id
401   ,p_attribute1                     =>  p_attribute1
398   ,p_program_id                     =>  p_program_id
399   ,p_program_update_date            =>  p_program_update_date
400   ,p_attribute_category             =>  p_attribute_category
402   ,p_attribute2                     =>  p_attribute2
403   ,p_attribute3                     =>  p_attribute3
404   ,p_attribute4                     =>  p_attribute4
405   ,p_attribute5                     =>  p_attribute5
406   ,p_attribute6                     =>  p_attribute6
407   ,p_attribute7                     =>  p_attribute7
408   ,p_attribute8                     =>  p_attribute8
409   ,p_attribute9                     =>  p_attribute9
410   ,p_attribute10                    =>  p_attribute10
411   ,p_attribute11                    =>  p_attribute11
412   ,p_attribute12                    =>  p_attribute12
413   ,p_attribute13                    =>  p_attribute13
414   ,p_attribute14                    =>  p_attribute14
415   ,p_attribute15                    =>  p_attribute15
416   ,p_attribute16                    =>  p_attribute16
417   ,p_attribute17                    =>  p_attribute17
418   ,p_attribute18                    =>  p_attribute18
419   ,p_attribute19                    =>  p_attribute19
420   ,p_attribute20                    =>  p_attribute20
421 );
422 
423   exception
424     when hr_api.cannot_find_prog_unit then
425       hr_api.cannot_find_prog_unit_error
426         (p_module_name => 'update_position_structure'
427         ,p_hook_type   => 'BP'
428         );
429   end;
430 --
431   hr_utility.set_location('Entering:'|| l_proc, 10);
432   --
433   --
434   hr_utility.set_location(l_proc, 20);
435   --
436   --
437   -- Process Logic
438   --
439   l_object_version_number := p_object_version_number;
440   --
441   --
442   --
443   per_pst_upd.upd
444  ( p_effective_date                 =>  p_effective_date
445   ,p_position_structure_id      =>  p_position_structure_id
446   ,p_object_version_number          =>  l_object_version_number
447   ,p_name                           =>  p_name
448   ,p_comments                       =>  p_comments
449   ,p_business_group_id              =>  hr_api.g_number
450   ,p_primary_position_flag         =>  p_primary_position_flag
451   ,p_request_id                     =>  p_request_id
452   ,p_program_application_id         =>  p_program_application_id
453   ,p_program_id                     =>  p_program_id
454   ,p_program_update_date            =>  p_program_update_date
455   ,p_attribute_category             =>  p_attribute_category
456   ,p_attribute1                     =>  p_attribute1
457   ,p_attribute2                     =>  p_attribute2
458   ,p_attribute3                     =>  p_attribute3
459   ,p_attribute4                     =>  p_attribute4
460   ,p_attribute5                     =>  p_attribute5
461   ,p_attribute6                     =>  p_attribute6
462   ,p_attribute7                     =>  p_attribute7
463   ,p_attribute8                     =>  p_attribute8
464   ,p_attribute9                     =>  p_attribute9
465   ,p_attribute10                    =>  p_attribute10
466   ,p_attribute11                    =>  p_attribute11
467   ,p_attribute12                    =>  p_attribute12
468   ,p_attribute13                    =>  p_attribute13
469   ,p_attribute14                    =>  p_attribute14
470   ,p_attribute15                    =>  p_attribute15
471   ,p_attribute16                    =>  p_attribute16
472   ,p_attribute17                    =>  p_attribute17
473   ,p_attribute18                    =>  p_attribute18
474   ,p_attribute19                    =>  p_attribute19
475   ,p_attribute20                    =>  p_attribute20
476     );
477   --
478   --
479 --
480   --
481   hr_utility.set_location(l_proc, 60);
482   --
483   -- When in validation only mode raise the Validate_Enabled exception
484   --
485   IF p_validate THEN
486     RAISE hr_api.validate_enabled;
487   END IF;
488   --
489   -- Set all output arguments.  If p_validate was TRUE, this bit is
490   -- never reached, so p_object_version_number is passed back unchanged.
491   --
492   p_object_version_number := l_object_version_number;
493   --
494   hr_utility.set_location(' Leaving:'||l_proc, 70);
495   --
496 
497 begin
498 per_pos_structure_bk2.update_pos_structure_a
499   (p_validate                       =>  p_validate
500   ,p_effective_date                 =>  p_effective_date
501   ,p_position_structure_id          =>  p_position_structure_id
502   ,p_object_version_number          =>  p_object_version_number
503   ,p_name                           =>  p_name
504   ,p_comments                       =>  p_comments
505   ,p_primary_position_flag          =>  p_primary_position_flag
506   ,p_request_id                     =>  p_request_id
507   ,p_program_application_id         =>  p_program_application_id
508   ,p_program_id                     =>  p_program_id
509   ,p_program_update_date            =>  p_program_update_date
510   ,p_attribute_category             =>  p_attribute_category
511   ,p_attribute1                     =>  p_attribute1
512   ,p_attribute2                     =>  p_attribute2
513   ,p_attribute3                     =>  p_attribute3
514   ,p_attribute4                     =>  p_attribute4
515   ,p_attribute5                     =>  p_attribute5
516   ,p_attribute6                     =>  p_attribute6
520   ,p_attribute10                    =>  p_attribute10
517   ,p_attribute7                     =>  p_attribute7
518   ,p_attribute8                     =>  p_attribute8
519   ,p_attribute9                     =>  p_attribute9
521   ,p_attribute11                    =>  p_attribute11
522   ,p_attribute12                    =>  p_attribute12
523   ,p_attribute13                    =>  p_attribute13
524   ,p_attribute14                    =>  p_attribute14
525   ,p_attribute15                    =>  p_attribute15
526   ,p_attribute16                    =>  p_attribute16
527   ,p_attribute17                    =>  p_attribute17
528   ,p_attribute18                    =>  p_attribute18
529   ,p_attribute19                    =>  p_attribute19
530   ,p_attribute20                    =>  p_attribute20
531 );
532 
533   exception
534     when hr_api.cannot_find_prog_unit then
535       hr_api.cannot_find_prog_unit_error
536         (p_module_name => 'update_position_structure'
537         ,p_hook_type   => 'AP'
538         );
539   end;
540 
541 EXCEPTION
542   --
543   WHEN hr_api.validate_enabled THEN
544     --
545     -- As the Validate_Enabled exception has been raised
546     -- we must rollback to the savepoint
547     --
548     ROLLBACK TO update_position_structure;
549     --
550     -- Only set output warning arguments
551     -- (Any key or derived arguments must be set to null
552     -- when validation only mode is being used.)
553     hr_utility.set_location(' Leaving:'||l_proc, 80);
554   WHEN OTHERS THEN
555     --
556     -- A validation or unexpected error has occurred
557     p_object_version_number  := l_temp_ovn;
558     ROLLBACK TO update_position_structure;
559     hr_utility.set_location(' Leaving:'||l_proc, 90);
560     RAISE;
561     --
562     --
563 END update_position_structure;
564 
565 -- ----------------------------------------------------------------------------
566 -- |-------------------< delete_position_structure >----------------------|
567 -- ----------------------------------------------------------------------------
568 --
569 PROCEDURE delete_position_structure
570    (  p_validate                     IN BOOLEAN default false
571      ,p_position_structure_id    IN number
572      ,p_object_version_number        IN number )
573 
574 IS
575   --
576   --
577   -- Declare cursors and local variables
578   --
579   l_proc                  VARCHAR2(72) := g_package||'delete_position_structure';
580   --
581 BEGIN
582 
583   --
584   -- Issue a savepoint
585   --
586   savepoint delete_position_structure;
587   --
588 begin
589 per_pos_structure_bk3.delete_pos_structure_b
590     (p_validate                    => p_validate
591     ,p_position_structure_id       => p_position_structure_id
592     ,p_object_version_number       => p_object_version_number
593   );
594 
595   exception
596     when hr_api.cannot_find_prog_unit then
597       hr_api.cannot_find_prog_unit_error
598         (p_module_name => 'delete_position_structure'
599         ,p_hook_type   => 'BP'
600         );
601   end;
602 
603   --
604   -- Process Logic
605   -- =============
606   --
607   --  Need to lock main table to maintain the locking ladder order
608   --
609   hr_utility.set_location( l_proc, 30);
610   per_pst_shd.lck ( p_position_structure_id             => p_position_structure_id,
611                      p_object_version_number       => p_object_version_number );
612   hr_utility.set_location( l_proc, 40);
613   per_pst_del.del   (  p_position_structure_id  => p_position_structure_id,
614     p_object_version_number       => p_object_version_number );
615   --
616 --
617   hr_utility.set_location(' Leaving:'||l_proc, 60);
618   --
619   -- When in validation only mode raise the Validate_Enabled exception
620   --
621   IF p_validate THEN
622      RAISE hr_api.validate_enabled;
623   END IF;
624   --
625   --
626 begin
627 per_pos_structure_bk3.delete_pos_structure_a
628     (p_validate                     => p_validate
629     ,p_position_structure_id    => p_position_structure_id
630     ,p_object_version_number        => p_object_version_number
631   );
632 
633   exception
634     when hr_api.cannot_find_prog_unit then
635       hr_api.cannot_find_prog_unit_error
636         (p_module_name => 'delete_position_structure'
637         ,p_hook_type   => 'AP'
638         );
639   end;
640 
641 
642 EXCEPTION
643   --
644   WHEN hr_api.validate_enabled THEN
645     --
646     -- As the Validate_Enabled exception has been raised
647     -- we must rollback to the savepoint
648     --
649     ROLLBACK TO delete_position_structure;
650     --
651     -- Only set output warning arguments
652     -- (Any key or derived arguments must be set to null
653     -- when validation only mode is being used.)
654     --
655     hr_utility.set_location(' Leaving:'||l_proc, 80);
656   WHEN OTHERS THEN
657     --
658     -- A validation or unexpected error has occurred
659     ROLLBACK TO delete_position_structure;
660     hr_utility.set_location(' Leaving:'||l_proc, 90);
661     RAISE;
662     --
663 END delete_position_structure;
664 --
665 --
666 END per_position_structure_api;