DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_APPRAISAL_PERIOD_API

Source


1 Package Body hr_appraisal_period_api as
2 /* $Header: pepmaapi.pkb 120.3 2006/03/27 23:54:26 vbala noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  hr_appraisal_period_api.';
7 g_debug    boolean      := hr_utility.debug_enabled;
8 
9 --
10 -- ----------------------------------------------------------------------------
11 -- |--------------------------< set_plan_status >-----------------------------|
12 -- ----------------------------------------------------------------------------
13 --
14 procedure set_plan_status
15   (p_plan_id                       in     number
16   ,p_effective_date                in     date
17   ) is
18   --
19   -- Declare cursors and local variables
20   --
21   l_proc                   varchar2(72) := g_package||'set_plan_status';
22   l_ovn                    number;
23   l_status_code            per_perf_mgmt_plans.status_code%TYPE;
24   l_dummy                  boolean;
25 
26 begin
27 
28   IF g_debug THEN hr_utility.set_location('Entering:'|| l_proc, 10); END IF;
29 
30   --
31   -- Only attempt to set the plan's status if the procedure has been
32   -- called correctly.
33   --
34   IF p_plan_id IS NOT NULL THEN
35 
36     IF per_pmp_bus.return_status_code(p_plan_id) = 'PUBLISHED' THEN
37       --
38       -- Call the plan update row-handler.
39       --
40       IF g_debug THEN hr_utility.set_location(l_proc, 30); END IF;
41 
42       l_ovn         := per_pmp_bus.return_ovn(p_plan_id);
43       l_status_code := 'UPDATED';
44 
45       per_pmp_upd.upd
46         (p_plan_id                => p_plan_id
47         ,p_effective_date         => p_effective_date
48         ,p_object_version_number  => l_ovn
49         ,p_status_code            => l_status_code
50         ,p_duplicate_name_warning => l_dummy
51         ,p_no_life_events_warning => l_dummy);
52     END IF;
53   END IF;
54 
55   IF g_debug THEN hr_utility.set_location('Leaving:'|| l_proc, 980); END IF;
56 
57 end set_plan_status;
58 --
59 -- ----------------------------------------------------------------------------
60 -- |--------------------------< create_appraisal_period >---------------------|
61 -- ----------------------------------------------------------------------------
62 --
63 procedure create_appraisal_period
64   (p_validate                      in     boolean  default false
65   ,p_effective_date                in     date
66   ,p_plan_id                       in     number
67   ,p_appraisal_template_id         in     number
68   ,p_start_date                    in     date
69   ,p_end_date                      in     date
70   ,p_task_start_date               in     date
71   ,p_task_end_date                 in     date
72   ,p_initiator_code                in     varchar2 default null
73   ,p_appraisal_system_type         in     varchar2 default null
74   ,p_appraisal_type                in     varchar2 default null
75   ,p_appraisal_assmt_status        in     varchar2 default null
76   ,p_auto_conc_process             in     varchar2 default null
77   ,p_days_before_task_st_dt        in     number   default null
78   ,p_attribute_category            in     varchar2 default null
79   ,p_attribute1                    in     varchar2 default null
80   ,p_attribute2                    in     varchar2 default null
81   ,p_attribute3                    in     varchar2 default null
82   ,p_attribute4                    in     varchar2 default null
83   ,p_attribute5                    in     varchar2 default null
84   ,p_attribute6                    in     varchar2 default null
85   ,p_attribute7                    in     varchar2 default null
86   ,p_attribute8                    in     varchar2 default null
87   ,p_attribute9                    in     varchar2 default null
88   ,p_attribute10                   in     varchar2 default null
89   ,p_attribute11                   in     varchar2 default null
90   ,p_attribute12                   in     varchar2 default null
91   ,p_attribute13                   in     varchar2 default null
92   ,p_attribute14                   in     varchar2 default null
93   ,p_attribute15                   in     varchar2 default null
94   ,p_attribute16                   in     varchar2 default null
95   ,p_attribute17                   in     varchar2 default null
96   ,p_attribute18                   in     varchar2 default null
97   ,p_attribute19                   in     varchar2 default null
98   ,p_attribute20                   in     varchar2 default null
99   ,p_attribute21                   in     varchar2 default null
100   ,p_attribute22                   in     varchar2 default null
101   ,p_attribute23                   in     varchar2 default null
102   ,p_attribute24                   in     varchar2 default null
103   ,p_attribute25                   in     varchar2 default null
104   ,p_attribute26                   in     varchar2 default null
105   ,p_attribute27                   in     varchar2 default null
106   ,p_attribute28                   in     varchar2 default null
107   ,p_attribute29                   in     varchar2 default null
108   ,p_attribute30                   in     varchar2 default null
109   ,p_appraisal_period_id              out nocopy   number
110   ,p_object_version_number            out nocopy   number
111   ) is
112   --
113   -- Declare cursors and local variables
114   --
115   l_proc                   varchar2(72) := g_package||'create_appraisal_period';
116   l_effective_date         date;
117   l_start_date             date;
118   l_end_date               date;
119   l_task_start_date        date;
120   l_task_end_date          date;
121   l_appraisal_period_id    number;
122   l_object_version_number  number;
123 
124 begin
125 
126   IF g_debug THEN
127 
128     hr_utility.set_location('Entering:'|| l_proc, 10);
129 
130     hr_utility.trace(' ');
131     hr_utility.trace(' --------------------------------'||
132                      '---------------------------------');
133     hr_utility.trace(' IN / IN OUT PARAMETER           '||
134                      ' VALUE');
135     hr_utility.trace(' --------------------------------'||
136                      '+--------------------------------');
137     hr_utility.trace('  p_plan_id                        '||
138                         to_char(p_plan_id));
139     hr_utility.trace('  p_appraisal_template_id          '||
140                         to_char(p_appraisal_template_id));
141     hr_utility.trace('  p_start_date                     '||
142                         to_char(p_start_date));
143     hr_utility.trace('  p_end_date                       '||
144                         to_char(p_end_date));
145     hr_utility.trace('  p_task_start_date                '||
146                         to_char(p_task_start_date));
147     hr_utility.trace('  p_task_end_date                  '||
148                         to_char(p_task_end_date));
149     hr_utility.trace('  p_initiator_code                 '||
150                         p_initiator_code);
151     hr_utility.trace(' --------------------------------'||
152                      '+--------------------------------');
153     hr_utility.trace('  p_effective_date                 '||
154                         to_char(p_effective_date));
155     hr_utility.trace(' --------------------------------'||
156                      '---------------------------------');
157     hr_utility.trace(' ');
158 
159   END IF;
160 
161   --
162   -- Issue a savepoint
163   --
164   savepoint create_appraisal_period;
165 
166   --
167   -- Truncate the time portion from all IN date parameters
168   --
169   l_effective_date  := trunc(p_effective_date);
170   l_start_date      := trunc(p_start_date);
171   l_end_date        := trunc(p_end_date);
172   l_task_start_date := trunc(p_task_start_date);
173   l_task_end_date   := trunc(p_task_end_date);
174 
175   --
176   -- Call Before Process User Hook
177   --
178   begin
179     hr_appraisal_period_bk1.create_appraisal_period_b
180       (p_effective_date                => l_effective_date
181       ,p_plan_id                       => p_plan_id
182       ,p_appraisal_template_id         => p_appraisal_template_id
183       ,p_start_date                    => l_start_date
184       ,p_end_date                      => l_end_date
185       ,p_task_start_date               => l_task_start_date
186       ,p_task_end_date                 => l_task_end_date
187       ,p_initiator_code                => p_initiator_code
188       ,p_appraisal_system_type         => p_appraisal_system_type
189       ,p_appraisal_type                => p_appraisal_type
190       ,p_appraisal_assmt_status        => p_appraisal_assmt_status
191       ,p_auto_conc_process             => p_auto_conc_process
192       ,p_days_before_task_st_dt        => p_days_before_task_st_dt
193       ,p_attribute_category            => p_attribute_category
194       ,p_attribute1                    => p_attribute1
195       ,p_attribute2                    => p_attribute2
196       ,p_attribute3                    => p_attribute3
197       ,p_attribute4                    => p_attribute4
198       ,p_attribute5                    => p_attribute5
199       ,p_attribute6                    => p_attribute6
200       ,p_attribute7                    => p_attribute7
201       ,p_attribute8                    => p_attribute8
202       ,p_attribute9                    => p_attribute9
203       ,p_attribute10                   => p_attribute10
204       ,p_attribute11                   => p_attribute11
205       ,p_attribute12                   => p_attribute12
206       ,p_attribute13                   => p_attribute13
207       ,p_attribute14                   => p_attribute14
208       ,p_attribute15                   => p_attribute15
209       ,p_attribute16                   => p_attribute16
210       ,p_attribute17                   => p_attribute17
211       ,p_attribute18                   => p_attribute18
212       ,p_attribute19                   => p_attribute19
213       ,p_attribute20                   => p_attribute20
214       ,p_attribute21                   => p_attribute21
215       ,p_attribute22                   => p_attribute22
216       ,p_attribute23                   => p_attribute23
217       ,p_attribute24                   => p_attribute24
218       ,p_attribute25                   => p_attribute25
219       ,p_attribute26                   => p_attribute26
220       ,p_attribute27                   => p_attribute27
221       ,p_attribute28                   => p_attribute28
222       ,p_attribute29                   => p_attribute29
223       ,p_attribute30                   => p_attribute30
224       );
225   exception
226     when hr_api.cannot_find_prog_unit then
227       hr_api.cannot_find_prog_unit_error
228         (p_module_name => 'CREATE_APPRAISAL_PERIOD'
229         ,p_hook_type   => 'BP'
230         );
231   end;
232 
233   --
234   -- Process Logic
235   --
236   IF g_debug THEN hr_utility.set_location(l_proc, 30); END IF;
237 
238   per_pma_ins.ins
239     (p_effective_date                => l_effective_date
240     ,p_plan_id                       => p_plan_id
241     ,p_appraisal_template_id         => p_appraisal_template_id
242     ,p_start_date                    => l_start_date
243     ,p_end_date                      => l_end_date
244     ,p_task_start_date               => l_task_start_date
245     ,p_task_end_date                 => l_task_end_date
246     ,p_initiator_code                => p_initiator_code
247     ,p_appraisal_system_type         => p_appraisal_system_type
248     ,p_appraisal_type                => p_appraisal_type
249     ,p_appraisal_assmt_status        => p_appraisal_assmt_status
250     ,p_auto_conc_process             => p_auto_conc_process
251     ,p_days_before_task_st_dt        => p_days_before_task_st_dt
252     ,p_attribute_category            => p_attribute_category
253     ,p_attribute1                    => p_attribute1
254     ,p_attribute2                    => p_attribute2
255     ,p_attribute3                    => p_attribute3
256     ,p_attribute4                    => p_attribute4
257     ,p_attribute5                    => p_attribute5
258     ,p_attribute6                    => p_attribute6
259     ,p_attribute7                    => p_attribute7
260     ,p_attribute8                    => p_attribute8
261     ,p_attribute9                    => p_attribute9
262     ,p_attribute10                   => p_attribute10
263     ,p_attribute11                   => p_attribute11
264     ,p_attribute12                   => p_attribute12
265     ,p_attribute13                   => p_attribute13
266     ,p_attribute14                   => p_attribute14
267     ,p_attribute15                   => p_attribute15
268     ,p_attribute16                   => p_attribute16
269     ,p_attribute17                   => p_attribute17
270     ,p_attribute18                   => p_attribute18
271     ,p_attribute19                   => p_attribute19
272     ,p_attribute20                   => p_attribute20
273     ,p_attribute21                   => p_attribute21
274     ,p_attribute22                   => p_attribute22
275     ,p_attribute23                   => p_attribute23
276     ,p_attribute24                   => p_attribute24
277     ,p_attribute25                   => p_attribute25
278     ,p_attribute26                   => p_attribute26
279     ,p_attribute27                   => p_attribute27
280     ,p_attribute28                   => p_attribute28
281     ,p_attribute29                   => p_attribute29
282     ,p_attribute30                   => p_attribute30
283     ,p_appraisal_period_id           => l_appraisal_period_id
284     ,p_object_version_number         => l_object_version_number
285     );
286 
287   --
288   -- Call After Process User Hook
289   --
290   begin
291     hr_appraisal_period_bk1.create_appraisal_period_a
292       (p_effective_date                => l_effective_date
293       ,p_plan_id                       => p_plan_id
294       ,p_appraisal_template_id         => p_appraisal_template_id
295       ,p_start_date                    => l_start_date
296       ,p_end_date                      => l_end_date
297       ,p_task_start_date               => l_task_start_date
298       ,p_task_end_date                 => l_task_end_date
299       ,p_initiator_code                => p_initiator_code
300       ,p_appraisal_system_type         => p_appraisal_system_type
301       ,p_appraisal_type                => p_appraisal_type
302       ,p_appraisal_assmt_status        => p_appraisal_assmt_status
303       ,p_auto_conc_process             => p_auto_conc_process
304       ,p_days_before_task_st_dt        => p_days_before_task_st_dt
305       ,p_attribute_category            => p_attribute_category
306       ,p_attribute1                    => p_attribute1
307       ,p_attribute2                    => p_attribute2
308       ,p_attribute3                    => p_attribute3
309       ,p_attribute4                    => p_attribute4
310       ,p_attribute5                    => p_attribute5
311       ,p_attribute6                    => p_attribute6
312       ,p_attribute7                    => p_attribute7
313       ,p_attribute8                    => p_attribute8
314       ,p_attribute9                    => p_attribute9
315       ,p_attribute10                   => p_attribute10
316       ,p_attribute11                   => p_attribute11
317       ,p_attribute12                   => p_attribute12
318       ,p_attribute13                   => p_attribute13
319       ,p_attribute14                   => p_attribute14
320       ,p_attribute15                   => p_attribute15
321       ,p_attribute16                   => p_attribute16
322       ,p_attribute17                   => p_attribute17
323       ,p_attribute18                   => p_attribute18
324       ,p_attribute19                   => p_attribute19
325       ,p_attribute20                   => p_attribute20
326       ,p_attribute21                   => p_attribute21
327       ,p_attribute22                   => p_attribute22
328       ,p_attribute23                   => p_attribute23
329       ,p_attribute24                   => p_attribute24
330       ,p_attribute25                   => p_attribute25
331       ,p_attribute26                   => p_attribute26
332       ,p_attribute27                   => p_attribute27
333       ,p_attribute28                   => p_attribute28
334       ,p_attribute29                   => p_attribute29
335       ,p_attribute30                   => p_attribute30
336       ,p_appraisal_period_id           => l_appraisal_period_id
337       ,p_object_version_number         => l_object_version_number
338       );
339   exception
340     when hr_api.cannot_find_prog_unit then
341       hr_api.cannot_find_prog_unit_error
342         (p_module_name => 'CREATE_APPRAISAL_PERIOD'
343         ,p_hook_type   => 'AP'
344         );
345   end;
346 
347   --
348   -- Update the plan's status to Updated if the plan is already
349   -- published.
350   --
351   set_plan_status(p_plan_id,p_start_date);
352 
353 
354   IF g_debug THEN hr_utility.set_location(l_proc, 40); END IF;
355   --
356   -- When in validation only mode raise the Validate_Enabled exception
357   --
358   if p_validate then
359     raise hr_api.validate_enabled;
360   end if;
361   --
362   -- Set all IN OUT and OUT parameters with out values
363   --
364   p_appraisal_period_id    := l_appraisal_period_id;
365   p_object_version_number  := l_object_version_number;
366 
367   --
368   -- Pipe the main IN OUT / OUT parameters for ease of debugging.
369   --
370   IF g_debug THEN
371 
372     hr_utility.trace(' ');
373     hr_utility.trace(' --------------------------------'||
374                      '---------------------------------');
375     hr_utility.trace(' IN OUT / OUT PARAMETER          '||
376                      ' VALUE');
377     hr_utility.trace(' --------------------------------'||
378                      '+--------------------------------');
379     hr_utility.trace('  p_appraisal_period_id          '||
380                         to_char(p_appraisal_period_id));
381     hr_utility.trace('  p_object_version_number        '||
382                         to_char(p_object_version_number));
383     hr_utility.trace(' --------------------------------'||
384                      '---------------------------------');
385     hr_utility.trace(' ');
386     hr_utility.set_location(' Leaving:'||l_proc, 970);
387 
388   END IF;
389 
390 exception
391   when hr_api.validate_enabled then
392     --
393     -- As the Validate_Enabled exception has been raised
394     -- we must rollback to the savepoint
395     --
396     rollback to create_appraisal_period;
397     --
398     -- Reset IN OUT parameters and set OUT parameters
399     -- (Any key or derived arguments must be set to null
400     -- when validation only mode is being used.)
401     --
402     p_appraisal_period_id    := null;
403     p_object_version_number  := null;
404     hr_utility.set_location(' Leaving:'||l_proc, 980);
405   when others then
406     --
407     -- A validation or unexpected error has occured
408     --
409     rollback to create_appraisal_period;
410     --
411     -- Reset IN OUT parameters and set all
412     -- OUT parameters, including warnings, to null
413     --
414     p_appraisal_period_id    := null;
415     p_object_version_number  := null;
416     hr_utility.set_location(' Leaving:'||l_proc, 990);
417     raise;
418 end create_appraisal_period;
419 --
420 -- ----------------------------------------------------------------------------
421 -- |--------------------------< update_appraisal_period >---------------------|
422 -- ----------------------------------------------------------------------------
423 --
424 procedure update_appraisal_period
425   (p_validate                      in     boolean  default false
426   ,p_effective_date                in     date
427   ,p_appraisal_period_id           in     number
428   ,p_object_version_number         in out nocopy   number
429   ,p_start_date                    in     date     default hr_api.g_date
430   ,p_end_date                      in     date     default hr_api.g_date
431   ,p_task_start_date               in     date     default hr_api.g_date
432   ,p_task_end_date                 in     date     default hr_api.g_date
433   ,p_initiator_code                in     varchar2 default hr_api.g_varchar2
434   ,p_appraisal_system_type         in     varchar2 default hr_api.g_varchar2
435   ,p_appraisal_type                in     varchar2 default hr_api.g_varchar2
436   ,p_appraisal_assmt_status        in     varchar2 default hr_api.g_varchar2
437   ,p_auto_conc_process             in     varchar2 default hr_api.g_varchar2
438   ,p_days_before_task_st_dt        in     number   default hr_api.g_number
439   ,p_attribute_category            in     varchar2 default hr_api.g_varchar2
440   ,p_attribute1                    in     varchar2 default hr_api.g_varchar2
441   ,p_attribute2                    in     varchar2 default hr_api.g_varchar2
442   ,p_attribute3                    in     varchar2 default hr_api.g_varchar2
443   ,p_attribute4                    in     varchar2 default hr_api.g_varchar2
444   ,p_attribute5                    in     varchar2 default hr_api.g_varchar2
445   ,p_attribute6                    in     varchar2 default hr_api.g_varchar2
446   ,p_attribute7                    in     varchar2 default hr_api.g_varchar2
447   ,p_attribute8                    in     varchar2 default hr_api.g_varchar2
448   ,p_attribute9                    in     varchar2 default hr_api.g_varchar2
449   ,p_attribute10                   in     varchar2 default hr_api.g_varchar2
450   ,p_attribute11                   in     varchar2 default hr_api.g_varchar2
451   ,p_attribute12                   in     varchar2 default hr_api.g_varchar2
452   ,p_attribute13                   in     varchar2 default hr_api.g_varchar2
453   ,p_attribute14                   in     varchar2 default hr_api.g_varchar2
454   ,p_attribute15                   in     varchar2 default hr_api.g_varchar2
455   ,p_attribute16                   in     varchar2 default hr_api.g_varchar2
456   ,p_attribute17                   in     varchar2 default hr_api.g_varchar2
457   ,p_attribute18                   in     varchar2 default hr_api.g_varchar2
458   ,p_attribute19                   in     varchar2 default hr_api.g_varchar2
459   ,p_attribute20                   in     varchar2 default hr_api.g_varchar2
460   ,p_attribute21                   in     varchar2 default hr_api.g_varchar2
461   ,p_attribute22                   in     varchar2 default hr_api.g_varchar2
462   ,p_attribute23                   in     varchar2 default hr_api.g_varchar2
463   ,p_attribute24                   in     varchar2 default hr_api.g_varchar2
464   ,p_attribute25                   in     varchar2 default hr_api.g_varchar2
465   ,p_attribute26                   in     varchar2 default hr_api.g_varchar2
466   ,p_attribute27                   in     varchar2 default hr_api.g_varchar2
467   ,p_attribute28                   in     varchar2 default hr_api.g_varchar2
468   ,p_attribute29                   in     varchar2 default hr_api.g_varchar2
469   ,p_attribute30                   in     varchar2 default hr_api.g_varchar2
470   ) is
471   --
472   -- Declare cursors and local variables
473   --
474   l_effective_date         date;
475   l_proc                   varchar2(72) := g_package||'update_appraisal_period';
476   l_start_date             date;
477   l_end_date               date;
478   l_task_start_date        date;
479   l_task_end_date          date;
480   l_object_version_number  number := p_object_version_number;
481 
482 begin
483 
484   IF g_debug THEN
485 
486     hr_utility.set_location('Entering:'|| l_proc, 10);
487 
488     hr_utility.trace(' ');
489     hr_utility.trace(' --------------------------------'||
490                      '---------------------------------');
491     hr_utility.trace(' IN / IN OUT PARAMETER           '||
492                      ' VALUE');
493     hr_utility.trace(' --------------------------------'||
494                      '+--------------------------------');
495     hr_utility.trace('  p_appraisal_period_id            '||
496                         to_char(p_appraisal_period_id));
497     hr_utility.trace('  p_object_version_number          '||
498                         to_char(p_object_version_number));
499     hr_utility.trace('  p_start_date                     '||
500                         to_char(p_start_date));
501     hr_utility.trace('  p_end_date                       '||
502                         to_char(p_end_date));
503     hr_utility.trace('  p_task_start_date                '||
504                         to_char(p_task_start_date));
505     hr_utility.trace('  p_task_end_date                  '||
506                         to_char(p_task_end_date));
507     hr_utility.trace('  p_initiator_code                 '||
508                         p_initiator_code);
509     hr_utility.trace('  p_effective_date                 '||
510                         to_char(p_effective_date));
511     hr_utility.trace(' --------------------------------'||
512                      '---------------------------------');
513     hr_utility.trace(' ');
514 
515   END IF;
516 
517   --
518   -- Issue a savepoint
519   --
520   savepoint update_appraisal_period;
521 
522   --
523   -- Truncate the time portion from all IN date parameters
524   --
525   l_effective_date         := trunc(p_effective_date);
526   l_start_date      := trunc(p_start_date);
527   l_end_date        := trunc(p_end_date);
528   l_task_start_date := trunc(p_task_start_date);
529   l_task_end_date   := trunc(p_task_end_date);
530 
531   --
532   -- Call Before Process User Hook
533   --
534   begin
535     hr_appraisal_period_bk2.update_appraisal_period_b
536       (p_effective_date                => l_effective_date
537       ,p_appraisal_period_id           => p_appraisal_period_id
538       ,p_object_version_number         => l_object_version_number
539       ,p_start_date                    => l_start_date
540       ,p_end_date                      => l_end_date
541       ,p_task_start_date               => l_task_start_date
542       ,p_task_end_date                 => l_task_end_date
543       ,p_initiator_code                => p_initiator_code
544       ,p_appraisal_system_type         => p_appraisal_system_type
545       ,p_appraisal_type                => p_appraisal_type
546       ,p_appraisal_assmt_status        => p_appraisal_assmt_status
547       ,p_auto_conc_process             => p_auto_conc_process
548       ,p_days_before_task_st_dt        => p_days_before_task_st_dt
549       ,p_attribute_category            => p_attribute_category
550       ,p_attribute1                    => p_attribute1
551       ,p_attribute2                    => p_attribute2
552       ,p_attribute3                    => p_attribute3
553       ,p_attribute4                    => p_attribute4
554       ,p_attribute5                    => p_attribute5
555       ,p_attribute6                    => p_attribute6
556       ,p_attribute7                    => p_attribute7
557       ,p_attribute8                    => p_attribute8
558       ,p_attribute9                    => p_attribute9
559       ,p_attribute10                   => p_attribute10
560       ,p_attribute11                   => p_attribute11
561       ,p_attribute12                   => p_attribute12
562       ,p_attribute13                   => p_attribute13
563       ,p_attribute14                   => p_attribute14
564       ,p_attribute15                   => p_attribute15
565       ,p_attribute16                   => p_attribute16
566       ,p_attribute17                   => p_attribute17
567       ,p_attribute18                   => p_attribute18
568       ,p_attribute19                   => p_attribute19
569       ,p_attribute20                   => p_attribute20
570       ,p_attribute21                   => p_attribute21
571       ,p_attribute22                   => p_attribute22
572       ,p_attribute23                   => p_attribute23
573       ,p_attribute24                   => p_attribute24
574       ,p_attribute25                   => p_attribute25
575       ,p_attribute26                   => p_attribute26
576       ,p_attribute27                   => p_attribute27
577       ,p_attribute28                   => p_attribute28
578       ,p_attribute29                   => p_attribute29
579       ,p_attribute30                   => p_attribute30
580       );
581   exception
582     when hr_api.cannot_find_prog_unit then
583       hr_api.cannot_find_prog_unit_error
584         (p_module_name => 'UPDATE_APPRAISAL_PERIOD'
585         ,p_hook_type   => 'BP'
586         );
587   end;
588 
589   --
590   -- Process Logic
591   --
592   IF g_debug THEN hr_utility.set_location(l_proc, 30); END IF;
593 
594   per_pma_upd.upd
595     (p_effective_date                => l_effective_date
596     ,p_appraisal_period_id           => p_appraisal_period_id
597     ,p_object_version_number         => l_object_version_number
598     ,p_start_date                    => l_start_date
599     ,p_end_date                      => l_end_date
600     ,p_task_start_date               => l_task_start_date
601     ,p_task_end_date                 => l_task_end_date
602     ,p_initiator_code                => p_initiator_code
603     ,p_appraisal_system_type         => p_appraisal_system_type
604     ,p_appraisal_type                => p_appraisal_type
605     ,p_appraisal_assmt_status        => p_appraisal_assmt_status
606     ,p_auto_conc_process             => p_auto_conc_process
607     ,p_days_before_task_st_dt        => p_days_before_task_st_dt
608     ,p_attribute_category            => p_attribute_category
609     ,p_attribute1                    => p_attribute1
610     ,p_attribute2                    => p_attribute2
611     ,p_attribute3                    => p_attribute3
612     ,p_attribute4                    => p_attribute4
613     ,p_attribute5                    => p_attribute5
614     ,p_attribute6                    => p_attribute6
615     ,p_attribute7                    => p_attribute7
616     ,p_attribute8                    => p_attribute8
617     ,p_attribute9                    => p_attribute9
618     ,p_attribute10                   => p_attribute10
619     ,p_attribute11                   => p_attribute11
620     ,p_attribute12                   => p_attribute12
621     ,p_attribute13                   => p_attribute13
622     ,p_attribute14                   => p_attribute14
623     ,p_attribute15                   => p_attribute15
624     ,p_attribute16                   => p_attribute16
625     ,p_attribute17                   => p_attribute17
626     ,p_attribute18                   => p_attribute18
627     ,p_attribute19                   => p_attribute19
628     ,p_attribute20                   => p_attribute20
629     ,p_attribute21                   => p_attribute21
630     ,p_attribute22                   => p_attribute22
631     ,p_attribute23                   => p_attribute23
632     ,p_attribute24                   => p_attribute24
633     ,p_attribute25                   => p_attribute25
634     ,p_attribute26                   => p_attribute26
635     ,p_attribute27                   => p_attribute27
636     ,p_attribute28                   => p_attribute28
637     ,p_attribute29                   => p_attribute29
638     ,p_attribute30                   => p_attribute30
639     );
640 
641   --
642   -- Call After Process User Hook
643   --
644   begin
645     hr_appraisal_period_bk2.update_appraisal_period_a
646       (p_effective_date                => l_effective_date
647       ,p_appraisal_period_id           => p_appraisal_period_id
648       ,p_object_version_number         => l_object_version_number
649       ,p_start_date                    => l_start_date
650       ,p_end_date                      => l_end_date
651       ,p_task_start_date               => l_task_start_date
652       ,p_task_end_date                 => l_task_end_date
653       ,p_initiator_code                => p_initiator_code
654       ,p_appraisal_system_type         => p_appraisal_system_type
655       ,p_appraisal_type                => p_appraisal_type
656       ,p_appraisal_assmt_status        => p_appraisal_assmt_status
657       ,p_auto_conc_process             => p_auto_conc_process
658       ,p_days_before_task_st_dt        => p_days_before_task_st_dt
659       ,p_attribute_category            => p_attribute_category
660       ,p_attribute1                    => p_attribute1
661       ,p_attribute2                    => p_attribute2
662       ,p_attribute3                    => p_attribute3
663       ,p_attribute4                    => p_attribute4
664       ,p_attribute5                    => p_attribute5
665       ,p_attribute6                    => p_attribute6
666       ,p_attribute7                    => p_attribute7
667       ,p_attribute8                    => p_attribute8
668       ,p_attribute9                    => p_attribute9
669       ,p_attribute10                   => p_attribute10
670       ,p_attribute11                   => p_attribute11
671       ,p_attribute12                   => p_attribute12
672       ,p_attribute13                   => p_attribute13
673       ,p_attribute14                   => p_attribute14
674       ,p_attribute15                   => p_attribute15
675       ,p_attribute16                   => p_attribute16
676       ,p_attribute17                   => p_attribute17
677       ,p_attribute18                   => p_attribute18
678       ,p_attribute19                   => p_attribute19
679       ,p_attribute20                   => p_attribute20
680       ,p_attribute21                   => p_attribute21
681       ,p_attribute22                   => p_attribute22
682       ,p_attribute23                   => p_attribute23
683       ,p_attribute24                   => p_attribute24
684       ,p_attribute25                   => p_attribute25
685       ,p_attribute26                   => p_attribute26
686       ,p_attribute27                   => p_attribute27
687       ,p_attribute28                   => p_attribute28
688       ,p_attribute29                   => p_attribute29
689       ,p_attribute30                   => p_attribute30
690       );
691   exception
692     when hr_api.cannot_find_prog_unit then
693       hr_api.cannot_find_prog_unit_error
694         (p_module_name => 'UPDATE_APPRAISAL_PERIOD'
695         ,p_hook_type   => 'AP'
696         );
697   end;
698 
699   --
700   -- Update the plan's status to Updated if the plan is already
701   -- published.
702   --
703   set_plan_status(per_pma_shd.g_old_rec.plan_id
704                  ,per_pma_shd.g_old_rec.start_date);
705 
706   IF g_debug THEN hr_utility.set_location(l_proc, 40); END IF;
707   --
708   -- When in validation only mode raise the Validate_Enabled exception
709   --
710   if p_validate then
711     raise hr_api.validate_enabled;
712   end if;
713   --
714   -- Set all IN OUT and OUT parameters with out values
715   --
716   p_object_version_number  := l_object_version_number;
717 
718   --
719   -- Pipe the main IN OUT / OUT parameters for ease of debugging.
720   --
721   IF g_debug THEN
722 
723     hr_utility.trace(' ');
724     hr_utility.trace(' --------------------------------'||
725                      '---------------------------------');
726     hr_utility.trace(' IN OUT / OUT PARAMETER          '||
727                      ' VALUE');
728     hr_utility.trace(' --------------------------------'||
729                      '+--------------------------------');
730     hr_utility.trace('  p_object_version_number        '||
731                         to_char(p_object_version_number));
732     hr_utility.trace(' --------------------------------'||
733                      '---------------------------------');
734     hr_utility.trace(' ');
735     hr_utility.set_location(' Leaving:'||l_proc, 970);
736 
737   END IF;
738 
739 exception
740   when hr_api.validate_enabled then
741     --
742     -- As the Validate_Enabled exception has been raised
743     -- we must rollback to the savepoint
744     --
745     rollback to update_appraisal_period;
746     --
747     -- Reset IN OUT parameters and set OUT parameters
748     -- (Any key or derived arguments must be set to null
749     -- when validation only mode is being used.)
750     --
751     p_object_version_number  := null;
752     hr_utility.set_location(' Leaving:'||l_proc, 980);
753   when others then
754     --
755     -- A validation or unexpected error has occured
756     --
757     rollback to update_appraisal_period;
758     --
759     -- Reset IN OUT parameters and set all
760     -- OUT parameters, including warnings, to null
761     --
762     p_object_version_number  := null;
763     hr_utility.set_location(' Leaving:'||l_proc, 990);
764     raise;
765 end update_appraisal_period;
766 --
767 -- ----------------------------------------------------------------------------
768 -- |--------------------------< delete_appraisal_period >---------------------|
769 -- ----------------------------------------------------------------------------
770 --
771 procedure delete_appraisal_period
772   (p_validate                      in     boolean  default false
773   ,p_appraisal_period_id           in     number
774   ,p_object_version_number         in     number
775   ) is
776   --
777   -- Declare cursors and local variables
778   --
779   l_proc                    varchar2(72) := g_package||'delete_appraisal_period';
780 
781 begin
782 
783   IF g_debug THEN
784 
785     hr_utility.set_location('Entering:'|| l_proc, 10);
786 
787     hr_utility.trace(' ');
788     hr_utility.trace(' --------------------------------'||
789                      '---------------------------------');
790     hr_utility.trace(' IN / IN OUT PARAMETER           '||
791                      ' VALUE');
792     hr_utility.trace(' --------------------------------'||
793                      '+--------------------------------');
794     hr_utility.trace('  p_appraisal_period_id            '||
795                         to_char(p_appraisal_period_id));
796     hr_utility.trace('  p_object_version_number          '||
797                         to_char(p_object_version_number));
798     hr_utility.trace(' --------------------------------'||
799                      '---------------------------------');
800     hr_utility.trace(' ');
801 
802   END IF;
803 
804   --
805   -- Issue a savepoint
806   --
807   savepoint delete_appraisal_period;
808 
809   --
810   -- Call Before Process User Hook
811   --
812   begin
813     hr_appraisal_period_bk3.delete_appraisal_period_b
814       (p_appraisal_period_id           => p_appraisal_period_id
815       ,p_object_version_number         => p_object_version_number
816       );
817   exception
818     when hr_api.cannot_find_prog_unit then
819       hr_api.cannot_find_prog_unit_error
820         (p_module_name => 'DELETE_APPRAISAL_PERIOD'
821         ,p_hook_type   => 'BP'
822         );
823   end;
824 
825   --
826   -- Process Logic
827   --
828   IF g_debug THEN hr_utility.set_location(l_proc, 30); END IF;
829 
830   per_pma_del.del
831     (p_appraisal_period_id           => p_appraisal_period_id
832     ,p_object_version_number         => p_object_version_number
833     );
834 
835   --
836   -- Call After Process User Hook
837   --
838   begin
839     hr_appraisal_period_bk3.delete_appraisal_period_a
840       (p_appraisal_period_id           => p_appraisal_period_id
841       ,p_object_version_number         => p_object_version_number
842       );
843   exception
844     when hr_api.cannot_find_prog_unit then
845       hr_api.cannot_find_prog_unit_error
846         (p_module_name => 'DELETE_APPRAISAL_PERIOD'
847         ,p_hook_type   => 'AP'
848         );
849   end;
850 
851   IF g_debug THEN hr_utility.set_location(l_proc, 40); END IF;
852   --
853   -- When in validation only mode raise the Validate_Enabled exception
854   --
855   if p_validate then
856     raise hr_api.validate_enabled;
857   end if;
858 
859   --
860   -- Pipe the main IN OUT / OUT parameters for ease of debugging.
861   --
862   IF g_debug THEN
863 
864     hr_utility.trace(' ');
865     hr_utility.trace(' --------------------------------'||
866                      '---------------------------------');
867     hr_utility.trace(' IN OUT / OUT PARAMETER          '||
868                      ' VALUE');
869     hr_utility.trace(' --------------------------------'||
870                      '+--------------------------------');
871     hr_utility.trace(' ');
872     hr_utility.set_location(' Leaving:'||l_proc, 970);
873 
874   END IF;
875 
876 exception
877   when hr_api.validate_enabled then
878     --
879     -- As the Validate_Enabled exception has been raised
880     -- we must rollback to the savepoint
881     --
882     rollback to delete_appraisal_period;
883     hr_utility.set_location(' Leaving:'||l_proc, 980);
884   when others then
885     --
886     -- A validation or unexpected error has occured
887     --
888     rollback to delete_appraisal_period;
889     hr_utility.set_location(' Leaving:'||l_proc, 990);
890     raise;
891 end delete_appraisal_period;
892 --
893 end hr_appraisal_period_api;