DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_FORM_DATA_GROUPS_API

Source


1 Package Body hr_form_data_groups_api as
2 /* $Header: hrfdgapi.pkb 115.4 2002/12/16 09:50:41 hjonnala noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  hr_form_data_groups_api.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< create_form_data_group >--------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_form_data_group
13   (p_validate                      in     boolean  default false
14   ,p_effective_date                in     date
15   ,p_language_code                 in     varchar2 default hr_api.userenv_lang
16   ,p_application_id                in     number
17   ,p_form_id                       in     number
18   ,p_data_group_name               in     varchar2
19   ,p_user_data_group_name          in     varchar2
20   ,p_description                   in     varchar2 default null
21   ,p_form_data_group_id               out nocopy number
22   ,p_object_version_number            out nocopy number
23   ) is
24   --
25   -- Declare cursors and local variables
26   --
27 
28   l_language_code fnd_languages.language_code%TYPE;
29   l_proc                varchar2(72) := g_package||'create_form_data_group';
30   l_form_data_group_id    number;
31   l_object_version_number number;
32 begin
33   hr_utility.set_location('Entering:'|| l_proc, 10);
34   --
35   -- Issue a savepoint
36   --
37   savepoint create_form_data_group;
38   --
39   -- Truncate the time portion from all IN date parameters
40   --
41      -- p_effective_date := TRUNC(p_effective_date);
42   --
43   -- Validate the language parameter. l_language_code should be passed
44   -- instead of p_language_code from now on, to allow an IN OUT parameter to
45   -- be passed through.
46   --
47   l_language_code := p_language_code;
48   hr_api.validate_language_code(p_language_code => l_language_code);
49   --
50   hr_utility.set_location(l_proc, 20);
51   --
52   --
53   -- Call Before Process User Hook
54   --
55   begin
56     hr_form_data_groups_api_bk1.create_form_data_group_b
57       (p_effective_date                => TRUNC(p_effective_date)
58       ,p_language_code                 => l_language_code
59       ,p_application_id                => p_application_id
60       ,p_form_id                       => p_form_id
61       ,p_data_group_name               => p_data_group_name
62       ,p_user_data_group_name          => p_user_data_group_name
63       ,p_description                   => p_description
64       );
65   exception
66     when hr_api.cannot_find_prog_unit then
67       hr_api.cannot_find_prog_unit_error
68         (p_module_name => 'create_form_data_group'
69         ,p_hook_type   => 'BP'
70         );
71   end;
72 
73   --
74   -- Process Logic
75   --
76   hr_utility.set_location('At:'|| l_proc, 15);
77 
78   hr_fdg_ins.ins(p_application_id              => p_application_id
79                  ,p_form_id                     => p_form_id
80                  ,p_data_group_name             => p_data_group_name
81                  ,p_form_data_group_id          => l_form_data_group_id
82                  ,p_object_version_number       => l_object_version_number);
83 
84   hr_utility.set_location('At:'|| l_proc, 20);
85 
86   hr_fgt_ins.ins_tl( p_language_code                => l_language_code
87             ,p_form_data_group_id           => l_form_data_group_id
88             ,p_user_data_group_name         => p_user_data_group_name
89             ,p_description                  => p_description);
90 
91   hr_utility.set_location('At:'|| l_proc, 25);
92 
93   --
94   -- Call After Process User Hook
95   --
96   begin
97     hr_form_data_groups_api_bk1.create_form_data_group_a
98             (p_effective_date                => TRUNC(p_effective_date)
99             ,p_language_code                 => l_language_code
100             ,p_application_id                => p_application_id
101             ,p_form_id                       => p_form_id
102             ,p_data_group_name               => p_data_group_name
103             ,p_user_data_group_name          => p_user_data_group_name
104             ,p_description                   => p_description
105             ,p_form_data_group_id            => l_form_data_group_id
106             ,p_object_version_number         => l_object_version_number
107             );
108   exception
109     when hr_api.cannot_find_prog_unit then
110       hr_api.cannot_find_prog_unit_error
111         (p_module_name => 'create_form_data_group'
112         ,p_hook_type   => 'AP'
113         );
114   end;
115   --
116   -- When in validation only mode raise the Validate_Enabled exception
117   --
118   hr_utility.set_location('At:'|| l_proc, 30);
119 
120   if p_validate then
121     raise hr_api.validate_enabled;
122   end if;
123   --
124   -- Set all output arguments
125   --
126   p_form_data_group_id     := l_form_data_group_id;
127   p_object_version_number  := l_object_version_number;
128   --
129   hr_utility.set_location(' Leaving:'||l_proc, 70);
130 exception
131   when hr_api.validate_enabled then
132     --
133     -- As the Validate_Enabled exception has been raised
134     -- we must rollback to the savepoint
135     --
136     rollback to create_form_data_group;
137     --
138     -- Only set output warning arguments
139     -- (Any key or derived arguments must be set to null
140     -- when validation only mode is being used.)
141     --
142     p_form_data_group_id     := null;
143     p_object_version_number  := null;
144     hr_utility.set_location(' Leaving:'||l_proc, 80);
145   when others then
146     --
147     -- A validation or unexpected error has occured
148     --
149     rollback to create_form_data_group;
150     -- Reset out parameters.
151     p_form_data_group_id     := null;
152     p_object_version_number  := null;
153     hr_utility.set_location(' Leaving:'||l_proc, 90);
154     raise;
155 end create_form_data_group;
156 --
157 -- ----------------------------------------------------------------------------
158 -- |------------------------< delete_form_data_group >------------------------|
159 -- ----------------------------------------------------------------------------
160 --
161 procedure delete_form_data_group
162   (p_validate                      in     boolean  default false
163   ,p_form_data_group_id            in     number
164   ,p_object_version_number         in     number
165   ) is
166   --
167   -- Declare cursors and local variables
168   --
169 
170   CURSOR cur_data_group_item IS
171   SELECT form_data_group_item_id
172          ,object_version_number
173   FROM hr_form_data_group_items
174   WHERE form_data_group_id = p_form_data_group_id;
175 
176   l_proc                varchar2(72) := g_package||'delete_form_data_group';
177 begin
178   hr_utility.set_location('Entering:'|| l_proc, 10);
179   --
180   -- Issue a savepoint
181   --
182   savepoint delete_form_data_group;
183   --
184   -- Call Before Process User Hook
185   --
186   begin
187     hr_form_data_groups_api_bk2.delete_form_data_group_b
188       (p_form_data_group_id            => p_form_data_group_id
189        ,p_object_version_number         => p_object_version_number
190       );
191   exception
192     when hr_api.cannot_find_prog_unit then
193       hr_api.cannot_find_prog_unit_error
194         (p_module_name => 'delete_form_data_group'
195         ,p_hook_type   => 'BP'
196         );
197   end;
198   --
199   -- Process Logic
200   --
201   hr_utility.set_location('At:'|| l_proc, 15);
202 
203   hr_fdg_shd.lck( p_form_data_group_id           => p_form_data_group_id
204                   ,p_object_version_number        => p_object_version_number);
205 
206   hr_utility.set_location('At:'|| l_proc, 20);
207 
208   FOR cur_rec IN cur_data_group_item LOOP
209 
210     hr_form_data_group_items_api.delete_form_data_group_item(
211                p_form_data_group_item_id      => cur_rec.form_data_group_item_id
212                ,p_object_version_number       => cur_rec.object_version_number);
213 
214   END LOOP;
215 
216   hr_utility.set_location('At:'|| l_proc, 30);
217 
218   hr_fgt_del.del_tl( p_form_data_group_id => p_form_data_group_id);
219 
220   hr_utility.set_location('At:'|| l_proc, 40);
221 
222   hr_fdg_del.del( p_form_data_group_id           => p_form_data_group_id
223                   ,p_object_version_number        => p_object_version_number);
224 
225   hr_utility.set_location('At:'|| l_proc, 50);
226 
227   --
228   -- Call After Process User Hook
229   --
230   begin
231     hr_form_data_groups_api_bk2.delete_form_data_group_a
232       (p_form_data_group_id            => p_form_data_group_id
233        ,p_object_version_number         => p_object_version_number
234       );
235   exception
236     when hr_api.cannot_find_prog_unit then
237       hr_api.cannot_find_prog_unit_error
238         (p_module_name => 'delete_form_data_group'
239         ,p_hook_type   => 'AP'
240         );
241   end;
242   --
243   -- When in validation only mode raise the Validate_Enabled exception
244   --
245   hr_utility.set_location('At:'|| l_proc, 60);
246 
247   if p_validate then
248     raise hr_api.validate_enabled;
249   end if;
250   --
251   hr_utility.set_location(' Leaving:'||l_proc, 70);
252 exception
253   when hr_api.validate_enabled then
254     --
255     -- As the Validate_Enabled exception has been raised
256     -- we must rollback to the savepoint
257     --
258     rollback to delete_form_data_group;
259     --
260     -- Only set output warning arguments
261     -- (Any key or derived arguments must be set to null
262     -- when validation only mode is being used.)
263     --
264     hr_utility.set_location(' Leaving:'||l_proc, 80);
265   when others then
266     --
267     -- A validation or unexpected error has occured
268     --
269     rollback to delete_form_data_group;
270     hr_utility.set_location(' Leaving:'||l_proc, 90);
271     raise;
272 end delete_form_data_group;
273 --
274 -- ----------------------------------------------------------------------------
275 -- |------------------------< update_form_data_group >------------------------|
276 -- ----------------------------------------------------------------------------
277 --
278 procedure update_form_data_group
279   (p_validate                      in     boolean  default false
280   ,p_effective_date                in     date
281   ,p_language_code                 in     varchar2 default hr_api.userenv_lang
282   --,p_application_id                in     number
283   --,p_form_id                       in     number
284   ,p_form_data_group_id            in     number
285   ,p_data_group_name               in     varchar2 default hr_api.g_varchar2
286   ,p_user_data_group_name          in     varchar2 default hr_api.g_varchar2
287   ,p_description                   in     varchar2 default hr_api.g_varchar2
288   ,p_object_version_number         in out nocopy number
289   ) is
290   --
291   -- Declare cursors and local variables
292   --
293 
294   l_language_code fnd_languages.language_code%TYPE;
295 
296   l_proc                varchar2(72) := g_package||'update_form_data_group';
297   l_object_version_number number;
298   l_temp_ovn   number := p_object_version_number;
299 begin
300   hr_utility.set_location('Entering:'|| l_proc, 10);
301   --
302   -- Issue a savepoint
303   --
304   savepoint update_form_data_group;
305   --
306   -- Truncate the time portion from all IN date parameters
307   --
308      -- p_effective_date := TRUNC(p_effective_date);
309      l_object_version_number := p_object_version_number;
310   --
311   -- Validate the language parameter. l_language_code should be passed
312   -- instead of p_language_code from now on, to allow an IN OUT parameter to
313   -- be passed through.
314   --
315   l_language_code := p_language_code;
316   hr_api.validate_language_code(p_language_code => l_language_code);
317   --
318   hr_utility.set_location(l_proc, 20);
319   --
320   --
321   -- Call Before Process User Hook
322   --
323   begin
324     hr_form_data_groups_api_bk3.update_form_data_group_b
325       (p_effective_date                => TRUNC(p_effective_date)
326       ,p_language_code                 => l_language_code
327       --,p_application_id                => p_application_id
328       --,p_form_id                       => p_form_id
329       ,p_data_group_name               => p_data_group_name
330       ,p_user_data_group_name          => p_user_data_group_name
331       ,p_description                   => p_description
332       ,p_form_data_group_id            => p_form_data_group_id
333       ,p_object_version_number         => l_object_version_number
334       );
335   exception
336     when hr_api.cannot_find_prog_unit then
337       hr_api.cannot_find_prog_unit_error
338         (p_module_name => 'update_form_data_group'
339         ,p_hook_type   => 'BP'
340         );
341   end;
342 
343   --
344   -- Process Logic
345   --
346   hr_utility.set_location('At:'|| l_proc, 15);
347 
348   hr_fdg_upd.upd( p_form_data_group_id           => p_form_data_group_id
349                   --,p_application_id               => p_application_id
350                   --,p_form_id                      => p_form_id
351                   ,p_data_group_name              => p_data_group_name
352                   ,p_object_version_number        => l_object_version_number);
353 
354   hr_utility.set_location('At:'|| l_proc, 20);
355 
356   hr_fgt_upd.upd_tl( p_language_code                => l_language_code
357                        ,p_form_data_group_id           => p_form_data_group_id
358                        ,p_user_data_group_name         => p_user_data_group_name
359                        ,p_description                  => p_description);
360 
361   hr_utility.set_location('At:'|| l_proc, 30);
362 
363   --
364   -- Call After Process User Hook
365   --
366   begin
367     hr_form_data_groups_api_bk3.update_form_data_group_a
368       (p_effective_date                => TRUNC(p_effective_date)
369       ,p_language_code                 => l_language_code
370       --,p_application_id                => p_application_id
371       --,p_form_id                       => p_form_id
372       ,p_form_data_group_id            => p_form_data_group_id
373       ,p_data_group_name               => p_data_group_name
374       ,p_user_data_group_name          => p_user_data_group_name
375       ,p_description                   => p_description
376       ,p_object_version_number         => l_object_version_number
377       );
378   exception
379     when hr_api.cannot_find_prog_unit then
380       hr_api.cannot_find_prog_unit_error
381         (p_module_name => 'update_form_data_group'
382         ,p_hook_type   => 'AP'
383         );
384   end;
385   --
386   -- When in validation only mode raise the Validate_Enabled exception
387   --
388   hr_utility.set_location('At:'|| l_proc, 40);
389 
390   if p_validate then
391     raise hr_api.validate_enabled;
392   end if;
393   --
394   -- Set all output arguments
395   --
396   p_object_version_number  := l_object_version_number;
397   --
398   hr_utility.set_location(' Leaving:'||l_proc, 70);
399 exception
400   when hr_api.validate_enabled then
401     --
402     -- As the Validate_Enabled exception has been raised
403     -- we must rollback to the savepoint
404     --
405     rollback to update_form_data_group;
406     --
407     -- Only set output warning arguments
408     -- (Any key or derived arguments must be set to null
409     -- when validation only mode is being used.)
410     --
411     -- Reset all in out arguments
412     --
413     p_object_version_number  := l_object_version_number;
414     hr_utility.set_location(' Leaving:'||l_proc, 80);
415   when others then
416     --
417     -- A validation or unexpected error has occured
418     --
419     rollback to update_form_data_group;
420     -- Reset all in out arguments
421     --
422     p_object_version_number  := l_temp_ovn;
423     hr_utility.set_location(' Leaving:'||l_proc, 90);
424     raise;
425 end update_form_data_group;
426 --
427 end hr_form_data_groups_api;