DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_QUESTIONNAIRE_API

Source


1 PACKAGE BODY hr_questionnaire_api as
2 /* $Header: hrqsnapi.pkb 120.1 2005/09/09 02:11:57 pveerepa noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := 'hr_questionnaire_api.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< create_questionnaire >--------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_questionnaire
13   (
14    p_validate              	    in     boolean   default false
15   ,p_name                           in     varchar2
16   ,p_available_flag                 in     varchar2
17   ,p_business_group_id              in     number
18   ,p_text                           in     CLOB
19   ,p_effective_date                 in     date
20   ,p_questionnaire_template_id         out nocopy number
21   ,p_object_version_number             out nocopy number
22   ) is
23   --
24   -- Declare cursors and local variables
25   --
26   l_effective_date        date;
27   l_proc                  varchar2(72) := g_package||'create_questionnaire';
28   l_object_version_number number;
29 begin
30   hr_utility.set_location('Entering:'|| l_proc, 10);
31   --
32   -- Issue a savepoint
33   --
34   savepoint create_questionnaire;
35   --
36   -- Remember IN OUT parameter IN values
37   --
38     l_object_version_number:=p_object_version_number;
39 
40   -- Truncate the time portion from all IN date parameters
41   --
42   l_effective_date := trunc(p_effective_date);
43 
44   --
45   -- Call Before Process User Hook
46   --
47   begin
48       hr_questionnaire_bk1.create_questionnaire_b
49       (
50       		p_effective_date                 => l_effective_date
51  	       ,p_name                           => p_name
52   	       ,p_available_flag                 => p_available_flag
53   	       ,p_business_group_id              => p_business_group_id
54   	       ,p_text                           => NULL
55       );
56 
57   exception
58     when hr_api.cannot_find_prog_unit then
59       hr_api.cannot_find_prog_unit_error
60         (p_module_name => 'create_questionnaire'
61         ,p_hook_type   => 'BP'
62         );
63   end;
64   --
65   -- Validation in addition to Row Handlers
66   --
67 
68 
69 
70   --
71   -- Process Logic
72   --
73 
74    hr_qsn_ins.ins
75        (
76 		p_effective_date                 => p_effective_date
77  	       ,p_name                           => p_name
78   	       ,p_available_flag                 => p_available_flag
79   	       ,p_business_group_id              => p_business_group_id
80   	       ,p_text                           => p_text
81                ,p_questionnaire_template_id      => p_questionnaire_template_id
82                ,p_object_version_number          => p_object_version_number
83       );
84   --
85   -- Call After Process User Hook
86   --
87   begin
88        hr_questionnaire_bk1.create_questionnaire_a
89       (
90                 p_effective_date                 => l_effective_date
91  	       ,p_name                           => p_name
92   	       ,p_available_flag                 => p_available_flag
93   	       ,p_business_group_id              => p_business_group_id
94   	       ,p_text                           => NULL
95                ,p_questionnaire_template_id      => p_questionnaire_template_id
96                ,p_object_version_number          => p_object_version_number
97       );
98   exception
99     when hr_api.cannot_find_prog_unit then
100       hr_api.cannot_find_prog_unit_error
101         (p_module_name => 'create_questionnaire'
102         ,p_hook_type   => 'AP'
103         );
104   end;
105   --
106   -- When in validation only mode raise the Validate_Enabled exception
107   --
108   if p_validate then
109     raise hr_api.validate_enabled;
110   end if;
111   --
112   -- Set all IN OUT and OUT parameters with out values
113   --
114 
115   --
116   hr_utility.set_location(' Leaving:'||l_proc, 70);
117 exception
118   when hr_api.validate_enabled then
119     --
120     -- As the Validate_Enabled exception has been raised
121     -- we must rollback to the savepoint
122     --
123     rollback to create_questionnaire;
124     --
125     -- Reset IN OUT parameters and set OUT parameters
126     -- (Any key or derived arguments must be set to null
127     -- when validation only mode is being used.)
128     --
129     p_object_version_number     := null;
130     p_questionnaire_template_id :=null;
131     hr_utility.set_location(' Leaving:'||l_proc, 80);
132   when others then
133     --
134     -- A validation or unexpected error has occured
135     --
136     rollback to create_questionnaire;
137     --
138     -- Reset IN OUT parameters and set all
139     -- OUT parameters, including warnings, to null
140     --
141     p_object_version_number               := null;
142     p_questionnaire_template_id           := null;
143     hr_utility.set_location(' Leaving:'||l_proc, 90);
144     raise;
145 end create_questionnaire;
146 --
147 -- ----------------------------------------------------------------------------
148 -- |--------------------------< update_questionnaire >--------------------------|
149 -- ----------------------------------------------------------------------------
150 --
151 procedure update_questionnaire
152   (
153    p_validate              	  in     boolean   default false
154   ,p_questionnaire_template_id    in     number
155   ,p_object_version_number        in out nocopy number
156   ,p_effective_date               in     date
157   ,p_name                         in     varchar2  default hr_api.g_varchar2
158   ,p_available_flag               in     varchar2  default hr_api.g_varchar2
159   ,p_business_group_id            in     number    default hr_api.g_number
160   ,p_text                         in     CLOB
161   ) is
162   --
163   -- Declare cursors and local variables
164   --
165   l_effective_date      date;
166   l_object_version_number number;
167   l_proc                varchar2(72) := g_package||'update_questionnaire';
168 begin
169   hr_utility.set_location('Entering:'|| l_proc, 10);
170   --
171   -- Issue a savepoint
172   --
173   savepoint update_questionnaire;
174   --
175   -- Remember IN OUT parameter IN values
176   --
177      l_object_version_number:=p_object_version_number;
178   --
179   -- Truncate the time portion from all IN date parameters
180   --
181   l_effective_date := trunc(p_effective_date);
182 
183   --
184   -- Call Before Process User Hook
185   --
186   begin
187       hr_questionnaire_bk2.update_questionnaire_b
188       (      p_effective_date               => l_effective_date
189 	    ,p_questionnaire_template_id    => p_questionnaire_template_id
190 	    ,p_object_version_number        => p_object_version_number
191 	    ,p_name                         => p_name
192 	    ,p_available_flag               => p_available_flag
193 	    ,p_business_group_id            => p_business_group_id
194   	    ,p_text                         => NULL
195       );
196 
197   exception
198     when hr_api.cannot_find_prog_unit then
199       hr_api.cannot_find_prog_unit_error
200         (p_module_name => 'update_questionnaire'
201         ,p_hook_type   => 'BP'
202         );
203   end;
204   --
205   -- Validation in addition to Row Handlers
206   --
207 
208 
209 
210   --
211   -- Process Logic
212   --
213 
214    hr_qsn_upd.upd
215        (
216              p_effective_date               => p_effective_date
217 	    ,p_questionnaire_template_id    => p_questionnaire_template_id
218 	    ,p_object_version_number        => p_object_version_number
219 	    ,p_available_flag               => p_available_flag
220 	    ,p_business_group_id            => p_business_group_id
221   	    ,p_text                         => p_text
222       );
223   --
224   -- Call After Process User Hook
225   --
226   begin
227 
228       hr_questionnaire_bk2.update_questionnaire_a
229       (      p_effective_date               => l_effective_date
230 	    ,p_questionnaire_template_id    => p_questionnaire_template_id
231 	    ,p_object_version_number        => p_object_version_number
232 	    ,p_name                         => p_name
233 	    ,p_available_flag               => p_available_flag
234 	    ,p_business_group_id            => p_business_group_id
235   	    ,p_text                         => NULL
236       );
237 
238   exception
239     when hr_api.cannot_find_prog_unit then
240       hr_api.cannot_find_prog_unit_error
241         (p_module_name => 'update_questionnaire'
242         ,p_hook_type   => 'AP'
243         );
244   end;
245   --
246   -- When in validation only mode raise the Validate_Enabled exception
247   --
248   if p_validate then
249     raise hr_api.validate_enabled;
250   end if;
251   --
252   -- Set all IN OUT and OUT parameters with out values
253   --
254   hr_utility.set_location(' Leaving:'||l_proc, 70);
255 exception
256   when hr_api.validate_enabled then
257     --
258     -- As the Validate_Enabled exception has been raised
259     -- we must rollback to the savepoint
260     --
261     rollback to update_questionnaire;
262     --
263     -- Reset IN OUT parameters and set OUT parameters
264     -- (Any key or derived arguments must be set to null
265     -- when validation only mode is being used.)
266     --
267     p_object_version_number:=l_object_version_number;
268 
269     hr_utility.set_location(' Leaving:'||l_proc, 80);
270   when others then
271     --
272     -- A validation or unexpected error has occured
273     --
274     rollback to update_questionnaire;
275     --
276     -- Reset IN OUT parameters and set all
277     -- OUT parameters, including warnings, to null
278     --
279     p_object_version_number:=l_object_version_number;
280 
281     hr_utility.set_location(' Leaving:'||l_proc, 90);
282     raise;
283 end update_questionnaire;
284 
285 --
286 -- ----------------------------------------------------------------------------
287 -- |--------------------------< delete_questionnaire >--------------------------|
288 -- ----------------------------------------------------------------------------
289 --
290 procedure delete_questionnaire
291  (
292    p_validate                             in     boolean   default false
293   ,p_questionnaire_template_id            in     number
294   ,p_object_version_number                in     number
295   ) is
296   --
297   -- Declare cursors and local variables
298   --
299 
300   Cursor c_hr_que_ans is
301 
302      SELECT questionnaire_answer_id  /*, object_version_number */ from HR_QUEST_ANSWERS where questionnaire_template_id = p_questionnaire_template_id;
303 
304    Cursor c_hr_que_flds is
305 
306      SELECT field_id, object_version_number from HR_QUEST_FIELDS where questionnaire_template_id = p_questionnaire_template_id;
307 
308   l_effective_date      date;
309   l_proc                varchar2(72) := g_package||'delete_questionnaire';
310 begin
311   hr_utility.set_location('Entering:'|| l_proc, 10);
312   --
313   -- Issue a savepoint
314   --
315   savepoint delete_questionnaire;
316   --
317   -- Remember IN OUT parameter IN values
318 
319   --
320   -- Truncate the time portion from all IN date parameters
321 
322   --
323   -- Call Before Process User Hook
324   --
325   begin
326     hr_questionnaire_bk3.delete_questionnaire_b
327       (
328            p_questionnaire_template_id           => p_questionnaire_template_id
329   	  ,p_object_version_number               => p_object_version_number
330       );
331   exception
332     when hr_api.cannot_find_prog_unit then
333       hr_api.cannot_find_prog_unit_error
334         (p_module_name => 'delete_questionnaire'
335         ,p_hook_type   => 'BP'
336         );
337   end;
338   --
339   -- Validation in addition to Row Handlers
340   --
341 
342 
343 
344   --
345   -- Process Logic
346 
347   -- Deleting Matchig Rows in the child table (HR_QUEST_ANSWERS)
348 
349       FOR hr_que_ans_rec in c_hr_que_ans LOOP
350 
351            hr_quest_answer_api.delete_quest_answer
352              	(
353              	 p_validate => false -- as per documentaion always should pass false when one BP calls another BP
354              	,p_questionnaire_answer_id  => hr_que_ans_rec.questionnaire_answer_id
355              	--,p_object_version_number    => hr_que_ans_rec.object_version_number
356              	);
357 
358       END LOOP;
359 
360 
361    -- Deleting Matchig Rows in the child table (HR_QUEST_FIELDS)
362 
363          FOR hr_que_flds_rec in c_hr_que_flds LOOP
364 
365                hr_quest_fields_api.delete_quest_fields
366 		(
367 		 p_validate => false -- as per documentaion always should pass false when one BP calls another BP
368 		,p_field_id  => hr_que_flds_rec.field_id
369 		,p_object_version_number    => hr_que_flds_rec.object_version_number
370 		);
371 
372          END LOOP;
373 
374    --Deleting the Row.
375 
376      hr_qsn_del.del
377       (
378            p_questionnaire_template_id           => p_questionnaire_template_id
379 	  ,p_object_version_number               => p_object_version_number
380       );
381   --
382   -- Call After Process User Hook
383   --
384   begin
385 
386      hr_questionnaire_bk3.delete_questionnaire_a
387      (
388            p_questionnaire_template_id           => p_questionnaire_template_id
389   	  ,p_object_version_number               => p_object_version_number
390      );
391 
392   exception
393     when hr_api.cannot_find_prog_unit then
394       hr_api.cannot_find_prog_unit_error
395         (p_module_name => 'delete_questionnaire'
396         ,p_hook_type   => 'AP'
397         );
398   end;
399   --
400   -- When in validation only mode raise the Validate_Enabled exception
401   --
402   if p_validate then
403     raise hr_api.validate_enabled;
404   end if;
405   --
406   -- Set all IN OUT and OUT parameters with out values
407   --
408   --
409   hr_utility.set_location(' Leaving:'||l_proc, 70);
410 exception
411   when hr_api.validate_enabled then
412     --
413     -- As the Validate_Enabled exception has been raised
414     -- we must rollback to the savepoint
415     --
416     rollback to delete_questionnaire;
417     --
418     -- Reset IN OUT parameters and set OUT parameters
419     -- (Any key or derived arguments must be set to null
420     -- when validation only mode is being used.)
421     --
422     hr_utility.set_location(' Leaving:'||l_proc, 80);
423   when others then
424     --
425     -- A validation or unexpected error has occured
426     --
427     rollback to delete_questionnaire;
428     --
429     -- Reset IN OUT parameters and set all
430     -- OUT parameters, including warnings, to null
431     --
432 
433     hr_utility.set_location(' Leaving:'||l_proc, 90);
434     raise;
435 end delete_questionnaire;
436 
437 end hr_questionnaire_api;