[Home] [Help]
PACKAGE BODY: APPS.HR_SIT_API
Source
1 Package Body hr_sit_api as
2 /* $Header: pesitapi.pkb 120.2.12010000.2 2008/08/06 09:37:49 ubhat ship $ */
3 --
4 -- Package Variables
5 --
6 g_package varchar2(33) := ' HR_SIT_API.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-----------------------------< create_sit >-------------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_sit
13 (p_validate in boolean default false
14 ,p_person_id in number
15 ,p_business_group_id in number
16 ,p_id_flex_num in number
17 ,p_effective_date in date
18 ,p_comments in varchar2 default null
19 ,p_date_from in date default null
20 ,p_date_to in date default null
21 ,p_request_id in number default null
22 ,p_program_application_id in number default null
23 ,p_program_id in number default null
24 ,p_program_update_date in date default null
25 ,p_attribute_category in varchar2 default null
26 ,p_attribute1 in varchar2 default null
27 ,p_attribute2 in varchar2 default null
28 ,p_attribute3 in varchar2 default null
29 ,p_attribute4 in varchar2 default null
30 ,p_attribute5 in varchar2 default null
31 ,p_attribute6 in varchar2 default null
32 ,p_attribute7 in varchar2 default null
33 ,p_attribute8 in varchar2 default null
34 ,p_attribute9 in varchar2 default null
35 ,p_attribute10 in varchar2 default null
36 ,p_attribute11 in varchar2 default null
37 ,p_attribute12 in varchar2 default null
38 ,p_attribute13 in varchar2 default null
39 ,p_attribute14 in varchar2 default null
40 ,p_attribute15 in varchar2 default null
41 ,p_attribute16 in varchar2 default null
42 ,p_attribute17 in varchar2 default null
43 ,p_attribute18 in varchar2 default null
44 ,p_attribute19 in varchar2 default null
45 ,p_attribute20 in varchar2 default null
46 ,p_segment1 in varchar2 default null
47 ,p_segment2 in varchar2 default null
48 ,p_segment3 in varchar2 default null
49 ,p_segment4 in varchar2 default null
50 ,p_segment5 in varchar2 default null
51 ,p_segment6 in varchar2 default null
52 ,p_segment7 in varchar2 default null
53 ,p_segment8 in varchar2 default null
54 ,p_segment9 in varchar2 default null
55 ,p_segment10 in varchar2 default null
56 ,p_segment11 in varchar2 default null
57 ,p_segment12 in varchar2 default null
58 ,p_segment13 in varchar2 default null
59 ,p_segment14 in varchar2 default null
60 ,p_segment15 in varchar2 default null
61 ,p_segment16 in varchar2 default null
62 ,p_segment17 in varchar2 default null
63 ,p_segment18 in varchar2 default null
64 ,p_segment19 in varchar2 default null
65 ,p_segment20 in varchar2 default null
66 ,p_segment21 in varchar2 default null
67 ,p_segment22 in varchar2 default null
68 ,p_segment23 in varchar2 default null
69 ,p_segment24 in varchar2 default null
70 ,p_segment25 in varchar2 default null
71 ,p_segment26 in varchar2 default null
72 ,p_segment27 in varchar2 default null
73 ,p_segment28 in varchar2 default null
74 ,p_segment29 in varchar2 default null
75 ,p_segment30 in varchar2 default null
76 ,p_concat_segments in varchar2 default null
77 ,p_analysis_criteria_id in out nocopy number
78 ,p_person_analysis_id out nocopy number
79 ,p_pea_object_version_number out nocopy number
80 ) is
81 --
82 -- Declare cursors and local variables
83 --
84 l_proc varchar2(72) := g_package||'create_sit';
85 l_analysis_criteria_id per_person_analyses.analysis_criteria_id%TYPE := p_analysis_criteria_id;
86 l_person_analysis_id per_person_analyses.person_analysis_id%TYPE;
87 l_discard number;
88 l_name varchar2(700);
89 l_effective_date date;
90 l_object_version_number per_person_analyses.object_version_number%TYPE;
91 l_date_from per_person_analyses.date_from%TYPE;
92 l_date_to per_person_analyses.date_to%TYPE;
93 l_program_update_date per_person_analyses.program_update_date%TYPE;
94 l_segment1 varchar2(150) := p_segment1;
95 l_segment2 varchar2(150) := p_segment2;
96 l_segment3 varchar2(150) := p_segment3;
97 l_segment4 varchar2(150) := p_segment4;
98 l_segment5 varchar2(150) := p_segment5;
99 l_segment6 varchar2(150) := p_segment6;
100 l_segment7 varchar2(150) := p_segment7;
101 l_segment8 varchar2(150) := p_segment8;
102 l_segment9 varchar2(150) := p_segment9;
103 l_segment10 varchar2(150) := p_segment10;
104 l_segment11 varchar2(150) := p_segment11;
105 l_segment12 varchar2(150) := p_segment12;
106 l_segment13 varchar2(150) := p_segment13;
107 l_segment14 varchar2(150) := p_segment14;
108 l_segment15 varchar2(150) := p_segment15;
109 l_segment16 varchar2(150) := p_segment16;
110 l_segment17 varchar2(150) := p_segment17;
111 l_segment18 varchar2(150) := p_segment18;
112 l_segment19 varchar2(150) := p_segment19;
113 l_segment20 varchar2(150) := p_segment20;
114 l_segment21 varchar2(150) := p_segment21;
115 l_segment22 varchar2(150) := p_segment22;
116 l_segment23 varchar2(150) := p_segment23;
117 l_segment24 varchar2(150) := p_segment24;
118 l_segment25 varchar2(150) := p_segment25;
119 l_segment26 varchar2(150) := p_segment26;
120 l_segment27 varchar2(150) := p_segment27;
121 l_segment28 varchar2(150) := p_segment28;
122 l_segment29 varchar2(150) := p_segment29;
123 l_segment30 varchar2(150) := p_segment30;
124 l_null_ind number(1) := 0;
125 --
126 --
127 cursor csr_bg is
128 select 1
129 from per_business_groups pbg
130 where pbg.business_group_id = p_business_group_id;
131 --
132 -- the cursor ancsel ensures the id_flex_num must be valid, enabled for
133 -- the id_flex_code 'PEA' and must exist within PER_SPECIAL_INFO_TYPES
134 -- for the business group.
135 --
136 cursor ancsel is
137 select 1
138 from per_special_info_types pc,
139 fnd_id_flex_structures fs
140 where fs.id_flex_num = pc.id_flex_num
141 and fs.id_flex_code = 'PEA'
142 and pc.enabled_flag = 'Y'
143 and pc.business_group_id + 0 = p_business_group_id
144 and pc.id_flex_num = p_id_flex_num;
145 --
146 -- the cursor ancerrsel1 determines if the id_flex_num is valid
147 -- note: only called when cursor ancsel fails
148 --
149 cursor ancerrsel1 is
150 select 1
151 from fnd_id_flex_structures fs
152 where fs.id_flex_num = p_id_flex_num
153 and fs.id_flex_code = 'PEA';
154 --
155 -- the cursor ancerrsel2 determines if the id_flex_num is valid for
156 -- per_special_info_types
157 -- note: only called when cursor ancsel fails
158 --
159 cursor ancerrsel2 is
160 select 1
161 from per_special_info_types pc
162 where pc.business_group_id + 0 = p_business_group_id
163 and pc.id_flex_num = p_id_flex_num;
164 --
165 -- the cursor c1 derives segment values using p_analysis_criteria_id
166 -- if it has a value
167 -- note: only called if p_analysis_criteria_id is not null
168 --
169 cursor c1 is
170 select segment1,
171 segment2,
172 segment3,
173 segment4,
174 segment5,
175 segment6,
176 segment7,
177 segment8,
178 segment9,
179 segment10,
180 segment11,
181 segment12,
182 segment13,
183 segment14,
184 segment15,
185 segment16,
186 segment17,
187 segment18,
188 segment19,
189 segment20,
190 segment21,
191 segment22,
192 segment23,
193 segment24,
194 segment25,
195 segment26,
196 segment27,
197 segment28,
198 segment29,
199 segment30
200 from per_analysis_criteria
201 where analysis_criteria_id = l_analysis_criteria_id;
202 --
203 begin
204 hr_utility.set_location('Entering:'|| l_proc, 10);
205 --
206 -- Issue a savepoint
207 --
208 savepoint create_sit;
209 --
210 hr_utility.set_location(l_proc, 20);
211 --
212 -- Truncate date, date_from, date_to and program_update_date values,
213 -- effectively removing time element.
214 --
215 l_effective_date := trunc(p_effective_date);
216 l_date_from := trunc(p_date_from);
217 l_date_to := trunc(p_date_to);
218 l_program_update_date := trunc(p_program_update_date);
219 --
220 -- Check if the p_business_group_id is valid
221 --
222 open csr_bg;
223 fetch csr_bg into l_discard;
224 if csr_bg%notfound then
225 close csr_bg;
226 hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
227 hr_utility.raise_error;
228 end if;
229 close csr_bg;
230 --
231 -- Check if the p_person_id is valid
232 --
233 per_pea_bus.chk_person_id
234 (p_person_id => p_person_id,
235 p_business_group_id => p_business_group_id,
236 p_effective_date => l_effective_date
237 );
238 --
239 -- get segment values if p_analysis_criteria_id has a value
240 --
241 if l_analysis_criteria_id is not null
242 then
243 -- set indicator to show p_criteria_analysis_id did not enter program null
244 --
245 l_null_ind := 1;
246 --
247 open c1;
248 fetch c1 into l_segment1,
249 l_segment2,
250 l_segment3,
251 l_segment4,
252 l_segment5,
253 l_segment6,
254 l_segment7,
255 l_segment8,
256 l_segment9,
257 l_segment10,
258 l_segment11,
259 l_segment12,
260 l_segment13,
261 l_segment14,
262 l_segment15,
263 l_segment16,
264 l_segment17,
265 l_segment18,
266 l_segment19,
267 l_segment20,
268 l_segment21,
269 l_segment22,
270 l_segment23,
271 l_segment24,
272 l_segment25,
273 l_segment26,
274 l_segment27,
275 l_segment28,
276 l_segment29,
277 l_segment30;
278 close c1;
279 end if;
280 --
281 begin
282 --
283 -- Start of API User Hook for the before hook of create_sit
284 --
285 hr_sit_bk1.create_sit_b
286 (p_person_id => p_person_id
287 ,p_business_group_id => p_business_group_id
288 ,p_id_flex_num => p_id_flex_num
289 ,p_effective_date => l_effective_date
290 ,p_comments => p_comments
291 ,p_date_from => l_date_from
292 ,p_date_to => l_date_to
293 ,p_request_id => p_request_id
294 ,p_program_application_id => p_program_application_id
295 ,p_program_id => p_program_id
296 ,p_program_update_date => l_program_update_date
297 ,p_attribute_category => p_attribute_category
298 ,p_attribute1 => p_attribute1
299 ,p_attribute2 => p_attribute2
300 ,p_attribute3 => p_attribute3
301 ,p_attribute4 => p_attribute4
302 ,p_attribute5 => p_attribute5
303 ,p_attribute6 => p_attribute6
304 ,p_attribute7 => p_attribute7
305 ,p_attribute8 => p_attribute8
306 ,p_attribute9 => p_attribute9
307 ,p_attribute10 => p_attribute10
308 ,p_attribute11 => p_attribute11
309 ,p_attribute12 => p_attribute12
310 ,p_attribute13 => p_attribute13
311 ,p_attribute14 => p_attribute14
312 ,p_attribute15 => p_attribute15
313 ,p_attribute16 => p_attribute16
314 ,p_attribute17 => p_attribute17
315 ,p_attribute18 => p_attribute18
316 ,p_attribute19 => p_attribute19
317 ,p_attribute20 => p_attribute20
318 ,p_segment1 => l_segment1
319 ,p_segment2 => l_segment2
320 ,p_segment3 => l_segment3
321 ,p_segment4 => l_segment4
322 ,p_segment5 => l_segment5
323 ,p_segment6 => l_segment6
324 ,p_segment7 => l_segment7
325 ,p_segment8 => l_segment8
326 ,p_segment9 => l_segment9
327 ,p_segment10 => l_segment10
328 ,p_segment11 => l_segment10
329 ,p_segment12 => l_segment10
330 ,p_segment13 => l_segment13
331 ,p_segment14 => l_segment14
332 ,p_segment15 => l_segment15
333 ,p_segment16 => l_segment16
334 ,p_segment17 => l_segment17
335 ,p_segment18 => l_segment18
336 ,p_segment19 => l_segment19
337 ,p_segment20 => l_segment20
338 ,p_segment21 => l_segment21
339 ,p_segment22 => l_segment22
340 ,p_segment23 => l_segment23
341 ,p_segment24 => l_segment24
342 ,p_segment25 => l_segment25
343 ,p_segment26 => l_segment26
344 ,p_segment27 => l_segment27
345 ,p_segment28 => l_segment28
346 ,p_segment29 => l_segment29
347 ,p_segment30 => l_segment30
348 ,p_concat_segments => p_concat_segments
349 );
350 exception
351 when hr_api.cannot_find_prog_unit then
352 hr_api.cannot_find_prog_unit_error
353 (p_module_name => 'CREATE_SIT'
354 ,p_hook_type => 'BP'
355 );
356 --
357 -- End of API User Hook for the before hook of create_sit
358 --
359 end;
360 --
361 open ancsel;
362 fetch ancsel into l_discard;
363 if ancsel%notfound then
364 close ancsel;
365 --
366 -- the flex structure has not been found therefore we must
367 -- determine the error
368 --
369 open ancerrsel1;
370 fetch ancerrsel1 into l_discard;
371 if ancerrsel1%notfound then
372 close ancerrsel1;
373 hr_utility.set_message(801, 'HR_6039_ALL_CANT_GET_FFIELD');
374 hr_utility.set_message_token('FLEXFIELD_STRUCTURE',
375 p_id_flex_num);
376 hr_utility.raise_error;
377 end if;
378 close ancerrsel1;
379 --
380 open ancerrsel2;
381 fetch ancerrsel2 into l_discard;
382 if ancerrsel2%notfound then
383 close ancerrsel2;
384 --
385 -- the row does not exist in PER_SPECIAL_INFO_TYPES
386 --
387 hr_utility.set_message(801, 'HR_51114_JBR_SPCIAL_NOT_EXIST');
388 hr_utility.raise_error;
389 end if;
390 close ancerrsel2;
391 --
392 -- the row is not enabled in PER_SPECIAL_INFO_TYPES
393 --
394 hr_utility.set_message(801, 'HR_51115_JBR_SPCIAL_NOT_ENABLE');
395 hr_utility.raise_error;
396 end if;
397 close ancsel;
398 --
399 hr_utility.set_location(l_proc, 30);
400 --
401 -- Only call this if p_analysis_criteria_id has no value
402 --
403 if l_analysis_criteria_id is null
404 then
405 --
406 -- Determine the position defintion by calling ins_or_sel
407 --
408 hr_kflex_utility.ins_or_sel_keyflex_comb
409 (p_appl_short_name => 'PER'
410 ,p_flex_code => 'PEA'
411 ,p_flex_num => p_id_flex_num
412 ,p_segment1 => l_segment1
413 ,p_segment2 => l_segment2
414 ,p_segment3 => l_segment3
415 ,p_segment4 => l_segment4
416 ,p_segment5 => l_segment5
417 ,p_segment6 => l_segment6
418 ,p_segment7 => l_segment7
419 ,p_segment8 => l_segment8
420 ,p_segment9 => l_segment9
421 ,p_segment10 => l_segment10
422 ,p_segment11 => l_segment11
423 ,p_segment12 => l_segment12
424 ,p_segment13 => l_segment13
425 ,p_segment14 => l_segment14
426 ,p_segment15 => l_segment15
427 ,p_segment16 => l_segment16
428 ,p_segment17 => l_segment17
429 ,p_segment18 => l_segment18
430 ,p_segment19 => l_segment19
431 ,p_segment20 => l_segment20
432 ,p_segment21 => l_segment21
433 ,p_segment22 => l_segment22
434 ,p_segment23 => l_segment23
435 ,p_segment24 => l_segment24
436 ,p_segment25 => l_segment25
437 ,p_segment26 => l_segment26
438 ,p_segment27 => l_segment27
439 ,p_segment28 => l_segment28
440 ,p_segment29 => l_segment29
441 ,p_segment30 => l_segment30
442 ,p_concat_segments_in => p_concat_segments
443 ,p_ccid => l_analysis_criteria_id
444 ,p_concat_segments_out => l_name
445 );
446 --
447 hr_utility.set_location(l_proc, 40);
448 --
449 end if;
450 --
451 if l_analysis_criteria_id is not null
452 then
453 --
454 -- insert person_analyses into PER_PERSON_ANALYSES
455 per_pea_ins.ins
456 (p_business_group_id => p_business_group_id
457 ,p_analysis_criteria_id => l_analysis_criteria_id
458 ,p_person_id => p_person_id
459 ,p_id_flex_num => p_id_flex_num
460 ,p_effective_date => l_effective_date
461 ,p_comments => p_comments
462 ,p_date_from => l_date_from
463 ,p_date_to => l_date_to
464 ,p_request_id => p_request_id
465 ,p_program_application_id => p_program_application_id
466 ,p_program_id => p_program_id
467 ,p_program_update_date => l_program_update_date
468 ,p_attribute_category => p_attribute_category
469 ,p_attribute1 => p_attribute1
470 ,p_attribute2 => p_attribute2
471 ,p_attribute3 => p_attribute3
472 ,p_attribute4 => p_attribute4
473 ,p_attribute5 => p_attribute5
474 ,p_attribute6 => p_attribute6
475 ,p_attribute7 => p_attribute7
476 ,p_attribute8 => p_attribute8
477 ,p_attribute9 => p_attribute9
478 ,p_attribute10 => p_attribute10
479 ,p_attribute11 => p_attribute11
480 ,p_attribute12 => p_attribute12
481 ,p_attribute13 => p_attribute13
482 ,p_attribute14 => p_attribute14
483 ,p_attribute15 => p_attribute15
484 ,p_attribute16 => p_attribute16
485 ,p_attribute17 => p_attribute17
486 ,p_attribute18 => p_attribute18
487 ,p_attribute19 => p_attribute19
488 ,p_attribute20 => p_attribute20
489 ,p_object_version_number => l_object_version_number
490 ,p_person_analysis_id => l_person_analysis_id
491 );
492 end if;
493 hr_utility.set_location(l_proc, 50);
494 --
495 -- Call After Process User Hook
496 --
497 begin
498 hr_sit_bk1.create_sit_a
499 (p_person_id => p_person_id
500 ,p_business_group_id => p_business_group_id
501 ,p_id_flex_num => p_id_flex_num
502 ,p_effective_date => l_effective_date
503 ,p_comments => p_comments
504 ,p_date_from => l_date_from
505 ,p_date_to => l_date_to
506 ,p_request_id => p_request_id
507 ,p_program_application_id => p_program_application_id
508 ,p_program_id => p_program_id
509 ,p_program_update_date => l_program_update_date
510 ,p_attribute_category => p_attribute_category
511 ,p_attribute1 => p_attribute1
512 ,p_attribute2 => p_attribute2
513 ,p_attribute3 => p_attribute3
514 ,p_attribute4 => p_attribute4
515 ,p_attribute5 => p_attribute5
516 ,p_attribute6 => p_attribute6
517 ,p_attribute7 => p_attribute7
518 ,p_attribute8 => p_attribute8
519 ,p_attribute9 => p_attribute9
520 ,p_attribute10 => p_attribute10
521 ,p_attribute11 => p_attribute11
522 ,p_attribute12 => p_attribute12
523 ,p_attribute13 => p_attribute13
524 ,p_attribute14 => p_attribute14
525 ,p_attribute15 => p_attribute15
526 ,p_attribute16 => p_attribute16
527 ,p_attribute17 => p_attribute17
528 ,p_attribute18 => p_attribute18
529 ,p_attribute19 => p_attribute19
530 ,p_attribute20 => p_attribute20
531 ,p_segment1 => l_segment1
532 ,p_segment2 => l_segment2
533 ,p_segment3 => l_segment3
534 ,p_segment4 => l_segment4
535 ,p_segment5 => l_segment5
536 ,p_segment6 => l_segment6
537 ,p_segment7 => l_segment7
538 ,p_segment8 => l_segment8
539 ,p_segment9 => l_segment9
540 ,p_segment10 => l_segment10
541 ,p_segment11 => l_segment11
542 ,p_segment12 => l_segment12
543 ,p_segment13 => l_segment13
544 ,p_segment14 => l_segment14
545 ,p_segment15 => l_segment15
546 ,p_segment16 => l_segment16
547 ,p_segment17 => l_segment17
548 ,p_segment18 => l_segment18
549 ,p_segment19 => l_segment19
550 ,p_segment20 => l_segment20
551 ,p_segment21 => l_segment21
552 ,p_segment22 => l_segment22
553 ,p_segment23 => l_segment23
554 ,p_segment24 => l_segment24
555 ,p_segment25 => l_segment25
556 ,p_segment26 => l_segment26
557 ,p_segment27 => l_segment27
558 ,p_segment28 => l_segment28
559 ,p_segment29 => l_segment29
560 ,p_segment30 => l_segment30
561 ,p_concat_segments => p_concat_segments
562 ,p_analysis_criteria_id => l_analysis_criteria_id
563 ,p_person_analysis_id => l_person_analysis_id
564 ,p_pea_object_version_number => l_object_version_number
565 );
566 exception
567 when hr_api.cannot_find_prog_unit then
568 hr_api.cannot_find_prog_unit_error
569 (p_module_name => 'CREATE_SIT'
570 ,p_hook_type => 'AP'
571 );
572 --
573 -- End of API User Hook for the after hook of create_sit
574 --
575 end;
576 --
577 hr_utility.set_location(l_proc, 70);
578 --
579 if p_validate then
580 raise hr_api.validate_enabled;
581 end if;
582 --
583 hr_utility.set_location(l_proc, 75);
584 --
585 -- Set OUT parameters
586 --
587 if l_null_ind = 1
588 then
589 p_person_analysis_id := l_person_analysis_id;
590 p_pea_object_version_number := l_object_version_number;
591 else
592 p_analysis_criteria_id := l_analysis_criteria_id;
593 p_person_analysis_id := l_person_analysis_id;
594 p_pea_object_version_number := l_object_version_number;
595 end if;
596 --
597 hr_utility.set_location(' Leaving:'||l_proc, 80);
598 exception
599 when hr_api.validate_enabled then
600 --
601 -- As the Validate_Enabled exception has been raised
602 -- we must rollback to the savepoint
603 --
604 ROLLBACK TO create_sit;
605 --
606 -- Set OUT parameters to null
607 --
608 if l_null_ind = 1
609 then
610 p_person_analysis_id := null;
611 p_pea_object_version_number := null;
612 else
613 p_analysis_criteria_id := null;
614 p_person_analysis_id := null;
615 p_pea_object_version_number := null;
616 end if;
617 --
618 hr_utility.set_location(' Leaving:'||l_proc, 90);
619 --
620 when others then
621 --
622 -- A validation or unexpected error has occured
623 --
624 -- Added as part of the fix to bug 632479
625 --
626 p_analysis_criteria_id := l_analysis_criteria_id;
627 p_person_analysis_id := null;
628 p_pea_object_version_number := null;
629 ROLLBACK TO create_sit;
630 --
631 hr_utility.set_location(' Leaving:'||l_proc, 100);
632 --
633 raise;
634 --
635 end create_sit;
636 --
637 -- ----------------------------------------------------------------------------
638 -- |-----------------------------< update_sit >-------------------------------|
639 -- ----------------------------------------------------------------------------
640 --
641 procedure update_sit
642 (p_validate in boolean default false
643 ,p_person_analysis_id in number
644 ,p_pea_object_version_number in out nocopy number
645 ,p_comments in varchar2 default hr_api.g_varchar2
646 ,p_date_from in date default hr_api.g_date
647 ,p_date_to in date default hr_api.g_date
648 ,p_request_id in number default hr_api.g_number
649 ,p_program_application_id in number default hr_api.g_number
650 ,p_program_id in number default hr_api.g_number
651 ,p_program_update_date in date default hr_api.g_date
652 ,p_attribute_category in varchar2 default hr_api.g_varchar2
653 ,p_attribute1 in varchar2 default hr_api.g_varchar2
654 ,p_attribute2 in varchar2 default hr_api.g_varchar2
655 ,p_attribute3 in varchar2 default hr_api.g_varchar2
656 ,p_attribute4 in varchar2 default hr_api.g_varchar2
657 ,p_attribute5 in varchar2 default hr_api.g_varchar2
658 ,p_attribute6 in varchar2 default hr_api.g_varchar2
659 ,p_attribute7 in varchar2 default hr_api.g_varchar2
660 ,p_attribute8 in varchar2 default hr_api.g_varchar2
661 ,p_attribute9 in varchar2 default hr_api.g_varchar2
662 ,p_attribute10 in varchar2 default hr_api.g_varchar2
663 ,p_attribute11 in varchar2 default hr_api.g_varchar2
664 ,p_attribute12 in varchar2 default hr_api.g_varchar2
665 ,p_attribute13 in varchar2 default hr_api.g_varchar2
666 ,p_attribute14 in varchar2 default hr_api.g_varchar2
667 ,p_attribute15 in varchar2 default hr_api.g_varchar2
668 ,p_attribute16 in varchar2 default hr_api.g_varchar2
669 ,p_attribute17 in varchar2 default hr_api.g_varchar2
670 ,p_attribute18 in varchar2 default hr_api.g_varchar2
671 ,p_attribute19 in varchar2 default hr_api.g_varchar2
672 ,p_attribute20 in varchar2 default hr_api.g_varchar2
673 ,p_segment1 in varchar2 default hr_api.g_varchar2
674 ,p_segment2 in varchar2 default hr_api.g_varchar2
675 ,p_segment3 in varchar2 default hr_api.g_varchar2
676 ,p_segment4 in varchar2 default hr_api.g_varchar2
677 ,p_segment5 in varchar2 default hr_api.g_varchar2
678 ,p_segment6 in varchar2 default hr_api.g_varchar2
679 ,p_segment7 in varchar2 default hr_api.g_varchar2
680 ,p_segment8 in varchar2 default hr_api.g_varchar2
681 ,p_segment9 in varchar2 default hr_api.g_varchar2
682 ,p_segment10 in varchar2 default hr_api.g_varchar2
683 ,p_segment11 in varchar2 default hr_api.g_varchar2
684 ,p_segment12 in varchar2 default hr_api.g_varchar2
685 ,p_segment13 in varchar2 default hr_api.g_varchar2
686 ,p_segment14 in varchar2 default hr_api.g_varchar2
687 ,p_segment15 in varchar2 default hr_api.g_varchar2
688 ,p_segment16 in varchar2 default hr_api.g_varchar2
689 ,p_segment17 in varchar2 default hr_api.g_varchar2
690 ,p_segment18 in varchar2 default hr_api.g_varchar2
691 ,p_segment19 in varchar2 default hr_api.g_varchar2
692 ,p_segment20 in varchar2 default hr_api.g_varchar2
693 ,p_segment21 in varchar2 default hr_api.g_varchar2
694 ,p_segment22 in varchar2 default hr_api.g_varchar2
695 ,p_segment23 in varchar2 default hr_api.g_varchar2
696 ,p_segment24 in varchar2 default hr_api.g_varchar2
697 ,p_segment25 in varchar2 default hr_api.g_varchar2
698 ,p_segment26 in varchar2 default hr_api.g_varchar2
699 ,p_segment27 in varchar2 default hr_api.g_varchar2
700 ,p_segment28 in varchar2 default hr_api.g_varchar2
701 ,p_segment29 in varchar2 default hr_api.g_varchar2
702 ,p_segment30 in varchar2 default hr_api.g_varchar2
703 ,p_concat_segments in varchar2 default hr_api.g_varchar2
704 ,p_analysis_criteria_id in out nocopy number
705 ) is
706 --
707 --
708 l_proc varchar2(72) := g_package||'update_sit';
709 l_analysis_criteria_id per_person_analyses.analysis_criteria_id%TYPE := p_analysis_criteria_id;
710 l_object_version_number per_person_analyses.object_version_number%TYPE;
711 l_pea_object_version_number per_person_analyses.object_version_number%TYPE := p_pea_object_version_number;
712 l_id_flex_num per_person_analyses.id_flex_num%TYPE;
713 l_name varchar2(700);
714 l_business_group_id per_person_analyses.business_group_id%TYPE;
715 l_api_updating boolean;
716 l_date_from per_person_analyses.date_from%TYPE;
717 l_date_to per_person_analyses.date_to%TYPE;
718 l_program_update_date per_person_analyses.program_update_date%TYPE;
719 l_segment1 varchar2(150) := p_segment1;
720 l_segment2 varchar2(150) := p_segment2;
721 l_segment3 varchar2(150) := p_segment3;
722 l_segment4 varchar2(150) := p_segment4;
723 l_segment5 varchar2(150) := p_segment5;
724 l_segment6 varchar2(150) := p_segment6;
725 l_segment7 varchar2(150) := p_segment7;
726 l_segment8 varchar2(150) := p_segment8;
727 l_segment9 varchar2(150) := p_segment9;
728 l_segment10 varchar2(150) := p_segment10;
729 l_segment11 varchar2(150) := p_segment11;
730 l_segment12 varchar2(150) := p_segment12;
731 l_segment13 varchar2(150) := p_segment13;
732 l_segment14 varchar2(150) := p_segment14;
733 l_segment15 varchar2(150) := p_segment15;
734 l_segment16 varchar2(150) := p_segment16;
735 l_segment17 varchar2(150) := p_segment17;
736 l_segment18 varchar2(150) := p_segment18;
737 l_segment19 varchar2(150) := p_segment19;
738 l_segment20 varchar2(150) := p_segment20;
739 l_segment21 varchar2(150) := p_segment21;
740 l_segment22 varchar2(150) := p_segment22;
741 l_segment23 varchar2(150) := p_segment23;
742 l_segment24 varchar2(150) := p_segment24;
743 l_segment25 varchar2(150) := p_segment25;
744 l_segment26 varchar2(150) := p_segment26;
745 l_segment27 varchar2(150) := p_segment27;
746 l_segment28 varchar2(150) := p_segment28;
747 l_segment29 varchar2(150) := p_segment29;
748 l_segment30 varchar2(150) := p_segment30;
749 l_null_ind number(1) := 0;
750 --
751 -- Declare cursors and local variables
752 --
753 -- the cursor c1 derives segment values using p_analysis_criteria_id if
754 -- it has a value
755 -- note: only called if p_analysis_criteria_id is not null
756 --
757 cursor c1 is
758 select segment1,
759 segment2,
760 segment3,
761 segment4,
762 segment5,
763 segment6,
764 segment7,
765 segment8,
766 segment9,
767 segment10,
768 segment11,
769 segment12,
770 segment13,
771 segment14,
772 segment15,
773 segment16,
774 segment17,
775 segment18,
776 segment19,
777 segment20,
778 segment21,
779 segment22,
780 segment23,
781 segment24,
782 segment25,
783 segment26,
784 segment27,
785 segment28,
786 segment29,
787 segment30
788 from per_analysis_criteria
789 where analysis_criteria_id = l_analysis_criteria_id;
790 --
791 --
792 -- Cursor to select the id_flex_num required for the keyflex utility.
793 --
794 cursor c2 is
795 select id_flex_num
796 from per_person_analyses
797 where person_analysis_id = p_person_analysis_id;
798 --
799 --
800 begin
801 hr_utility.set_location('Entering:'|| l_proc, 10);
802 --
803 -- Issue a savepoint
804 --
805 savepoint update_sit;
806 --
807 hr_utility.set_location(l_proc, 20);
808 --
809 -- Truncate date, date_from, date_to and program_update_date values,
810 -- effectively removing time element.
811 --
812 l_date_from := trunc(p_date_from);
813 l_date_to := trunc(p_date_to);
814 l_program_update_date := trunc(p_program_update_date);
815 l_object_version_number := p_pea_object_version_number;
816 --
817 if l_analysis_criteria_id is not null
818 then
819 l_null_ind := 1;
820 open c1;
821 fetch c1 into l_segment1,
822 l_segment2,
823 l_segment3,
824 l_segment4,
825 l_segment5,
826 l_segment6,
827 l_segment7,
828 l_segment8,
829 l_segment9,
830 l_segment10,
831 l_segment11,
832 l_segment12,
833 l_segment13,
834 l_segment14,
835 l_segment15,
836 l_segment16,
837 l_segment17,
838 l_segment18,
839 l_segment19,
840 l_segment20,
841 l_segment21,
842 l_segment22,
843 l_segment23,
844 l_segment24,
845 l_segment25,
846 l_segment26,
847 l_segment27,
848 l_segment28,
849 l_segment29,
850 l_segment30;
851 close c1;
852 END IF;
853 --
854 -- Call Before Process User Hook
855 --
856 begin
857 hr_sit_bk2.update_sit_b
858 (p_person_analysis_id => p_person_analysis_id
859 ,p_pea_object_version_number => p_pea_object_version_number
860 ,p_comments => p_comments
861 ,p_date_from => l_date_from
862 ,p_date_to => l_date_to
863 ,p_request_id => p_request_id
864 ,p_program_application_id => p_program_application_id
865 ,p_program_id => p_program_id
866 ,p_program_update_date => l_program_update_date
867 ,p_attribute_category => p_attribute_category
868 ,p_attribute1 => p_attribute1
869 ,p_attribute2 => p_attribute2
870 ,p_attribute3 => p_attribute3
871 ,p_attribute4 => p_attribute4
872 ,p_attribute5 => p_attribute5
873 ,p_attribute6 => p_attribute6
874 ,p_attribute7 => p_attribute7
875 ,p_attribute8 => p_attribute8
876 ,p_attribute9 => p_attribute9
877 ,p_attribute10 => p_attribute10
878 ,p_attribute11 => p_attribute11
879 ,p_attribute12 => p_attribute12
880 ,p_attribute13 => p_attribute13
881 ,p_attribute14 => p_attribute14
882 ,p_attribute15 => p_attribute15
883 ,p_attribute16 => p_attribute16
884 ,p_attribute17 => p_attribute17
885 ,p_attribute18 => p_attribute18
886 ,p_attribute19 => p_attribute19
887 ,p_attribute20 => p_attribute20
888 ,p_segment1 => l_segment1
889 ,p_segment2 => l_segment2
890 ,p_segment3 => l_segment3
891 ,p_segment4 => l_segment4
892 ,p_segment5 => l_segment5
893 ,p_segment6 => l_segment6
894 ,p_segment7 => l_segment7
895 ,p_segment8 => l_segment8
896 ,p_segment9 => l_segment9
897 ,p_segment10 => l_segment10
898 ,p_segment11 => l_segment11
899 ,p_segment12 => l_segment12
900 ,p_segment13 => l_segment13
901 ,p_segment14 => l_segment14
902 ,p_segment15 => l_segment15
903 ,p_segment16 => l_segment16
904 ,p_segment17 => l_segment17
905 ,p_segment18 => l_segment18
906 ,p_segment19 => l_segment19
907 ,p_segment20 => l_segment20
908 ,p_segment21 => l_segment21
909 ,p_segment22 => l_segment22
910 ,p_segment23 => l_segment23
911 ,p_segment24 => l_segment24
912 ,p_segment25 => l_segment25
913 ,p_segment26 => l_segment26
914 ,p_segment27 => l_segment27
915 ,p_segment28 => l_segment28
916 ,p_segment29 => l_segment29
917 ,p_segment30 => l_segment30
918 ,p_concat_segments => p_concat_segments
919 );
920 exception
921 when hr_api.cannot_find_prog_unit then
922 hr_api.cannot_find_prog_unit_error
923 (p_module_name => 'UPDATE_SIT'
924 ,p_hook_type => 'BP'
925 );
926 --
927 -- End of API User Hook for the before hook of update_position
928 --
929 end;
930 --
931 open c2;
932 fetch c2 into l_id_flex_num;
933 if c2%NOTFOUND then
934 --
935 close c2;
936 -- the row is not enabled in PER_SPECIAL_INFO_TYPES
937 --
938 hr_utility.set_message(800, 'PER_52508_PEA_INV_FLEX');
939 hr_utility.raise_error;
940 --
941 end if;
942 close c2;
943 --
944 hr_utility.set_location(l_proc, 30);
945 --
946 --
947 -- Retrieve Current person analysis Details from person_analyses
948 --
949 l_api_updating := per_pea_shd.api_updating
950 (p_person_analysis_id => p_person_analysis_id
951 ,p_object_version_number => p_pea_object_version_number);
952 --
953 hr_utility.set_location(l_proc, 40);
954 --
955 if not l_api_updating then
956 hr_utility.set_location(l_proc, 50);
957 --
958 -- As this an updating API, the person_analysis_id must exist.
959 --
960 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
961 hr_utility.raise_error;
962 else
963 hr_utility.set_location(l_proc, 60);
964 l_id_flex_num := per_pea_shd.g_old_rec.id_flex_num;
965 l_business_group_id := per_pea_shd.g_old_rec.business_group_id;
966 end if;
967 --
968 hr_utility.set_location(l_proc, 70);
969 --
970 -- update analysis criteria in PER_ANALYSIS_CRITERIA
971 --
972 -- Determine the position defintion by calling upd_or_sel
973 --
974 if l_analysis_criteria_id is null
975 then
976 --
977 l_analysis_criteria_id := per_pea_shd.g_old_rec.analysis_criteria_id;
978 --
979 hr_kflex_utility.upd_or_sel_keyflex_comb
980 (p_appl_short_name => 'PER'
981 ,p_flex_code => 'PEA'
982 ,p_flex_num => l_id_flex_num
983 ,p_segment1 => l_segment1
984 ,p_segment2 => l_segment2
985 ,p_segment3 => l_segment3
986 ,p_segment4 => l_segment4
987 ,p_segment5 => l_segment5
988 ,p_segment6 => l_segment6
989 ,p_segment7 => l_segment7
990 ,p_segment8 => l_segment8
991 ,p_segment9 => l_segment9
992 ,p_segment10 => l_segment10
993 ,p_segment11 => l_segment11
994 ,p_segment12 => l_segment12
995 ,p_segment13 => l_segment13
996 ,p_segment14 => l_segment14
997 ,p_segment15 => l_segment15
998 ,p_segment16 => l_segment16
999 ,p_segment17 => l_segment17
1000 ,p_segment18 => l_segment18
1001 ,p_segment19 => l_segment19
1002 ,p_segment20 => l_segment20
1003 ,p_segment21 => l_segment21
1004 ,p_segment22 => l_segment22
1005 ,p_segment23 => l_segment23
1006 ,p_segment24 => l_segment24
1007 ,p_segment25 => l_segment25
1008 ,p_segment26 => l_segment26
1009 ,p_segment27 => l_segment27
1010 ,p_segment28 => l_segment28
1011 ,p_segment29 => l_segment29
1012 ,p_segment30 => l_segment30
1013 ,p_concat_segments_in => p_concat_segments
1014 ,p_ccid => l_analysis_criteria_id
1015 ,p_concat_segments_out => l_name
1016 );
1017 END IF;
1018 --
1019 hr_utility.set_location(l_proc, 80);
1020 --
1021 -- update person_analyses into PER_PERSON_ANALYSES
1022 --
1023 per_pea_upd.upd
1024 (p_person_analysis_id => p_person_analysis_id
1025 ,p_analysis_criteria_id => l_analysis_criteria_id
1026 ,p_id_flex_num => l_id_flex_num
1027 ,p_comments => p_comments
1028 ,p_date_from => l_date_from
1029 ,p_date_to => l_date_to
1030 ,p_request_id => p_request_id
1031 ,p_program_application_id => p_program_application_id
1032 ,p_program_id => p_program_id
1033 ,p_program_update_date => l_program_update_date
1034 ,p_attribute_category => p_attribute_category
1035 ,p_attribute1 => p_attribute1
1036 ,p_attribute2 => p_attribute2
1037 ,p_attribute3 => p_attribute3
1038 ,p_attribute4 => p_attribute4
1039 ,p_attribute5 => p_attribute5
1040 ,p_attribute6 => p_attribute6
1041 ,p_attribute7 => p_attribute7
1042 ,p_attribute8 => p_attribute8
1043 ,p_attribute9 => p_attribute9
1044 ,p_attribute10 => p_attribute10
1045 ,p_attribute11 => p_attribute11
1046 ,p_attribute12 => p_attribute12
1047 ,p_attribute13 => p_attribute13
1048 ,p_attribute14 => p_attribute14
1049 ,p_attribute15 => p_attribute15
1050 ,p_attribute16 => p_attribute16
1051 ,p_attribute17 => p_attribute17
1052 ,p_attribute18 => p_attribute18
1053 ,p_attribute19 => p_attribute19
1054 ,p_attribute20 => p_attribute20
1055 ,p_object_version_number => l_object_version_number
1056 );
1057 --
1058 hr_utility.set_location(l_proc, 90);
1059 --
1060 begin
1061 --
1062 -- Start of API User Hook for the after hook of update_sit
1063 --
1064 hr_sit_bk2.update_sit_a
1065 (p_person_analysis_id => p_person_analysis_id
1066 ,p_pea_object_version_number => l_object_version_number
1067 ,p_comments => p_comments
1068 ,p_date_from => l_date_from
1069 ,p_date_to => l_date_to
1070 ,p_request_id => p_request_id
1071 ,p_program_application_id => p_program_application_id
1072 ,p_program_id => p_program_id
1073 ,p_program_update_date => l_program_update_date
1074 ,p_attribute_category => p_attribute_category
1075 ,p_attribute1 => p_attribute1
1076 ,p_attribute2 => p_attribute2
1077 ,p_attribute3 => p_attribute3
1078 ,p_attribute4 => p_attribute4
1079 ,p_attribute5 => p_attribute5
1080 ,p_attribute6 => p_attribute6
1081 ,p_attribute7 => p_attribute7
1082 ,p_attribute8 => p_attribute8
1083 ,p_attribute9 => p_attribute9
1084 ,p_attribute10 => p_attribute10
1085 ,p_attribute11 => p_attribute11
1086 ,p_attribute12 => p_attribute12
1087 ,p_attribute13 => p_attribute13
1088 ,p_attribute14 => p_attribute14
1089 ,p_attribute15 => p_attribute15
1090 ,p_attribute16 => p_attribute16
1091 ,p_attribute17 => p_attribute17
1092 ,p_attribute18 => p_attribute18
1093 ,p_attribute19 => p_attribute19
1094 ,p_attribute20 => p_attribute20
1095 ,p_segment1 => l_segment1
1096 ,p_segment2 => l_segment2
1097 ,p_segment3 => l_segment3
1098 ,p_segment4 => l_segment4
1099 ,p_segment5 => l_segment5
1100 ,p_segment6 => l_segment6
1101 ,p_segment7 => l_segment7
1102 ,p_segment8 => l_segment8
1103 ,p_segment9 => l_segment9
1104 ,p_segment10 => l_segment10
1105 ,p_segment11 => l_segment11
1106 ,p_segment12 => l_segment12
1107 ,p_segment13 => l_segment13
1108 ,p_segment14 => l_segment14
1109 ,p_segment15 => l_segment15
1110 ,p_segment16 => l_segment16
1111 ,p_segment17 => l_segment17
1112 ,p_segment18 => l_segment18
1113 ,p_segment19 => l_segment19
1114 ,p_segment20 => l_segment20
1115 ,p_segment21 => l_segment21
1116 ,p_segment22 => l_segment22
1117 ,p_segment23 => l_segment23
1118 ,p_segment24 => l_segment24
1119 ,p_segment25 => l_segment25
1120 ,p_segment26 => l_segment26
1121 ,p_segment27 => l_segment27
1122 ,p_segment28 => l_segment28
1123 ,p_segment29 => l_segment29
1124 ,p_segment30 => l_segment30
1125 ,p_concat_segments => p_concat_segments
1126 ,p_analysis_criteria_id => l_analysis_criteria_id
1127 );
1128 exception
1129 when hr_api.cannot_find_prog_unit then
1130 hr_api.cannot_find_prog_unit_error
1131 (p_module_name => 'UPDATE_SIT'
1132 ,p_hook_type => 'AP'
1133 );
1134 --
1135 -- End of API User Hook for the after hook of update_sit
1136 --
1137 end;
1138 --
1139 if p_validate then
1140 raise hr_api.validate_enabled;
1141 end if;
1142 --
1143 hr_utility.set_location(l_proc, 95);
1144 --
1145 --Set OUT parameters
1146 --
1147 if l_null_ind = 1
1148 then
1149 p_pea_object_version_number := l_object_version_number;
1150 else
1151 p_analysis_criteria_id := l_analysis_criteria_id;
1152 p_pea_object_version_number := l_object_version_number;
1153 end if;
1154 --
1155 hr_utility.set_location(' Leaving:'||l_proc, 100);
1156 --
1157 exception
1158 --
1159 when hr_api.validate_enabled then
1160 --
1161 -- As the Validate_Enabled exception has been raised
1162 -- we must rollback to the savepoint
1163 --
1164 ROLLBACK TO update_sit;
1165 --
1166 -- Only set output warning arguments
1167 -- (any key or derived arguments must be set to null
1168 -- when validation only mode is being used.)
1169 --
1170 --
1171 if l_null_ind = 0
1172 then
1173 p_analysis_criteria_id := null;
1174 end if;
1175 --
1176 hr_utility.set_location(' Leaving:' ||l_proc, 110);
1177 --
1178 when others then
1179 --
1180 -- A validation or unexpected error has occured
1181 --
1182 -- Added as part of the fix to bug 632479
1183 --
1184 p_pea_object_version_number := l_pea_object_version_number;
1185 p_analysis_criteria_id := l_analysis_criteria_id;
1186 ROLLBACK TO update_sit;
1187 --
1188 hr_utility.set_location(' Leaving:'||l_proc, 120);
1189 --
1190 raise;
1191 --
1192 end update_sit;
1193 --
1194 -- ----------------------------------------------------------------------------
1195 -- |----------------------------< delete_sit >------------------------------|
1196 -- ----------------------------------------------------------------------------
1197 -- {Start Of Comments}
1198 --
1199 -- Description:
1200 -- This Special Information type business process deletes a special
1201 -- information type record from the table PER_PERSON_ANALYSES. Note
1202 -- it does not alter the key flex codes combination table
1203 -- PER_ANALYSIS_CRITERIA, since a single code combination could
1204 -- be used by more than one special information type record on
1205 -- PER_PERSON_ANALYSES
1206 --
1207 -- Prerequisites:
1208 -- The SIT specified by p_person_analysis_id and p_object_version_number
1209 -- must exist.
1210 --
1211 -- In Parameters:
1212 -- Name Reqd Type Description
1213 -- p_validate N boolean If true, the database
1214 -- remains unchanged. If false
1215 -- then the employee will be
1216 -- deleted from the database.
1217 -- p_person_analysis_id Y number ID of PER_PERSON_ANALYSES
1218 -- record for delete.
1219 -- p_pea_object_version_number Y number Version number of the PPA
1220 -- record
1221
1222 -- Post Success:
1223 -- The API deletes the SIT record in PER_PERSON_ANALYSES, but leaves
1224 -- the code combination unchanged.
1225 --
1226 -- Post Failure:
1227 -- The API does not delete the special infomration type record and raises
1228 -- an error.
1229 --
1230 -- Access Status:
1231 -- Public.
1232 --
1233 -- {End Of Comments}
1234 --
1235 --
1236 procedure delete_sit
1237 (p_validate in boolean default false
1238 ,p_person_analysis_id in number
1239 ,p_pea_object_version_number in number
1240 ) IS
1241 --
1242 l_proc varchar2(72) := g_package||'delete_sit';
1243 --
1244 BEGIN
1245 --
1246 hr_utility.set_location('Entering:'|| l_proc,10);
1247 --
1248 -- Issue a savepoint
1249 --
1250 savepoint delete_sit;
1251 --
1252 hr_utility.set_location('Entering:'|| l_proc,20);
1253 --
1254 -- Insert Before delete user hook
1255 --
1256 begin
1257 hr_sit_bk3.delete_sit_b
1258 (p_person_analysis_id => p_person_analysis_id
1259 ,p_pea_object_version_number => p_pea_object_version_number
1260 );
1261 exception
1262 when hr_api.cannot_find_prog_unit then
1263 hr_api.cannot_find_prog_unit_error
1264 (p_module_name => 'DELETE_SIT'
1265 ,p_hook_type => 'BP'
1266 );
1267 --
1268 -- End of API User Hook for the before hook of delete SIT
1269 --
1270 end;
1271 --
1272 --
1273 --
1274 per_pea_del.del(p_person_analysis_id => p_person_analysis_id,
1275 p_object_version_number => p_pea_object_version_number,
1276 p_validate => false);
1277 --
1278 hr_utility.set_location('Entering:'|| l_proc,20);
1279 --
1280 -- Insert After delete user hook
1281 --
1282 begin
1283 hr_sit_bk3.delete_sit_a
1284 (p_person_analysis_id => p_person_analysis_id
1285 ,p_pea_object_version_number => p_pea_object_version_number
1286 );
1287 exception
1288 when hr_api.cannot_find_prog_unit then
1289 hr_api.cannot_find_prog_unit_error
1290 (p_module_name => 'DELETE_SIT'
1291 ,p_hook_type => 'AP'
1292 );
1293 --
1294 -- End of API User Hook for the before hook of delete SIT
1295 --
1296 end;
1297 --
1298 --
1299 -- If in validate mode, raise the API validation exception
1300 --
1301 if p_validate then
1302 raise hr_api.validate_enabled;
1303 end if;
1304 --
1305 EXCEPTION
1306 WHEN hr_api.validate_enabled THEN
1307 --
1308 -- As the Validate_Enabled exception has been raised
1309 -- we must rollback to the savepoint
1310 --
1311 ROLLBACK TO delete_sit;
1312 --
1313 --
1314 when others then
1315 --
1316 -- A validation or unexpected error has occurred
1317 --
1318 ROLLBACK TO delete_sit;
1319 raise;
1320 --
1321 END delete_sit;
1322 -- ----------------------------------------------------------------------------
1323 -- |-------------------------------< lck >------------------------------------|
1324 -- ----------------------------------------------------------------------------
1325 --
1326 procedure lck
1327 (
1328 p_person_analysis_id in number
1329 ,p_pea_object_version_number in number
1330 ) is
1331 --
1332 --
1333 -- Declare cursors and local variables
1334 --
1335 l_proc varchar2(72) := g_package||' lck';
1336 --
1337 begin
1338 --
1339 hr_utility.set_location('Entering:'|| l_proc, 10);
1340 --
1341 per_pea_shd.lck
1342 (
1343 p_person_analysis_id => p_person_analysis_id
1344 ,p_object_version_number => p_pea_object_version_number
1345 );
1346 --
1347 hr_utility.set_location(' Leaving:'||l_proc, 70);
1348 --
1349 end lck;
1350 end hr_sit_api;