[Home] [Help]
PACKAGE BODY: APPS.HR_CWK_TERMINATION_SWI
Source
1 Package Body hr_cwk_termination_swi As
2 /* $Header: hrcwtswi.pkb 120.2.12020000.3 2013/03/13 10:43:14 sudedas ship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'hr_cwk_termination_swi.';
7 lv_transaction_steps hr_transaction_ss.transaction_table;
8 --
9 -- ----------------------------------------------------------------------------
10 -- |---------------------< actual_termination_placement >---------------------|
11 -- ----------------------------------------------------------------------------
12 PROCEDURE actual_termination_placement
13 (p_validate in boolean
14 ,p_effective_date in date
15 ,p_person_id in number
16 ,p_date_start in date
17 ,p_object_version_number in out nocopy number
18 ,p_actual_termination_date in date
19 ,p_last_standard_process_date in out nocopy date
20 ,p_person_type_id in number default hr_api.g_number
21 ,p_assignment_status_type_id in number default hr_api.g_number
22 ,p_termination_reason in varchar2 default hr_api.g_varchar2
23 ,p_entries_changed_warning out nocopy varchar2
24 ,p_return_status out nocopy varchar2
25 ) is
26 --
27 -- Variables for API Boolean parameters
28 l_validate boolean;
29 l_supervisor_warning boolean;
30 l_event_warning boolean;
31 l_interview_warning boolean;
32 l_review_warning boolean;
33 l_recruiter_warning boolean;
34 l_asg_future_changes_warning boolean;
35 l_pay_proposal_warning boolean;
36 l_dod_warning boolean;
37 --
38 -- Variables for IN/OUT parameters
39 l_object_version_number number;
40 l_last_standard_process_date date;
41 --
42 -- Other variables
43 l_proc varchar2(72) := g_package ||'actual_termination_placement';
44 Begin
45 hr_utility.set_location(' Entering:' || l_proc,10);
46 --
47 -- Issue a savepoint
48 --
49 savepoint actual_term_placement_swi;
50 --
51 -- Initialise Multiple Message Detection
52 --
53 hr_multi_message.enable_message_list;
54 --
55 -- Remember IN OUT parameter IN values
56 --
57 l_object_version_number := p_object_version_number;
58 l_last_standard_process_date := p_last_standard_process_date;
59 --
60 -- Convert constant values to their corresponding boolean value
61 --
62
63 --
64 -- Register Surrogate ID or user key values
65 --
66 --
67 -- Call API
68 --
69 hr_contingent_worker_api.actual_termination_placement
70 (p_validate => p_validate
71 ,p_effective_date => p_effective_date
72 ,p_person_id => p_person_id
73 ,p_date_start => p_date_start
74 ,p_object_version_number => p_object_version_number
75 ,p_actual_termination_date => p_actual_termination_date
76 ,p_last_standard_process_date => p_last_standard_process_date
77 ,p_person_type_id => p_person_type_id
78 ,p_assignment_status_type_id => p_assignment_status_type_id
79 ,p_termination_reason => p_termination_reason
80 ,p_supervisor_warning => l_supervisor_warning
81 ,p_event_warning => l_event_warning
82 ,p_interview_warning => l_interview_warning
83 ,p_review_warning => l_review_warning
84 ,p_recruiter_warning => l_recruiter_warning
85 ,p_asg_future_changes_warning => l_asg_future_changes_warning
86 ,p_entries_changed_warning => p_entries_changed_warning
87 ,p_pay_proposal_warning => l_pay_proposal_warning
88 ,p_dod_warning => l_dod_warning
89 );
90 --
91 -- Convert API warning boolean parameter values to specific
92 -- messages and add them to Multiple Message List
93 --
94 /*
95 if l_supervisor_warning then
96 fnd_message.set_name('PER', 'HR_289757_CWK_IS_SUPER');
97 hr_multi_message.add
98 (p_message_type => hr_multi_message.g_warning_msg
99 );
100 end if;
101 if l_event_warning then
102 fnd_message.set_name('PER', 'HR_289759_CWK_HAS_EVENTS');
103 hr_multi_message.add
104 (p_message_type => hr_multi_message.g_warning_msg
105 );
106 end if;
107 if l_interview_warning then
108 fnd_message.set_name('PER', 'HR_289760_CWK_IS_INTERVIEWER');
109 hr_multi_message.add
110 (p_message_type => hr_multi_message.g_warning_msg
111 );
112 end if;
113 if l_review_warning then
114 fnd_message.set_name('PER', 'HR_289761_CWK_DUE_REVIEW');
115 hr_multi_message.add
116 (p_message_type => hr_multi_message.g_warning_msg
117 );
118 end if;
119 if l_recruiter_warning then
120 fnd_message.set_name('PER', 'HR_289762_CWK_VAC_RECRUITER');
121 hr_multi_message.add
122 (p_message_type => hr_multi_message.g_warning_msg
123 );
124 end if;
125 if l_asg_future_changes_warning then
126 fnd_message.set_name('PER', 'HR_EMP_ASG_FUTURE');
127 hr_multi_message.add
128 (p_message_type => hr_multi_message.g_warning_msg
129 );
130 end if;
131 -- l_pay_proposal_warning Reserved for future Use
132 if l_pay_proposal_warning then
133 fnd_message.set_name('PER', 'HR_PAY_PROPOSAL_WARN');
134 hr_multi_message.add
135 (p_message_type => hr_multi_message.g_warning_msg
136 );
137 end if;
138 if l_dod_warning then
139 fnd_message.set_name('PER', 'PER_52475_DEATH_TERM_DATES');
140 hr_multi_message.add
141 (p_message_type => hr_multi_message.g_warning_msg
142 );
143 end if;
144 */
145 --
146 -- Convert API non-warning boolean parameter values
147 --
148 --
149 -- Derive the API return status value based on whether
150 -- messages of any type exist in the Multiple Message List.
151 -- Also disable Multiple Message Detection.
152 --
153 p_return_status := hr_multi_message.get_return_status_disable;
154 hr_utility.set_location(' Leaving:' || l_proc,20);
155 --
156 exception
157 when hr_multi_message.error_message_exist then
158 --
159 -- Catch the Multiple Message List exception which
160 -- indicates API processing has been aborted because
161 -- at least one message exists in the list.
162 --
163 rollback to actual_term_placement_swi;
164 --
165 -- Reset IN OUT parameters and set OUT parameters
166 --
167 p_object_version_number := l_object_version_number;
168 p_last_standard_process_date := l_last_standard_process_date;
169 p_return_status := hr_multi_message.get_return_status_disable;
170 hr_utility.set_location(' Leaving:' || l_proc, 30);
171 when others then
172 --
173 -- When Multiple Message Detection is enabled catch
174 -- any Application specific or other unexpected
175 -- exceptions. Adding appropriate details to the
176 -- Multiple Message List. Otherwise re-raise the
177 -- error.
178 --
179 rollback to actual_term_placement_swi;
180 if hr_multi_message.unexpected_error_add(l_proc) then
181 hr_utility.set_location(' Leaving:' || l_proc,40);
182 raise;
183 end if;
184 --
185 -- Reset IN OUT and set OUT parameters
186 --
187 p_object_version_number := l_object_version_number;
188 p_last_standard_process_date := l_last_standard_process_date;
189 p_return_status := hr_multi_message.get_return_status_disable;
190 hr_utility.set_location(' Leaving:' || l_proc,50);
191 end actual_termination_placement;
192 -- ----------------------------------------------------------------------------
193 -- |------------------------< final_process_placement >-----------------------|
194 -- ----------------------------------------------------------------------------
195 PROCEDURE final_process_placement
196 (p_validate in boolean
197 ,p_person_id in number
198 ,p_date_start in date
199 ,p_object_version_number in out nocopy number
200 ,p_final_process_date in out nocopy date
201 ,p_entries_changed_warning out nocopy varchar2
202 ,p_return_status out nocopy varchar2
203 ) is
204 --
205 -- Variables for API Boolean parameters
206 l_validate boolean;
207 l_org_now_no_manager_warning boolean;
208 l_asg_future_changes_warning boolean;
209 --
210 -- Variables for IN/OUT parameters
211 l_object_version_number number;
212 l_final_process_date date;
213 --
214 -- Other variables
215 l_proc varchar2(72) := g_package ||'final_process_placement';
216 Begin
217 hr_utility.set_location(' Entering:' || l_proc,10);
218 --
219 -- Issue a savepoint
220 --
221 savepoint final_process_placement_swi;
222 --
223 -- Initialise Multiple Message Detection
224 --
225 hr_multi_message.enable_message_list;
226 --
227 -- Remember IN OUT parameter IN values
228 --
229 l_object_version_number := p_object_version_number;
230 l_final_process_date := p_final_process_date;
231 --
232 -- Convert constant values to their corresponding boolean value
233 --
234
235 --
236 -- Register Surrogate ID or user key values
237 --
238 --
239 -- Call API
240 --
241 hr_contingent_worker_api.final_process_placement
242 (p_validate => p_validate
243 ,p_person_id => p_person_id
244 ,p_date_start => p_date_start
245 ,p_object_version_number => p_object_version_number
246 ,p_final_process_date => p_final_process_date
247 ,p_org_now_no_manager_warning => l_org_now_no_manager_warning
248 ,p_asg_future_changes_warning => l_asg_future_changes_warning
249 ,p_entries_changed_warning => p_entries_changed_warning
250 );
251 --
252 -- Convert API warning boolean parameter values to specific
253 -- messages and add them to Multiple Message List
254 --
255 /*
256 if l_org_now_no_manager_warning then
257 fnd_message.set_name('PER', 'HR_ORG_NOW_NO_MANAGER_WARN');
258 hr_multi_message.add
259 (p_message_type => hr_multi_message.g_warning_msg
260 );
261 end if;
262 if l_asg_future_changes_warning then
263 fnd_message.set_name('PER', 'HR_EMP_ASG_FUTURE');
264 hr_multi_message.add
265 (p_message_type => hr_multi_message.g_warning_msg
266 );
267 end if;
268 */
269 --
270 -- Convert API non-warning boolean parameter values
271 --
272 --
273 -- Derive the API return status value based on whether
274 -- messages of any type exist in the Multiple Message List.
275 -- Also disable Multiple Message Detection.
276 --
277 p_return_status := hr_multi_message.get_return_status_disable;
278 hr_utility.set_location(' Leaving:' || l_proc,20);
279 --
280 exception
281 when hr_multi_message.error_message_exist then
282 --
283 -- Catch the Multiple Message List exception which
284 -- indicates API processing has been aborted because
285 -- at least one message exists in the list.
286 --
287 rollback to final_process_placement_swi;
288 --
289 -- Reset IN OUT parameters and set OUT parameters
290 --
291 p_object_version_number := l_object_version_number;
292 p_final_process_date := l_final_process_date;
293 p_return_status := hr_multi_message.get_return_status_disable;
294 hr_utility.set_location(' Leaving:' || l_proc, 30);
295 when others then
296 --
297 -- When Multiple Message Detection is enabled catch
298 -- any Application specific or other unexpected
299 -- exceptions. Adding appropriate details to the
300 -- Multiple Message List. Otherwise re-raise the
301 -- error.
302 --
303 rollback to final_process_placement_swi;
304 if hr_multi_message.unexpected_error_add(l_proc) then
305 hr_utility.set_location(' Leaving:' || l_proc,40);
306 raise;
307 end if;
308 --
309 -- Reset IN OUT and set OUT parameters
310 --
311 p_object_version_number := l_object_version_number;
312 p_final_process_date := l_final_process_date;
313 p_return_status := hr_multi_message.get_return_status_disable;
314 hr_utility.set_location(' Leaving:' || l_proc,50);
315 end final_process_placement;
316 -- ----------------------------------------------------------------------------
317 -- |------------------------< get_length_of_placement >-----------------------|
318 -- ----------------------------------------------------------------------------
319 PROCEDURE get_length_of_placement
320 (p_effective_date in date
321 ,p_business_group_id in number
322 ,p_person_id in number
323 ,p_date_start in date
324 ,p_total_years out nocopy number
325 ,p_total_months out nocopy number
326 ,p_return_status out nocopy varchar2
327 ) is
328 --
329 -- Variables for API Boolean parameters
330 --
331 -- Variables for IN/OUT parameters
332 --
333 -- Other variables
334 l_proc varchar2(72) := g_package ||'get_length_of_placement';
335 Begin
336 hr_utility.set_location(' Entering:' || l_proc,10);
337 --
338 -- Issue a savepoint
339 --
340 savepoint get_length_of_placement_swi;
341 --
342 -- Initialise Multiple Message Detection
343 --
344 hr_multi_message.enable_message_list;
345 --
346 -- Remember IN OUT parameter IN values
347 --
348 --
349 -- Convert constant values to their corresponding boolean value
350 --
351 --
352 -- Register Surrogate ID or user key values
353 --
354 --
355 -- Call API
356 --
357 hr_contingent_worker_api.get_length_of_placement
358 (p_effective_date => p_effective_date
359 ,p_business_group_id => p_business_group_id
360 ,p_person_id => p_person_id
361 ,p_date_start => p_date_start
362 ,p_total_years => p_total_years
363 ,p_total_months => p_total_months
364 );
365 --
366 -- Convert API warning boolean parameter values to specific
367 -- messages and add them to Multiple Message List
368 --
369 --
370 -- Convert API non-warning boolean parameter values
371 --
372 --
373 -- Derive the API return status value based on whether
374 -- messages of any type exist in the Multiple Message List.
375 -- Also disable Multiple Message Detection.
376 --
377 p_return_status := hr_multi_message.get_return_status_disable;
378 hr_utility.set_location(' Leaving:' || l_proc,20);
379 --
380 exception
381 when hr_multi_message.error_message_exist then
382 --
383 -- Catch the Multiple Message List exception which
384 -- indicates API processing has been aborted because
385 -- at least one message exists in the list.
386 --
387 rollback to get_length_of_placement_swi;
388 --
389 -- Reset IN OUT parameters and set OUT parameters
390 --
391 p_total_years := null;
392 p_total_months := null;
393 p_return_status := hr_multi_message.get_return_status_disable;
394 hr_utility.set_location(' Leaving:' || l_proc, 30);
395 when others then
396 --
397 -- When Multiple Message Detection is enabled catch
398 -- any Application specific or other unexpected
399 -- exceptions. Adding appropriate details to the
400 -- Multiple Message List. Otherwise re-raise the
401 -- error.
402 --
403 rollback to get_length_of_placement_swi;
404 if hr_multi_message.unexpected_error_add(l_proc) then
405 hr_utility.set_location(' Leaving:' || l_proc,40);
406 raise;
407 end if;
408 --
409 -- Reset IN OUT and set OUT parameters
410 --
411 p_total_years := null;
412 p_total_months := null;
413 p_return_status := hr_multi_message.get_return_status_disable;
414 hr_utility.set_location(' Leaving:' || l_proc,50);
415 end get_length_of_placement;
416 -- ----------------------------------------------------------------------------
417 -- |----------------------< reverse_terminate_placement >---------------------|
418 -- ----------------------------------------------------------------------------
419 PROCEDURE reverse_terminate_placement
420 (p_validate in boolean
421 ,p_person_id in number
422 ,p_actual_termination_date in date
423 ,p_clear_details in varchar2 default hr_api.g_varchar2
424 ,p_return_status out nocopy varchar2
425 ) is
426 --
427 -- Variables for API Boolean parameters
428 l_validate boolean;
429 l_fut_actns_exist_warning boolean;
430 --
431 -- Variables for IN/OUT parameters
432 --
433 -- Other variables
434 l_proc varchar2(72) := g_package ||'reverse_terminate_placement';
435 Begin
436 hr_utility.set_location(' Entering:' || l_proc,10);
437 --
438 -- Issue a savepoint
439 --
440 savepoint reverse_term_placement_swi;
441 --
442 -- Initialise Multiple Message Detection
443 --
444 hr_multi_message.enable_message_list;
445 --
446 -- Remember IN OUT parameter IN values
447 --
448 --
449 -- Convert constant values to their corresponding boolean value
450 --
451
452 --
453 -- Register Surrogate ID or user key values
454 --
455 --
456 -- Call API
457 --
458 hr_contingent_worker_api.reverse_terminate_placement
459 (p_validate => p_validate
460 ,p_person_id => p_person_id
461 ,p_actual_termination_date => p_actual_termination_date
462 ,p_clear_details => p_clear_details
463 ,p_fut_actns_exist_warning => l_fut_actns_exist_warning
464 );
465 --
466 -- Convert API warning boolean parameter values to specific
467 -- messages and add them to Multiple Message List
468 --
469 -- l_fut_actns_exist_warning Reserved for Future Use
470 /* if l_fut_actns_exist_warning then
471 fnd_message.set_name('PER', 'EDIT_HERE: MESSAGE_NAME ');
472 hr_multi_message.add
473 (p_message_type => hr_multi_message.g_warning_msg
474 );
475 end if;
476 */
477
478 -- Convert API non-warning boolean parameter values
479 --
480 --
481 -- Derive the API return status value based on whether
482 -- messages of any type exist in the Multiple Message List.
483 -- Also disable Multiple Message Detection.
484 --
485 p_return_status := hr_multi_message.get_return_status_disable;
486 hr_utility.set_location(' Leaving:' || l_proc,20);
487 --
488 exception
489 when hr_multi_message.error_message_exist then
490 --
491 -- Catch the Multiple Message List exception which
492 -- indicates API processing has been aborted because
493 -- at least one message exists in the list.
494 --
495 rollback to reverse_term_placement_swi;
496 --
497 -- Reset IN OUT parameters and set OUT parameters
498 --
499 p_return_status := hr_multi_message.get_return_status_disable;
500 hr_utility.set_location(' Leaving:' || l_proc, 30);
501 when others then
502 --
503 -- When Multiple Message Detection is enabled catch
504 -- any Application specific or other unexpected
505 -- exceptions. Adding appropriate details to the
506 -- Multiple Message List. Otherwise re-raise the
507 -- error.
508 --
509 rollback to reverse_term_placement_swi;
510 if hr_multi_message.unexpected_error_add(l_proc) then
511 hr_utility.set_location(' Leaving:' || l_proc,40);
512 raise;
513 end if;
514 --
515 -- Reset IN OUT and set OUT parameters
516 --
517 p_return_status := hr_multi_message.get_return_status_disable;
518 hr_utility.set_location(' Leaving:' || l_proc,50);
519 end reverse_terminate_placement;
520
521 -- ----------------------------------------------------------------------------
522 -- |--------------------------< terminate_placement >-------------------------|
523 -- ----------------------------------------------------------------------------
524 PROCEDURE terminate_placement
525 (p_validate in boolean
526 ,p_effective_date in date
527 ,p_person_id in number
528 ,p_date_start in date
529 ,p_object_version_number in out nocopy number
530 ,p_person_type_id in number default hr_api.g_number
531 ,p_assignment_status_type_id in number default hr_api.g_number
532 ,p_actual_termination_date in date default hr_api.g_date
533 ,p_final_process_date in out nocopy date
534 ,p_last_standard_process_date in out nocopy date
535 ,p_termination_reason in varchar2 default hr_api.g_varchar2
536 ,p_projected_termination_date in date default hr_api.g_date
537 ,p_rehire_recommendation in varchar2 default hr_api.g_varchar2
538 ,p_rehire_reason in varchar2 default hr_api.g_varchar2
539 ,p_attribute_category in varchar2 default hr_api.g_varchar2
540 ,p_attribute1 in varchar2 default hr_api.g_varchar2
541 ,p_attribute2 in varchar2 default hr_api.g_varchar2
542 ,p_attribute3 in varchar2 default hr_api.g_varchar2
543 ,p_attribute4 in varchar2 default hr_api.g_varchar2
544 ,p_attribute5 in varchar2 default hr_api.g_varchar2
545 ,p_attribute6 in varchar2 default hr_api.g_varchar2
546 ,p_attribute7 in varchar2 default hr_api.g_varchar2
547 ,p_attribute8 in varchar2 default hr_api.g_varchar2
548 ,p_attribute9 in varchar2 default hr_api.g_varchar2
549 ,p_attribute10 in varchar2 default hr_api.g_varchar2
550 ,p_attribute11 in varchar2 default hr_api.g_varchar2
551 ,p_attribute12 in varchar2 default hr_api.g_varchar2
552 ,p_attribute13 in varchar2 default hr_api.g_varchar2
553 ,p_attribute14 in varchar2 default hr_api.g_varchar2
554 ,p_attribute15 in varchar2 default hr_api.g_varchar2
555 ,p_attribute16 in varchar2 default hr_api.g_varchar2
556 ,p_attribute17 in varchar2 default hr_api.g_varchar2
557 ,p_attribute18 in varchar2 default hr_api.g_varchar2
558 ,p_attribute19 in varchar2 default hr_api.g_varchar2
559 ,p_attribute20 in varchar2 default hr_api.g_varchar2
560 ,p_attribute21 in varchar2 default hr_api.g_varchar2
561 ,p_attribute22 in varchar2 default hr_api.g_varchar2
562 ,p_attribute23 in varchar2 default hr_api.g_varchar2
563 ,p_attribute24 in varchar2 default hr_api.g_varchar2
564 ,p_attribute25 in varchar2 default hr_api.g_varchar2
565 ,p_attribute26 in varchar2 default hr_api.g_varchar2
566 ,p_attribute27 in varchar2 default hr_api.g_varchar2
567 ,p_attribute28 in varchar2 default hr_api.g_varchar2
568 ,p_attribute29 in varchar2 default hr_api.g_varchar2
569 ,p_attribute30 in varchar2 default hr_api.g_varchar2
570 ,p_information_category in varchar2 default hr_api.g_varchar2
571 ,p_information1 in varchar2 default hr_api.g_varchar2
572 ,p_information2 in varchar2 default hr_api.g_varchar2
573 ,p_information3 in varchar2 default hr_api.g_varchar2
574 ,p_information4 in varchar2 default hr_api.g_varchar2
575 ,p_information5 in varchar2 default hr_api.g_varchar2
576 ,p_information6 in varchar2 default hr_api.g_varchar2
577 ,p_information7 in varchar2 default hr_api.g_varchar2
578 ,p_information8 in varchar2 default hr_api.g_varchar2
579 ,p_information9 in varchar2 default hr_api.g_varchar2
580 ,p_information10 in varchar2 default hr_api.g_varchar2
581 ,p_information11 in varchar2 default hr_api.g_varchar2
582 ,p_information12 in varchar2 default hr_api.g_varchar2
583 ,p_information13 in varchar2 default hr_api.g_varchar2
584 ,p_information14 in varchar2 default hr_api.g_varchar2
585 ,p_information15 in varchar2 default hr_api.g_varchar2
586 ,p_information16 in varchar2 default hr_api.g_varchar2
587 ,p_information17 in varchar2 default hr_api.g_varchar2
588 ,p_information18 in varchar2 default hr_api.g_varchar2
589 ,p_information19 in varchar2 default hr_api.g_varchar2
590 ,p_information20 in varchar2 default hr_api.g_varchar2
591 ,p_information21 in varchar2 default hr_api.g_varchar2
592 ,p_information22 in varchar2 default hr_api.g_varchar2
593 ,p_information23 in varchar2 default hr_api.g_varchar2
594 ,p_information24 in varchar2 default hr_api.g_varchar2
595 ,p_information25 in varchar2 default hr_api.g_varchar2
596 ,p_information26 in varchar2 default hr_api.g_varchar2
597 ,p_information27 in varchar2 default hr_api.g_varchar2
598 ,p_information28 in varchar2 default hr_api.g_varchar2
599 ,p_information29 in varchar2 default hr_api.g_varchar2
600 ,p_information30 in varchar2 default hr_api.g_varchar2
601 ,p_entries_changed_warning out nocopy varchar2
602 ,p_return_status out nocopy varchar2
603 ) is
604 --
605 -- Variables for API Boolean parameters
606 l_validate boolean;
607 l_supervisor_warning boolean;
608 l_event_warning boolean;
609 l_interview_warning boolean;
610 l_review_warning boolean;
611 l_recruiter_warning boolean;
612 l_asg_future_changes_warning boolean;
613 l_pay_proposal_warning boolean;
614 l_dod_warning boolean;
615 l_org_now_no_manager_warning boolean;
616 l_addl_rights_warning boolean; -- Bug 1370960
617 --
618 -- Variables for IN/OUT parameters
619 l_object_version_number number;
620 l_final_process_date date;
621 l_last_standard_process_date date;
622 --
623 -- Other variables
624 l_proc varchar2(72) := g_package ||'terminate_placement';
625 Begin
626 hr_utility.set_location(' Entering:' || l_proc,10);
627 --
628 -- Issue a savepoint
629 --
630 savepoint terminate_placement_swi;
631 --
632 -- Initialise Multiple Message Detection
633 --
634 hr_multi_message.enable_message_list;
635 --
636 -- Remember IN OUT parameter IN values
637 --
638 l_object_version_number := p_object_version_number;
639 l_final_process_date := p_final_process_date;
640 l_last_standard_process_date := p_last_standard_process_date;
641 --
642 --
643 -- Core HR API will not support update of field Rehire Recommendation
644 -- and Rehire Reason. Hence we make following call to Person API
645 -- to update the Fields.
646
647 DECLARE
648 l_person_id per_all_people_f.person_id%TYPE;
649 l_per_object_version_number per_all_people_f.object_version_number%TYPE;
650 l_employee_number per_all_people_f.employee_number%TYPE;
651 l_effective_start_date date;
652 l_effective_end_date date;
653 l_full_name per_all_people_f.full_name%TYPE;
654 l_comment_id per_all_people_f.comment_id%TYPE;
655 l_name_combination_warning boolean;
656 l_assign_payroll_warning boolean;
657 l_orig_hire_warning boolean;
658
659 cursor csr_get_derived_details is
660 select per.person_id
661 , per.employee_number
662 , per.object_version_number
663 from per_all_people_f per
664 where per.person_id = p_person_id
665 and p_actual_termination_date between per.effective_start_date
666 and per.effective_end_date;
667
668 BEGIN
669 open csr_get_derived_details;
670 fetch csr_get_derived_details
671 into l_person_id
672 , l_employee_number
673 , l_per_object_version_number;
674 SAVEPOINT update_person_details;
675 hr_person_api.update_person (
676 p_validate => p_validate
677 ,p_effective_date => p_effective_date
678 ,p_datetrack_update_mode => 'CORRECTION'
679 ,p_person_id => l_person_id
680 ,p_object_version_number => l_per_object_version_number
681 ,p_employee_number => l_employee_number
682 ,p_effective_start_date => l_effective_start_date
683 ,p_effective_end_date => l_effective_end_date
684 ,p_rehire_recommendation => p_rehire_recommendation
685 ,p_rehire_reason => p_rehire_reason
686 ,p_full_name => l_full_name
687 ,p_comment_id => l_comment_id
688 ,p_name_combination_warning => l_name_combination_warning
689 ,p_assign_payroll_warning => l_assign_payroll_warning
690 ,p_orig_hire_warning => l_orig_hire_warning
691 );
692 IF p_validate THEN
693 ROLLBACK TO update_person_details;
694 END IF;
695
696 END;
697 --
698 -- Call API
699 --
700 hr_contingent_worker_api.terminate_placement
701 (p_validate => p_validate
702 ,p_effective_date => p_effective_date
703 ,p_person_id => p_person_id
704 ,p_date_start => p_date_start
705 ,p_object_version_number => p_object_version_number
706 ,p_person_type_id => p_person_type_id
707 ,p_assignment_status_type_id => p_assignment_status_type_id
708 ,p_actual_termination_date => p_actual_termination_date
709 ,p_final_process_date => p_final_process_date
710 ,p_last_standard_process_date => p_last_standard_process_date
711 ,p_termination_reason => p_termination_reason
712 ,p_projected_termination_date => p_projected_termination_date
713 -- ,p_rehire_recommendation => p_rehire_recommendation
714 -- ,p_rehire_reason => p_rehire_reason
715 ,p_attribute_category => p_attribute_category
716 ,p_attribute1 => p_attribute1
717 ,p_attribute2 => p_attribute2
718 ,p_attribute3 => p_attribute3
719 ,p_attribute4 => p_attribute4
720 ,p_attribute5 => p_attribute5
721 ,p_attribute6 => p_attribute6
722 ,p_attribute7 => p_attribute7
723 ,p_attribute8 => p_attribute8
724 ,p_attribute9 => p_attribute9
725 ,p_attribute10 => p_attribute10
726 ,p_attribute11 => p_attribute11
727 ,p_attribute12 => p_attribute12
728 ,p_attribute13 => p_attribute13
729 ,p_attribute14 => p_attribute14
730 ,p_attribute15 => p_attribute15
731 ,p_attribute16 => p_attribute16
732 ,p_attribute17 => p_attribute17
733 ,p_attribute18 => p_attribute18
734 ,p_attribute19 => p_attribute19
735 ,p_attribute20 => p_attribute20
736 ,p_attribute21 => p_attribute21
737 ,p_attribute22 => p_attribute22
738 ,p_attribute23 => p_attribute23
739 ,p_attribute24 => p_attribute24
740 ,p_attribute25 => p_attribute25
741 ,p_attribute26 => p_attribute26
742 ,p_attribute27 => p_attribute27
743 ,p_attribute28 => p_attribute28
744 ,p_attribute29 => p_attribute29
745 ,p_attribute30 => p_attribute30
746 ,p_information_category => p_information_category
747 ,p_information1 => p_information1
748 ,p_information2 => p_information2
749 ,p_information3 => p_information3
750 ,p_information4 => p_information4
751 ,p_information5 => p_information5
752 ,p_information6 => p_information6
753 ,p_information7 => p_information7
754 ,p_information8 => p_information8
755 ,p_information9 => p_information9
756 ,p_information10 => p_information10
757 ,p_information11 => p_information11
758 ,p_information12 => p_information12
759 ,p_information13 => p_information13
760 ,p_information14 => p_information14
761 ,p_information15 => p_information15
762 ,p_information16 => p_information16
763 ,p_information17 => p_information17
764 ,p_information18 => p_information18
765 ,p_information19 => p_information19
766 ,p_information20 => p_information20
767 ,p_information21 => p_information21
768 ,p_information22 => p_information22
769 ,p_information23 => p_information23
770 ,p_information24 => p_information24
771 ,p_information25 => p_information25
772 ,p_information26 => p_information26
773 ,p_information27 => p_information27
774 ,p_information28 => p_information28
775 ,p_information29 => p_information29
776 ,p_information30 => p_information30
777 ,p_supervisor_warning => l_supervisor_warning
778 ,p_event_warning => l_event_warning
779 ,p_interview_warning => l_interview_warning
780 ,p_review_warning => l_review_warning
781 ,p_recruiter_warning => l_recruiter_warning
782 ,p_asg_future_changes_warning => l_asg_future_changes_warning
783 ,p_entries_changed_warning => p_entries_changed_warning
784 ,p_pay_proposal_warning => l_pay_proposal_warning
785 ,p_dod_warning => l_dod_warning
786 ,p_org_now_no_manager_warning => l_org_now_no_manager_warning
787 ,p_addl_rights_warning => l_addl_rights_warning -- Fix 1370960
788 );
789 --
790
791
792 -- Convert API warning boolean parameter values to specific
793 -- messages and add them to Multiple Message List
794 --
795 /*
796 if l_supervisor_warning then
797 fnd_message.set_name('PER', 'HR_289757_CWK_IS_SUPER');
798 hr_multi_message.add
799 (p_message_type => hr_multi_message.g_warning_msg
800 );
801 end if;
802 if l_event_warning then
803 fnd_message.set_name('PER', 'HR_289759_CWK_HAS_EVENTS');
804 hr_multi_message.add
805 (p_message_type => hr_multi_message.g_warning_msg
806 );
807 end if;
808 if l_interview_warning then
809 fnd_message.set_name('PER', 'HR_289760_CWK_IS_INTERVIEWER');
810 hr_multi_message.add
811 (p_message_type => hr_multi_message.g_warning_msg
812 );
813 end if;
814 if l_review_warning then
815 fnd_message.set_name('PER', 'HR_289761_CWK_DUE_REVIEW');
816 hr_multi_message.add
817 (p_message_type => hr_multi_message.g_warning_msg
818 );
819 end if;
820 if l_recruiter_warning then
821 fnd_message.set_name('PER', 'HR_289762_CWK_VAC_RECRUITER');
822 hr_multi_message.add
823 (p_message_type => hr_multi_message.g_warning_msg
824 );
825 end if;
826 if l_asg_future_changes_warning then
827 fnd_message.set_name('PER', 'HR_EMP_ASG_FUTURE');
828 hr_multi_message.add
829 (p_message_type => hr_multi_message.g_warning_msg
830 );
831 end if;
832 -- l_pay_proposal_warning Reserved for future Use
833 if l_pay_proposal_warning then
834 fnd_message.set_name('PER', 'HR_PAY_PROPOSAL_WARN');
835 hr_multi_message.add
836 (p_message_type => hr_multi_message.g_warning_msg
837 );
838 end if;
839
840 if l_dod_warning then
841 fnd_message.set_name('PER', 'PER_52475_DEATH_TERM_DATES');
842 hr_multi_message.add
843 (p_message_type => hr_multi_message.g_warning_msg
844 );
845 end if;
846 if l_org_now_no_manager_warning then
847 fnd_message.set_name('PER', 'HR_ORG_NOW_NO_MANAGER_WARN');
848 hr_multi_message.add
849 (p_message_type => hr_multi_message.g_warning_msg
850 );
851 end if;
852 */
853 -- Fix Bug 1370960
854 if l_addl_rights_warning and p_validate then
855 fnd_message.set_name('PER', 'PER_449140_OPEN_CWK_ADDL_RIGHT');
856 hr_multi_message.add
857 (p_message_type => hr_multi_message.g_warning_msg
858 );
859 end if;
860 --
861 -- Convert API non-warning boolean parameter values
862 --
863 --
864 -- Derive the API return status value based on whether
865 -- messages of any type exist in the Multiple Message List.
866 -- Also disable Multiple Message Detection.
867 --
868 p_return_status := hr_multi_message.get_return_status_disable;
869 hr_utility.set_location(' Leaving:' || l_proc,20);
870 --
871 exception
872 when hr_multi_message.error_message_exist then
873 --
874 -- Catch the Multiple Message List exception which
875 -- indicates API processing has been aborted because
876 -- at least one message exists in the list.
877 --
878 rollback to terminate_placement_swi;
879 --
880 -- Reset IN OUT parameters and set OUT parameters
881 --
882 p_object_version_number := l_object_version_number;
883 p_final_process_date := l_final_process_date;
884 p_last_standard_process_date := l_last_standard_process_date;
885 p_return_status := hr_multi_message.get_return_status_disable;
886 hr_utility.set_location(' Leaving:' || l_proc, 30);
887 when others then
888 --
889 -- When Multiple Message Detection is enabled catch
890 -- any Application specific or other unexpected
891 -- exceptions. Adding appropriate details to the
892 -- Multiple Message List. Otherwise re-raise the
893 -- error.
894 --
895 rollback to terminate_placement_swi;
896 if hr_multi_message.unexpected_error_add(l_proc) then
897 hr_utility.set_location(' Leaving:' || l_proc,40);
898 raise;
899 end if;
900 --
901 -- Reset IN OUT and set OUT parameters
902 --
903 p_object_version_number := l_object_version_number;
904 p_final_process_date := l_final_process_date;
905 p_last_standard_process_date := l_last_standard_process_date;
906 p_return_status := hr_multi_message.get_return_status_disable;
907 hr_utility.set_location(' Leaving:' || l_proc,50);
908 end terminate_placement;
909
910 PROCEDURE process_save
911 ( p_item_type in wf_items.item_type%TYPE
912 ,p_item_key in wf_items.item_key%TYPE
913 ,p_actid in varchar2
914 ,p_transaction_mode in varchar2 DEFAULT '#'
915 ,p_effective_date in date
916 ,p_person_id in number
917 ,p_date_start in date
918 ,p_object_version_number in number
919 ,p_person_type_id in number default hr_api.g_number
920 ,p_actual_termination_date in date default hr_api.g_date
921 ,p_final_process_date in date
922 ,p_last_standard_process_date in date
923 ,p_termination_reason in varchar2 default hr_api.g_varchar2
924 ,p_projected_termination_date in date default hr_api.g_date
925 ,p_rehire_recommendation in varchar2 default hr_api.g_varchar2
926 ,p_rehire_reason in varchar2 default hr_api.g_varchar2
927 ,p_attribute_category in varchar2 default hr_api.g_varchar2
928 ,p_attribute1 in varchar2 default hr_api.g_varchar2
929 ,p_attribute2 in varchar2 default hr_api.g_varchar2
930 ,p_attribute3 in varchar2 default hr_api.g_varchar2
931 ,p_attribute4 in varchar2 default hr_api.g_varchar2
932 ,p_attribute5 in varchar2 default hr_api.g_varchar2
933 ,p_attribute6 in varchar2 default hr_api.g_varchar2
934 ,p_attribute7 in varchar2 default hr_api.g_varchar2
935 ,p_attribute8 in varchar2 default hr_api.g_varchar2
936 ,p_attribute9 in varchar2 default hr_api.g_varchar2
937 ,p_attribute10 in varchar2 default hr_api.g_varchar2
938 ,p_attribute11 in varchar2 default hr_api.g_varchar2
939 ,p_attribute12 in varchar2 default hr_api.g_varchar2
940 ,p_attribute13 in varchar2 default hr_api.g_varchar2
941 ,p_attribute14 in varchar2 default hr_api.g_varchar2
942 ,p_attribute15 in varchar2 default hr_api.g_varchar2
943 ,p_attribute16 in varchar2 default hr_api.g_varchar2
944 ,p_attribute17 in varchar2 default hr_api.g_varchar2
945 ,p_attribute18 in varchar2 default hr_api.g_varchar2
946 ,p_attribute19 in varchar2 default hr_api.g_varchar2
947 ,p_attribute20 in varchar2 default hr_api.g_varchar2
948 ,p_attribute21 in varchar2 default hr_api.g_varchar2
949 ,p_attribute22 in varchar2 default hr_api.g_varchar2
950 ,p_attribute23 in varchar2 default hr_api.g_varchar2
951 ,p_attribute24 in varchar2 default hr_api.g_varchar2
952 ,p_attribute25 in varchar2 default hr_api.g_varchar2
953 ,p_attribute26 in varchar2 default hr_api.g_varchar2
954 ,p_attribute27 in varchar2 default hr_api.g_varchar2
955 ,p_attribute28 in varchar2 default hr_api.g_varchar2
956 ,p_attribute29 in varchar2 default hr_api.g_varchar2
957 ,p_attribute30 in varchar2 default hr_api.g_varchar2
958 ,p_information_category in varchar2 default hr_api.g_varchar2
959 ,p_information1 in varchar2 default hr_api.g_varchar2
960 ,p_information2 in varchar2 default hr_api.g_varchar2
961 ,p_information3 in varchar2 default hr_api.g_varchar2
962 ,p_information4 in varchar2 default hr_api.g_varchar2
963 ,p_information5 in varchar2 default hr_api.g_varchar2
964 ,p_information6 in varchar2 default hr_api.g_varchar2
965 ,p_information7 in varchar2 default hr_api.g_varchar2
966 ,p_information8 in varchar2 default hr_api.g_varchar2
967 ,p_information9 in varchar2 default hr_api.g_varchar2
968 ,p_information10 in varchar2 default hr_api.g_varchar2
969 ,p_information11 in varchar2 default hr_api.g_varchar2
970 ,p_information12 in varchar2 default hr_api.g_varchar2
971 ,p_information13 in varchar2 default hr_api.g_varchar2
972 ,p_information14 in varchar2 default hr_api.g_varchar2
973 ,p_information15 in varchar2 default hr_api.g_varchar2
974 ,p_information16 in varchar2 default hr_api.g_varchar2
975 ,p_information17 in varchar2 default hr_api.g_varchar2
976 ,p_information18 in varchar2 default hr_api.g_varchar2
977 ,p_information19 in varchar2 default hr_api.g_varchar2
978 ,p_information20 in varchar2 default hr_api.g_varchar2
979 ,p_information21 in varchar2 default hr_api.g_varchar2
980 ,p_information22 in varchar2 default hr_api.g_varchar2
981 ,p_information23 in varchar2 default hr_api.g_varchar2
982 ,p_information24 in varchar2 default hr_api.g_varchar2
983 ,p_information25 in varchar2 default hr_api.g_varchar2
984 ,p_information26 in varchar2 default hr_api.g_varchar2
985 ,p_information27 in varchar2 default hr_api.g_varchar2
986 ,p_information28 in varchar2 default hr_api.g_varchar2
987 ,p_information29 in varchar2 default hr_api.g_varchar2
988 ,p_information30 in varchar2 default hr_api.g_varchar2
989 ,p_review_proc_call in varchar2 default hr_api.g_varchar2
990 ,p_effective_date_option in varchar2 default hr_api.g_varchar2
991 ,p_login_person_id in number
992 ,p_entries_changed_warning out nocopy varchar2
993 ,p_return_status out nocopy varchar2
994 ,p_return_on_warning in varchar2 default null --Bug fix 1370960
995 ) Is
996
997 -- Local params for Saving Transaction
998 lv_cnt integer;
999 lv_activity_name wf_item_activity_statuses_v.activity_name%TYPE;
1000 lv_result varchar2(100);
1001 ln_transaction_id number;
1002 ltt_trans_obj_vers_num hr_util_web.g_varchar2_tab_type;
1003 ln_trans_step_rows NUMBER default 0;
1004 ltt_trans_step_ids hr_util_web.g_varchar2_tab_type;
1005 ln_transaction_step_id hr_api_transaction_steps.transaction_step_id%TYPE;
1006 ln_ovn hr_api_transaction_steps.object_version_number%TYPE;
1007
1008 -- In out params for terminate_placement
1009 l_object_version_number per_periods_of_placement.object_version_number%TYPE;
1010 l_final_process_date per_periods_of_placement.final_process_Date%TYPE;
1011 l_last_standard_process_date
1012 per_periods_of_placement.last_standard_process_date%TYPE;
1013
1014 validate_exception EXCEPTION;
1015
1016 ItemType varchar2(200);
1017 ItemKey varchar2(200);
1018 ActivityId varchar2(200);
1019 isQkFn varchar2(10) default 'N';
1020 isSupAsgPGExists varchar2(10) default 'N';
1021 l_old_sup_person_id number;
1022 l_term_date date;
1023 l_login_person_id number;
1024 l_old_sup_asg_id number;
1025 l_old_sup_bg_id number;
1026 l_new_sup_person_id number;
1027 l_new_sup_asg_id number;
1028 l_validate varchar2(10);
1029
1030 BEGIN
1031
1032 l_object_version_number := p_object_version_number;
1033
1034 IF p_transaction_mode <> 'SAVE_FOR_LATER' THEN
1035 hr_cwk_termination_swi.terminate_placement
1036 (p_validate => true
1037 ,p_effective_date => p_effective_date
1038 ,p_person_id => p_person_id
1039 ,p_date_start => p_date_start
1040 ,p_object_version_number => l_object_version_number
1041 ,p_person_type_id => p_person_type_id
1042 ,p_actual_termination_date => p_actual_termination_date
1043 ,p_final_process_date => l_final_process_date
1044 ,p_last_standard_process_date => l_last_standard_process_date
1045 ,p_termination_reason => p_termination_reason
1046 ,p_projected_termination_date => p_projected_termination_date
1047 ,p_attribute_category => p_attribute_category
1048 ,p_attribute1 => p_attribute1
1049 ,p_attribute2 => p_attribute2
1050 ,p_attribute3 => p_attribute3
1051 ,p_attribute4 => p_attribute4
1052 ,p_attribute5 => p_attribute5
1053 ,p_attribute6 => p_attribute6
1054 ,p_attribute7 => p_attribute7
1055 ,p_attribute8 => p_attribute8
1056 ,p_attribute9 => p_attribute9
1057 ,p_attribute10 => p_attribute10
1058 ,p_attribute11 => p_attribute11
1059 ,p_attribute12 => p_attribute12
1060 ,p_attribute13 => p_attribute13
1061 ,p_attribute14 => p_attribute14
1062 ,p_attribute15 => p_attribute15
1063 ,p_attribute16 => p_attribute16
1064 ,p_attribute17 => p_attribute17
1065 ,p_attribute18 => p_attribute18
1066 ,p_attribute19 => p_attribute19
1067 ,p_attribute20 => p_attribute20
1068 ,p_attribute21 => p_attribute21
1069 ,p_attribute22 => p_attribute22
1070 ,p_attribute23 => p_attribute23
1071 ,p_attribute24 => p_attribute24
1072 ,p_attribute25 => p_attribute25
1073 ,p_attribute26 => p_attribute26
1074 ,p_attribute27 => p_attribute27
1075 ,p_attribute28 => p_attribute28
1076 ,p_attribute29 => p_attribute29
1077 ,p_attribute30 => p_attribute30
1078 ,p_information_category => p_information_category
1079 ,p_information1 => p_information1
1080 ,p_information2 => p_information2
1081 ,p_information3 => p_information3
1082 ,p_information4 => p_information4
1083 ,p_information5 => p_information5
1084 ,p_information6 => p_information6
1085 ,p_information7 => p_information7
1086 ,p_information8 => p_information8
1087 ,p_information9 => p_information9
1088 ,p_information10 => p_information10
1089 ,p_information11 => p_information11
1090 ,p_information12 => p_information12
1091 ,p_information13 => p_information13
1092 ,p_information14 => p_information14
1093 ,p_information15 => p_information15
1094 ,p_information16 => p_information16
1095 ,p_information17 => p_information17
1096 ,p_information18 => p_information18
1097 ,p_information19 => p_information19
1098 ,p_information20 => p_information20
1099 ,p_information21 => p_information21
1100 ,p_information22 => p_information22
1101 ,p_information23 => p_information23
1102 ,p_information24 => p_information24
1103 ,p_information25 => p_information25
1104 ,p_information26 => p_information26
1105 ,p_information27 => p_information27
1106 ,p_information28 => p_information28
1107 ,p_information29 => p_information29
1108 ,p_information30 => p_information30
1109 ,p_entries_changed_warning => p_entries_changed_warning
1110 ,p_return_status => p_return_status
1111 ,p_rehire_recommendation => p_rehire_recommendation
1112 ,p_rehire_reason => p_rehire_reason
1113 );
1114 END IF;
1115 IF p_return_status = 'E' AND p_return_on_warning = 'true' THEN
1116 RAISE validate_exception;
1117 END IF;
1118 ---- All validations successful, proceed and save transaction.
1119 lv_cnt := 1;
1120 lv_transaction_steps(lv_cnt).param_name := 'P_PERSON_ID';
1121 lv_transaction_steps(lv_cnt).param_value := p_person_id;
1122 lv_transaction_steps(lv_cnt).param_data_type := 'NUMBER';
1123
1124 lv_cnt := lv_cnt + 1;
1125 lv_transaction_steps(lv_cnt).param_name := 'P_DATE_START';
1126 lv_transaction_steps(lv_cnt).param_value := to_char(p_date_start, hr_transaction_ss.g_date_format);
1127 lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1128
1129 lv_cnt := lv_cnt + 1;
1130 lv_transaction_steps(lv_cnt).param_name := 'P_EFFECTIVE_DATE';
1131 lv_transaction_steps(lv_cnt).param_value := to_char(p_effective_date, hr_transaction_ss.g_date_format);
1132 lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1133
1134 lv_cnt := lv_cnt + 1;
1135 lv_transaction_steps(lv_cnt).param_name := 'P_OBJECT_VERSION_NUMBER';
1136 lv_transaction_steps(lv_cnt).param_value := p_object_version_number;
1137 lv_transaction_steps(lv_cnt).param_data_type := 'NUMBER';
1138
1139 lv_cnt := lv_cnt + 1;
1140 lv_transaction_steps(lv_cnt).param_name := 'P_PERSON_TYPE_ID';
1141 lv_transaction_steps(lv_cnt).param_value := p_person_type_id;
1142 lv_transaction_steps(lv_cnt).param_data_type := 'NUMBER';
1143
1144 lv_cnt := lv_cnt + 1;
1145 lv_transaction_steps(lv_cnt).param_name := 'P_ACTUAL_TERMINATION_DATE';
1146 lv_transaction_steps(lv_cnt).param_value := to_char(p_actual_termination_date, hr_transaction_ss.g_date_format);
1147 lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1148
1149 IF p_final_process_date IS NOT NULL THEN
1150 lv_cnt := lv_cnt + 1;
1151 lv_transaction_steps(lv_cnt).param_name := 'P_FINAL_PROCESS_DATE';
1152 lv_transaction_steps(lv_cnt).param_value := to_char(p_final_process_date, hr_transaction_ss.g_date_format);
1153 lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1154 END IF;
1155
1156 IF p_last_standard_process_date IS NOT NULL THEN
1157 lv_cnt := lv_cnt + 1;
1158 lv_transaction_steps(lv_cnt).param_name := 'P_LAST_STANDARD_PROCESS_DATE';
1159 lv_transaction_steps(lv_cnt).param_value := to_char(p_last_standard_process_date, hr_transaction_ss.g_date_format);
1160 lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1161 END IF;
1162
1163 lv_cnt := lv_cnt + 1;
1164 lv_transaction_steps(lv_cnt).param_name := 'P_TERMINATION_REASON';
1165 lv_transaction_steps(lv_cnt).param_value := p_termination_reason;
1166 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1167
1168 IF p_projected_termination_date IS NOT NULL THEN
1169 lv_cnt := lv_cnt + 1;
1170 lv_transaction_steps(lv_cnt).param_name := 'P_PROJECTED_TERMINATION_DATE';
1171 lv_transaction_steps(lv_cnt).param_value := to_char(p_projected_termination_date, hr_transaction_ss.g_date_format);
1172 lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1173 END IF;
1174
1175 lv_cnt := lv_cnt + 1;
1176 lv_transaction_steps(lv_cnt).param_name := 'P_REHIRE_RECOMMENDATION';
1177 lv_transaction_steps(lv_cnt).param_value := p_rehire_recommendation;
1178 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1179
1180 lv_cnt := lv_cnt + 1;
1181 lv_transaction_steps(lv_cnt).param_name := 'P_REHIRE_REASON';
1182 lv_transaction_steps(lv_cnt).param_value := p_rehire_reason;
1183 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1184
1185 ------------------------------------------------------------
1186 -- DFF Segments
1187 ------------------------------------------------------------
1188 lv_cnt := lv_cnt + 1;
1189 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE_CATEGORY';
1190 lv_transaction_steps(lv_cnt).param_value := p_attribute_category;
1191 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1192
1193 lv_cnt := lv_cnt + 1;
1194 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE1';
1195 lv_transaction_steps(lv_cnt).param_value := p_attribute1;
1196 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1197
1198 lv_cnt := lv_cnt + 1;
1199 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE2';
1200 lv_transaction_steps(lv_cnt).param_value := p_attribute2;
1201 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1202
1203 lv_cnt := lv_cnt + 1;
1204 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE3';
1205 lv_transaction_steps(lv_cnt).param_value := p_attribute3;
1206 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1207
1208 lv_cnt := lv_cnt + 1;
1209 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE4';
1210 lv_transaction_steps(lv_cnt).param_value := p_attribute4;
1211 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1212
1213 lv_cnt := lv_cnt + 1;
1214 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE5';
1215 lv_transaction_steps(lv_cnt).param_value := p_attribute5;
1216 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1217
1218 lv_cnt := lv_cnt + 1;
1219 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE6';
1220 lv_transaction_steps(lv_cnt).param_value := p_attribute6;
1221 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1222
1223 lv_cnt := lv_cnt + 1;
1224 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE7';
1225 lv_transaction_steps(lv_cnt).param_value := p_attribute7;
1226 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1227
1228 lv_cnt := lv_cnt + 1;
1229 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE8';
1230 lv_transaction_steps(lv_cnt).param_value := p_attribute8;
1231 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1232
1233 lv_cnt := lv_cnt + 1;
1234 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE9';
1235 lv_transaction_steps(lv_cnt).param_value := p_attribute9;
1236 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1237
1238 lv_cnt := lv_cnt + 1;
1239 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE10';
1240 lv_transaction_steps(lv_cnt).param_value := p_attribute10;
1241 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1242
1243 lv_cnt := lv_cnt + 1;
1244 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE11';
1245 lv_transaction_steps(lv_cnt).param_value := p_attribute11;
1246 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1247
1248 lv_cnt := lv_cnt + 1;
1249 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE12';
1250 lv_transaction_steps(lv_cnt).param_value := p_attribute12;
1251 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1252
1253 lv_cnt := lv_cnt + 1;
1254 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE13';
1255 lv_transaction_steps(lv_cnt).param_value := p_attribute13;
1256 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1257
1258 lv_cnt := lv_cnt + 1;
1259 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE14';
1260 lv_transaction_steps(lv_cnt).param_value := p_attribute14;
1261 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1262
1263 lv_cnt := lv_cnt + 1;
1264 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE15';
1265 lv_transaction_steps(lv_cnt).param_value := p_attribute15;
1266 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1267
1268 lv_cnt := lv_cnt + 1;
1269 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE16';
1270 lv_transaction_steps(lv_cnt).param_value := p_attribute16;
1271 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1272
1273 lv_cnt := lv_cnt + 1;
1274 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE17';
1275 lv_transaction_steps(lv_cnt).param_value := p_attribute17;
1276 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1277
1278 lv_cnt := lv_cnt + 1;
1279 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE18';
1280 lv_transaction_steps(lv_cnt).param_value := p_attribute18;
1281 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1282
1283 lv_cnt := lv_cnt + 1;
1284 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE19';
1285 lv_transaction_steps(lv_cnt).param_value := p_attribute19;
1286 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1287
1288 lv_cnt := lv_cnt + 1;
1289 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE20';
1290 lv_transaction_steps(lv_cnt).param_value := p_attribute20;
1291 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1292
1293 lv_cnt := lv_cnt + 1;
1294 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE21';
1295 lv_transaction_steps(lv_cnt).param_value := p_attribute21;
1296 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1297
1298 lv_cnt := lv_cnt + 1;
1299 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE22';
1300 lv_transaction_steps(lv_cnt).param_value := p_attribute22;
1301 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1302
1303 lv_cnt := lv_cnt + 1;
1304 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE23';
1305 lv_transaction_steps(lv_cnt).param_value := p_attribute23;
1306 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1307
1308 lv_cnt := lv_cnt + 1;
1309 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE24';
1310 lv_transaction_steps(lv_cnt).param_value := p_attribute24;
1311 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1312
1313 lv_cnt := lv_cnt + 1;
1314 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE25';
1315 lv_transaction_steps(lv_cnt).param_value := p_attribute25;
1316 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1317
1318 lv_cnt := lv_cnt + 1;
1319 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE26';
1320 lv_transaction_steps(lv_cnt).param_value := p_attribute26;
1321 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1322
1323 lv_cnt := lv_cnt + 1;
1324 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE27';
1325 lv_transaction_steps(lv_cnt).param_value := p_attribute27;
1326 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1327
1328 lv_cnt := lv_cnt + 1;
1329 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE28';
1330 lv_transaction_steps(lv_cnt).param_value := p_attribute28;
1331 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1332
1333 lv_cnt := lv_cnt + 1;
1334 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE29';
1335 lv_transaction_steps(lv_cnt).param_value := p_attribute29;
1336 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1337
1338 lv_cnt := lv_cnt + 1;
1339 lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE30';
1340 lv_transaction_steps(lv_cnt).param_value := p_attribute30;
1341 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1342
1343 lv_cnt := lv_cnt + 1;
1344 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION_CATEGORY';
1345 lv_transaction_steps(lv_cnt).param_value := p_information_category;
1346 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1347
1348 lv_cnt := lv_cnt + 1;
1349 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION1';
1350 lv_transaction_steps(lv_cnt).param_value := p_information1;
1351 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1352
1353 lv_cnt := lv_cnt + 1;
1354 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION2';
1355 lv_transaction_steps(lv_cnt).param_value := p_information2;
1356 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1357
1358 lv_cnt := lv_cnt + 1;
1359 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION3';
1360 lv_transaction_steps(lv_cnt).param_value := p_information3;
1361 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1362
1363 lv_cnt := lv_cnt + 1;
1364 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION4';
1365 lv_transaction_steps(lv_cnt).param_value := p_information4;
1366 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1367
1368 lv_cnt := lv_cnt + 1;
1369 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION5';
1370 lv_transaction_steps(lv_cnt).param_value := p_information5;
1371 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1372
1373 lv_cnt := lv_cnt + 1;
1374 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION6';
1375 lv_transaction_steps(lv_cnt).param_value := p_information6;
1376 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1377
1378 lv_cnt := lv_cnt + 1;
1379 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION7';
1380 lv_transaction_steps(lv_cnt).param_value := p_information7;
1381 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1382
1383 lv_cnt := lv_cnt + 1;
1384 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION8';
1385 lv_transaction_steps(lv_cnt).param_value := p_information8;
1386 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1387
1388 lv_cnt := lv_cnt + 1;
1389 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION9';
1390 lv_transaction_steps(lv_cnt).param_value := p_information9;
1391 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1392
1393 lv_cnt := lv_cnt + 1;
1394 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION10';
1395 lv_transaction_steps(lv_cnt).param_value := p_information10;
1396 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1397
1398 lv_cnt := lv_cnt + 1;
1399 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION11';
1400 lv_transaction_steps(lv_cnt).param_value := p_information11;
1401 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1402
1403 lv_cnt := lv_cnt + 1;
1404 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION12';
1405 lv_transaction_steps(lv_cnt).param_value := p_information12;
1406 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1407
1408 lv_cnt := lv_cnt + 1;
1409 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION13';
1410 lv_transaction_steps(lv_cnt).param_value := p_information13;
1411 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1412
1413 lv_cnt := lv_cnt + 1;
1414 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION14';
1415 lv_transaction_steps(lv_cnt).param_value := p_information14;
1416 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1417
1418 lv_cnt := lv_cnt + 1;
1419 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION15';
1420 lv_transaction_steps(lv_cnt).param_value := p_information15;
1421 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1422
1423 lv_cnt := lv_cnt + 1;
1424 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION16';
1425 lv_transaction_steps(lv_cnt).param_value := p_information16;
1426 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1427
1428 lv_cnt := lv_cnt + 1;
1429 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION17';
1430 lv_transaction_steps(lv_cnt).param_value := p_information17;
1431 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1432
1433 lv_cnt := lv_cnt + 1;
1434 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION18';
1435 lv_transaction_steps(lv_cnt).param_value := p_information18;
1436 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1437
1438 lv_cnt := lv_cnt + 1;
1439 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION19';
1440 lv_transaction_steps(lv_cnt).param_value := p_information19;
1441 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1442
1443 lv_cnt := lv_cnt + 1;
1444 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION20';
1445 lv_transaction_steps(lv_cnt).param_value := p_information20;
1446 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1447
1448 lv_cnt := lv_cnt + 1;
1449 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION21';
1450 lv_transaction_steps(lv_cnt).param_value := p_information21;
1451 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1452
1453 lv_cnt := lv_cnt + 1;
1454 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION22';
1455 lv_transaction_steps(lv_cnt).param_value := p_information22;
1456 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1457
1458 lv_cnt := lv_cnt + 1;
1459 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION23';
1460 lv_transaction_steps(lv_cnt).param_value := p_information23;
1461 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1462
1463 lv_cnt := lv_cnt + 1;
1464 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION24';
1465 lv_transaction_steps(lv_cnt).param_value := p_information24;
1466 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1467
1468 lv_cnt := lv_cnt + 1;
1469 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION25';
1470 lv_transaction_steps(lv_cnt).param_value := p_information25;
1471 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1472
1473 lv_cnt := lv_cnt + 1;
1474 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION26';
1475 lv_transaction_steps(lv_cnt).param_value := p_information26;
1476 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1477
1478 lv_cnt := lv_cnt + 1;
1479 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION27';
1480 lv_transaction_steps(lv_cnt).param_value := p_information27;
1481 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1482
1483 lv_cnt := lv_cnt + 1;
1484 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION28';
1485 lv_transaction_steps(lv_cnt).param_value := p_information28;
1486 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1487
1488 lv_cnt := lv_cnt + 1;
1489 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION29';
1490 lv_transaction_steps(lv_cnt).param_value := p_information29;
1491 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1492
1493 lv_cnt := lv_cnt + 1;
1494 lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION30';
1495 lv_transaction_steps(lv_cnt).param_value := p_information30;
1496 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1497
1498 ----------------------------------------------------------------------
1499 -- Store the activity internal name for this particular
1500 -- activity with other information.
1501 ----------------------------------------------------------------------
1502 lv_activity_name := HR_CWK_TERMINATION_SWI.gv_TERMINATION_ACTIVITY_NAME;
1503 lv_cnt := lv_cnt + 1;
1504 lv_transaction_steps(lv_cnt).param_name := 'P_ACTIVITY_NAME';
1505 lv_transaction_steps(lv_cnt).param_value := lv_activity_name;
1506 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1507
1508 ----------------------------------------------------------------------
1509 -- Store the the Review Procedure Call and
1510 -- activity id with other information.
1511 ----------------------------------------------------------------------
1512 lv_cnt := lv_cnt + 1;
1513 lv_transaction_steps(lv_cnt).param_name := 'P_REVIEW_PROC_CALL';
1514 IF p_review_proc_call IS NULL THEN
1515 lv_transaction_steps(lv_cnt).param_value
1516 := wf_engine.GetActivityAttrText( p_item_type,p_item_key, p_actid
1517 ,'HR_REVIEW_REGION_ITEM', False);
1518 ELSE
1519 lv_transaction_steps(lv_cnt).param_value := p_review_proc_call;
1520 END IF;
1521
1522 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1523 lv_cnt := lv_cnt + 1;
1524 lv_transaction_steps(lv_cnt).param_name := 'P_REVIEW_ACTID';
1525 lv_transaction_steps(lv_cnt).param_value := p_actid;
1526 lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1527
1528 -------------------------------------------------------------------
1529 -- Check if Transaction Already Exists !
1530 -------------------------------------------------------------------
1531
1532 ln_transaction_id := hr_transaction_ss.get_transaction_id (
1533 p_Item_Type => p_item_type,
1534 p_Item_Key => p_item_key
1535 );
1536 IF ln_transaction_id IS NULL THEN
1537 -- Create a New Transaction
1538 hr_transaction_ss.start_transaction (
1539 itemtype => p_item_type,
1540 itemkey => p_item_key,
1541 actid => TO_NUMBER(p_actid),
1542 funmode => 'RUN',
1543 p_effective_date_option => p_effective_date_option,
1544 p_login_person_id => p_login_person_id,
1545 result => lv_result
1546 );
1547
1548 ln_transaction_id := hr_transaction_ss.get_transaction_id (
1549 p_Item_Type => p_item_type,
1550 p_Item_Key => p_item_key
1551 );
1552 END IF;
1553 ---------------------------------------------------------------------
1554 -- There is already a transaction for this process.
1555 -- Retieve the transaction step for this current
1556 -- activity. We will update this transaction step with
1557 -- the new information.
1558 ---------------------------------------------------------------------
1559
1560 hr_transaction_api.get_transaction_step_info(
1561 p_item_type => p_item_type
1562 ,p_item_key => p_item_key
1563 ,p_activity_id => to_number(p_actid)
1564 ,p_transaction_step_id => ltt_trans_step_ids
1565 ,p_object_version_number => ltt_trans_obj_vers_num
1566 ,p_rows => ln_trans_step_rows
1567 );
1568
1569 IF ln_trans_step_rows < 1
1570 THEN
1571 --------------------------------------------------------------------
1572 -- There is no transaction step for this transaction.
1573 -- Create a step within this new transaction
1574 --------------------------------------------------------------------
1575 hr_transaction_api.create_transaction_step (
1576 p_validate => false,
1577 p_creator_person_id => p_login_person_id,
1578 p_transaction_id => ln_transaction_id,
1579 p_api_name => g_package || 'PROCESS_API',
1580 p_Item_Type => p_item_type,
1581 p_Item_Key => p_item_key,
1582 p_activity_id => TO_NUMBER(p_actid),
1583 p_transaction_step_id => ln_transaction_step_id,
1584 p_object_version_number => ln_ovn
1585 );
1586 ELSE
1587 --------------------------------------------------------------------
1588 -- There are transaction steps for this transaction.
1589 -- Get the Transaction Step ID for this activity.
1590 --------------------------------------------------------------------
1591 ln_transaction_step_id :=
1592 hr_transaction_ss.get_activity_trans_step_id (
1593 p_activity_name => lv_activity_name,
1594 p_trans_step_id_tbl => ltt_trans_step_ids
1595 );
1596
1597 END IF;
1598 -- Save Transaction Step.
1599
1600 hr_transaction_ss.save_transaction_step (
1601 p_item_Type => p_item_type,
1602 p_item_Key => p_item_key,
1603 p_actid => TO_NUMBER(p_actid),
1604 p_login_person_id => p_login_person_id,
1605 p_transaction_step_id => ln_transaction_step_id,
1606 p_api_name => 'hr_cwk_termination_swi.process_save',
1607 p_transaction_data => lv_transaction_steps
1608 );
1609
1610 IF ( p_transaction_mode = 'SAVE_FOR_LATER' ) THEN
1611
1612 -- Quick Termination changes start from here
1613
1614 if ( p_item_type is not null and p_item_key is not null ) then
1615
1616 isQKFn := wf_engine.getItemAttrText(p_item_type, p_item_key, 'HR_QUICK_FUNCTION', true);
1617
1618 if ( ActivityId is not null ) then
1619 isSupAsgPGExists := wf_engine.getActivityAttrText(p_item_type, p_item_key, p_actid, 'REASSIGN_DIRECTS');
1620 end if;
1621
1622 end if;
1623
1624 if (isQKFn = 'Y' and isSupAsgPGExists = 'Y' ) then
1625
1626 l_term_date := hr_transaction_api.get_date_value(ln_transaction_step_id, 'P_ACTUAL_TERMINATION_DATE');
1627
1628 l_old_sup_person_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_OLD_SUP_PER_ID', true);
1629 l_old_sup_asg_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_OLD_SUP_ASG_ID', true);
1630 l_old_sup_bg_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_OLD_SUP_BG_ID', true);
1631 l_new_sup_person_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_NEW_SUP_PER_ID', true);
1632 l_new_sup_asg_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_NEW_SUP_ASG_ID', true);
1633 l_login_person_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_LOGIN_PER_ID', true);
1634
1635
1636 if ( l_old_sup_person_id is not null and
1637 l_old_sup_asg_id is not null and
1638 l_old_sup_bg_id is not null and
1639 l_new_sup_person_id is not null and
1640 l_new_sup_asg_id is not null and
1641 l_login_person_id is not null
1642 ) then
1643
1644 hr_utility.trace('Called hr_termination_ss.moveAllDirectReports from process_save');
1645
1646 hr_termination_ss.moveAllDirectReports(
1647 p_validate => 'Y',
1648 p_item_type => p_item_type,
1649 p_item_key => p_item_key,
1650 p_old_sup_person_id => l_old_sup_person_id,
1651 p_old_sup_asg_id => l_old_sup_asg_id,
1652 p_old_sup_bg_id => l_old_sup_bg_id,
1653 p_new_sup_person_id => l_new_sup_person_id,
1654 p_new_sup_asg_id => l_new_sup_asg_id,
1655 p_login_person_id => l_login_person_id,
1656 p_term_date => to_char(l_term_date, 'YYYY-MM-DD'),
1657 p_flow_identifier => 'TERMINATION_FLOW');
1658 end if;
1659
1660 end if;
1661 -- Quick Termination changes ends here
1662
1663 END IF;
1664
1665 EXCEPTION
1666 WHEN validate_exception THEN
1667 -- Multi Messaging: Do not raise exception.
1668 -- The Calling Proc in Java will look at this status
1669 -- and retrieve all Messages
1670 p_return_status := hr_multi_message.get_return_status_disable;
1671
1672 END process_save;
1673
1674 PROCEDURE getTransactionDetails
1675 ( p_transaction_step_id in varchar2
1676 ,p_person_id out nocopy number
1677 ,p_date_start out nocopy date
1678 ,p_object_version_number out nocopy number
1679 ,p_person_type_id out nocopy number
1680 ,p_actual_termination_date out nocopy date
1681 ,p_final_process_date out nocopy date
1682 ,p_last_standard_process_date out nocopy date
1683 ,p_termination_reason out nocopy varchar2
1684 ,p_rehire_recommendation out nocopy varchar2
1685 ,p_rehire_reason out nocopy varchar2
1686 ,p_projected_termination_date out nocopy date
1687 ,p_attribute_category out nocopy varchar2
1688 ,p_attribute1 out nocopy varchar2
1689 ,p_attribute2 out nocopy varchar2
1690 ,p_attribute3 out nocopy varchar2
1691 ,p_attribute4 out nocopy varchar2
1692 ,p_attribute5 out nocopy varchar2
1693 ,p_attribute6 out nocopy varchar2
1694 ,p_attribute7 out nocopy varchar2
1695 ,p_attribute8 out nocopy varchar2
1696 ,p_attribute9 out nocopy varchar2
1697 ,p_attribute10 out nocopy varchar2
1698 ,p_attribute11 out nocopy varchar2
1699 ,p_attribute12 out nocopy varchar2
1700 ,p_attribute13 out nocopy varchar2
1701 ,p_attribute14 out nocopy varchar2
1702 ,p_attribute15 out nocopy varchar2
1703 ,p_attribute16 out nocopy varchar2
1704 ,p_attribute17 out nocopy varchar2
1705 ,p_attribute18 out nocopy varchar2
1706 ,p_attribute19 out nocopy varchar2
1707 ,p_attribute20 out nocopy varchar2
1708 ,p_attribute21 out nocopy varchar2
1709 ,p_attribute22 out nocopy varchar2
1710 ,p_attribute23 out nocopy varchar2
1711 ,p_attribute24 out nocopy varchar2
1712 ,p_attribute25 out nocopy varchar2
1713 ,p_attribute26 out nocopy varchar2
1714 ,p_attribute27 out nocopy varchar2
1715 ,p_attribute28 out nocopy varchar2
1716 ,p_attribute29 out nocopy varchar2
1717 ,p_attribute30 out nocopy varchar2
1718 ,p_information_category out NOCOPY varchar2
1719 ,p_information1 out nocopy varchar2
1720 ,p_information2 out nocopy varchar2
1721 ,p_information3 out nocopy varchar2
1722 ,p_information4 out nocopy varchar2
1723 ,p_information5 out nocopy varchar2
1724 ,p_information6 out nocopy varchar2
1725 ,p_information7 out nocopy varchar2
1726 ,p_information8 out nocopy varchar2
1727 ,p_information9 out nocopy varchar2
1728 ,p_information10 out nocopy varchar2
1729 ,p_information11 out nocopy varchar2
1730 ,p_information12 out nocopy varchar2
1731 ,p_information13 out nocopy varchar2
1732 ,p_information14 out nocopy varchar2
1733 ,p_information15 out nocopy varchar2
1734 ,p_information16 out nocopy varchar2
1735 ,p_information17 out nocopy varchar2
1736 ,p_information18 out nocopy varchar2
1737 ,p_information19 out nocopy varchar2
1738 ,p_information20 out nocopy varchar2
1739 ,p_information21 out nocopy varchar2
1740 ,p_information22 out nocopy varchar2
1741 ,p_information23 out nocopy varchar2
1742 ,p_information24 out nocopy varchar2
1743 ,p_information25 out nocopy varchar2
1744 ,p_information26 out nocopy varchar2
1745 ,p_information27 out nocopy varchar2
1746 ,p_information28 out nocopy varchar2
1747 ,p_information29 out nocopy varchar2
1748 ,p_information30 out nocopy varchar2
1749 ) IS
1750
1751 l_proc varchar2(72) := g_package ||'getTransactionDetails';
1752
1753 BEGIN
1754
1755 hr_utility.set_location(' Entering:' || l_proc, 5);
1756 --
1757 p_person_id :=
1758 hr_transaction_api.get_number_value
1759 (p_transaction_step_id => p_transaction_step_id
1760 ,p_name => 'P_PERSON_ID');
1761 --
1762 p_date_start :=
1763 hr_transaction_api.get_date_value
1764 (p_transaction_step_id => p_transaction_step_id
1765 ,p_name => 'P_DATE_START');
1766 --
1767 p_object_version_number :=
1768 hr_transaction_api.get_number_value
1769 (p_transaction_step_id => p_transaction_step_id
1770 ,p_name => 'P_OBJECT_VERSION_NUMBER');
1771 --
1772 p_person_type_id :=
1773 hr_transaction_api.get_number_value
1774 (p_transaction_step_id => p_transaction_step_id
1775 ,p_name => 'P_PERSON_TYPE_ID');
1776 --
1777 -- p_assignment_status_type_id :=
1778 -- hr_transaction_api.get_number_value
1779 -- (p_transaction_step_id => p_transaction_step_id
1780 -- ,p_name => 'P_ASSIGNMENT_STATUS_TYPE_ID');
1781 --
1782 p_actual_termination_date :=
1783 hr_transaction_api.get_date_value
1784 (p_transaction_step_id => p_transaction_step_id
1785 ,p_name => 'P_ACTUAL_TERMINATION_DATE');
1786 --
1787 p_final_process_date :=
1788 hr_transaction_api.get_date_value
1789 (p_transaction_step_id => p_transaction_step_id
1790 ,p_name => 'P_FINAL_PROCESS_DATE');
1791 --
1792 p_last_standard_process_date :=
1793 hr_transaction_api.get_date_value
1794 (p_transaction_step_id => p_transaction_step_id
1795 ,p_name => 'P_LAST_STANDARD_PROCESS_DATE');
1796 --
1797 p_termination_reason :=
1798 hr_transaction_api.get_varchar2_value
1799 (p_transaction_step_id => p_transaction_step_id
1800 ,p_name => 'P_TERMINATION_REASON');
1801 --
1802 p_rehire_recommendation :=
1803 hr_transaction_api.get_varchar2_value
1804 (p_transaction_step_id => p_transaction_step_id
1805 ,p_name => 'P_REHIRE_RECOMMENDATION');
1806 --
1807 p_rehire_reason :=
1808 hr_transaction_api.get_varchar2_value
1809 (p_transaction_step_id => p_transaction_step_id
1810 ,p_name => 'P_REHIRE_REASON');
1811 --
1812 p_projected_termination_date :=
1813 hr_transaction_api.get_date_value
1814 (p_transaction_step_id => p_transaction_step_id
1815 ,p_name => 'P_PROJECTED_TERMINATION_DATE');
1816 --
1817 p_attribute_category :=
1818 hr_transaction_api.get_varchar2_value
1819 (p_transaction_step_id => p_transaction_step_id
1820 ,p_name => 'P_ATTRIBUTE_CATEGORY');
1821 --
1822 p_attribute1 :=
1823 hr_transaction_api.get_varchar2_value
1824 (p_transaction_step_id => p_transaction_step_id
1825 ,p_name => 'P_ATTRIBUTE1');
1826 --
1827 p_attribute2 :=
1828 hr_transaction_api.get_varchar2_value
1829 (p_transaction_step_id => p_transaction_step_id
1830 ,p_name => 'P_ATTRIBUTE2');
1831 --
1832 p_attribute3 :=
1833 hr_transaction_api.get_varchar2_value
1834 (p_transaction_step_id => p_transaction_step_id
1835 ,p_name => 'P_ATTRIBUTE3');
1836 --
1837 p_attribute4 :=
1838 hr_transaction_api.get_varchar2_value
1839 (p_transaction_step_id => p_transaction_step_id
1840 ,p_name => 'P_ATTRIBUTE4');
1841 --
1842 p_attribute5 :=
1843 hr_transaction_api.get_varchar2_value
1844 (p_transaction_step_id => p_transaction_step_id
1845 ,p_name => 'P_ATTRIBUTE5');
1846 --
1847 p_attribute6 :=
1848 hr_transaction_api.get_varchar2_value
1849 (p_transaction_step_id => p_transaction_step_id
1850 ,p_name => 'P_ATTRIBUTE6');
1851 --
1852 p_attribute7 :=
1853 hr_transaction_api.get_varchar2_value
1854 (p_transaction_step_id => p_transaction_step_id
1855 ,p_name => 'P_ATTRIBUTE7');
1856 --
1857 p_attribute8 :=
1858 hr_transaction_api.get_varchar2_value
1859 (p_transaction_step_id => p_transaction_step_id
1860 ,p_name => 'P_ATTRIBUTE8');
1861 --
1862 p_attribute9 :=
1863 hr_transaction_api.get_varchar2_value
1864 (p_transaction_step_id => p_transaction_step_id
1865 ,p_name => 'P_ATTRIBUTE9');
1866 --
1867 p_attribute10 :=
1868 hr_transaction_api.get_varchar2_value
1869 (p_transaction_step_id => p_transaction_step_id
1870 ,p_name => 'P_ATTRIBUTE10');
1871 --
1872 p_attribute11 :=
1873 hr_transaction_api.get_varchar2_value
1874 (p_transaction_step_id => p_transaction_step_id
1875 ,p_name => 'P_ATTRIBUTE11');
1876 --
1877 p_attribute12 :=
1878 hr_transaction_api.get_varchar2_value
1879 (p_transaction_step_id => p_transaction_step_id
1880 ,p_name => 'P_ATTRIBUTE12');
1881 --
1882 p_attribute13 :=
1883 hr_transaction_api.get_varchar2_value
1884 (p_transaction_step_id => p_transaction_step_id
1885 ,p_name => 'P_ATTRIBUTE13');
1886 --
1887 p_attribute14 :=
1888 hr_transaction_api.get_varchar2_value
1889 (p_transaction_step_id => p_transaction_step_id
1890 ,p_name => 'P_ATTRIBUTE14');
1891 --
1892 p_attribute15 :=
1893 hr_transaction_api.get_varchar2_value
1894 (p_transaction_step_id => p_transaction_step_id
1895 ,p_name => 'P_ATTRIBUTE15');
1896 --
1897 p_attribute16 :=
1898 hr_transaction_api.get_varchar2_value
1899 (p_transaction_step_id => p_transaction_step_id
1900 ,p_name => 'P_ATTRIBUTE16');
1901 --
1902 p_attribute17 :=
1903 hr_transaction_api.get_varchar2_value
1904 (p_transaction_step_id => p_transaction_step_id
1905 ,p_name => 'P_ATTRIBUTE17');
1906 --
1907 p_attribute18 :=
1908 hr_transaction_api.get_varchar2_value
1909 (p_transaction_step_id => p_transaction_step_id
1910 ,p_name => 'P_ATTRIBUTE18');
1911 --
1912 p_attribute19 :=
1913 hr_transaction_api.get_varchar2_value
1914 (p_transaction_step_id => p_transaction_step_id
1915 ,p_name => 'P_ATTRIBUTE19');
1916 --
1917 p_attribute20 :=
1918 hr_transaction_api.get_varchar2_value
1919 (p_transaction_step_id => p_transaction_step_id
1920 ,p_name => 'P_ATTRIBUTE20');
1921 --
1922 p_attribute21 :=
1923 hr_transaction_api.get_varchar2_value
1924 (p_transaction_step_id => p_transaction_step_id
1925 ,p_name => 'P_ATTRIBUTE21');
1926 --
1927 p_attribute22 :=
1928 hr_transaction_api.get_varchar2_value
1929 (p_transaction_step_id => p_transaction_step_id
1930 ,p_name => 'P_ATTRIBUTE22');
1931 --
1932 p_attribute23 :=
1933 hr_transaction_api.get_varchar2_value
1934 (p_transaction_step_id => p_transaction_step_id
1935 ,p_name => 'P_ATTRIBUTE23');
1936 --
1937 p_attribute24 :=
1938 hr_transaction_api.get_varchar2_value
1939 (p_transaction_step_id => p_transaction_step_id
1940 ,p_name => 'P_ATTRIBUTE24');
1941 --
1942 p_attribute25 :=
1943 hr_transaction_api.get_varchar2_value
1944 (p_transaction_step_id => p_transaction_step_id
1945 ,p_name => 'P_ATTRIBUTE25');
1946 --
1947 p_attribute26 :=
1948 hr_transaction_api.get_varchar2_value
1949 (p_transaction_step_id => p_transaction_step_id
1950 ,p_name => 'P_ATTRIBUTE26');
1951 --
1952 p_attribute27 :=
1953 hr_transaction_api.get_varchar2_value
1954 (p_transaction_step_id => p_transaction_step_id
1955 ,p_name => 'P_ATTRIBUTE27');
1956 --
1957 p_attribute28 :=
1958 hr_transaction_api.get_varchar2_value
1959 (p_transaction_step_id => p_transaction_step_id
1960 ,p_name => 'P_ATTRIBUTE28');
1961 --
1962 p_attribute29 :=
1963 hr_transaction_api.get_varchar2_value
1964 (p_transaction_step_id => p_transaction_step_id
1965 ,p_name => 'P_ATTRIBUTE29');
1966 --
1967 p_attribute30 :=
1968 hr_transaction_api.get_varchar2_value
1969 (p_transaction_step_id => p_transaction_step_id
1970 ,p_name => 'P_ATTRIBUTE30');
1971 --
1972 p_information_category :=
1973 hr_transaction_api.get_varchar2_value
1974 (p_transaction_step_id => p_transaction_step_id
1975 ,p_name => 'P_INFORMATION_CATEGORY');
1976 --
1977 p_information1 :=
1978 hr_transaction_api.get_varchar2_value
1979 (p_transaction_step_id => p_transaction_step_id
1980 ,p_name => 'P_INFORMATION1');
1981 --
1982 p_information2 :=
1983 hr_transaction_api.get_varchar2_value
1984 (p_transaction_step_id => p_transaction_step_id
1985 ,p_name => 'P_INFORMATION2');
1986 --
1987 p_information3 :=
1988 hr_transaction_api.get_varchar2_value
1989 (p_transaction_step_id => p_transaction_step_id
1990 ,p_name => 'P_INFORMATION3');
1991 --
1992 p_information4 :=
1993 hr_transaction_api.get_varchar2_value
1994 (p_transaction_step_id => p_transaction_step_id
1995 ,p_name => 'P_INFORMATION4');
1996 --
1997 p_information5 :=
1998 hr_transaction_api.get_varchar2_value
1999 (p_transaction_step_id => p_transaction_step_id
2000 ,p_name => 'P_INFORMATION5');
2001 --
2002 p_information6 :=
2003 hr_transaction_api.get_varchar2_value
2004 (p_transaction_step_id => p_transaction_step_id
2005 ,p_name => 'P_INFORMATION6');
2006 --
2007 p_information7 :=
2008 hr_transaction_api.get_varchar2_value
2009 (p_transaction_step_id => p_transaction_step_id
2010 ,p_name => 'P_INFORMATION7');
2011 --
2012 p_information8 :=
2013 hr_transaction_api.get_varchar2_value
2014 (p_transaction_step_id => p_transaction_step_id
2015 ,p_name => 'P_INFORMATION8');
2016 --
2017 p_information9 :=
2018 hr_transaction_api.get_varchar2_value
2019 (p_transaction_step_id => p_transaction_step_id
2020 ,p_name => 'P_INFORMATION9');
2021 --
2022 p_information10 :=
2023 hr_transaction_api.get_varchar2_value
2024 (p_transaction_step_id => p_transaction_step_id
2025 ,p_name => 'P_INFORMATION10');
2026 --
2027 p_information11 :=
2028 hr_transaction_api.get_varchar2_value
2029 (p_transaction_step_id => p_transaction_step_id
2030 ,p_name => 'P_INFORMATION11');
2031 --
2032 p_information12 :=
2033 hr_transaction_api.get_varchar2_value
2034 (p_transaction_step_id => p_transaction_step_id
2035 ,p_name => 'P_INFORMATION12');
2036 --
2037 p_information13 :=
2038 hr_transaction_api.get_varchar2_value
2039 (p_transaction_step_id => p_transaction_step_id
2040 ,p_name => 'P_INFORMATION13');
2041 --
2042 p_information14 :=
2043 hr_transaction_api.get_varchar2_value
2044 (p_transaction_step_id => p_transaction_step_id
2045 ,p_name => 'P_INFORMATION14');
2046 --
2047 p_information15 :=
2048 hr_transaction_api.get_varchar2_value
2049 (p_transaction_step_id => p_transaction_step_id
2050 ,p_name => 'P_INFORMATION15');
2051 --
2052 p_information16 :=
2053 hr_transaction_api.get_varchar2_value
2054 (p_transaction_step_id => p_transaction_step_id
2055 ,p_name => 'P_INFORMATION16');
2056 --
2057 p_information17 :=
2058 hr_transaction_api.get_varchar2_value
2059 (p_transaction_step_id => p_transaction_step_id
2060 ,p_name => 'P_INFORMATION17');
2061 --
2062 p_information18 :=
2063 hr_transaction_api.get_varchar2_value
2064 (p_transaction_step_id => p_transaction_step_id
2065 ,p_name => 'P_INFORMATION18');
2066 --
2067 p_information19 :=
2068 hr_transaction_api.get_varchar2_value
2069 (p_transaction_step_id => p_transaction_step_id
2070 ,p_name => 'P_INFORMATION19');
2071 --
2072 p_information20 :=
2073 hr_transaction_api.get_varchar2_value
2074 (p_transaction_step_id => p_transaction_step_id
2075 ,p_name => 'P_INFORMATION20');
2076
2077 --
2078 p_information21 :=
2079 hr_transaction_api.get_varchar2_value
2080 (p_transaction_step_id => p_transaction_step_id
2081 ,p_name => 'P_INFORMATION21');
2082 --
2083 p_information22 :=
2084 hr_transaction_api.get_varchar2_value
2085 (p_transaction_step_id => p_transaction_step_id
2086 ,p_name => 'P_INFORMATION22');
2087 --
2088 p_information23 :=
2089 hr_transaction_api.get_varchar2_value
2090 (p_transaction_step_id => p_transaction_step_id
2091 ,p_name => 'P_INFORMATION23');
2092 --
2093 p_information24 :=
2094 hr_transaction_api.get_varchar2_value
2095 (p_transaction_step_id => p_transaction_step_id
2096 ,p_name => 'P_INFORMATION24');
2097 --
2098 p_information25 :=
2099 hr_transaction_api.get_varchar2_value
2100 (p_transaction_step_id => p_transaction_step_id
2101 ,p_name => 'P_INFORMATION25');
2102 --
2103 p_information26 :=
2104 hr_transaction_api.get_varchar2_value
2105 (p_transaction_step_id => p_transaction_step_id
2106 ,p_name => 'P_INFORMATION26');
2107 --
2108 p_information27 :=
2109 hr_transaction_api.get_varchar2_value
2110 (p_transaction_step_id => p_transaction_step_id
2111 ,p_name => 'P_INFORMATION27');
2112 --
2113 p_information28 :=
2114 hr_transaction_api.get_varchar2_value
2115 (p_transaction_step_id => p_transaction_step_id
2116 ,p_name => 'P_INFORMATION28');
2117 --
2118 p_information29 :=
2119 hr_transaction_api.get_varchar2_value
2120 (p_transaction_step_id => p_transaction_step_id
2121 ,p_name => 'P_INFORMATION29');
2122 --
2123 p_information30 :=
2124 hr_transaction_api.get_varchar2_value
2125 (p_transaction_step_id => p_transaction_step_id
2126 ,p_name => 'P_INFORMATION30');
2127
2128 hr_utility.set_location(' Leaving:' || l_proc, 10);
2129
2130 END getTransactionDetails;
2131
2132 procedure process_api
2133 ( p_validate in boolean default false
2134 ,p_transaction_step_id in number default null
2135 ,p_effective_date in varchar2 default NULL
2136 ) IS
2137
2138 /*l_person_id VARCHAR2(100);
2139 l_date_start VARCHAR2(100);
2140 l_object_version_number VARCHAR2(100);
2141 l_person_type_id VARCHAR2(100);
2142 l_actual_termination_date VARCHAR2(100);
2143 l_final_process_date VARCHAR2(100);
2144 l_last_standard_process_date VARCHAR2(100);*/
2145 /*l_projected_termination_date VARCHAR2(100);*/
2146
2147 l_attribute_category per_periods_of_placement.attribute_category%TYPE;
2148 l_attribute1 per_periods_of_placement.attribute1%TYPE;
2149 l_attribute2 per_periods_of_placement.attribute2%TYPE;
2150 l_attribute3 per_periods_of_placement.attribute3%TYPE;
2151 l_attribute4 per_periods_of_placement.attribute4%TYPE;
2152 l_attribute5 per_periods_of_placement.attribute5%TYPE;
2153 l_attribute6 per_periods_of_placement.attribute6%TYPE;
2154 l_attribute7 per_periods_of_placement.attribute7%TYPE;
2155 l_attribute8 per_periods_of_placement.attribute8%TYPE;
2156 l_attribute9 per_periods_of_placement.attribute9%TYPE;
2157 l_attribute10 per_periods_of_placement.attribute10%TYPE;
2158 l_attribute11 per_periods_of_placement.attribute11%TYPE;
2159 l_attribute12 per_periods_of_placement.attribute12%TYPE;
2160 l_attribute13 per_periods_of_placement.attribute13%TYPE;
2161 l_attribute14 per_periods_of_placement.attribute14%TYPE;
2162 l_attribute15 per_periods_of_placement.attribute15%TYPE;
2163 l_attribute16 per_periods_of_placement.attribute16%TYPE;
2164 l_attribute17 per_periods_of_placement.attribute17%TYPE;
2165 l_attribute18 per_periods_of_placement.attribute18%TYPE;
2166 l_attribute19 per_periods_of_placement.attribute19%TYPE;
2167 l_attribute20 per_periods_of_placement.attribute20%TYPE;
2168 l_attribute21 per_periods_of_placement.attribute21%TYPE;
2169 l_attribute22 per_periods_of_placement.attribute22%TYPE;
2170 l_attribute23 per_periods_of_placement.attribute23%TYPE;
2171 l_attribute24 per_periods_of_placement.attribute24%TYPE;
2172 l_attribute25 per_periods_of_placement.attribute25%TYPE;
2173 l_attribute26 per_periods_of_placement.attribute26%TYPE;
2174 l_attribute27 per_periods_of_placement.attribute27%TYPE;
2175 l_attribute28 per_periods_of_placement.attribute28%TYPE;
2176 l_attribute29 per_periods_of_placement.attribute29%TYPE;
2177 l_attribute30 per_periods_of_placement.attribute30%TYPE;
2178
2179 l_information_category per_periods_of_placement.information_category%TYPE;
2180 l_information1 per_periods_of_placement.information1%TYPE;
2181 l_information2 per_periods_of_placement.information2%TYPE;
2182 l_information3 per_periods_of_placement.information3%TYPE;
2183 l_information4 per_periods_of_placement.information4%TYPE;
2184 l_information5 per_periods_of_placement.information5%TYPE;
2185 l_information6 per_periods_of_placement.information6%TYPE;
2186 l_information7 per_periods_of_placement.information7%TYPE;
2187 l_information8 per_periods_of_placement.information8%TYPE;
2188 l_information9 per_periods_of_placement.information9%TYPE;
2189 l_information10 per_periods_of_placement.information10%TYPE;
2190 l_information11 per_periods_of_placement.information11%TYPE;
2191 l_information12 per_periods_of_placement.information12%TYPE;
2192 l_information13 per_periods_of_placement.information13%TYPE;
2193 l_information14 per_periods_of_placement.information14%TYPE;
2194 l_information15 per_periods_of_placement.information15%TYPE;
2195 l_information16 per_periods_of_placement.information16%TYPE;
2196 l_information17 per_periods_of_placement.information17%TYPE;
2197 l_information18 per_periods_of_placement.information18%TYPE;
2198 l_information19 per_periods_of_placement.information19%TYPE;
2199 l_information20 per_periods_of_placement.information20%TYPE;
2200 l_information21 per_periods_of_placement.information21%TYPE;
2201 l_information22 per_periods_of_placement.information22%TYPE;
2202 l_information23 per_periods_of_placement.information23%TYPE;
2203 l_information24 per_periods_of_placement.information24%TYPE;
2204 l_information25 per_periods_of_placement.information25%TYPE;
2205 l_information26 per_periods_of_placement.information26%TYPE;
2206 l_information27 per_periods_of_placement.information27%TYPE;
2207 l_information28 per_periods_of_placement.information28%TYPE;
2208 l_information29 per_periods_of_placement.information29%TYPE;
2209 l_information30 per_periods_of_placement.information30%TYPE;
2210
2211 l_entries_changed_warning VARCHAR2(30);
2212 l_return_status VARCHAR2(30);
2213
2214 l_person_id per_periods_of_placement.person_id%TYPE;
2215 l_date_start per_periods_of_placement.date_start%TYPE;
2216 l_object_version_number per_periods_of_placement.object_version_number%TYPE;
2217 l_person_type_id per_all_people_f.person_type_id%TYPE;
2218 l_actual_termination_date per_periods_of_placement.actual_termination_date%TYPE;
2219 l_final_process_date per_periods_of_placement.final_process_date%TYPE;
2220 l_last_standard_process_date per_periods_of_placement.last_standard_process_date%TYPE;
2221 l_projected_termination_date per_periods_of_placement.projected_termination_date%TYPE;
2222 l_termination_reason per_periods_of_placement.termination_reason%TYPE;
2223 l_rehire_recommendation per_all_people_f.rehire_recommendation%TYPE;
2224 l_rehire_reason per_all_people_f.rehire_reason%TYPE;
2225
2226 l_proc varchar2(72) := g_package ||'process_api';
2227 l_effective_date date;
2228
2229 ItemType varchar2(200);
2230 ItemKey varchar2(200);
2231 ActivityId number;
2232 isQkFn varchar2(10) default 'N';
2233 isSupAsgPGExists varchar2(10) default 'N';
2234 l_old_sup_person_id number;
2235 l_term_date date;
2236 l_login_person_id number;
2237 l_old_sup_asg_id number;
2238 l_old_sup_bg_id number;
2239 l_new_sup_person_id number;
2240 l_new_sup_asg_id number;
2241 l_validate varchar2(10);
2242
2243 BEGIN
2244
2245 hr_utility.set_location(' Entering:' || l_proc, 5);
2246
2247 hr_cwk_termination_swi.getTransactionDetails
2248 ( p_transaction_step_id => p_transaction_step_id
2249 ,p_person_id => l_person_id
2250 ,p_date_start => l_date_start
2251 ,p_object_version_number => l_object_version_number
2252 ,p_person_type_id => l_person_type_id
2253 ,p_actual_termination_date => l_actual_termination_date
2254 ,p_final_process_date => l_final_process_date
2255 ,p_last_standard_process_date => l_last_standard_process_date
2256 ,p_termination_reason => l_termination_reason
2257 ,p_rehire_recommendation => l_rehire_recommendation
2258 ,p_rehire_reason => l_rehire_reason
2259 ,p_projected_termination_date => l_projected_termination_date
2260 ,p_attribute_category => l_attribute_category
2261 ,p_attribute1 => l_attribute1
2262 ,p_attribute2 => l_attribute2
2263 ,p_attribute3 => l_attribute3
2264 ,p_attribute4 => l_attribute4
2265 ,p_attribute5 => l_attribute5
2266 ,p_attribute6 => l_attribute6
2267 ,p_attribute7 => l_attribute7
2268 ,p_attribute8 => l_attribute8
2269 ,p_attribute9 => l_attribute9
2270 ,p_attribute10 => l_attribute10
2271 ,p_attribute11 => l_attribute11
2272 ,p_attribute12 => l_attribute12
2273 ,p_attribute13 => l_attribute13
2274 ,p_attribute14 => l_attribute14
2275 ,p_attribute15 => l_attribute15
2276 ,p_attribute16 => l_attribute16
2277 ,p_attribute17 => l_attribute17
2278 ,p_attribute18 => l_attribute18
2279 ,p_attribute19 => l_attribute19
2280 ,p_attribute20 => l_attribute20
2281 ,p_attribute21 => l_attribute21
2282 ,p_attribute22 => l_attribute22
2283 ,p_attribute23 => l_attribute23
2284 ,p_attribute24 => l_attribute24
2285 ,p_attribute25 => l_attribute25
2286 ,p_attribute26 => l_attribute26
2287 ,p_attribute27 => l_attribute27
2288 ,p_attribute28 => l_attribute28
2289 ,p_attribute29 => l_attribute29
2290 ,p_attribute30 => l_attribute30
2291 ,p_information_category => l_information_category
2292 ,p_information1 => l_information1
2293 ,p_information2 => l_information2
2294 ,p_information3 => l_information3
2295 ,p_information4 => l_information4
2296 ,p_information5 => l_information5
2297 ,p_information6 => l_information6
2298 ,p_information7 => l_information7
2299 ,p_information8 => l_information8
2300 ,p_information9 => l_information9
2301 ,p_information10 => l_information10
2302 ,p_information11 => l_information11
2303 ,p_information12 => l_information12
2304 ,p_information13 => l_information13
2305 ,p_information14 => l_information14
2306 ,p_information15 => l_information15
2307 ,p_information16 => l_information16
2308 ,p_information17 => l_information17
2309 ,p_information18 => l_information18
2310 ,p_information19 => l_information19
2311 ,p_information20 => l_information20
2312 ,p_information21 => l_information21
2313 ,p_information22 => l_information22
2314 ,p_information23 => l_information23
2315 ,p_information24 => l_information24
2316 ,p_information25 => l_information25
2317 ,p_information26 => l_information26
2318 ,p_information27 => l_information27
2319 ,p_information28 => l_information28
2320 ,p_information29 => l_information29
2321 ,p_information30 => l_information30
2322 );
2323
2324 /*person_id := to_number(l_person_id);
2325 object_version_number := to_number(l_object_version_number);
2326 person_type_id := to_number(l_person_type_id);
2327 date_start :=
2328 hr_transaction_api.get_date_value
2329 (p_transaction_step_id => p_transaction_step_id
2330 ,p_name => 'P_DATE_START');
2331 actual_termination_date :=
2332 hr_transaction_api.get_date_value
2333 (p_transaction_step_id => p_transaction_step_id
2334 ,p_name => 'P_ACTUAL_TERMINATION_DATE');
2335 final_process_date :=
2336 hr_transaction_api.get_date_value
2337 (p_transaction_step_id => p_transaction_step_id
2338 ,p_name => 'P_FINAL_PROCESS_DATE');
2339 last_standard_process_date :=
2340 hr_transaction_api.get_date_value
2341 (p_transaction_step_id => p_transaction_step_id
2342 ,p_name => 'P_LAST_STANDARD_PROCESS_DATE');
2343 projected_termination_date :=
2344 hr_transaction_api.get_date_value
2345 (p_transaction_step_id => p_transaction_step_id
2346 ,p_name => 'P_PROJECTED_TERMINATION_DATE');
2347 */
2348 l_effective_date :=
2349 hr_transaction_api.get_date_value
2350 (p_transaction_step_id => p_transaction_step_id
2351 ,p_name => 'P_EFFECTIVE_DATE');
2352
2353
2354 hr_cwk_termination_swi.terminate_placement
2355 (p_validate => false
2356 ,p_effective_date => l_effective_date
2357 ,p_person_id => l_person_id
2358 ,p_date_start => l_date_start
2359 ,p_object_version_number => l_object_version_number
2360 ,p_person_type_id => l_person_type_id
2361 ,p_actual_termination_date => l_actual_termination_date
2362 ,p_final_process_date => l_final_process_date
2363 ,p_last_standard_process_date => l_last_standard_process_date
2364 ,p_termination_reason => l_termination_reason
2365 ,p_projected_termination_date => l_projected_termination_date
2366 ,p_rehire_recommendation => l_rehire_recommendation
2367 ,p_rehire_reason => l_rehire_reason
2368 ,p_attribute_category => l_attribute_category
2369 ,p_attribute1 => l_attribute1
2370 ,p_attribute2 => l_attribute2
2371 ,p_attribute3 => l_attribute3
2372 ,p_attribute4 => l_attribute4
2373 ,p_attribute5 => l_attribute5
2374 ,p_attribute6 => l_attribute6
2375 ,p_attribute7 => l_attribute7
2376 ,p_attribute8 => l_attribute8
2377 ,p_attribute9 => l_attribute9
2378 ,p_attribute10 => l_attribute10
2379 ,p_attribute11 => l_attribute11
2380 ,p_attribute12 => l_attribute12
2381 ,p_attribute13 => l_attribute13
2382 ,p_attribute14 => l_attribute14
2383 ,p_attribute15 => l_attribute15
2384 ,p_attribute16 => l_attribute16
2385 ,p_attribute17 => l_attribute17
2386 ,p_attribute18 => l_attribute18
2387 ,p_attribute19 => l_attribute19
2388 ,p_attribute20 => l_attribute20
2389 ,p_attribute21 => l_attribute21
2390 ,p_attribute22 => l_attribute22
2391 ,p_attribute23 => l_attribute23
2392 ,p_attribute24 => l_attribute24
2393 ,p_attribute25 => l_attribute25
2394 ,p_attribute26 => l_attribute26
2395 ,p_attribute27 => l_attribute27
2396 ,p_attribute28 => l_attribute28
2397 ,p_attribute29 => l_attribute29
2398 ,p_attribute30 => l_attribute30
2399 ,p_entries_changed_warning => l_entries_changed_warning
2400 ,p_return_status => l_return_status
2401 );
2402
2403 -- Quick Termination changes start from here
2404
2405 BEGIN
2406 hr_transaction_api.get_transaction_step_info(
2407 p_transaction_step_id
2408 ,ItemType
2409 ,ItemKey
2410 ,ActivityId);
2411
2412 if ( ItemType is not null and ItemKey is not null ) then
2413
2414 isQKFn := wf_engine.getItemAttrText(ItemType, ItemKey, 'HR_QUICK_FUNCTION');
2415
2416 if ( ActivityId is not null ) then
2417 isSupAsgPGExists := wf_engine.getActivityAttrText(ItemType, ItemKey, ActivityId, 'REASSIGN_DIRECTS');
2418 end if;
2419
2420 end if;
2421
2422 if (isQKFn = 'Y' and isSupAsgPGExists = 'Y' ) then
2423
2424 l_term_date := hr_transaction_api.get_date_value(p_transaction_step_id, 'P_ACTUAL_TERMINATION_DATE');
2425
2426 l_old_sup_person_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_OLD_SUP_PER_ID', true);
2427 l_old_sup_asg_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_OLD_SUP_ASG_ID', true);
2428 l_old_sup_bg_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_OLD_SUP_BG_ID', true);
2429 l_new_sup_person_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_NEW_SUP_PER_ID', true);
2430 l_new_sup_asg_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_NEW_SUP_ASG_ID', true);
2431 l_login_person_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_LOGIN_PER_ID', true);
2432
2433
2434 if ( l_old_sup_person_id is not null and
2435 l_old_sup_asg_id is not null and
2436 l_old_sup_bg_id is not null and
2437 l_new_sup_person_id is not null and
2438 l_new_sup_asg_id is not null and
2439 l_login_person_id is not null
2440 ) then
2441
2442 --l_proc := l_proc || ' hr_termination_ss.moveAllDirectReports';
2443
2444 if ( p_validate ) then
2445 l_validate := 'Y';
2446 else
2447 l_validate := 'N';
2448 end if;
2449
2450 hr_utility.trace('Called moveAllDirectReports from process_api');
2451
2452 BEGIN
2453 hr_termination_ss.moveAllDirectReports(
2454 p_validate => l_validate,
2455 p_item_type => ItemType,
2456 p_item_key => ItemKey,
2457 p_old_sup_person_id => l_old_sup_person_id,
2458 p_old_sup_asg_id => l_old_sup_asg_id,
2459 p_old_sup_bg_id => l_old_sup_bg_id,
2460 p_new_sup_person_id => l_new_sup_person_id,
2461 p_new_sup_asg_id => l_new_sup_asg_id,
2462 p_login_person_id => l_login_person_id,
2463 p_term_date => to_char(l_term_date, 'YYYY-MM-DD'),
2464 p_flow_identifier => 'TERMINATION_FLOW');
2465 EXCEPTION
2466 WHEN OTHERS THEN
2467 hr_utility.trace('Inner block of moveAllDirectReports call');
2468 END;
2469 end if;
2470
2471 end if;
2472 EXCEPTION
2473 WHEN OTHERS THEN
2474 hr_utility.trace('Exception in outer block of moveAllDirectReports call');
2475 END;
2476 -- Quick Termination changes ends here
2477
2478 if l_return_status = 'E' then
2479 raise hr_multi_message.error_message_exist;
2480 end if;
2481 hr_utility.set_location(' Leaving:' || l_proc, 10);
2482 END;
2483
2484 end hr_cwk_termination_swi;