DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_KI_HIERARCHIES_API

Source


1 Package Body HR_KI_HIERARCHIES_API as
2 /* $Header: hrhrcapi.pkb 115.0 2004/01/09 01:13:25 vkarandi noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := 'HR_KI_HIERARCHIES_API';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< create_hierarchy_node >-----------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_hierarchy_node
13   (p_validate                      in     boolean  default false
14   ,p_language_code                 in     varchar2 default hr_api.userenv_lang
15   ,p_hierarchy_key                 in     varchar2
16   ,p_parent_hierarchy_id           in     number
17   ,p_name                          in     varchar2
18   ,p_description                   in     varchar2 default hr_api.g_varchar2
19   ,p_hierarchy_id                  out    nocopy   number
20   ,p_object_version_number         out    nocopy   number
21   ) is
22   --
23   -- Declare cursors and local variables
24   --
25   l_proc                varchar2(72) := g_package||'create_hierarchy_node';
26   l_hierarchy_id      number;
27   l_language_code       varchar2(30);
28   l_object_version_number number;
29 
30 begin
31   hr_utility.set_location('Entering:'|| l_proc, 10);
32   --
33   -- Issue a savepoint
34   --
35   savepoint create_hierarchy_node;
36   --
37   -- Remember IN OUT parameter IN values
38   --
39   --l_in_out_parameter := p_in_out_parameter;
40   l_language_code:=p_language_code;
41 
42   hr_api.validate_language_code(p_language_code => l_language_code);
43 
44   --
45   -- Call Before Process User Hook
46   --
47   begin
48     hr_ki_hierarchies_bk1.create_hierarchy_node_b
49       (
50       p_language_code                 => p_language_code
51      ,p_hierarchy_key                 => p_hierarchy_key
52      ,p_parent_hierarchy_id           => p_parent_hierarchy_id
53      ,p_name                          => p_name
54      ,p_description                   => p_description
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_hierarchy_node'
60         ,p_hook_type   => 'BP'
61         );
62   end;
63 
64   --
65   -- Process Logic
66   --
67   hr_hrc_ins.ins
68      (
69        p_hierarchy_key           => p_hierarchy_key
70       ,p_parent_hierarchy_id     => p_parent_hierarchy_id
71       ,p_hierarchy_id            => l_hierarchy_id
72       ,p_object_version_number   => l_object_version_number
73       );
74 
75   hr_htl_ins.ins_tl(
76        p_language_code          => l_language_code
77       ,p_hierarchy_id           => l_hierarchy_id
78       ,p_name                   => p_name
79       ,p_description            => p_description
80       );
81 
82 
83   --
84   -- Call After Process User Hook
85   --
86   begin
87     hr_ki_hierarchies_bk1.create_hierarchy_node_a
88       (
89        p_language_code           =>    l_language_code
90       ,p_hierarchy_key           =>    p_hierarchy_key
91       ,p_parent_hierarchy_id     =>    p_parent_hierarchy_id
92       ,p_name                    =>    p_name
93       ,p_description             =>    p_description
94       ,p_hierarchy_id            =>    l_hierarchy_id
95       ,p_object_version_number   =>    l_object_version_number
96       );
97   exception
98     when hr_api.cannot_find_prog_unit then
99       hr_api.cannot_find_prog_unit_error
100         (p_module_name => 'create_hierarchy_node'
101         ,p_hook_type   => 'AP'
102         );
103   end;
104   --
105   -- When in validation only mode raise the Validate_Enabled exception
106   --
107   if p_validate then
108     raise hr_api.validate_enabled;
109   end if;
110   --
111   -- Set all IN OUT and OUT parameters with out values
112   --
113   p_hierarchy_id           := l_hierarchy_id;
114   p_object_version_number  := l_object_version_number;
115 
116   --
117   hr_utility.set_location(' Leaving:'||l_proc, 70);
118 exception
119   when hr_api.validate_enabled then
120     --
121     -- As the Validate_Enabled exception has been raised
122     -- we must rollback to the savepoint
123     --
124     rollback to create_hierarchy_node;
125     --
126     -- Reset IN OUT parameters and set OUT parameters
127     -- (Any key or derived arguments must be set to null
128     -- when validation only mode is being used.)
129     --
130 
131     p_hierarchy_id         := null;
132     p_object_version_number  := null;
133 
134     hr_utility.set_location(' Leaving:'||l_proc, 80);
135   when others then
136     --
137     -- A validation or unexpected error has occured
138     --
139     rollback to create_hierarchy_node;
140     --
141     -- Reset IN OUT parameters and set all
142     -- OUT parameters, including warnings, to null
143     --
144 
145     p_hierarchy_id         := null;
146     p_object_version_number  := null;
147 
148     hr_utility.set_location(' Leaving:'||l_proc, 90);
149     raise;
150 end create_hierarchy_node;
151 
152 --
153 -- ----------------------------------------------------------------------------
154 -- |------------------------< update_hierarchy_node >-------------------------|
155 -- ----------------------------------------------------------------------------
156 --
157 procedure update_hierarchy_node
158   (p_validate                      in     boolean  default false
159   ,p_language_code                 in     varchar2 default hr_api.userenv_lang
160   ,p_parent_hierarchy_id           in     number   default hr_api.g_number
161   ,p_name                          in     varchar2 default hr_api.g_varchar2
162   ,p_description                   in     varchar2 default hr_api.g_varchar2
163   ,p_hierarchy_id                  in     number
164   ,p_object_version_number         in out nocopy   number
165   ) is
166   --
167   -- Declare cursors and local variables
168   --
169   l_proc                varchar2(72) := g_package||'update_hierarchy_node';
170   l_language_code       varchar2(30);
171   l_object_version_number number := p_object_version_number;
172 
173 begin
174   hr_utility.set_location('Entering:'|| l_proc, 10);
175   --
176   -- Issue a savepoint
177   --
178   savepoint update_hierarchy_node;
179   --
180   -- Remember IN OUT parameter IN values
181   --
182   --l_in_out_parameter := p_in_out_parameter;
183   l_language_code:=p_language_code;
184 
185   hr_api.validate_language_code(p_language_code => l_language_code);
186 
187   --
188   -- Call Before Process User Hook
189   --
190   begin
191     hr_ki_hierarchies_bk2.update_hierarchy_node_b
192       (
193        p_language_code           =>    l_language_code
194       ,p_parent_hierarchy_id     =>    p_parent_hierarchy_id
195       ,p_name                    =>    p_name
196       ,p_description             =>    p_description
197       ,p_hierarchy_id            =>    p_hierarchy_id
198       ,p_object_version_number   =>    p_object_version_number
199       );
200   exception
201     when hr_api.cannot_find_prog_unit then
202       hr_api.cannot_find_prog_unit_error
203         (p_module_name => 'update_hierarchy_node'
204         ,p_hook_type   => 'BP'
205         );
206   end;
207 
208   --
209   -- Process Logic
210   --
211   hr_hrc_upd.upd
212      (
213       p_hierarchy_id            => p_hierarchy_id
214      ,p_parent_hierarchy_id     => p_parent_hierarchy_id
215      ,p_object_version_number   => p_object_version_number
216       );
217 
218   hr_htl_upd.upd_tl(
219        p_language_code           => l_language_code
220       ,p_hierarchy_id            => p_hierarchy_id
221       ,p_name                    => p_name
222       ,p_description             => p_description
223       );
224 
225 
226   --
227   -- Call After Process User Hook
228   --
229   begin
230     hr_ki_hierarchies_bk2.update_hierarchy_node_a
231       (
232        p_language_code           =>    l_language_code
233       ,p_parent_hierarchy_id     =>    p_parent_hierarchy_id
234       ,p_name                    =>    p_name
235       ,p_description             =>    p_description
236       ,p_hierarchy_id            =>    p_hierarchy_id
237       ,p_object_version_number   =>    p_object_version_number
238       );
239   exception
240     when hr_api.cannot_find_prog_unit then
241       hr_api.cannot_find_prog_unit_error
242         (p_module_name => 'update_hierarchy_node'
243         ,p_hook_type   => 'AP'
244         );
245   end;
246   --
247   -- When in validation only mode raise the Validate_Enabled exception
248   --
249   if p_validate then
250     raise hr_api.validate_enabled;
251   end if;
252   --
253   -- Set all IN OUT and OUT parameters with out values
254   --
255 
256   -- p_object_version_number  := p_object_version_number;
257 
258   --
259   hr_utility.set_location(' Leaving:'||l_proc, 70);
260 exception
261   when hr_api.validate_enabled then
262     --
263     -- As the Validate_Enabled exception has been raised
264     -- we must rollback to the savepoint
265     --
266     rollback to update_hierarchy_node;
267     --
268     -- Reset IN OUT parameters and set OUT parameters
269     -- (Any key or derived arguments must be set to null
270     -- when validation only mode is being used.)
271     --
272 
273     p_object_version_number  := l_object_version_number;
274 
275     hr_utility.set_location(' Leaving:'||l_proc, 80);
276   when others then
277     --
278     -- A validation or unexpected error has occured
279     --
280     rollback to update_hierarchy_node;
281     --
282     -- Reset IN OUT parameters and set all
283     -- OUT parameters, including warnings, to null
284     --
285 
286     p_object_version_number  := l_object_version_number;
287 
288     hr_utility.set_location(' Leaving:'||l_proc, 90);
289     raise;
290 end update_hierarchy_node;
291 --
292 --
293 -- ----------------------------------------------------------------------------
294 -- |-----------------------< delete_hierarchy_node >--------------------------|
295 -- ----------------------------------------------------------------------------
296 --
297 procedure delete_hierarchy_node
298   (
299    P_VALIDATE                 in boolean         default false
300   ,P_HIERARCHY_ID             in number
301   ,P_OBJECT_VERSION_NUMBER    in number
302   ) is
303   --
304   -- Declare cursors and local variables
305   --
306 
307 cursor get_child_ids
308 is
309 select hierarchy_id,object_version_number from hr_ki_hierarchies
310 connect by prior
311 hierarchy_id=parent_hierarchy_id
312 start with hierarchy_id=p_hierarchy_id order by level desc;
313 
314 cursor get_node_map_ids(cur_id number)
315 is
316 select hierarchy_node_map_id,object_version_number from hr_ki_hierarchy_node_maps
317 where hierarchy_id =cur_id;
318 
319 Cursor C_Sel1 is
320     select object_version_number
321     from        hr_ki_hierarchies
322     where       hierarchy_id = p_hierarchy_id;
323 
324   l_proc varchar2(72) := g_package||'delete_hierarchy_node';
325   l_found number(15);
326   l_found_node_map number(15);
327   l_no number(9);
328 
329 begin
330   hr_utility.set_location('Entering:'|| l_proc, 10);
331   --
332   -- Issue a savepoint
333   --
334   savepoint delete_hierarchy_node;
335   --
336   -- Remember IN OUT parameter IN values
337   --
338 
339   -- Call Before Process User Hook
340   --
341   begin
342     hr_ki_hierarchies_bk3.delete_hierarchy_node_b
343       (
344         p_hierarchy_id           => p_hierarchy_id
345        ,p_object_version_number  => p_object_version_number
346 
347       );
348   exception
349     when hr_api.cannot_find_prog_unit then
350       hr_api.cannot_find_prog_unit_error
351         (p_module_name => 'delete_hierarchy_node'
352         ,p_hook_type   => 'BP'
353         );
354   end;
355 
356   --
357   -- Process Logic
358   --
359 
360 
361   --throw error for invalid object_version_number
362   -- and invalid hierarchy_id
363   hr_api.mandatory_arg_error
364     (p_api_name           => l_proc
365     ,p_argument           => 'HIERARCHY_ID'
366     ,p_argument_value     => p_hierarchy_id
367     );
368   hr_utility.set_location(l_proc,6);
369   hr_api.mandatory_arg_error
370     (p_api_name           => l_proc
371     ,p_argument           => 'OBJECT_VERSION_NUMBER'
372     ,p_argument_value     => p_object_version_number
373     );
374   --
375   Open  C_Sel1;
376   Fetch C_Sel1 Into l_no;
377   If C_Sel1%notfound then
378     Close C_Sel1;
379     --
380     -- The primary key is invalid therefore we must error
381     --
382     fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
383     fnd_message.raise_error;
384   End If;
385   Close C_Sel1;
386   If (p_object_version_number
387       <> l_no) Then
388         fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
389         fnd_message.raise_error;
390   End If;
391 
392   --first get the child rows if any for the hierarchy_id
393 
394      for hierarchy_rec in get_child_ids
395      LOOP
396 
397          -- get the hierarchy_node_map_ids
398          for node_rec in get_node_map_ids(hierarchy_rec.hierarchy_id)
399          LOOP
400          --call delete from hierarchy_node_map
401          delete_hierarchy_node_map(
402               p_hierarchy_node_map_id   => node_rec.hierarchy_node_map_id
403              ,p_object_version_number   => node_rec.object_version_number
404 
405          );
406          end loop;
407 
408          --delete hierachy_ids from tl table and then from hierarchies table
409           hr_hrc_shd.lck
410              (
411               p_hierarchy_id            => hierarchy_rec.hierarchy_id
412              ,p_object_version_number   => hierarchy_rec.object_version_number
413              );
414           hr_htl_del.del_tl(
415               p_hierarchy_id            =>  hierarchy_rec.hierarchy_id
416               );
417           hr_hrc_del.del
418              (
419               p_hierarchy_id            => hierarchy_rec.hierarchy_id
420              ,p_object_version_number   => hierarchy_rec.object_version_number
421               );
422 
423 
424      END LOOP;
425 
426 
427   --
428   -- Call After Process User Hook
429   --
430   begin
431     hr_ki_hierarchies_bk3.delete_hierarchy_node_a
432       (
433        p_hierarchy_id            =>    p_hierarchy_id
434       ,p_object_version_number   =>    p_object_version_number
435       );
436   exception
437     when hr_api.cannot_find_prog_unit then
438       hr_api.cannot_find_prog_unit_error
439         (p_module_name => 'delete_hierarchy_node'
440         ,p_hook_type   => 'AP'
441         );
442   end;
443   --
444   -- When in validation only mode raise the Validate_Enabled exception
445   --
446   if p_validate then
447     raise hr_api.validate_enabled;
448   end if;
449   --
450   -- Set all IN OUT and OUT parameters with out values
451   --
452 
453   --
454   hr_utility.set_location(' Leaving:'||l_proc, 70);
455 exception
456   when hr_api.validate_enabled then
457     --
458     -- As the Validate_Enabled exception has been raised
459     -- we must rollback to the savepoint
460     --
461     rollback to delete_hierarchy_node;
462     --
463     -- Reset IN OUT parameters and set OUT parameters
464     -- (Any key or derived arguments must be set to null
465     -- when validation only mode is being used.)
466     --
467 
468     hr_utility.set_location(' Leaving:'||l_proc, 80);
469   when others then
470     --
471     -- A validation or unexpected error has occured
472     --
473     rollback to delete_hierarchy_node;
474     --
475     -- Reset IN OUT parameters and set all
476     -- OUT parameters, including warnings, to null
477     --
478     hr_utility.set_location(' Leaving:'||l_proc, 90);
479     raise;
480 end delete_hierarchy_node;
481 
482 --
483 -- ----------------------------------------------------------------------------
484 -- |-----------------------< create_topic_hierarchy_map >----------------------|
485 -- ----------------------------------------------------------------------------
486 --
487 procedure create_topic_hierarchy_map
488   (p_validate                      in     boolean  default false
489   ,p_hierarchy_id                  in     number
490   ,p_topic_id                      in     number
491   ,p_hierarchy_node_map_id         out    nocopy   number
492   ,p_object_version_number         out    nocopy   number
493   ) is
494   --
495   -- Declare cursors and local variables
496   --
497   l_proc                varchar2(72) := g_package||'create_topic_hierarchy_map';
498   l_hierarchy_node_map_id number;
499   l_object_version_number number;
500 
501 begin
502   hr_utility.set_location('Entering:'|| l_proc, 10);
503   --
504   -- Issue a savepoint
505   --
506   savepoint create_topic_hierarchy_map;
507   --
508   -- Remember IN OUT parameter IN values
509   --
510   --l_in_out_parameter := p_in_out_parameter;
511 
512   -- Call Before Process User Hook
513   --
514   begin
515     hr_ki_hierarchies_bk4.create_topic_hierarchy_map_b
516       (
517        p_hierarchy_id               => p_hierarchy_id
518       ,p_topic_id                   => p_topic_id
519       );
520   exception
521     when hr_api.cannot_find_prog_unit then
522       hr_api.cannot_find_prog_unit_error
523         (p_module_name => 'create_topic_hierarchy_map'
524         ,p_hook_type   => 'BP'
525         );
526   end;
527 
528   --
529   -- Process Logic
530   --
531   hr_hnm_ins.ins
532      (
533        p_topic_id                => p_topic_id
534       ,p_hierarchy_id            => p_hierarchy_id
535       ,p_hierarchy_node_map_id   => l_hierarchy_node_map_id
536       ,p_object_version_number   => l_object_version_number
537       );
538 
539   --
540   -- Call After Process User Hook
541   --
542   begin
543     hr_ki_hierarchies_bk4.create_topic_hierarchy_map_a
544       (
545        p_hierarchy_id               => p_hierarchy_id
546       ,p_topic_id                   => p_topic_id
547       ,p_hierarchy_node_map_id      => p_hierarchy_node_map_id
548       ,p_object_version_number      => p_object_version_number
549       );
550   exception
551     when hr_api.cannot_find_prog_unit then
552       hr_api.cannot_find_prog_unit_error
553         (p_module_name => 'create_topic_hierarchy_map'
554         ,p_hook_type   => 'AP'
555         );
556   end;
557   --
558   -- When in validation only mode raise the Validate_Enabled exception
559   --
560   if p_validate then
561     raise hr_api.validate_enabled;
562   end if;
563   --
564   -- Set all IN OUT and OUT parameters with out values
565   --
566   p_hierarchy_node_map_id           := l_hierarchy_node_map_id;
567   p_object_version_number           := l_object_version_number;
568 
569   --
570   hr_utility.set_location(' Leaving:'||l_proc, 70);
571 exception
572   when hr_api.validate_enabled then
573     --
574     -- As the Validate_Enabled exception has been raised
575     -- we must rollback to the savepoint
576     --
577     rollback to create_topic_hierarchy_map;
578     --
579     -- Reset IN OUT parameters and set OUT parameters
580     -- (Any key or derived arguments must be set to null
581     -- when validation only mode is being used.)
582     --
583 
584     p_hierarchy_node_map_id         := null;
585     p_object_version_number         := null;
586 
587     hr_utility.set_location(' Leaving:'||l_proc, 80);
588   when others then
589     --
590     -- A validation or unexpected error has occured
591     --
592     rollback to create_topic_hierarchy_map;
593     --
594     -- Reset IN OUT parameters and set all
595     -- OUT parameters, including warnings, to null
596     --
597 
598     p_hierarchy_node_map_id         := null;
599     p_object_version_number  := null;
600 
601     hr_utility.set_location(' Leaving:'||l_proc, 90);
602     raise;
603 end create_topic_hierarchy_map;
604 --
605 -- ----------------------------------------------------------------------------
606 -- |-----------------------< create_ui_hierarchy_map >----------------------|
607 -- ----------------------------------------------------------------------------
608 --
609 procedure create_ui_hierarchy_map
610   (p_validate                      in     boolean  default false
611   ,p_hierarchy_id                  in     number
612   ,p_user_interface_id             in     number
613   ,p_hierarchy_node_map_id         out    nocopy   number
614   ,p_object_version_number         out    nocopy   number
615   ) is
616   --
617   -- Declare cursors and local variables
618   --
619   l_proc                varchar2(72) := g_package||'create_ui_hierarchy_map';
620   l_hierarchy_node_map_id number;
621   l_object_version_number number;
622 
623 begin
624   hr_utility.set_location('Entering:'|| l_proc, 10);
625   --
626   -- Issue a savepoint
627   --
628   savepoint create_ui_hierarchy_map;
629   --
630   -- Remember IN OUT parameter IN values
631   --
632   --l_in_out_parameter := p_in_out_parameter;
633 
634   -- Call Before Process User Hook
635   --
636   begin
637     hr_ki_hierarchies_bk5.create_ui_hierarchy_map_b
638       (
639        p_hierarchy_id               => p_hierarchy_id
640       ,p_user_interface_id          => p_user_interface_id
641       );
642   exception
643     when hr_api.cannot_find_prog_unit then
644       hr_api.cannot_find_prog_unit_error
645         (p_module_name => 'create_ui_hierarchy_map'
646         ,p_hook_type   => 'BP'
647         );
648   end;
649 
650   --
651   -- Process Logic
652   --
653   hr_hnm_ins.ins
654      (
655        p_user_interface_id       => p_user_interface_id
656       ,p_hierarchy_id            => p_hierarchy_id
657       ,p_hierarchy_node_map_id   => l_hierarchy_node_map_id
658       ,p_object_version_number   => l_object_version_number
659       );
660 
661   --
662   -- Call After Process User Hook
663   --
664   begin
665     hr_ki_hierarchies_bk5.create_ui_hierarchy_map_a
666       (
667        p_user_interface_id       => p_user_interface_id
668       ,p_hierarchy_id            => p_hierarchy_id
669       ,p_hierarchy_node_map_id   => l_hierarchy_node_map_id
670       ,p_object_version_number   => l_object_version_number
671       );
672   exception
673     when hr_api.cannot_find_prog_unit then
674       hr_api.cannot_find_prog_unit_error
675         (p_module_name => 'create_ui_hierarchy_map'
676         ,p_hook_type   => 'AP'
677         );
678   end;
679   --
680   -- When in validation only mode raise the Validate_Enabled exception
681   --
682   if p_validate then
683     raise hr_api.validate_enabled;
684   end if;
685   --
686   -- Set all IN OUT and OUT parameters with out values
687   --
688   p_hierarchy_node_map_id           := l_hierarchy_node_map_id;
689   p_object_version_number           := l_object_version_number;
690 
691   --
692   hr_utility.set_location(' Leaving:'||l_proc, 70);
693 exception
694   when hr_api.validate_enabled then
695     --
696     -- As the Validate_Enabled exception has been raised
697     -- we must rollback to the savepoint
698     --
699     rollback to create_ui_hierarchy_map;
700     --
701     -- Reset IN OUT parameters and set OUT parameters
702     -- (Any key or derived arguments must be set to null
703     -- when validation only mode is being used.)
704     --
705 
706     p_hierarchy_node_map_id         := null;
707     p_object_version_number         := null;
708 
709     hr_utility.set_location(' Leaving:'||l_proc, 80);
710   when others then
711     --
712     -- A validation or unexpected error has occured
713     --
714     rollback to create_ui_hierarchy_map;
715     --
716     -- Reset IN OUT parameters and set all
717     -- OUT parameters, including warnings, to null
718     --
719 
720     p_hierarchy_node_map_id         := null;
721     p_object_version_number  := null;
722 
723     hr_utility.set_location(' Leaving:'||l_proc, 90);
724     raise;
725 end create_ui_hierarchy_map;
726 --
727 -- ----------------------------------------------------------------------------
728 -- |-----------------------< create_topic_ui_map >-----------------------------|
729 -- ----------------------------------------------------------------------------
730 --
731 procedure create_topic_ui_map
732   (p_validate                      in     boolean  default false
733   ,p_topic_id                      in     number
734   ,p_user_interface_id             in     number
735   ,p_hierarchy_node_map_id         out    nocopy   number
736   ,p_object_version_number         out    nocopy   number
737   ) is
738   --
739   -- Declare cursors and local variables
740   --
741   l_proc                varchar2(72) := g_package||'create_topic_ui_map';
742   l_hierarchy_node_map_id number;
743   l_object_version_number number;
744 
745 begin
746   hr_utility.set_location('Entering:'|| l_proc, 10);
747   --
748   -- Issue a savepoint
749   --
750   savepoint create_topic_ui_map;
751   --
752   -- Remember IN OUT parameter IN values
753   --
754   --l_in_out_parameter := p_in_out_parameter;
755 
756   -- Call Before Process User Hook
757   --
758   begin
759     hr_ki_hierarchies_bk6.create_topic_ui_map_b
760       (
761        p_topic_id                   => p_topic_id
762       ,p_user_interface_id          => p_user_interface_id
763       );
764   exception
765     when hr_api.cannot_find_prog_unit then
766       hr_api.cannot_find_prog_unit_error
767         (p_module_name => 'create_topic_ui_map'
768         ,p_hook_type   => 'BP'
769         );
770   end;
771 
772   --
773   -- Process Logic
774   --
775   hr_hnm_ins.ins
776      (
777        p_user_interface_id       => p_user_interface_id
778       ,p_topic_id                => p_topic_id
779       ,p_hierarchy_node_map_id   => l_hierarchy_node_map_id
780       ,p_object_version_number   => l_object_version_number
781       );
782 
783   --
784   -- Call After Process User Hook
785   --
786   begin
787     hr_ki_hierarchies_bk6.create_topic_ui_map_a
788       (
789        p_user_interface_id       => p_user_interface_id
790       ,p_topic_id                => p_topic_id
791       ,p_hierarchy_node_map_id   => l_hierarchy_node_map_id
792       ,p_object_version_number   => l_object_version_number
793       );
794   exception
795     when hr_api.cannot_find_prog_unit then
796       hr_api.cannot_find_prog_unit_error
797         (p_module_name => 'create_topic_ui_map'
798         ,p_hook_type   => 'AP'
799         );
800   end;
801   --
802   -- When in validation only mode raise the Validate_Enabled exception
803   --
804   if p_validate then
805     raise hr_api.validate_enabled;
806   end if;
807   --
808   -- Set all IN OUT and OUT parameters with out values
809   --
810   p_hierarchy_node_map_id           := l_hierarchy_node_map_id;
811   p_object_version_number           := l_object_version_number;
812 
813   --
814   hr_utility.set_location(' Leaving:'||l_proc, 70);
815 exception
816   when hr_api.validate_enabled then
817     --
818     -- As the Validate_Enabled exception has been raised
819     -- we must rollback to the savepoint
820     --
821     rollback to create_topic_ui_map;
822     --
823     -- Reset IN OUT parameters and set OUT parameters
824     -- (Any key or derived arguments must be set to null
825     -- when validation only mode is being used.)
826     --
827 
828     p_hierarchy_node_map_id         := null;
829     p_object_version_number         := null;
830 
831     hr_utility.set_location(' Leaving:'||l_proc, 80);
832   when others then
833     --
834     -- A validation or unexpected error has occured
835     --
836     rollback to create_topic_ui_map;
837     --
838     -- Reset IN OUT parameters and set all
839     -- OUT parameters, including warnings, to null
840     --
841 
842     p_hierarchy_node_map_id         := null;
843     p_object_version_number  := null;
844 
845     hr_utility.set_location(' Leaving:'||l_proc, 90);
846     raise;
847 end create_topic_ui_map;
848 
849 --
850 -- ----------------------------------------------------------------------------
851 -- |----------------------< update_hierarchy_node_map >------------------------|
852 -- ----------------------------------------------------------------------------
853 --
854 procedure update_hierarchy_node_map
855   (p_validate                      in     boolean  default false
856   ,p_hierarchy_id                  in     number   default hr_api.g_number
857   ,p_topic_id                      in     number   default hr_api.g_number
858   ,p_user_interface_id             in     number   default hr_api.g_number
859   ,p_hierarchy_node_map_id         in     number
860   ,p_object_version_number         in out nocopy   number
861   ) is
862   --
863   -- Declare cursors and local variables
864   --
865   l_proc                varchar2(72) := g_package||'update_hierarchy_node_map';
866   l_object_version_number number := p_object_version_number;
867 
868 begin
869   hr_utility.set_location('Entering:'|| l_proc, 10);
870   --
871   -- Issue a savepoint
872   --
873   savepoint update_hierarchy_node_map;
874   --
875   -- Remember IN OUT parameter IN values
876   --
877   --l_in_out_parameter := p_in_out_parameter;
878   --
879   -- Call Before Process User Hook
880   --
881   begin
882     hr_ki_hierarchies_bk7.update_hierarchy_node_map_b
883       (
884        p_topic_id                =>    p_topic_id
885       ,p_hierarchy_id            =>    p_hierarchy_id
886       ,p_user_interface_id       =>    p_user_interface_id
887       ,p_hierarchy_node_map_id   =>    p_hierarchy_node_map_id
888       ,p_object_version_number   =>    p_object_version_number
889       );
890   exception
891     when hr_api.cannot_find_prog_unit then
892       hr_api.cannot_find_prog_unit_error
893         (p_module_name => 'update_hierarchy_node_map'
894         ,p_hook_type   => 'BP'
895         );
896   end;
897 
898   --
899   -- Process Logic
900   --
901   hr_hnm_upd.upd
902      (
903        p_topic_id                =>    p_topic_id
904       ,p_hierarchy_id            =>    p_hierarchy_id
905       ,p_user_interface_id       =>    p_user_interface_id
906       ,p_hierarchy_node_map_id   =>    p_hierarchy_node_map_id
907       ,p_object_version_number   =>    p_object_version_number
908       );
909 
910   --
911   -- Call After Process User Hook
912   --
913   begin
914     hr_ki_hierarchies_bk7.update_hierarchy_node_map_a
915       (
916        p_topic_id                =>    p_topic_id
917       ,p_hierarchy_id            =>    p_hierarchy_id
918       ,p_user_interface_id       =>    p_user_interface_id
919       ,p_hierarchy_node_map_id   =>    p_hierarchy_node_map_id
920       ,p_object_version_number   =>    p_object_version_number
921       );
922   exception
923     when hr_api.cannot_find_prog_unit then
924       hr_api.cannot_find_prog_unit_error
925         (p_module_name => 'update_hierarchy_node_map'
926         ,p_hook_type   => 'AP'
927         );
928   end;
929   --
930   -- When in validation only mode raise the Validate_Enabled exception
931   --
932   if p_validate then
933     raise hr_api.validate_enabled;
934   end if;
935   --
936   -- Set all IN OUT and OUT parameters with out values
937   --
938 
939   -- p_object_version_number  := p_object_version_number;
940 
941   --
942   hr_utility.set_location(' Leaving:'||l_proc, 70);
943 exception
944   when hr_api.validate_enabled then
945     --
946     -- As the Validate_Enabled exception has been raised
947     -- we must rollback to the savepoint
948     --
949     rollback to update_hierarchy_node_map;
950     --
951     -- Reset IN OUT parameters and set OUT parameters
952     -- (Any key or derived arguments must be set to null
953     -- when validation only mode is being used.)
954     --
955 
956     p_object_version_number  := l_object_version_number;
957 
958     hr_utility.set_location(' Leaving:'||l_proc, 80);
959   when others then
960     --
961     -- A validation or unexpected error has occured
962     --
963     rollback to update_hierarchy_node_map;
964     --
965     -- Reset IN OUT parameters and set all
966     -- OUT parameters, including warnings, to null
967     --
968 
969     p_object_version_number  := l_object_version_number;
970 
971     hr_utility.set_location(' Leaving:'||l_proc, 90);
972     raise;
973 end update_hierarchy_node_map;
974 
975 -- ----------------------------------------------------------------------------
976 -- |----------------------< delete_hierarchy_node_map >------------------------|
977 -- ----------------------------------------------------------------------------
978 --
979 procedure delete_hierarchy_node_map
980   (
981    P_VALIDATE                 in boolean         default false
982   ,P_HIERARCHY_NODE_MAP_ID    in number
983   ,P_OBJECT_VERSION_NUMBER    in number
984   ) is
985   --
986   -- Declare cursors and local variables
987   --
988 
989   l_proc varchar2(72) := g_package||'delete_hierarchy_node_map';
990 
991 begin
992   hr_utility.set_location('Entering:'|| l_proc, 10);
993   --
994   -- Issue a savepoint
995   --
996   savepoint delete_hierarchy_node_map;
997   --
998   -- Remember IN OUT parameter IN values
999   --
1000 
1001   -- Call Before Process User Hook
1002   --
1003   begin
1004     hr_ki_hierarchies_bk8.delete_hierarchy_node_map_b
1005       (
1006         p_hierarchy_node_map_id  => p_hierarchy_node_map_id
1007        ,p_object_version_number  => p_object_version_number
1008 
1009       );
1010   exception
1011     when hr_api.cannot_find_prog_unit then
1012       hr_api.cannot_find_prog_unit_error
1013         (p_module_name => 'delete_hierarchy_node_map'
1014         ,p_hook_type   => 'BP'
1015         );
1016   end;
1017 
1018   --
1019   -- Process Logic
1020   --
1021 
1022   hr_hnm_del.del
1023      (
1024       p_hierarchy_node_map_id   => p_hierarchy_node_map_id
1025      ,p_object_version_number   => p_object_version_number
1026       );
1027 
1028 
1029   --
1030   -- Call After Process User Hook
1031   --
1032   begin
1033     hr_ki_hierarchies_bk8.delete_hierarchy_node_map_a
1034       (
1035        p_hierarchy_node_map_id   =>    p_hierarchy_node_map_id
1036       ,p_object_version_number   =>    p_object_version_number
1037       );
1038   exception
1039     when hr_api.cannot_find_prog_unit then
1040       hr_api.cannot_find_prog_unit_error
1041         (p_module_name => 'delete_hierarchy_node_map'
1042         ,p_hook_type   => 'AP'
1043         );
1044   end;
1045   --
1046   -- When in validation only mode raise the Validate_Enabled exception
1047   --
1048   if p_validate then
1049     raise hr_api.validate_enabled;
1050   end if;
1051   --
1052   -- Set all IN OUT and OUT parameters with out values
1053   --
1054 
1055   --
1056   hr_utility.set_location(' Leaving:'||l_proc, 70);
1057 exception
1058   when hr_api.validate_enabled then
1059     --
1060     -- As the Validate_Enabled exception has been raised
1061     -- we must rollback to the savepoint
1062     --
1063     rollback to delete_hierarchy_node_map;
1064     --
1065     -- Reset IN OUT parameters and set OUT parameters
1066     -- (Any key or derived arguments must be set to null
1067     -- when validation only mode is being used.)
1068     --
1069 
1070     hr_utility.set_location(' Leaving:'||l_proc, 80);
1071   when others then
1072     --
1073     -- A validation or unexpected error has occured
1074     --
1075     rollback to delete_hierarchy_node_map;
1076     --
1077     -- Reset IN OUT parameters and set all
1078     -- OUT parameters, including warnings, to null
1079     --
1080     hr_utility.set_location(' Leaving:'||l_proc, 90);
1081     raise;
1082 end delete_hierarchy_node_map;
1083 
1084 
1085 end HR_KI_HIERARCHIES_API;