[Home] [Help]
PACKAGE BODY: APPS.HR_TERMINATION_SS
Source
1 PACKAGE BODY hr_termination_ss AS
2 /* $Header: hrtrmwrs.pkb 120.2.12010000.2 2008/08/06 08:49:40 ubhat ship $ */
3
4 -- Package scope global variables.
5 -- The canonical date format has to use hyphens instead of slashes, ie.
6 -- "RRRR/MM/DD" will give a java IllegalArgument error because the java
7 -- dateValue() is expecting the date string in "rrrr-mm-dd" format.
8 -- All date fields are converted to canonical date formats and return to
9 -- the java caller.
10 g_date_format constant varchar2(10):='RRRR-MM-DD';
11 g_package constant varchar2(30) := 'HR_TERMINATION_SS';
12
13
14 /*
15 ||===========================================================================
16 || FUNCTION: update_object_version
17 || DESCRIPTION: Update the object version number in the transaction step
18 || to pass the invalid object api error for Save for Later.
19 ||=======================================================================
20 */
21 PROCEDURE update_object_version
22 (p_transaction_step_id in number
23 ,p_login_person_id in number) IS
24
25
26 CURSOR csr_new_object_number(p_period_of_service_id in number) is
27 SELECT object_version_number
28 FROM per_periods_of_service pps
29 where period_of_service_id = p_period_of_service_id;
30
31 ln_old_object_number number;
32 ln_period_of_service_id number;
33 ln_new_object_number number;
34 l_proc constant varchar2(100) := g_package || ' update_object_version';
35 BEGIN
36 hr_utility.set_location('Entering: '|| l_proc,5);
37 ln_period_of_service_id :=
38 hr_transaction_api.get_number_value
39 (p_transaction_step_id => p_transaction_step_id
40 ,p_name => 'P_PERIOD_OF_SERVICE_ID');
41
42
43 OPEN csr_new_object_number(ln_period_of_service_id);
44 FETCH csr_new_object_number into ln_new_object_number;
45 CLOSE csr_new_object_number;
46
47 ln_old_object_number :=
48 hr_transaction_api.get_number_value
49 (p_transaction_step_id => p_transaction_step_id
50 ,p_name => 'P_OBJECT_VERSION_NUMBER');
51
52 IF ln_old_object_number <> ln_new_object_number then
53 hr_transaction_api.set_number_value
54 (p_transaction_step_id => p_transaction_step_id
55 ,p_person_id => p_login_person_id
56 ,p_name => 'P_OBJECT_VERSION_NUMBER'
57 ,p_value => ln_new_object_number);
58 END IF;
59
60 hr_utility.set_location('Leaving: '|| l_proc,10);
61 END update_object_version;
62
63 -- Bug 2098595 Fix Ends
64 --
65 -- Core HR API will not support update of field Rehire Recommendation
66 -- and Rehire Reason. Hence we make following call to Person API
67 -- to update the Fields.
68 PROCEDURE update_per_details(
69 p_validate in number default 0
70 ,p_effective_date in date
71 ,p_period_of_service_id in number
72 ,p_actual_termination_date in date
73 ,p_rehire_recommendation in varchar2 default hr_api.g_varchar2
74 ,p_rehire_reason in varchar2 default hr_api.g_varchar2
75 ) IS
76
77 l_person_id per_all_people_f.person_id%TYPE;
78 l_per_object_version_number per_all_people_f.object_version_number%TYPE;
79 l_employee_number per_all_people_f.employee_number%TYPE;
80 l_effective_start_date date;
81 l_effective_end_date date;
82 l_full_name per_all_people_f.full_name%TYPE;
83 l_comment_id per_all_people_f.comment_id%TYPE;
84 l_name_combination_warning boolean;
85 l_assign_payroll_warning boolean;
86 l_orig_hire_warning boolean;
87 l_proc varchar2(100) := g_package ||'update_per_details';
88
89 l_err_msg long default null;
90
91 cursor csr_get_derived_details is
92 select per.person_id
93 , per.employee_number
94 , per.object_version_number
95 from per_all_people_f per
96 , per_business_groups bus
97 , per_periods_of_service pds
98 , per_person_types pet
99 where pds.period_of_service_id = p_period_of_service_id
100 and bus.business_group_id = pds.business_group_id
101 and per.person_id = pds.person_id
102 and p_actual_termination_date + 1 between per.effective_start_date
103 and per.effective_end_date
104 and pet.person_type_id = per.person_type_id;
105
106 l_validate boolean;
107
108 BEGIN
109
110 SAVEPOINT update_person_details;
111 open csr_get_derived_details;
112 fetch csr_get_derived_details
113 into l_person_id
114 , l_employee_number
115 , l_per_object_version_number;
116
117 l_validate := hr_java_conv_util_ss.get_boolean (p_number => p_validate);
118 -- The Transaction mode will be UPDATE as per the rehire tab in people form.
119
120 hr_person_api.update_person (
121 p_validate => l_validate
122 ,p_effective_date => p_effective_date + 1
123 ,p_datetrack_update_mode => 'CORRECTION'
124 ,p_person_id => l_person_id
125 ,p_object_version_number => l_per_object_version_number
126 ,p_employee_number => l_employee_number
127 ,p_effective_start_date => l_effective_start_date
128 ,p_effective_end_date => l_effective_end_date
129 ,p_rehire_recommendation => p_rehire_recommendation
130 ,p_rehire_reason => p_rehire_reason
131 ,p_full_name => l_full_name
132 ,p_comment_id => l_comment_id
133 ,p_name_combination_warning => l_name_combination_warning
134 ,p_assign_payroll_warning => l_assign_payroll_warning
135 ,p_orig_hire_warning => l_orig_hire_warning
136 );
137
138 IF l_validate THEN
139 ROLLBACK TO update_person_details;
140 END IF;
141
142 EXCEPTION
143 WHEN OTHERS THEN
144 l_err_msg := hr_java_conv_util_ss.get_formatted_error_message
145 (p_single_error_message => hr_utility.get_message);
146 hr_utility.set_location('EXCEPTION '|| l_err_msg || ': '|| l_proc,560);
147 rollback TO update_person_details;
148 raise;
149 END update_per_details;
150
151
152 /*
153 ||=======================================================================
154 || FUNCTION : get_termination_details - Private
155 || DESCRIPTION : This overloaded funciton return the termination related
156 || information by given transaction_step_id.
157 ||=======================================================================
158 */
159 FUNCTION get_termination_details (
160 p_transaction_step_id IN
161 hr_api_transaction_steps.transaction_step_id%type
162 )
163 RETURN hr_termination_ss.rt_termination;
164
165 /*
166 ||=======================================================================
167 || FUNCTION: get_term_flex_detail - Private
168 || DESCRIPTION: This function returns termination dff data by
169 || transaction step id.
170 ||=======================================================================
171 */
172 FUNCTION get_term_flex_detail (
173 p_transaction_step_id IN
174 hr_api_transaction_steps.transaction_step_id%type
175 )
176 RETURN hr_termination_ss.t_flex_table;
177
178 /*
179 ||===========================================================================
180 || FUNCTION: branch_on_subordinate_presence
181 || DESCRIPTION:
182 || This procedure will read the CURRENT_PERSON_ID item level
183 || attribute value and then find out if the employee to be terminated
184 || has any subordinates or not. If he has, this procedure will set
185 || the wf result code to "Y". So, workflow will transition to the
186 || Supevisor page accordingly.
187 || This procedure will set the wf transition code as follows:
188 || (Y/N)
189 || For 'Y' => branch to Supervisor page
190 || 'N' => do not branch to Supervisor page
191 ||=======================================================================
192 */
193 PROCEDURE branch_on_subordinate_presence
194 (itemtype in varchar2
195 ,itemkey in varchar2
196 ,actid in number
197 ,funcmode in varchar2
198 ,resultout out nocopy varchar2)
199 IS
200
201 l_text_value wf_item_attribute_values.text_value%type;
202 l_number_value wf_item_attribute_values.number_value%type;
203 l_effective_date date;
204 l_person_id number default null;
205 l_proc constant varchar2(100) := g_package || 'branch_on_subordinate_presence';
206
207 ----------------------------------------------------------------------------
208 -- Bug 2130066 Fix Begins:
209 -- When a Supervisor Security profile is defined with a restrictions to n
210 -- number of levels, this cursor will not return any row if the employee to
211 -- terminated has subordinates beyond the n number of levels.
212 -- For example, Employee 1 (a supervisor with a Supervisor Security profile
213 -- set up to have the maximum hierarchy level = 1, that means the profile
214 -- will only show 1 level of subordinates) is a supervisor, he has Employee 2
215 -- as the subordinate. In SSHR hierarchy tree, Employee 2 is shown.
216 -- Employee 2 himself also has subordinates reporting to him, say Employee 3.
217 -- But in SSHR hierarchy tree, Employee 3 is not listed because of the
218 -- maximum hierarchy level in the Supervisor Security Profile. When Employee
219 -- 1 selects to terminate Employee 2, the following cursor will not return
220 -- rows for Employee 2. I believe the hr security view uses the Supervisor's
221 -- person list to run the query. In this case, Employee 3 is beyong the
222 -- level specified, thus no rows returned.
223 -- Changed the cursor to use base table so that it will return rows regardless
224 -- of maximum hierarchy level specified in the Supervisor Security profile.
225 ----------------------------------------------------------------------------
226 CURSOR csr_get_subordinate IS
227 SELECT ppf.person_id
228 FROM per_all_people_f ppf -- Bug 2130066 fix
229 ,per_all_assignments_f paf
230 ,per_periods_of_service ppos
231 WHERE paf.supervisor_id = l_number_value
232 AND paf.person_id = ppf.person_id
233 AND ppf.person_id = ppos.person_id
234 AND ppf.current_employee_flag = 'Y'
235 AND l_effective_date between ppf.effective_start_date
236 and ppf.effective_end_date
237 -- AND paf.primary_flag = 'Y' -- commented to support multiple assignments
238 AND paf.assignment_type = 'E'
239 AND l_effective_date between paf.effective_start_date
240 and paf.effective_end_date
241 AND l_effective_date between ppos.date_start
242 and nvl(ppos.actual_termination_date
243 ,l_effective_date)
244 UNION -- CWK Phase III Changes.
245 SELECT ppf.person_id
246 FROM per_all_people_f ppf -- Bug 2130066 fix
247 ,per_all_assignments_f paf
248 ,per_periods_of_placement ppop
249 WHERE paf.supervisor_id = l_number_value
250 AND paf.person_id = ppf.person_id
251 AND ppf.person_id = ppop.person_id
252 AND ppf.current_npw_flag = 'Y'
253 AND l_effective_date between ppf.effective_start_date
254 and ppf.effective_end_date
255 -- AND paf.primary_flag = 'Y' -- commented to support multiple assignments
256 AND paf.assignment_type = 'C'
257 AND l_effective_date between paf.effective_start_date
258 and paf.effective_end_date
259 AND l_effective_date between ppop.date_start
260 and nvl(ppop.actual_termination_date
261 ,l_effective_date);
262
263
264
265 BEGIN
266 --
267 hr_utility.set_location('Entering: '|| l_proc,5);
268 l_number_value := wf_engine.GetItemAttrNumber
269 (itemtype => itemtype
270 ,itemkey => itemkey
271 ,aname => 'CURRENT_PERSON_ID');
272
273 -- The termination effective date was stored in the wf item attribute
274 -- P_EFFECTIVE_DATE as a text value in the canonical format, ie. 'RRRR/MM/DD'.
275 l_text_value := wf_engine.GetItemAttrText
276 (itemtype => itemtype
277 ,itemkey => itemkey
278 ,aname => 'P_EFFECTIVE_DATE');
279
280 --
281 -- Now convert the text value date to date data type
282 -- Bug 2476134 - 07/29/2002
283 -- Changed the <> null to IS NOT NULL.
284 IF l_text_value IS NOT NULL
285 THEN
286 hr_utility.trace('In (if l_text_value IS NOT NULL): '|| l_proc);
287 l_effective_date := trunc(
288 to_date(l_text_value, hr_transaction_ss.g_date_format)
289 );
290 ELSE
291 hr_utility.trace('In else of (if l_text_value IS NOT NULL): '|| l_proc);
292 -- Use sysdate if the wf item attribute contains null value
293 l_effective_date := trunc(sysdate);
294 END IF;
295
296 OPEN csr_get_subordinate;
297 FETCH csr_get_subordinate into l_person_id;
298
299 IF csr_get_subordinate%NOTFOUND
300 THEN
301 -- no subordinates, then set the result code to 'N'
302 resultout := 'COMPLETE:'|| 'N';
303 ELSE
304 resultout := 'COMPLETE:'|| 'Y';
305 END IF;
306 --
307 CLOSE csr_get_subordinate;
308
309 -- 08/07/01 Bug 1853417 Fix:
310 -- Need to set the wf item attribute HR_TERM_SUP_FLAG so that the Supervisor
311 -- page knows that the caller is from Termination.
312 -- NOTE: The HR_TERM_SUP_FLAG attribute is not used for determining whether
313 -- to branch to the Supervisor page or not.
314 wf_engine.SetItemAttrText
315 (itemtype => itemtype
316 ,itemkey => itemkey
317 ,aname => 'HR_TERM_SUP_FLAG'
318 ,avalue => 'Y');
319 --
320 hr_utility.set_location('Leaving: '|| l_proc,15);
321
322 EXCEPTION
323 WHEN OTHERS THEN
324 resultout := null;
325 hr_utility.set_location('EXCEPTION: '|| l_proc,555);
326 WF_CORE.CONTEXT(g_package
327 ,'branch_on_subordinate_presence'
328 ,itemtype
329 ,itemkey
330 ,to_char(actid)
331 ,funcmode);
332 RAISE;
333 end branch_on_subordinate_presence;
334 --
335 --
336 /*
337 ||===========================================================================
338 || PROCEDURE: actual_termination_emp
339 ||---------------------------------------------------------------------------
340 ||
341 || Description:
342 || This procedure will call the actual API -
343 || hr_ex_employee_api.actual_termination_emp
344 ||
345 || Pre Conditions:
346 ||
347 || In Arguments:
348 || Contains entire list of parameters that are defined in the actual
349 || API. For details see peexeapi.pkb file.
350 ||
351 || out nocopy Arguments:
352 ||
353 || In out nocopy Arguments:
354 ||
355 || Post Success:
356 || Executes the API call.
357 ||
358 || Post Failure:
359 || Raises an exception
360 ||
361 || Access Status:
362 || Public.
363 ||
364 ||===========================================================================
365 */
366 PROCEDURE actual_termination_emp
367 (p_validate in number default 0
368 ,p_effective_date in date
369 ,p_period_of_service_id in number
370 ,p_object_version_number in out nocopy number
371 ,p_actual_termination_date in date
372 ,p_last_standard_process_date in out nocopy date
373 ,p_person_type_id in number default hr_api.g_number
374 ,p_assignment_status_type_id in number default hr_api.g_number
375 ,p_leaving_reason in varchar2 default hr_api.g_varchar2
376 ,p_rehire_recommendation in varchar2 default hr_api.g_varchar2
377 ,p_rehire_reason in varchar2 default hr_api.g_varchar2
378 ,p_termination_accepted_person in number default hr_api.g_number
379 ,p_accepted_termination_date in date default hr_api.g_date
380 ,p_comments in varchar2 default hr_api.g_varchar2
381 ,p_notified_termination_date in date default hr_api.g_date
382 ,p_projected_termination_date in date default hr_api.g_date
383 ,p_final_process_date in out nocopy date
384 ,p_attribute_category in varchar2 default hr_api.g_varchar2
385 ,p_attribute1 in varchar2 default hr_api.g_varchar2
386 ,p_attribute2 in varchar2 default hr_api.g_varchar2
387 ,p_attribute3 in varchar2 default hr_api.g_varchar2
388 ,p_attribute4 in varchar2 default hr_api.g_varchar2
389 ,p_attribute5 in varchar2 default hr_api.g_varchar2
390 ,p_attribute6 in varchar2 default hr_api.g_varchar2
391 ,p_attribute7 in varchar2 default hr_api.g_varchar2
392 ,p_attribute8 in varchar2 default hr_api.g_varchar2
393 ,p_attribute9 in varchar2 default hr_api.g_varchar2
394 ,p_attribute10 in varchar2 default hr_api.g_varchar2
395 ,p_attribute11 in varchar2 default hr_api.g_varchar2
396 ,p_attribute12 in varchar2 default hr_api.g_varchar2
397 ,p_attribute13 in varchar2 default hr_api.g_varchar2
398 ,p_attribute14 in varchar2 default hr_api.g_varchar2
399 ,p_attribute15 in varchar2 default hr_api.g_varchar2
400 ,p_attribute16 in varchar2 default hr_api.g_varchar2
401 ,p_attribute17 in varchar2 default hr_api.g_varchar2
402 ,p_attribute18 in varchar2 default hr_api.g_varchar2
403 ,p_attribute19 in varchar2 default hr_api.g_varchar2
404 ,p_attribute20 in varchar2 default hr_api.g_varchar2
405 ,p_pds_information_category in varchar2 default hr_api.g_varchar2
406 ,p_pds_information1 in varchar2 default hr_api.g_varchar2
407 ,p_pds_information2 in varchar2 default hr_api.g_varchar2
408 ,p_pds_information3 in varchar2 default hr_api.g_varchar2
409 ,p_pds_information4 in varchar2 default hr_api.g_varchar2
410 ,p_pds_information5 in varchar2 default hr_api.g_varchar2
411 ,p_pds_information6 in varchar2 default hr_api.g_varchar2
412 ,p_pds_information7 in varchar2 default hr_api.g_varchar2
413 ,p_pds_information8 in varchar2 default hr_api.g_varchar2
414 ,p_pds_information9 in varchar2 default hr_api.g_varchar2
415 ,p_pds_information10 in varchar2 default hr_api.g_varchar2
416 ,p_pds_information11 in varchar2 default hr_api.g_varchar2
417 ,p_pds_information12 in varchar2 default hr_api.g_varchar2
418 ,p_pds_information13 in varchar2 default hr_api.g_varchar2
419 ,p_pds_information14 in varchar2 default hr_api.g_varchar2
420 ,p_pds_information15 in varchar2 default hr_api.g_varchar2
421 ,p_pds_information16 in varchar2 default hr_api.g_varchar2
422 ,p_pds_information17 in varchar2 default hr_api.g_varchar2
423 ,p_pds_information18 in varchar2 default hr_api.g_varchar2
424 ,p_pds_information19 in varchar2 default hr_api.g_varchar2
425 ,p_pds_information20 in varchar2 default hr_api.g_varchar2
426 ,p_pds_information21 in varchar2 default hr_api.g_varchar2
427 ,p_pds_information22 in varchar2 default hr_api.g_varchar2
428 ,p_pds_information23 in varchar2 default hr_api.g_varchar2
429 ,p_pds_information24 in varchar2 default hr_api.g_varchar2
430 ,p_pds_information25 in varchar2 default hr_api.g_varchar2
431 ,p_pds_information26 in varchar2 default hr_api.g_varchar2
432 ,p_pds_information27 in varchar2 default hr_api.g_varchar2
433 ,p_pds_information28 in varchar2 default hr_api.g_varchar2
434 ,p_pds_information29 in varchar2 default hr_api.g_varchar2
435 ,p_pds_information30 in varchar2 default hr_api.g_varchar2
436 ,p_supervisor_warning out nocopy number
437 ,p_event_warning out nocopy number
438 ,p_interview_warning out nocopy number
439 ,p_review_warning out nocopy number
440 ,p_recruiter_warning out nocopy number
441 ,p_asg_future_changes_warning out nocopy number
442 ,p_entries_changed_warning out nocopy varchar2
443 ,p_pay_proposal_warning out nocopy number
444 ,p_dod_warning out nocopy number
445 ,p_error_message out nocopy long
446 )
447 IS
448
449 lb_supervisor_warning BOOLEAN;
450 lb_event_warning BOOLEAN;
451 lb_interview_warning BOOLEAN;
452 lb_review_warning BOOLEAN;
453 lb_recruiter_warning BOOLEAN;
454 lb_asg_future_changes_warning BOOLEAN;
455 lb_pay_proposal_warning BOOLEAN;
456 lb_dod_warning BOOLEAN;
457
458 l_proc varchar2(100) := g_package ||'actual_termination_emp';
459
460 l_err_msg long default null;
461 actual_term_emp_err exception;
462 update_pds_details_err exception;
463 fr_localization_err exception;
464
465 -- Added for FR localization bug 2881583
466 l_pds_information10 varchar2(150);
467 l_business_group_id number;
468 l_legislation_code varchar2(30);
469 l_pds_information_category varchar2(30);
470
471 --set outparameter for final_process_emp
472 l_org_now_no_manager_warning boolean;
473 l_entries_changed_warning varchar2(1);
474 l_final_process_date date;
475 l_asg_future_changes_warning boolean;
476
477 BEGIN
478
479
480 hr_utility.set_location('Entering: ' || l_proc,5);
481
482 -- Bug 2098595 Fix Begins: 12/03/2001
483 -- Need to switch the order of calling the api. We need to call
484 -- hr_termination_ss.update_pds_details first to set the flex segments
485 -- before calling hr_ex_employee_api.actual_termination_emp.
486 -- Otherwise, when there is a mandatory segment, we'll get an error
487 -- as follows:
488 -- The mandatory column Attribute??(also known as xxxx) has not been
489 -- assigned a value.
490 -- The reason is because in hr_ex_employee_api.actual_termination_emp,
491 -- it validates flex segments and there are no parameters to receive
492 -- flex segments in hr_ex_employee_api.actual_termination_emp. So, we
493 -- need to flip the order to set the value of flex segments.
494 -- Call update_pds_details;
495 --
496 -- Need to set a savepoint. Call update_pds_details and
497 -- actual_termination_emp with p_validate = false. Rollback changes
498 -- if the passed in parameter p_validate = true.
499
500
501 SAVEPOINT terminate_ee;
502 -- Set p_validate to false to commit the desc flex segments, especially
503 -- the mandatory segments to avoid the following error issued by
504 -- hr_ex_employee_api.actual_termination_emp.
505 -- The mandatory column Attribute??(also known as xxxx) has not been
506 -- assigned a value.
507
508 --------------------------------------------------------------
509 -- Bug 2881583
510 -- Determine whether legislation code is FR. If so the default the
511 -- PDS_INFORMATION10 to Actual Termination Date.
512 -- This is required for compatibility with code delivered in FP.D
513 --
514 -- N.B. Local variable l_pds_information10 declared at
515 -- top of procedure
516 -- Also l_pds_information10 used in call to
517 -- hr_termination_ss.update_pds_details below
518 --------------------------------------------------------------
519 l_pds_information10 := p_pds_information10;
520 l_pds_information_category := p_pds_information_category;
521
522 select business_group_id
523 into l_business_group_id
524 from per_periods_of_service
525 where period_of_service_id = p_period_of_service_id;
526
527 hr_utility.trace('checking FR legislation ' || l_proc);
528 --
529 l_legislation_code :=
530 hr_api.return_legislation_code(p_business_group_id => l_business_group_id);
531 --
532 if l_legislation_code = 'FR' then
533 if p_actual_termination_date is not null and
534 (p_pds_information10 = hr_api.g_varchar2
535 or p_pds_information10 is null ) then
536 l_pds_information10
537 := fnd_date.date_to_canonical(p_actual_termination_date);
538 l_pds_information_category := l_legislation_code;
539 end if;
540 end if;
541 --
542
543 hr_utility.trace('Calling hr_termination_ss.update_pds_details ' || l_proc);
544 hr_termination_ss.update_pds_details
545 (p_validate => 0
546 ,p_effective_date => p_effective_date
547 ,p_period_of_service_id => p_period_of_service_id
548 ,p_termination_accepted_person => p_termination_accepted_person
549 ,p_accepted_termination_date => p_accepted_termination_date
550 ,p_object_version_number => p_object_version_number
551 ,p_comments => p_comments
552 ,p_leaving_reason => p_leaving_reason
553 ,p_notified_termination_date => p_notified_termination_date
554 ,p_projected_termination_date => p_projected_termination_date
555 ,p_attribute_category => p_attribute_category
556 ,p_attribute1 => p_attribute1
557 ,p_attribute2 => p_attribute2
558 ,p_attribute3 => p_attribute3
559 ,p_attribute4 => p_attribute4
560 ,p_attribute5 => p_attribute5
561 ,p_attribute6 => p_attribute6
562 ,p_attribute7 => p_attribute7
563 ,p_attribute8 => p_attribute8
564 ,p_attribute9 => p_attribute9
565 ,p_attribute10 => p_attribute10
566 ,p_attribute11 => p_attribute11
567 ,p_attribute12 => p_attribute12
568 ,p_attribute13 => p_attribute13
569 ,p_attribute14 => p_attribute14
570 ,p_attribute15 => p_attribute15
571 ,p_attribute16 => p_attribute16
572 ,p_attribute17 => p_attribute17
573 ,p_attribute18 => p_attribute18
574 ,p_attribute19 => p_attribute19
575 ,p_attribute20 => p_attribute20
576 ,p_pds_information_category => l_pds_information_category -- bug 2881583
577 ,p_pds_information1 => p_pds_information1
578 ,p_pds_information2 => p_pds_information2
579 ,p_pds_information3 => p_pds_information3
580 ,p_pds_information4 => p_pds_information4
581 ,p_pds_information5 => p_pds_information5
582 ,p_pds_information6 => p_pds_information6
583 ,p_pds_information7 => p_pds_information7
584 ,p_pds_information8 => p_pds_information8
585 ,p_pds_information9 => p_pds_information9
586 ,p_pds_information10 => l_pds_information10 -- bug 2881583
587 ,p_pds_information11 => p_pds_information11
588 ,p_pds_information12 => p_pds_information12
589 ,p_pds_information13 => p_pds_information13
590 ,p_pds_information14 => p_pds_information14
591 ,p_pds_information15 => p_pds_information15
592 ,p_pds_information16 => p_pds_information16
593 ,p_pds_information17 => p_pds_information17
594 ,p_pds_information18 => p_pds_information18
595 ,p_pds_information19 => p_pds_information19
596 ,p_pds_information20 => p_pds_information20
597 ,p_pds_information21 => p_pds_information21
598 ,p_pds_information22 => p_pds_information22
599 ,p_pds_information23 => p_pds_information23
600 ,p_pds_information24 => p_pds_information24
601 ,p_pds_information25 => p_pds_information25
602 ,p_pds_information26 => p_pds_information26
603 ,p_pds_information27 => p_pds_information27
604 ,p_pds_information28 => p_pds_information28
605 ,p_pds_information29 => p_pds_information29
606 ,p_pds_information30 => p_pds_information30
607 );
608
609
610 -- Now actually call API
611 hr_utility.trace('Calling hr_ex_employee_api.actual_termination_emp ' || l_proc);
612
613 hr_ex_employee_api.actual_termination_emp
614 (p_validate => false
615 ,p_effective_date => p_effective_date
616 ,p_period_of_service_id => p_period_of_service_id
617 ,p_object_version_number => p_object_version_number
618 ,p_actual_termination_date => p_actual_termination_date
619 ,p_last_standard_process_date => p_last_standard_process_date
620 ,p_person_type_id => p_person_type_id
621 ,p_assignment_status_type_id => p_assignment_status_type_id
622 ,p_leaving_reason => p_leaving_reason
623 -- ,p_rehire_recommendation => p_rehire_recommendation
624 -- ,p_rehire_reason => p_rehire_reason
625 ,p_supervisor_warning => lb_supervisor_warning
626 ,p_event_warning => lb_event_warning
627 ,p_interview_warning => lb_interview_warning
628 ,p_review_warning => lb_review_warning
629 ,p_recruiter_warning => lb_recruiter_warning
630 ,p_asg_future_changes_warning => lb_asg_future_changes_warning
631 ,p_entries_changed_warning => p_entries_changed_warning
632 ,p_pay_proposal_warning => lb_pay_proposal_warning
633 ,p_dod_warning => lb_dod_warning);
634
635
636 p_supervisor_warning :=
637 hr_java_conv_util_ss.get_number(p_boolean => lb_supervisor_warning);
638 p_event_warning :=
639 hr_java_conv_util_ss.get_number(p_boolean => lb_event_warning);
640 p_interview_warning :=
641 hr_java_conv_util_ss.get_number(p_boolean => lb_interview_warning);
642 p_review_warning :=
643 hr_java_conv_util_ss.get_number(p_boolean => lb_review_warning);
644 p_recruiter_warning :=
645 hr_java_conv_util_ss.get_number(p_boolean => lb_recruiter_warning);
646 p_asg_future_changes_warning :=
647 hr_java_conv_util_ss.get_number(p_boolean => lb_asg_future_changes_warning);
648 p_pay_proposal_warning :=
649 hr_java_conv_util_ss.get_number(p_boolean => lb_pay_proposal_warning);
650 p_dod_warning :=
651 hr_java_conv_util_ss.get_number(p_boolean => lb_dod_warning);
652
653 -- Bug 2098595 Fix Ends
654 --
655 -- Core HR API will not support update of field Rehire Recommendation
656 -- and Rehire Reason. Hence we make following call to Person API
657 -- to update the Fields.
658 hr_utility.trace('Calling hr_termination_ss.update_per_details ' || l_proc);
659 -- moved cursor definitions to new procedure , which can be called from
660 -- proces_api also.
661 update_per_details(
662 p_validate => 0, -- false
663 p_effective_date => p_effective_date,
664 p_period_of_service_id => p_period_of_service_id,
665 p_actual_termination_date => p_actual_termination_date,
666 p_rehire_recommendation => p_rehire_recommendation,
667 p_rehire_reason => p_rehire_reason);
668
669 --call for Final_emp_process
670 l_entries_changed_warning := 'N';
671 l_final_process_date := p_final_process_date;
672
673 IF l_final_process_date IS NOT NULL
674 THEN
675 hr_ex_employee_api.final_process_emp(
676 p_validate => false,
677 p_period_of_service_id => p_period_of_service_id,
678 p_object_version_number => p_object_version_number,
679 p_final_process_date => l_final_process_date,
680 p_org_now_no_manager_warning => l_org_now_no_manager_warning,
681 p_asg_future_changes_warning => l_asg_future_changes_warning,
682 p_entries_changed_warning => l_entries_changed_warning );
683 END IF;
684
685 --end of call Final-emp_process
686
687 IF hr_java_conv_util_ss.get_boolean (p_number => p_validate)
688 THEN
689 -- validate mode is true, rollback all the changes
690 rollback to terminate_ee;
691 END IF;
692 --
693 --
694
695 hr_utility.set_location(' Leaving: ' || l_proc,10);
696 EXCEPTION
697
698 WHEN OTHERS THEN
699
700
701 -- Call the hr_java_conv_util_ss to strip off the unfriendly error
702 -- message.
703 -- For example:
704 -- "Error: java.sql.SQLExcpetion: ORA-01400: cannot insert NULL into
705 -- ("HR"."PER_PERSON_LIST_CHANGES"."SECURITY_PROFILE_ID"). ORA-06512:
706 -- at "APPS.HR_TERMINATION_SS", line xxx ORA-06512: at line 1.
707 -- With the call to hr_java_conv_util_ss, the error message text will
708 -- become:
709 -- "Error: ORA-01400: cannot insert NULL into
710 -- ("HR"."PER_PERSON_LIST_CHANGES"."SECURITY_PROFILE_ID").
711
712
713 p_error_message := hr_java_conv_util_ss.get_formatted_error_message
714 (p_single_error_message => hr_utility.get_message);
715 hr_utility.set_location('EXCEPTION '|| p_error_message|| ' :' || l_proc,575);
716 -- rollback the changes in case of exception
717 rollback to terminate_ee;
718 p_supervisor_warning := null;
719 p_event_warning := null;
720 p_interview_warning := null;
721 p_review_warning := null;
722 p_recruiter_warning := null;
723 p_asg_future_changes_warning := null;
724 p_pay_proposal_warning := null;
725 p_dod_warning := null;
726
727 END actual_termination_emp;
728
729 /*
730 ||===========================================================================
731 || PROCEDURE: update_pds_details
732 ||---------------------------------------------------------------------------
733 ||
734 || Description:
735 || This procedure will call the actual API -
736 || hr_periods_of_service_api.update_pds_details
737 ||
738 || Pre Conditions:
739 ||
740 || In Arguments:
741 || Contains entire list of parameters that are defined in the actual
742 || API. For details see pepdsapi.pkb file.
743 ||
744 || out nocopy Arguments:
745 ||
746 || In out nocopy Arguments:
747 ||
748 || Post Success:
749 || Executes the API call.
750 ||
751 || Post Failure:
752 || Raises an exception
753 ||
754 || Access Status:
755 || Public.
756 ||
757 ||===========================================================================
758 */
759 PROCEDURE update_pds_details
760 (p_validate in number default 0
761 ,p_effective_date in date
762 ,p_period_of_service_id in number
763 ,p_termination_accepted_person in number default hr_api.g_number
764 ,p_accepted_termination_date in date default hr_api.g_date
765 ,p_object_version_number in out nocopy number
766 ,p_comments in varchar2 default hr_api.g_varchar2
767 ,p_leaving_reason in varchar2 default hr_api.g_varchar2
768 ,p_notified_termination_date in date default hr_api.g_date
769 ,p_projected_termination_date in date default hr_api.g_date
770 ,p_attribute_category in varchar2 default hr_api.g_varchar2
771 ,p_attribute1 in varchar2 default hr_api.g_varchar2
772 ,p_attribute2 in varchar2 default hr_api.g_varchar2
773 ,p_attribute3 in varchar2 default hr_api.g_varchar2
774 ,p_attribute4 in varchar2 default hr_api.g_varchar2
775 ,p_attribute5 in varchar2 default hr_api.g_varchar2
776 ,p_attribute6 in varchar2 default hr_api.g_varchar2
777 ,p_attribute7 in varchar2 default hr_api.g_varchar2
778 ,p_attribute8 in varchar2 default hr_api.g_varchar2
779 ,p_attribute9 in varchar2 default hr_api.g_varchar2
780 ,p_attribute10 in varchar2 default hr_api.g_varchar2
781 ,p_attribute11 in varchar2 default hr_api.g_varchar2
782 ,p_attribute12 in varchar2 default hr_api.g_varchar2
783 ,p_attribute13 in varchar2 default hr_api.g_varchar2
784 ,p_attribute14 in varchar2 default hr_api.g_varchar2
785 ,p_attribute15 in varchar2 default hr_api.g_varchar2
786 ,p_attribute16 in varchar2 default hr_api.g_varchar2
787 ,p_attribute17 in varchar2 default hr_api.g_varchar2
788 ,p_attribute18 in varchar2 default hr_api.g_varchar2
789 ,p_attribute19 in varchar2 default hr_api.g_varchar2
790 ,p_attribute20 in varchar2 default hr_api.g_varchar2
791 ,p_pds_information_category in varchar2 default hr_api.g_varchar2
792 ,p_pds_information1 in varchar2 default hr_api.g_varchar2
793 ,p_pds_information2 in varchar2 default hr_api.g_varchar2
794 ,p_pds_information3 in varchar2 default hr_api.g_varchar2
795 ,p_pds_information4 in varchar2 default hr_api.g_varchar2
796 ,p_pds_information5 in varchar2 default hr_api.g_varchar2
797 ,p_pds_information6 in varchar2 default hr_api.g_varchar2
798 ,p_pds_information7 in varchar2 default hr_api.g_varchar2
799 ,p_pds_information8 in varchar2 default hr_api.g_varchar2
800 ,p_pds_information9 in varchar2 default hr_api.g_varchar2
801 ,p_pds_information10 in varchar2 default hr_api.g_varchar2
802 ,p_pds_information11 in varchar2 default hr_api.g_varchar2
803 ,p_pds_information12 in varchar2 default hr_api.g_varchar2
804 ,p_pds_information13 in varchar2 default hr_api.g_varchar2
805 ,p_pds_information14 in varchar2 default hr_api.g_varchar2
806 ,p_pds_information15 in varchar2 default hr_api.g_varchar2
807 ,p_pds_information16 in varchar2 default hr_api.g_varchar2
808 ,p_pds_information17 in varchar2 default hr_api.g_varchar2
809 ,p_pds_information18 in varchar2 default hr_api.g_varchar2
810 ,p_pds_information19 in varchar2 default hr_api.g_varchar2
811 ,p_pds_information20 in varchar2 default hr_api.g_varchar2
812 ,p_pds_information21 in varchar2 default hr_api.g_varchar2
813 ,p_pds_information22 in varchar2 default hr_api.g_varchar2
814 ,p_pds_information23 in varchar2 default hr_api.g_varchar2
815 ,p_pds_information24 in varchar2 default hr_api.g_varchar2
816 ,p_pds_information25 in varchar2 default hr_api.g_varchar2
817 ,p_pds_information26 in varchar2 default hr_api.g_varchar2
818 ,p_pds_information27 in varchar2 default hr_api.g_varchar2
819 ,p_pds_information28 in varchar2 default hr_api.g_varchar2
820 ,p_pds_information29 in varchar2 default hr_api.g_varchar2
821 ,p_pds_information30 in varchar2 default hr_api.g_varchar2
822 )
823 IS
824 l_proc constant varchar2(100) := g_package || ' update_pds_details';
825 BEGIN
826 hr_utility.set_location('Entering: '|| l_proc,5);
827 -- Call Actual API
828 hr_periods_of_service_api.update_pds_details
829 (p_validate => hr_java_conv_util_ss.get_boolean (p_number => p_validate)
830 ,p_effective_date => p_effective_date
831 ,p_period_of_service_id => p_period_of_service_id
832 ,p_termination_accepted_person => p_termination_accepted_person
833 ,p_accepted_termination_date => p_accepted_termination_date
834 ,p_object_version_number => p_object_version_number
835 ,p_comments => p_comments
836 ,p_leaving_reason => p_leaving_reason
837 ,p_notified_termination_date => p_notified_termination_date
838 ,p_projected_termination_date => p_projected_termination_date
839 ,p_attribute_category => p_attribute_category
840 ,p_attribute1 => p_attribute1
841 ,p_attribute2 => p_attribute2
842 ,p_attribute3 => p_attribute3
843 ,p_attribute4 => p_attribute4
844 ,p_attribute5 => p_attribute5
845 ,p_attribute6 => p_attribute6
846 ,p_attribute7 => p_attribute7
847 ,p_attribute8 => p_attribute8
848 ,p_attribute9 => p_attribute9
849 ,p_attribute10 => p_attribute10
850 ,p_attribute11 => p_attribute11
851 ,p_attribute12 => p_attribute12
852 ,p_attribute13 => p_attribute13
853 ,p_attribute14 => p_attribute14
854 ,p_attribute15 => p_attribute15
855 ,p_attribute16 => p_attribute16
856 ,p_attribute17 => p_attribute17
857 ,p_attribute18 => p_attribute18
858 ,p_attribute19 => p_attribute19
859 ,p_attribute20 => p_attribute20
860 ,p_pds_information_category => p_pds_information_category
861 ,p_pds_information1 => p_pds_information1
862 ,p_pds_information2 => p_pds_information2
863 ,p_pds_information3 => p_pds_information3
864 ,p_pds_information4 => p_pds_information4
865 ,p_pds_information5 => p_pds_information5
866 ,p_pds_information6 => p_pds_information6
867 ,p_pds_information7 => p_pds_information7
868 ,p_pds_information8 => p_pds_information8
869 ,p_pds_information9 => p_pds_information9
870 ,p_pds_information10 => p_pds_information10
871 ,p_pds_information11 => p_pds_information11
872 ,p_pds_information12 => p_pds_information12
873 ,p_pds_information13 => p_pds_information13
874 ,p_pds_information14 => p_pds_information14
875 ,p_pds_information15 => p_pds_information15
876 ,p_pds_information16 => p_pds_information16
877 ,p_pds_information17 => p_pds_information17
878 ,p_pds_information18 => p_pds_information18
879 ,p_pds_information19 => p_pds_information19
880 ,p_pds_information20 => p_pds_information20
881 ,p_pds_information21 => p_pds_information21
882 ,p_pds_information22 => p_pds_information22
883 ,p_pds_information23 => p_pds_information23
884 ,p_pds_information24 => p_pds_information24
885 ,p_pds_information25 => p_pds_information25
886 ,p_pds_information26 => p_pds_information26
887 ,p_pds_information27 => p_pds_information27
888 ,p_pds_information28 => p_pds_information28
889 ,p_pds_information29 => p_pds_information29
890 ,p_pds_information30 => p_pds_information30);
891
892 hr_utility.set_location('Leaving: '|| l_proc,10);
893
894
895 EXCEPTION
896 WHEN OTHERS THEN
897 hr_utility.set_location('EXCEPTION: '|| l_proc,555);
898 RAISE;
899
900 END update_pds_details;
901
902 /*
903 ||===========================================================================
904 || PROCEDURE: process_save
905 ||---------------------------------------------------------------------------
906 ||
907 || Description:
908 || Save Termination Transaction to transaction table
909 ||
910 || Pre Conditions:
911 ||
912 || In Arguments:
913 || Transaction details that need to be saved to transaction table
914 ||
915 || out nocopy Arguments:
916 || None.
917 ||
918 || In out nocopy Arguments:
919 ||
920 || Post Success:
921 || Writes to transaction table
922 ||
923 || Post Failure:
924 || Raises an exception
925 ||
926 || Access Status:
927 || Public
928 ||
929 ||===========================================================================
930 */
931 PROCEDURE process_save
932 (p_item_type in wf_items.item_type%TYPE
933 ,p_item_key in wf_items.item_key%TYPE
934 ,p_actid in varchar2
935 ,p_effective_date in varchar2 default hr_api.g_varchar2
936 ,p_period_of_service_id in varchar2 default hr_api.g_varchar2
937 ,p_object_version_number in varchar2 default hr_api.g_varchar2
938 ,p_actual_termination_date in varchar2 default hr_api.g_varchar2
939 ,p_notified_termination_date in varchar2 default hr_api.g_varchar2
940 ,p_leaving_reason in varchar2 default hr_api.g_varchar2
941 ,p_comments in varchar2 default hr_api.g_varchar2
942 ,p_login_person_id in number
943 ,p_person_id in number
944 ,p_attribute_category in varchar2 default hr_api.g_varchar2
945 ,p_attribute1 in varchar2 default hr_api.g_varchar2
946 ,p_attribute2 in varchar2 default hr_api.g_varchar2
947 ,p_attribute3 in varchar2 default hr_api.g_varchar2
948 ,p_attribute4 in varchar2 default hr_api.g_varchar2
949 ,p_attribute5 in varchar2 default hr_api.g_varchar2
950 ,p_attribute6 in varchar2 default hr_api.g_varchar2
951 ,p_attribute7 in varchar2 default hr_api.g_varchar2
952 ,p_attribute8 in varchar2 default hr_api.g_varchar2
953 ,p_attribute9 in varchar2 default hr_api.g_varchar2
954 ,p_attribute10 in varchar2 default hr_api.g_varchar2
955 ,p_attribute11 in varchar2 default hr_api.g_varchar2
956 ,p_attribute12 in varchar2 default hr_api.g_varchar2
957 ,p_attribute13 in varchar2 default hr_api.g_varchar2
958 ,p_attribute14 in varchar2 default hr_api.g_varchar2
959 ,p_attribute15 in varchar2 default hr_api.g_varchar2
960 ,p_attribute16 in varchar2 default hr_api.g_varchar2
961 ,p_attribute17 in varchar2 default hr_api.g_varchar2
962 ,p_attribute18 in varchar2 default hr_api.g_varchar2
963 ,p_attribute19 in varchar2 default hr_api.g_varchar2
964 ,p_attribute20 in varchar2 default hr_api.g_varchar2
965 ,p_review_proc_call in varchar2 default hr_api.g_varchar2
966 ,p_pds_information_category in varchar2 default hr_api.g_varchar2
967 ,p_pds_information1 in varchar2 default hr_api.g_varchar2
968 ,p_pds_information2 in varchar2 default hr_api.g_varchar2
969 ,p_pds_information3 in varchar2 default hr_api.g_varchar2
970 ,p_pds_information4 in varchar2 default hr_api.g_varchar2
971 ,p_pds_information5 in varchar2 default hr_api.g_varchar2
972 ,p_pds_information6 in varchar2 default hr_api.g_varchar2
973 ,p_pds_information7 in varchar2 default hr_api.g_varchar2
974 ,p_pds_information8 in varchar2 default hr_api.g_varchar2
975 ,p_pds_information9 in varchar2 default hr_api.g_varchar2
976 ,p_pds_information10 in varchar2 default hr_api.g_varchar2
977 ,p_pds_information11 in varchar2 default hr_api.g_varchar2
978 ,p_pds_information12 in varchar2 default hr_api.g_varchar2
979 ,p_pds_information13 in varchar2 default hr_api.g_varchar2
980 ,p_pds_information14 in varchar2 default hr_api.g_varchar2
981 ,p_pds_information15 in varchar2 default hr_api.g_varchar2
982 ,p_pds_information16 in varchar2 default hr_api.g_varchar2
983 ,p_pds_information17 in varchar2 default hr_api.g_varchar2
984 ,p_pds_information18 in varchar2 default hr_api.g_varchar2
985 ,p_pds_information19 in varchar2 default hr_api.g_varchar2
986 ,p_pds_information20 in varchar2 default hr_api.g_varchar2
987 ,p_pds_information21 in varchar2 default hr_api.g_varchar2
988 ,p_pds_information22 in varchar2 default hr_api.g_varchar2
989 ,p_pds_information23 in varchar2 default hr_api.g_varchar2
990 ,p_pds_information24 in varchar2 default hr_api.g_varchar2
991 ,p_pds_information25 in varchar2 default hr_api.g_varchar2
992 ,p_pds_information26 in varchar2 default hr_api.g_varchar2
993 ,p_pds_information27 in varchar2 default hr_api.g_varchar2
994 ,p_pds_information28 in varchar2 default hr_api.g_varchar2
995 ,p_pds_information29 in varchar2 default hr_api.g_varchar2
996 ,p_pds_information30 in varchar2 default hr_api.g_varchar2
997 ,p_person_type_id in number default hr_api.g_number
998 ,p_assignment_status_type_id in number default hr_api.g_number
999 ,p_effective_date_option in varchar2 default hr_api.g_varchar2
1000 ,p_rehire_recommendation in varchar2 default hr_api.g_varchar2
1001 ,p_rehire_reason in varchar2 default hr_api.g_varchar2
1002 ,p_last_standard_process_date in varchar2 default hr_api.g_varchar2
1003 ,p_projected_termination_date in varchar2 default hr_api.g_varchar2
1004 ,p_final_process_date in varchar2 default hr_api.g_varchar2
1005 )
1006
1007 IS
1008
1009 li_count INTEGER ;
1010 lv_activity_name wf_item_activity_statuses_v.activity_name%TYPE;
1011 ln_transaction_id NUMBER;
1012 lv_result VARCHAR2(100);
1013 ln_ovn hr_api_transaction_steps.object_version_number%TYPE;
1014 ltt_trans_step_ids hr_util_web.g_varchar2_tab_type;
1015 ln_transaction_step_id hr_api_transaction_steps.transaction_step_id%TYPE;
1016 ltt_trans_obj_vers_num hr_util_web.g_varchar2_tab_type;
1017 ln_trans_step_rows NUMBER default 0;
1018 ln_supervisor_count NUMBER;
1019 l_proc constant varchar2(100) := g_package || ' process_save';
1020 BEGIN
1021
1022 hr_utility.set_location('Entering: '|| l_proc,5);
1023 ----------------------------------------------------------------------
1024 -- Save data to transaction table.
1025 ----------------------------------------------------------------------
1026
1027 li_count := 1;
1028 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1029 := 'P_ACTUAL_TERMINATION_DATE';
1030 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1031 := p_actual_termination_date;
1032 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1033 := 'DATE';
1034
1035 li_count := li_count + 1;
1036 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1037 := 'P_PERIOD_OF_SERVICE_ID';
1038 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1039 := p_period_of_service_id;
1040 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1041 := 'NUMBER';
1042
1043 li_count := li_count + 1;
1044 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1045 := 'P_PERSON_ID';
1046 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1047 := p_person_id;
1048 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1049 := 'NUMBER';
1050
1051 li_count := li_count + 1;
1052 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1053 := 'P_OBJECT_VERSION_NUMBER';
1054 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1055 := p_object_version_number;
1056 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1057 := 'NUMBER';
1058
1059 li_count := li_count + 1;
1060 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1061 := 'P_LEAVING_REASON';
1062 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1063 := p_leaving_reason;
1064 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1065 := 'VARCHAR2';
1066
1067 li_count := li_count + 1;
1068 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1069 := 'P_PERSON_TYPE_ID';
1070 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1071 := p_person_type_id;
1072 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1073 := 'NUMBER';
1074
1075 li_count := li_count + 1;
1076 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1077 := 'P_ASSIGNMENT_STATUS_TYPE_ID';
1078 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1079 := p_assignment_status_type_id;
1080 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1081 := 'NUMBER';
1082
1083 li_count := li_count + 1;
1084 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1085 := 'P_REHIRE_RECOMMENDATION';
1086 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1087 := p_rehire_recommendation;
1088 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1089 := 'VARCHAR2';
1090
1091 li_count := li_count + 1;
1092 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1093 := 'P_REHIRE_REASON';
1094 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1095 := p_rehire_reason;
1096 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1097 := 'VARCHAR2';
1098
1099 li_count := li_count + 1;
1100 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1101 := 'P_NOTIFIED_TERMINATION_DATE';
1102 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1103 := p_notified_termination_date;
1104 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1105 := 'DATE';
1106
1107 li_count := li_count + 1;
1108 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1109 := 'P_LAST_STANDARD_PROCESS_DATE';
1110 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1111 := p_last_standard_process_date;
1112 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1113 := 'DATE';
1114
1115 li_count := li_count + 1;
1116 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1117 := 'P_PROJECTED_TERMINATION_DATE';
1118 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1119 := p_projected_termination_date;
1120 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1121 := 'DATE';
1122
1123 li_count := li_count + 1;
1124 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1125 := 'P_FINAL_PROCESS_DATE';
1126 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1127 := p_final_process_date;
1128 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1129 := 'DATE';
1130
1131 li_count := li_count + 1;
1132 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1133 := 'P_COMMENTS';
1134 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1135 := p_comments;
1136 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1137 := 'VARCHAR2';
1138
1139 ----------------------------------------------------------------------
1140 -- DDF repeat 20 times
1141 ----------------------------------------------------------------------
1142
1143 li_count := li_count + 1;
1144 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1145 := 'P_ATTRIBUTE_CATEGORY';
1146 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1147 := p_attribute_category;
1148 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1149 := 'VARCHAR2';
1150
1151 li_count := li_count + 1;
1152 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1153 := 'P_ATTRIBUTE1';
1154 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1155 := p_attribute1;
1156 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1157 := 'VARCHAR2';
1158
1159 li_count := li_count + 1;
1160 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1161 := 'P_ATTRIBUTE2';
1162 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1163 := p_attribute2;
1164 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1165 := 'VARCHAR2';
1166
1167 li_count := li_count + 1;
1168 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1169 := 'P_ATTRIBUTE3';
1170 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1171 := p_attribute3;
1172 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1173 := 'VARCHAR2';
1174
1175 li_count := li_count + 1;
1176 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1177 := 'P_ATTRIBUTE4';
1178 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1179 := p_attribute4;
1180 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1181 := 'VARCHAR2';
1182
1183 li_count := li_count + 1;
1184 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1185 := 'P_ATTRIBUTE5';
1186 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1187 := p_attribute5;
1188 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1189 := 'VARCHAR2';
1190
1191 li_count := li_count + 1;
1192 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1193 := 'P_ATTRIBUTE6';
1194 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1195 := p_attribute6;
1196 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1197 := 'VARCHAR2';
1198
1199 li_count := li_count + 1;
1200 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1201 := 'P_ATTRIBUTE7';
1202 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1203 := p_attribute7;
1204 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1205 := 'VARCHAR2';
1206
1207 li_count := li_count + 1;
1208 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1209 := 'P_ATTRIBUTE8';
1210 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1211 := p_attribute8;
1212 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1213 := 'VARCHAR2';
1214
1215 li_count := li_count + 1;
1216 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1217 := 'P_ATTRIBUTE9';
1218 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1219 := p_attribute9;
1220 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1221 := 'VARCHAR2';
1222
1223 li_count := li_count + 1;
1224 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1225 := 'P_ATTRIBUTE10';
1226 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1227 := p_attribute10;
1228 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1229 := 'VARCHAR2';
1230
1231 li_count := li_count + 1;
1232 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1233 := 'P_ATTRIBUTE11';
1234 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1235 := p_attribute11;
1236 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1237 := 'VARCHAR2';
1238
1239 li_count := li_count + 1;
1240 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1241 := 'P_ATTRIBUTE12';
1242 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1243 := p_attribute12;
1244 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1245 := 'VARCHAR2';
1246
1247 li_count := li_count + 1;
1248 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1249 := 'P_ATTRIBUTE13';
1250 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1251 := p_attribute13;
1252 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1253 := 'VARCHAR2';
1254
1255 li_count := li_count + 1;
1256 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1257 := 'P_ATTRIBUTE14';
1258 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1259 := p_attribute14;
1260 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1261 := 'VARCHAR2';
1262
1263 li_count := li_count + 1;
1264 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1265 := 'P_ATTRIBUTE15';
1266 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1267 := p_attribute15;
1268 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1269 := 'VARCHAR2';
1270
1271 li_count := li_count + 1;
1272 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1273 := 'P_ATTRIBUTE16';
1274 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1275 := p_attribute16;
1276 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1277 := 'VARCHAR2';
1278
1279 li_count := li_count + 1;
1280 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1281 := 'P_ATTRIBUTE17';
1282 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1283 := p_attribute17;
1284 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1285 := 'VARCHAR2';
1286
1287 li_count := li_count + 1;
1288 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1289 := 'P_ATTRIBUTE18';
1290 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1291 := p_attribute18;
1292 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1293 := 'VARCHAR2';
1294
1295 li_count := li_count + 1;
1296 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1297 := 'P_ATTRIBUTE19';
1298 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1299 := p_attribute19;
1300 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1301 := 'VARCHAR2';
1302
1303 li_count := li_count + 1;
1304 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1305 := 'P_ATTRIBUTE20';
1306 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1307 := p_attribute20;
1308 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1309 := 'VARCHAR2';
1310
1311 ----------------------------------------------------------------------
1312 -- Store the activity internal name for this particular
1313 -- activity with other information.
1314 ----------------------------------------------------------------------
1315 lv_activity_name := hr_termination_ss.gv_TERMINATION_ACTIVITY_NAME;
1316 li_count := li_count + 1;
1317 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1318 := 'P_ACTIVITY_NAME';
1319 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1320 := lv_activity_name;
1321 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1322 := 'VARCHAR2';
1323
1324 ----------------------------------------------------------------------
1325 -- Store the the Review Procedure Call and
1326 -- activity id with other information.
1327 ----------------------------------------------------------------------
1328 li_count := li_count + 1;
1329 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1330 := 'P_REVIEW_PROC_CALL';
1331 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1332 := p_review_proc_call;
1333 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1334 := 'VARCHAR2';
1335
1336 li_count := li_count + 1;
1337 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1338 := 'P_REVIEW_ACTID';
1339 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1340 := p_actid;
1341 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1342 := 'VARCHAR2';
1343
1344 ---------------------------------------------------------------------
1345 -- DDF Enhancement
1346 -- Store DDF Segments
1347 ---------------------------------------------------------------------
1348
1349 li_count := li_count + 1;
1350 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1351 := 'P_PDS_INFORMATION_CATEGORY';
1352 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1353 := p_pds_information_category;
1354 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1355 := 'VARCHAR2';
1356
1357 li_count := li_count + 1;
1358 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1359 := 'P_PDS_INFORMATION1';
1360 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1361 := p_pds_information1;
1362 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1363 := 'VARCHAR2';
1364
1365 li_count := li_count + 1;
1366 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1367 := 'P_PDS_INFORMATION2';
1368 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1369 := p_pds_information2;
1370 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1371 := 'VARCHAR2';
1372
1373 li_count := li_count + 1;
1374 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1375 := 'P_PDS_INFORMATION3';
1376 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1377 := p_pds_information3;
1378 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1379 := 'VARCHAR2';
1380
1381 li_count := li_count + 1;
1382 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1383 := 'P_PDS_INFORMATION4';
1384 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1385 := p_pds_information4;
1386 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1387 := 'VARCHAR2';
1388
1389 li_count := li_count + 1;
1390 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1391 := 'P_PDS_INFORMATION5';
1392 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1393 := p_pds_information5;
1394 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1395 := 'VARCHAR2';
1396
1397 li_count := li_count + 1;
1398 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1399 := 'P_PDS_INFORMATION6';
1400 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1401 := p_pds_information6;
1402 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1403 := 'VARCHAR2';
1404
1405 li_count := li_count + 1;
1406 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1407 := 'P_PDS_INFORMATION7';
1408 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1409 := p_pds_information7;
1410 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1411 := 'VARCHAR2';
1412
1413 li_count := li_count + 1;
1414 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1415 := 'P_PDS_INFORMATION8';
1416 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1417 := p_pds_information8;
1418 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1419 := 'VARCHAR2';
1420
1421 li_count := li_count + 1;
1422 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1423 := 'P_PDS_INFORMATION9';
1424 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1425 := p_pds_information9;
1426 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1427 := 'VARCHAR2';
1428
1429 li_count := li_count + 1;
1430 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1431 := 'P_PDS_INFORMATION10';
1432 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1433 := p_pds_information10;
1434 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1435 := 'VARCHAR2';
1436
1437 li_count := li_count + 1;
1438 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1439 := 'P_PDS_INFORMATION11';
1440 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1441 := p_pds_information11;
1442 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1443 := 'VARCHAR2';
1444
1445 li_count := li_count + 1;
1446 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1447 := 'P_PDS_INFORMATION12';
1448 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1449 := p_pds_information12;
1450 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1451 := 'VARCHAR2';
1452
1453 li_count := li_count + 1;
1454 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1455 := 'P_PDS_INFORMATION13';
1456 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1457 := p_pds_information13;
1458 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1459 := 'VARCHAR2';
1460
1461 li_count := li_count + 1;
1462 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1463 := 'P_PDS_INFORMATION14';
1464 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1465 := p_pds_information14;
1466 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1467 := 'VARCHAR2';
1468
1469 li_count := li_count + 1;
1470 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1471 := 'P_PDS_INFORMATION15';
1472 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1473 := p_pds_information15;
1474 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1475 := 'VARCHAR2';
1476
1477 li_count := li_count + 1;
1478 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1479 := 'P_PDS_INFORMATION16';
1480 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1481 := p_pds_information16;
1482 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1483 := 'VARCHAR2';
1484
1485 li_count := li_count + 1;
1486 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1487 := 'P_PDS_INFORMATION17';
1488 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1489 := p_pds_information17;
1490 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1491 := 'VARCHAR2';
1492
1493 li_count := li_count + 1;
1494 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1495 := 'P_PDS_INFORMATION18';
1496 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1497 := p_pds_information18;
1498 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1499 := 'VARCHAR2';
1500
1501 li_count := li_count + 1;
1502 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1503 := 'P_PDS_INFORMATION19';
1504 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1505 := p_pds_information19;
1506 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1507 := 'VARCHAR2';
1508
1509 li_count := li_count + 1;
1510 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1511 := 'P_PDS_INFORMATION20';
1512 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1513 := p_pds_information20;
1514 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1515 := 'VARCHAR2';
1516
1517 li_count := li_count + 1;
1518 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1519 := 'P_PDS_INFORMATION21';
1520 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1521 := p_pds_information21;
1522 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1523 := 'VARCHAR2';
1524
1525 li_count := li_count + 1;
1526 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1527 := 'P_PDS_INFORMATION22';
1528 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1529 := p_pds_information22;
1530 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1531 := 'VARCHAR2';
1532
1533 li_count := li_count + 1;
1534 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1535 := 'P_PDS_INFORMATION23';
1536 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1537 := p_pds_information23;
1538 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1539 := 'VARCHAR2';
1540
1541 li_count := li_count + 1;
1542 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1543 := 'P_PDS_INFORMATION24';
1544 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1545 := p_pds_information24;
1546 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1547 := 'VARCHAR2';
1548
1549 li_count := li_count + 1;
1550 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1551 := 'P_PDS_INFORMATION25';
1552 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1553 := p_pds_information25;
1554 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1555 := 'VARCHAR2';
1556
1557 li_count := li_count + 1;
1558 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1559 := 'P_PDS_INFORMATION26';
1560 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1561 := p_pds_information26;
1562 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1563 := 'VARCHAR2';
1564
1565 li_count := li_count + 1;
1566 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1567 := 'P_PDS_INFORMATION27';
1568 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1569 := p_pds_information27;
1570 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1571 := 'VARCHAR2';
1572
1573 li_count := li_count + 1;
1574 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1575 := 'P_PDS_INFORMATION28';
1576 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1577 := p_pds_information28;
1578 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1579 := 'VARCHAR2';
1580
1581 li_count := li_count + 1;
1582 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1583 := 'P_PDS_INFORMATION29';
1584 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1585 := p_pds_information29;
1586 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1587 := 'VARCHAR2';
1588
1589 li_count := li_count + 1;
1590 hr_termination_ss.gtt_transaction_steps(li_count).param_name
1591 := 'P_PDS_INFORMATION30';
1592 hr_termination_ss.gtt_transaction_steps(li_count).param_value
1593 := p_pds_information30;
1594 hr_termination_ss.gtt_transaction_steps(li_count).param_data_type
1595 := 'VARCHAR2';
1596 ---------------------------------------------------------------------
1597 -- Check if there is already a transaction for this process?
1598 ---------------------------------------------------------------------
1599 ln_transaction_id := hr_transaction_ss.get_transaction_id (
1600 p_Item_Type => p_item_type,
1601 p_Item_Key => p_item_key
1602 );
1603
1604 IF ln_transaction_id IS NULL
1605 THEN
1606 hr_utility.trace('In (iF ln_transaction_id IS NULL): '|| l_proc);
1607 -------------------------------------------------------------------
1608 -- Create a new transaction
1609 -------------------------------------------------------------------
1610 hr_transaction_ss.start_transaction (
1611 itemtype => p_item_type,
1612 itemkey => p_item_key,
1613 actid => TO_NUMBER(p_actid),
1614 funmode => 'RUN',
1615 p_effective_date_option => p_effective_date_option,
1616 p_login_person_id => p_login_person_id,
1617 result => lv_result
1618 );
1619
1620 ln_transaction_id := hr_transaction_ss.get_transaction_id (
1621 p_Item_Type => p_item_type,
1622 p_Item_Key => p_item_key
1623 );
1624 END IF;
1625
1626 ---------------------------------------------------------------------
1627 -- There is already a transaction for this process.
1628 -- Retieve the transaction step for this current
1629 -- activity. We will update this transaction step with
1630 -- the new information.
1631 ---------------------------------------------------------------------
1632 hr_transaction_api.get_transaction_step_info (
1633 p_Item_Type => p_item_type,
1634 p_Item_Key => p_item_key,
1635 p_activity_id => to_number(p_actid),
1636 p_transaction_step_id => ltt_trans_step_ids,
1637 p_object_version_number => ltt_trans_obj_vers_num,
1638 p_rows => ln_trans_step_rows
1639 );
1640
1641 IF ln_trans_step_rows < 1
1642 THEN
1643 hr_utility.trace('In (IF ln_trans_step_rows < 1): '|| l_proc);
1644 --------------------------------------------------------------------
1645 -- There is no transaction step for this transaction.
1646 -- Create a step within this new transaction
1647 --------------------------------------------------------------------
1648 hr_transaction_api.create_transaction_step (
1649 p_validate => false,
1650 p_creator_person_id => p_login_person_id,
1651 p_transaction_id => ln_transaction_id,
1652 p_api_name => g_package || '.PROCESS_API',
1653 p_Item_Type => p_item_type,
1654 p_Item_Key => p_item_key,
1655 p_activity_id => TO_NUMBER(p_actid),
1656 p_transaction_step_id => ln_transaction_step_id,
1657 p_object_version_number => ln_ovn
1658 );
1659 ELSE
1660 hr_utility.trace('In else of (IF ln_trans_step_rows < 1): '|| l_proc);
1661 --------------------------------------------------------------------
1662 -- There are transaction steps for this transaction.
1663 -- Get the Transaction Step ID for this activity.
1664 --------------------------------------------------------------------
1665 ln_transaction_step_id :=
1666 hr_transaction_ss.get_activity_trans_step_id (
1667 p_activity_name => lv_activity_name,
1668 p_trans_step_id_tbl => ltt_trans_step_ids
1669 );
1670
1671 END IF;
1672
1673 hr_transaction_ss.save_transaction_step (
1674 p_item_Type => p_item_type,
1675 p_item_Key => p_item_key,
1676 p_actid => TO_NUMBER(p_actid),
1677 p_login_person_id => p_login_person_id,
1678 p_transaction_step_id => ln_transaction_step_id,
1679 p_api_name => 'hr_termination_ss.process_save',
1680 p_transaction_data => hr_termination_ss.gtt_transaction_steps
1681 );
1682
1683 -- 07/16/2001 Bug 1853417 Fix:
1684 -- The code to check for existence of subordinates for the
1685 -- terminated employee has been moved to the new procedure
1686 -- branch_on_subordinate_presence.
1687
1688 hr_utility.set_location('Leaving: '|| l_proc,20);
1689 EXCEPTION
1690 WHEN OTHERS THEN
1691 hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1692 RAISE; -- Raise error here relevant to the new tech stack.
1693
1694 END process_save;
1695
1696 /*
1697 ||=======================================================================
1698 || PROCEDURE : process_api
1699 || DESCRIPTION : This procedure gets data stored in the transaction table
1700 || : and call the APIs in update mode
1701 ||=======================================================================
1702 */
1703 PROCEDURE process_api (
1704 p_validate IN BOOLEAN DEFAULT FALSE,
1705 p_transaction_step_id IN NUMBER DEFAULT NULL,
1706 p_effective_date IN VARCHAR2 DEFAULT NULL
1707 )
1708 IS
1709 lrt_termination hr_termination_ss.rt_termination;
1710 ld_actual_term_date
1711 per_periods_of_service.actual_termination_date%TYPE;
1712 lv_term_reason per_periods_of_service.leaving_reason%TYPE;
1713 ll_term_comments per_periods_of_service.comments%TYPE;
1714 ln_person_id per_all_people_f.person_id%TYPE;
1715 ln_period_of_service_id
1716 per_periods_of_service.period_of_service_id%TYPE;
1717 ln_object_version_number
1718 per_periods_of_service.object_version_number%TYPE;
1719 ------------------------------------------------------------------------
1720 -- out parameters required by API actual_termination_emp
1721 ------------------------------------------------------------------------
1722 ld_last_standard_process_date
1723 per_periods_of_service.last_standard_process_date%TYPE;
1724 ld_notified_term_date
1725 per_periods_of_service.notified_termination_date%TYPE;
1726
1727 ld_projected_termination_date
1728 per_periods_of_service.projected_termination_date%TYPE;
1729 ld_final_process_date
1730 per_periods_of_service.final_process_date%TYPE;
1731
1732 lb_supervisor_warning BOOLEAN;
1733 lb_event_warning BOOLEAN;
1734 lb_interview_warning BOOLEAN;
1735 lb_review_warning BOOLEAN;
1736 lb_recruiter_warning BOOLEAN;
1737 lb_asg_future_changes_warning BOOLEAN;
1738 lv_entries_changed_warning VARCHAR2(500);
1739 lb_pay_proposal_warning BOOLEAN;
1740 lb_dod_warning BOOLEAN;
1741
1742 --DFF
1743 lt_term_flex hr_termination_ss.t_flex_table;
1744 lv_attribute_category VARCHAR2(100);
1745
1746 --DDF Enhancement
1747 lv_pds_information_category VARCHAR2(100);
1748
1749 -- For SAVE_FOR_LATER
1750 ld_effective_date date default null;
1751
1752 lv_person_type_id per_person_types.person_type_id%TYPE;
1753 lv_assignment_status_type_id
1754 per_assignment_status_types.assignment_status_type_id%TYPE;
1755 lv_rehire_recommendation per_all_people_f.rehire_recommendation%TYPE;
1756 lv_rehire_reason per_all_people_f.rehire_reason%TYPE;
1757
1758 l_proc varchar2(100) := g_package ||'process_api';
1759
1760 -- Added for FR localization bug 2881583
1761 l_business_group_id number;
1762 l_legislation_code varchar2(30);
1763
1764 --set outparameter for final_process_emp
1765 l_org_now_no_manager_warning boolean;
1766 l_entries_changed_warning varchar2(1);
1767 l_asg_future_changes_warning boolean;
1768
1769 -- to print the error message
1770 l_err_msg long default null;
1771
1772 BEGIN
1773
1774 hr_utility.set_location('Entering: ' || l_proc,5 );
1775
1776 -- The following is for SAVE_FOR_LATER code change.
1777 -- 1)When the Action page re-launch a suspended workflow process, it does
1778 -- a validation by calling the process_api with the new user entered
1779 -- effective date. Added a new parameter p_effective_date to this proc.
1780 -- If p_effective_date is not null, then use it as the effective date for
1781 -- api validation.
1782 -- 2)When the Action page re-launch a suspended workflow process, it
1783 -- allows user to enter a new effective date. We should not use the
1784 -- effective date that we saved in the transaction table.
1785 -- In process_api, if the p_effective_date parameter is null then use
1786 -- the workflow attribute P_EFFECTIVE_DATE as the effective date for api
1787 -- validation.
1788 --
1789 IF (p_effective_date is not null) THEN
1790 ld_effective_date:= to_date(p_effective_date,g_date_format);
1791 ELSE
1792 ld_effective_date:= to_date(
1793 hr_transaction_ss.get_wf_effective_date
1794 (p_transaction_step_id => p_transaction_step_id),g_date_format);
1795 END IF;
1796
1797 savepoint ex_emp_savepoint;
1798
1799 -----------------------------------------------------------------------
1800 -- get common data for APIs from transaction table
1801 -----------------------------------------------------------------------
1802 ln_period_of_service_id :=
1803 hr_transaction_api.get_number_value (
1804 p_transaction_step_id => p_transaction_step_id,
1805 p_name => 'P_PERIOD_OF_SERVICE_ID'
1806 );
1807
1808 ln_object_version_number :=
1809 hr_transaction_api.get_number_value (
1810 p_transaction_step_id => p_transaction_step_id,
1811 p_name => 'P_OBJECT_VERSION_NUMBER'
1812 );
1813
1814 lrt_termination := get_termination_details (
1815 p_transaction_step_id => p_transaction_step_id
1816 );
1817
1818 ld_notified_term_date := lrt_termination.notified_termination_date;
1819
1820 ld_projected_termination_date := lrt_termination.projected_termination_date;
1821 ld_final_process_date := lrt_termination.final_process_date;
1822
1823 -- For SAVE_FOR_LATER, when a user launch a suspended process, he will have
1824 -- an opportunity to change to a new effective date. Since the
1825 -- actual_termination_date is populated from the effective date, this field
1826 -- needs to use new effective date value instead of from transaction table.
1827 -- See SAVE_FOR_LATER comments above.
1828 ld_actual_term_date := ld_effective_date;
1829 lv_term_reason := lrt_termination.leaving_reason;
1830 ll_term_comments := lrt_termination.comments;
1831
1832 ld_last_standard_process_date := lrt_termination.last_standard_process_date;
1833
1834 lv_person_type_id := lrt_termination.person_type_id;
1835 lv_assignment_status_type_id
1836 := lrt_termination.assignment_status_type_id;
1837
1838 lv_rehire_recommendation := lrt_termination.rehire_recommendation;
1839 lv_rehire_reason := lrt_termination.rehire_reason;
1840
1841 --------------------------------------------------------------------------
1842 -- get dff data for update_pds_details API
1843 -- DDF Enhancement, This Function will return DFF Data as well from 21-50
1844 --------------------------------------------------------------------------
1845 lt_term_flex := get_term_flex_detail (
1846 p_transaction_step_id => p_transaction_step_id
1847 );
1848
1849 lv_attribute_category :=
1850 hr_transaction_api.get_varchar2_value (
1851 p_transaction_step_id => p_transaction_step_id,
1852 p_name => 'P_ATTRIBUTE_CATEGORY'
1853 );
1854
1855 -- DDF Enhancement : Get PDS_INFORMATION_CATEGORY
1856 lv_pds_information_category :=
1857 hr_transaction_api.get_varchar2_value (
1858 p_transaction_step_id => p_transaction_step_id,
1859 p_name => 'P_PDS_INFORMATION_CATEGORY'
1860 );
1861
1862 --------------------------------------------------------------
1863 -- Bug 2881583
1864 -- Determine whether legislation code is FR. If so the default the
1865 -- PDS_INFORMATION10 to Actual Termination Date.
1866 -- This is required for compatibility with code delivered in FP.D
1867 --------------------------------------------------------------
1868 begin
1869 select business_group_id
1870 into l_business_group_id
1871 from per_periods_of_service
1872 where period_of_service_id = ln_period_of_service_id;
1873 --
1874 l_legislation_code :=
1875 hr_api.return_legislation_code(p_business_group_id => l_business_group_id);
1876 --
1877 if l_legislation_code = 'FR' then
1878 hr_utility.trace('In if l_legislation_code = FR'|| l_proc);
1879 if ld_actual_term_date is not null and
1880 (lt_term_flex(30) = hr_api.g_varchar2
1881 or lt_term_flex(30) is null ) then
1882 lt_term_flex(30)
1883 := fnd_date.date_to_canonical(ld_actual_term_date);
1884 lv_pds_information_category := l_legislation_code;
1885 end if;
1886 end if;
1887
1888 exception when others then
1889 hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1890 raise;
1891 end;
1892
1893 -- Bug 2098595 Fix Begins: 11/12/2001
1894 -- Need to switch the order of calling the api. We need to call
1895 -- hr_termination_ss.update_pds_details first to set the flex segments
1896 -- before calling hr_ex_employee_api.actual_termination_emp.
1897 -- Otherwise, when there is a mandatory segment, we'll get an error
1898 -- as follows:
1899 -- The mandatory column Attribute??(also known as xxxx) has not been
1900 -- assigned a value.
1901 -- The reason is because in hr_ex_employee_api.actual_termination_emp,
1902 -- it validates flex segments and there are no parameters to receive
1903 -- flex segments in hr_ex_employee_api.actual_termination_emp. So, we
1904 -- need to flip the order to set the value of flex segments.
1905 --
1906 -- Call update_pds_details;
1907 hr_periods_of_service_api.update_pds_details (
1908 p_validate => FALSE,
1909 p_effective_date => ld_actual_term_date,
1910 p_period_of_service_id => ln_period_of_service_id,
1911 p_object_version_number => ln_object_version_number,
1912 p_comments => ll_term_comments,
1913 p_leaving_reason => lv_term_reason,
1914 p_notified_termination_date => ld_notified_term_date,
1915 p_projected_termination_date => ld_projected_termination_date,
1916 p_attribute_category => lv_attribute_category,
1917 p_attribute1 => lt_term_flex(1),
1918 p_attribute2 => lt_term_flex(2),
1919 p_attribute3 => lt_term_flex(3),
1920 p_attribute4 => lt_term_flex(4),
1921 p_attribute5 => lt_term_flex(5),
1922 p_attribute6 => lt_term_flex(6),
1923 p_attribute7 => lt_term_flex(7),
1924 p_attribute8 => lt_term_flex(8),
1925 p_attribute9 => lt_term_flex(9),
1926 p_attribute10 => lt_term_flex(10),
1927 p_attribute11 => lt_term_flex(11),
1928 p_attribute12 => lt_term_flex(12),
1929 p_attribute13 => lt_term_flex(13),
1930 p_attribute14 => lt_term_flex(14),
1931 p_attribute15 => lt_term_flex(15),
1932 p_attribute16 => lt_term_flex(16),
1933 p_attribute17 => lt_term_flex(17),
1934 p_attribute18 => lt_term_flex(18),
1935 p_attribute19 => lt_term_flex(19),
1936 p_attribute20 => lt_term_flex(20),
1937 ---- DDF Enhancement : Save DDF Segments data as well.
1938 p_pds_information_category => lv_pds_information_category,
1939 p_pds_information1 => lt_term_flex(21),
1940 p_pds_information2 => lt_term_flex(22),
1941 p_pds_information3 => lt_term_flex(23),
1942 p_pds_information4 => lt_term_flex(24),
1943 p_pds_information5 => lt_term_flex(25),
1944 p_pds_information6 => lt_term_flex(26),
1945 p_pds_information7 => lt_term_flex(27),
1946 p_pds_information8 => lt_term_flex(28),
1947 p_pds_information9 => lt_term_flex(29),
1948 p_pds_information10 => lt_term_flex(30),
1949 p_pds_information11 => lt_term_flex(31),
1950 p_pds_information12 => lt_term_flex(32),
1951 p_pds_information13 => lt_term_flex(33),
1952 p_pds_information14 => lt_term_flex(34),
1953 p_pds_information15 => lt_term_flex(35),
1954 p_pds_information16 => lt_term_flex(36),
1955 p_pds_information17 => lt_term_flex(37),
1956 p_pds_information18 => lt_term_flex(38),
1957 p_pds_information19 => lt_term_flex(39),
1958 p_pds_information20 => lt_term_flex(40),
1959 p_pds_information21 => lt_term_flex(41),
1960 p_pds_information22 => lt_term_flex(42),
1961 p_pds_information23 => lt_term_flex(43),
1962 p_pds_information24 => lt_term_flex(44),
1963 p_pds_information25 => lt_term_flex(45),
1964 p_pds_information26 => lt_term_flex(46),
1965 p_pds_information27 => lt_term_flex(47),
1966 p_pds_information28 => lt_term_flex(48),
1967 p_pds_information29 => lt_term_flex(49),
1968 p_pds_information30 => lt_term_flex(50)
1969 );
1970
1971 -- Bug Fix 2089615 Ends
1972
1973 hr_ex_employee_api.actual_termination_emp (
1974 p_validate => FALSE,
1975 p_effective_date => ld_actual_term_date,
1976 p_period_of_service_id => ln_period_of_service_id,
1977 p_object_version_number => ln_object_version_number,
1978 p_actual_termination_date => ld_actual_term_date,
1979 p_last_standard_process_date => ld_last_standard_process_date,
1980 p_leaving_reason => lv_term_reason,
1981 -- p_rehire_recommendation => lv_rehire_recommendation,
1982 -- p_rehire_reason => lv_rehire_reason,
1983 p_person_type_id => lv_person_type_id,
1984 p_assignment_status_type_id => lv_assignment_status_type_id,
1985 p_supervisor_warning => lb_supervisor_warning,
1986 p_event_warning => lb_event_warning,
1987 p_interview_warning => lb_interview_warning,
1988 p_review_warning => lb_review_warning,
1989 p_recruiter_warning => lb_recruiter_warning,
1990 p_asg_future_changes_warning => lb_asg_future_changes_warning,
1991 p_entries_changed_warning => lv_entries_changed_warning,
1992 p_pay_proposal_warning => lb_pay_proposal_warning,
1993 p_dod_warning => lb_dod_warning
1994 );
1995
1996 -- Bug 2098595 Fix Ends
1997 --
1998 -- Core HR API will not support update of field Rehire Recommendation
1999 -- and Rehire Reason. Hence we make following call to Person API
2000 -- to update the Fields.
2001 update_per_details(
2002 p_validate => 0, -- false
2003 p_effective_date => ld_actual_term_date,
2004 p_period_of_service_id => ln_period_of_service_id,
2005 p_actual_termination_date => ld_actual_term_date,
2006 p_rehire_recommendation => lv_rehire_recommendation,
2007 p_rehire_reason => lv_rehire_reason
2008 );
2009
2010 --call for Final_emp_process bug 3843399
2011 l_entries_changed_warning := 'N';
2012
2013 if ld_final_process_date is not null
2014 THEN
2015 hr_ex_employee_api.final_process_emp(
2016 p_validate => false,
2017 p_period_of_service_id => ln_period_of_service_id,
2018 p_object_version_number => ln_object_version_number,
2019 p_final_process_date => ld_final_process_date,
2020 p_org_now_no_manager_warning => l_org_now_no_manager_warning,
2021 p_asg_future_changes_warning => l_asg_future_changes_warning,
2022 p_entries_changed_warning => l_entries_changed_warning );
2023
2024
2025 END IF;
2026 --end of call bug 3843399
2027
2028 hr_utility.set_location(' Leaving: ' || l_proc,15);
2029
2030
2031 EXCEPTION
2032 WHEN OTHERS THEN
2033 l_err_msg := hr_java_conv_util_ss.get_formatted_error_message
2034 (p_single_error_message => hr_utility.get_message);
2035 hr_utility.set_location('EXCEPTION '|| l_err_msg || ': ' || l_proc,5600);
2036 rollback to ex_emp_savepoint;
2037 RAISE;
2038 END process_api;
2039
2040
2041 /*
2042 ||=======================================================================
2043 || FUNCTION : get_termination_details
2044 || DESCRIPTION : This overloaded funciton return the termination related
2045 || information by given transaction_step_id.
2046 ||=======================================================================
2047 */
2048 FUNCTION get_termination_details (
2049 p_transaction_step_id IN
2050 hr_api_transaction_steps.transaction_step_id%type
2051 )
2052 RETURN hr_termination_ss.rt_termination
2053 IS
2054 lrt_termination hr_termination_ss.rt_termination;
2055 l_proc constant varchar2(100) := g_package || ' get_termination_details';
2056 BEGIN
2057 hr_utility.set_location('Entering: '|| l_proc,5);
2058 lrt_termination.notified_termination_date :=
2059 hr_transaction_api.get_date_value (
2060 p_transaction_step_id => p_transaction_step_id,
2061 p_name => 'P_NOTIFIED_TERMINATION_DATE'
2062 );
2063
2064 lrt_termination.last_standard_process_date :=
2065 hr_transaction_api.get_date_value (
2066 p_transaction_step_id => p_transaction_step_id,
2067 p_name => 'P_LAST_STANDARD_PROCESS_DATE'
2068 );
2069
2070 lrt_termination.projected_termination_date :=
2071 hr_transaction_api.get_date_value (
2072 p_transaction_step_id => p_transaction_step_id,
2073 p_name => 'P_PROJECTED_TERMINATION_DATE'
2074 );
2075
2076 lrt_termination.final_process_date :=
2077 hr_transaction_api.get_date_value (
2078 p_transaction_step_id => p_transaction_step_id,
2079 p_name => 'P_FINAL_PROCESS_DATE'
2080 );
2081
2082 lrt_termination.actual_termination_date :=
2083 hr_transaction_api.get_date_value (
2084 p_transaction_step_id => p_transaction_step_id,
2085 p_name => 'P_ACTUAL_TERMINATION_DATE'
2086 );
2087
2088 lrt_termination.leaving_reason :=
2089 hr_transaction_api.get_varchar2_value (
2090 p_transaction_step_id => p_transaction_step_id,
2091 p_name => 'P_LEAVING_REASON'
2092 );
2093
2094 lrt_termination.person_type_id :=
2095 hr_transaction_api.get_number_value (
2096 p_transaction_step_id => p_transaction_step_id,
2097 p_name => 'P_PERSON_TYPE_ID'
2098 );
2099
2100 lrt_termination.assignment_status_type_id :=
2101 hr_transaction_api.get_number_value (
2102 p_transaction_step_id => p_transaction_step_id,
2103 p_name => 'P_ASSIGNMENT_STATUS_TYPE_ID'
2104 );
2105
2106 lrt_termination.comments :=
2107 hr_transaction_api.get_varchar2_value (
2108 p_transaction_step_id => p_transaction_step_id,
2109 p_name => 'P_COMMENTS'
2110 );
2111
2112 lrt_termination.period_of_service_id :=
2113 hr_transaction_api.get_number_value (
2114 p_transaction_step_id => p_transaction_step_id,
2115 p_name => 'P_PERIOD_OF_SERVICE_ID'
2116 );
2117
2118 lrt_termination.object_version_number :=
2119 hr_transaction_api.get_number_value (
2120 p_transaction_step_id => p_transaction_step_id,
2121 p_name => 'P_OBJECT_VERSION_NUMBER'
2122 );
2123
2124 lrt_termination.rehire_recommendation :=
2125 hr_transaction_api.get_varchar2_value (
2126 p_transaction_step_id => p_transaction_step_id,
2127 p_name => 'P_REHIRE_RECOMMENDATION'
2128 );
2129
2130 lrt_termination.rehire_reason :=
2131 hr_transaction_api.get_varchar2_value (
2132 p_transaction_step_id => p_transaction_step_id,
2133 p_name => 'P_REHIRE_REASON'
2134 );
2135 hr_utility.set_location('Leaving: '|| l_proc,10);
2136 RETURN lrt_termination;
2137 EXCEPTION
2138 WHEN OTHERS THEN
2139 hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2140 RAISE;
2141 END get_termination_details;
2142
2143 /*
2144 ||=======================================================================
2145 || FUNCTION: get_term_flex_detail
2146 || DESCRIPTION: This function returns termination dff data by
2147 || transaction step id.
2148 ||=======================================================================
2149 */
2150 FUNCTION get_term_flex_detail (
2151 p_transaction_step_id IN
2152 hr_api_transaction_steps.transaction_step_id%type
2153 )
2154 RETURN hr_termination_ss.t_flex_table
2155 IS
2156 lt_term_flex hr_termination_ss.t_flex_table;
2157 l_proc constant varchar2(100) := g_package || 'get_term_flex_detail ';
2158 BEGIN
2159 ---- First 20 DFF Data
2160 ---- Next 30, DDF Data
2161 hr_utility.set_location('Entering: '|| l_proc,5);
2162 FOR ln_counter IN 1..20 LOOP
2163 lt_term_flex(ln_counter) := NULL;
2164 END LOOP;
2165 FOR ln_counter IN 1..20 LOOP
2166 lt_term_flex(ln_counter) :=
2167 hr_transaction_api.get_varchar2_value (
2168 p_transaction_step_id => p_transaction_step_id,
2169 p_name => 'P_ATTRIBUTE' || to_char(ln_counter)
2170 );
2171 END LOOP;
2172 ---------------------------------------------------------------------------
2173 -- DDF Enhancement : Return DDF Segments data from Transaction Table
2174 -- We have to get P_PDS_INFORMATION1 to P_PDS_INFORMATION30
2175 ---------------------------------------------------------------------------
2176 FOR ln_counter IN 21..50 LOOP
2177 lt_term_flex(ln_counter) := NULL;
2178 END LOOP;
2179 FOR ln_counter IN 21..50 LOOP
2180 lt_term_flex(ln_counter) :=
2181 hr_transaction_api.get_varchar2_value (
2182 p_transaction_step_id => p_transaction_step_id,
2183 p_name => 'P_PDS_INFORMATION' ||
2184 to_char(ln_counter - 20)
2185 );
2186 END LOOP;
2187 hr_utility.set_location('Leaving: '|| l_proc,10);
2188 RETURN lt_term_flex;
2189 END get_term_flex_detail;
2190
2191
2192 /*
2193 ||===========================================================================
2194 || PROCEDURE: get_term_transaction
2195 ||---------------------------------------------------------------------------
2196 ||
2197 || Description:
2198 || Reads Termination Transaction from transaction table
2199 ||
2200 || Pre Conditions:
2201 ||
2202 || In Arguments:
2203 || Transaction id keys
2204 ||
2205 || out nocopy Arguments:
2206 || None.
2207 ||
2208 || In out nocopy Arguments:
2209 ||
2210 || Post Success:
2211 || Reads from transaction table
2212 ||
2213 || Post Failure:
2214 || Raises an exception
2215 ||
2216 || Access Status:
2217 || Public
2218 ||
2219 ||===========================================================================
2220 */
2221 procedure get_term_transaction
2222 (p_transaction_step_id in varchar2
2223 ,p_period_of_service_id out nocopy varchar2
2224 ,p_object_version_number out nocopy varchar2
2225 ,p_actual_termination_date out nocopy varchar2
2226 ,p_notified_termination_date out nocopy varchar2
2227 ,p_leaving_reason out nocopy varchar2
2228 ,p_person_type_id out nocopy varchar2
2229 ,p_assignment_status_type_id out nocopy varchar2
2230 ,p_rehire_recommendation out nocopy varchar2
2231 ,p_rehire_reason out nocopy varchar2
2232 ,p_comments out nocopy varchar2
2233 ,p_last_standard_process_date out nocopy varchar2
2234 ,p_projected_termination_date out nocopy varchar2
2235 ,p_final_process_date out nocopy varchar2
2236 ,p_attribute_category out nocopy varchar2
2237 ,p_attribute1 out nocopy varchar2
2238 ,p_attribute2 out nocopy varchar2
2239 ,p_attribute3 out nocopy varchar2
2240 ,p_attribute4 out nocopy varchar2
2241 ,p_attribute5 out nocopy varchar2
2242 ,p_attribute6 out nocopy varchar2
2243 ,p_attribute7 out nocopy varchar2
2244 ,p_attribute8 out nocopy varchar2
2245 ,p_attribute9 out nocopy varchar2
2246 ,p_attribute10 out nocopy varchar2
2247 ,p_attribute11 out nocopy varchar2
2248 ,p_attribute12 out nocopy varchar2
2249 ,p_attribute13 out nocopy varchar2
2250 ,p_attribute14 out nocopy varchar2
2251 ,p_attribute15 out nocopy varchar2
2252 ,p_attribute16 out nocopy varchar2
2253 ,p_attribute17 out nocopy varchar2
2254 ,p_attribute18 out nocopy varchar2
2255 ,p_attribute19 out nocopy varchar2
2256 ,p_attribute20 out nocopy varchar2
2257 ,p_review_actid out nocopy varchar2
2258 ,p_review_proc_call out nocopy varchar2
2259 ,p_pds_information_category out nocopy varchar2
2260 ,p_pds_information1 out nocopy varchar2
2261 ,p_pds_information2 out nocopy varchar2
2262 ,p_pds_information3 out nocopy varchar2
2263 ,p_pds_information4 out nocopy varchar2
2264 ,p_pds_information5 out nocopy varchar2
2265 ,p_pds_information6 out nocopy varchar2
2266 ,p_pds_information7 out nocopy varchar2
2267 ,p_pds_information8 out nocopy varchar2
2268 ,p_pds_information9 out nocopy varchar2
2269 ,p_pds_information10 out nocopy varchar2
2270 ,p_pds_information11 out nocopy varchar2
2271 ,p_pds_information12 out nocopy varchar2
2272 ,p_pds_information13 out nocopy varchar2
2273 ,p_pds_information14 out nocopy varchar2
2274 ,p_pds_information15 out nocopy varchar2
2275 ,p_pds_information16 out nocopy varchar2
2276 ,p_pds_information17 out nocopy varchar2
2277 ,p_pds_information18 out nocopy varchar2
2278 ,p_pds_information19 out nocopy varchar2
2279 ,p_pds_information20 out nocopy varchar2
2280 ,p_pds_information21 out nocopy varchar2
2281 ,p_pds_information22 out nocopy varchar2
2282 ,p_pds_information23 out nocopy varchar2
2283 ,p_pds_information24 out nocopy varchar2
2284 ,p_pds_information25 out nocopy varchar2
2285 ,p_pds_information26 out nocopy varchar2
2286 ,p_pds_information27 out nocopy varchar2
2287 ,p_pds_information28 out nocopy varchar2
2288 ,p_pds_information29 out nocopy varchar2
2289 ,p_pds_information30 out nocopy varchar2
2290 )
2291 IS
2292
2293 lv_date varchar2(200) default null;
2294 l_proc constant varchar2(100) := g_package || ' get_term_transaction';
2295
2296 BEGIN
2297 hr_utility.set_location('Entering: '|| l_proc,5);
2298 --
2299 p_period_of_service_id:=
2300 hr_transaction_api.get_number_value
2301 (p_transaction_step_id => p_transaction_step_id
2302 ,p_name => 'P_PERIOD_OF_SERVICE_ID');
2303 --
2304 p_object_version_number:=
2305 hr_transaction_api.get_number_value
2306 (p_transaction_step_id => p_transaction_step_id
2307 ,p_name => 'P_OBJECT_VERSION_NUMBER');
2308 --
2309 -- Bug 2086516 Fix Begins - 11/15/2001
2310 -- When re-launching a Save For Later action,we need to get the Effective Date
2311 -- from Workflow because a user can change the Effective Date which is saved
2312 -- to WF as an item attribute. Otherwise, the page will display the Effective
2313 -- Date from the transaction table and ignore the new date entered by the
2314 -- user.
2315
2316 p_actual_termination_date:=
2317 hr_transaction_ss.get_wf_effective_date
2318 (p_transaction_step_id => p_transaction_step_id);
2319 --
2320 -- Bug 2086516 Fix Ends - 11/15/2001
2321 --
2322 p_notified_termination_date:= to_char(
2323 hr_transaction_api.get_date_value
2324 (p_transaction_step_id => p_transaction_step_id
2325 ,p_name => 'P_NOTIFIED_TERMINATION_DATE')
2326 ,g_date_format);
2327 --
2328 p_last_standard_process_date := to_char(
2329 hr_transaction_api.get_date_value
2330 (p_transaction_step_id => p_transaction_step_id
2331 ,p_name => 'P_LAST_STANDARD_PROCESS_DATE')
2332 ,g_date_format);
2333 --
2334 p_projected_termination_date := to_char(
2335 hr_transaction_api.get_date_value
2336 (p_transaction_step_id => p_transaction_step_id
2337 ,p_name => 'P_PROJECTED_TERMINATION_DATE')
2338 ,g_date_format);
2339 --
2340 p_final_process_date := to_char(
2341 hr_transaction_api.get_date_value
2342 (p_transaction_step_id => p_transaction_step_id
2343 ,p_name => 'P_FINAL_PROCESS_DATE')
2344 ,g_date_format);
2345 --
2346 p_leaving_reason:=
2347 hr_transaction_api.get_varchar2_value
2348 (p_transaction_step_id => p_transaction_step_id
2349 ,p_name => 'P_LEAVING_REASON');
2350 --
2351 p_person_type_id:=
2352 hr_transaction_api.get_number_value
2353 (p_transaction_step_id => p_transaction_step_id
2354 ,p_name => 'P_PERSON_TYPE_ID');
2355 --
2356 p_assignment_status_type_id:=
2357 hr_transaction_api.get_number_value
2358 (p_transaction_step_id => p_transaction_step_id
2359 ,p_name => 'P_ASSIGNMENT_STATUS_TYPE_ID');
2360 --
2361 p_comments:=
2362 hr_transaction_api.get_varchar2_value
2363 (p_transaction_step_id => p_transaction_step_id
2364 ,p_name => 'P_COMMENTS');
2365 --
2366 p_rehire_recommendation:=
2367 hr_transaction_api.get_varchar2_value
2368 (p_transaction_step_id => p_transaction_step_id
2369 ,p_name => 'P_REHIRE_RECOMMENDATION');
2370 --
2371 p_rehire_reason:=
2372 hr_transaction_api.get_varchar2_value
2373 (p_transaction_step_id => p_transaction_step_id
2374 ,p_name => 'P_REHIRE_REASON');
2375
2376 --
2377 p_attribute_category:=
2378 hr_transaction_api.get_varchar2_value
2379 (p_transaction_step_id => p_transaction_step_id
2380 ,p_name => 'P_ATTRIBUTE_CATEGORY');
2381 --
2382 p_attribute1:=
2383 hr_transaction_api.get_varchar2_value
2384 (p_transaction_step_id => p_transaction_step_id
2385 ,p_name => 'P_ATTRIBUTE1');
2386 --
2387 p_attribute2:=
2388 hr_transaction_api.get_varchar2_value
2389 (p_transaction_step_id => p_transaction_step_id
2390 ,p_name => 'P_ATTRIBUTE2');
2391 --
2392 p_attribute3:=
2393 hr_transaction_api.get_varchar2_value
2394 (p_transaction_step_id => p_transaction_step_id
2395 ,p_name => 'P_ATTRIBUTE3');
2396 --
2397 p_attribute4:=
2398 hr_transaction_api.get_varchar2_value
2399 (p_transaction_step_id => p_transaction_step_id
2400 ,p_name => 'P_ATTRIBUTE4');
2401 --
2402 p_attribute5:=
2403 hr_transaction_api.get_varchar2_value
2404 (p_transaction_step_id => p_transaction_step_id
2405 ,p_name => 'P_ATTRIBUTE5');
2406 --
2407 p_attribute6:=
2408 hr_transaction_api.get_varchar2_value
2409 (p_transaction_step_id => p_transaction_step_id
2410 ,p_name => 'P_ATTRIBUTE6');
2411 --
2412 p_attribute7:=
2413 hr_transaction_api.get_varchar2_value
2414 (p_transaction_step_id => p_transaction_step_id
2415 ,p_name => 'P_ATTRIBUTE7');
2416 --
2417 p_attribute8:=
2418 hr_transaction_api.get_varchar2_value
2419 (p_transaction_step_id => p_transaction_step_id
2420 ,p_name => 'P_ATTRIBUTE8');
2421 --
2422 p_attribute9:=
2423 hr_transaction_api.get_varchar2_value
2424 (p_transaction_step_id => p_transaction_step_id
2425 ,p_name => 'P_ATTRIBUTE9');
2426 --
2427 p_attribute10:=
2428 hr_transaction_api.get_varchar2_value
2429 (p_transaction_step_id => p_transaction_step_id
2430 ,p_name => 'P_ATTRIBUTE10');
2431 --
2432 p_attribute11:=
2433 hr_transaction_api.get_varchar2_value
2434 (p_transaction_step_id => p_transaction_step_id
2435 ,p_name => 'P_ATTRIBUTE11');
2436 --
2437 p_attribute12:=
2438 hr_transaction_api.get_varchar2_value
2439 (p_transaction_step_id => p_transaction_step_id
2440 ,p_name => 'P_ATTRIBUTE12');
2441 --
2442 p_attribute13:=
2443 hr_transaction_api.get_varchar2_value
2444 (p_transaction_step_id => p_transaction_step_id
2445 ,p_name => 'P_ATTRIBUTE13');
2446 --
2447 p_attribute14:=
2448 hr_transaction_api.get_varchar2_value
2449 (p_transaction_step_id => p_transaction_step_id
2450 ,p_name => 'P_ATTRIBUTE14');
2451 --
2452 p_attribute15:=
2453 hr_transaction_api.get_varchar2_value
2454 (p_transaction_step_id => p_transaction_step_id
2455 ,p_name => 'P_ATTRIBUTE15');
2456 --
2457 p_attribute16:=
2458 hr_transaction_api.get_varchar2_value
2459 (p_transaction_step_id => p_transaction_step_id
2460 ,p_name => 'P_ATTRIBUTE16');
2461 --
2462 p_attribute17:=
2463 hr_transaction_api.get_varchar2_value
2464 (p_transaction_step_id => p_transaction_step_id
2465 ,p_name => 'P_ATTRIBUTE17');
2466 --
2467 p_attribute18:=
2468 hr_transaction_api.get_varchar2_value
2469 (p_transaction_step_id => p_transaction_step_id
2470 ,p_name => 'P_ATTRIBUTE18');
2471 --
2472 p_attribute19:=
2473 hr_transaction_api.get_varchar2_value
2474 (p_transaction_step_id => p_transaction_step_id
2475 ,p_name => 'P_ATTRIBUTE19');
2476 --
2477 p_attribute20:=
2478 hr_transaction_api.get_varchar2_value
2479 (p_transaction_step_id => p_transaction_step_id
2480 ,p_name => 'P_ATTRIBUTE20');
2481 --
2482 p_review_actid:=
2483 hr_transaction_api.get_varchar2_value
2484 (p_transaction_step_id => p_transaction_step_id
2485 ,p_name => 'P_REVIEW_ACTID');
2486 --
2487 p_review_proc_call:=
2488 hr_transaction_api.get_varchar2_value
2489 (p_transaction_step_id => p_transaction_step_id
2490 ,p_name => 'P_REVIEW_PROC_CALL');
2491
2492 -- DDF Enhancement : Retrieve from Transaction table.
2493 --
2494 p_pds_information_category:=
2495 hr_transaction_api.get_varchar2_value
2496 (p_transaction_step_id => p_transaction_step_id
2497 ,p_name => 'P_PDS_INFORMATION_CATEGORY');
2498 --
2499 p_pds_information1:=
2500 hr_transaction_api.get_varchar2_value
2501 (p_transaction_step_id => p_transaction_step_id
2502 ,p_name => 'P_PDS_INFORMATION1');
2503 --
2504 p_pds_information2:=
2505 hr_transaction_api.get_varchar2_value
2506 (p_transaction_step_id => p_transaction_step_id
2507 ,p_name => 'P_PDS_INFORMATION2');
2508 --
2509 p_pds_information3:=
2510 hr_transaction_api.get_varchar2_value
2511 (p_transaction_step_id => p_transaction_step_id
2512 ,p_name => 'P_PDS_INFORMATION3');
2513 --
2514 p_pds_information4:=
2515 hr_transaction_api.get_varchar2_value
2516 (p_transaction_step_id => p_transaction_step_id
2517 ,p_name => 'P_PDS_INFORMATION4');
2518 --
2519 p_pds_information5:=
2520 hr_transaction_api.get_varchar2_value
2521 (p_transaction_step_id => p_transaction_step_id
2522 ,p_name => 'P_PDS_INFORMATION5');
2523 --
2524 p_pds_information6:=
2525 hr_transaction_api.get_varchar2_value
2526 (p_transaction_step_id => p_transaction_step_id
2527 ,p_name => 'P_PDS_INFORMATION6');
2528 --
2529 p_pds_information7:=
2530 hr_transaction_api.get_varchar2_value
2531 (p_transaction_step_id => p_transaction_step_id
2532 ,p_name => 'P_PDS_INFORMATION7');
2533 --
2534 p_pds_information8:=
2535 hr_transaction_api.get_varchar2_value
2536 (p_transaction_step_id => p_transaction_step_id
2537 ,p_name => 'P_PDS_INFORMATION8');
2538 --
2539 p_pds_information9:=
2540 hr_transaction_api.get_varchar2_value
2541 (p_transaction_step_id => p_transaction_step_id
2542 ,p_name => 'P_PDS_INFORMATION9');
2543 --
2544 p_pds_information10:=
2545 hr_transaction_api.get_varchar2_value
2546 (p_transaction_step_id => p_transaction_step_id
2547 ,p_name => 'P_PDS_INFORMATION10');
2548 --
2549 p_pds_information11:=
2550 hr_transaction_api.get_varchar2_value
2551 (p_transaction_step_id => p_transaction_step_id
2552 ,p_name => 'P_PDS_INFORMATION11');
2553 --
2554 p_pds_information12:=
2555 hr_transaction_api.get_varchar2_value
2556 (p_transaction_step_id => p_transaction_step_id
2557 ,p_name => 'P_PDS_INFORMATION12');
2558 --
2559 p_pds_information13:=
2560 hr_transaction_api.get_varchar2_value
2561 (p_transaction_step_id => p_transaction_step_id
2562 ,p_name => 'P_PDS_INFORMATION13');
2563 --
2564 p_pds_information14:=
2565 hr_transaction_api.get_varchar2_value
2566 (p_transaction_step_id => p_transaction_step_id
2567 ,p_name => 'P_PDS_INFORMATION14');
2568 --
2569 p_pds_information15:=
2570 hr_transaction_api.get_varchar2_value
2571 (p_transaction_step_id => p_transaction_step_id
2572 ,p_name => 'P_PDS_INFORMATION15');
2573 --
2574 p_pds_information16:=
2575 hr_transaction_api.get_varchar2_value
2576 (p_transaction_step_id => p_transaction_step_id
2577 ,p_name => 'P_PDS_INFORMATION16');
2578 --
2579 p_pds_information17:=
2580 hr_transaction_api.get_varchar2_value
2581 (p_transaction_step_id => p_transaction_step_id
2582 ,p_name => 'P_PDS_INFORMATION17');
2583 --
2584 p_pds_information18:=
2585 hr_transaction_api.get_varchar2_value
2586 (p_transaction_step_id => p_transaction_step_id
2587 ,p_name => 'P_PDS_INFORMATION18');
2588 --
2589 p_pds_information19:=
2590 hr_transaction_api.get_varchar2_value
2591 (p_transaction_step_id => p_transaction_step_id
2592 ,p_name => 'P_PDS_INFORMATION19');
2593 --
2594 p_pds_information20:=
2595 hr_transaction_api.get_varchar2_value
2596 (p_transaction_step_id => p_transaction_step_id
2597 ,p_name => 'P_PDS_INFORMATION20');
2598 --
2599 p_pds_information21:=
2600 hr_transaction_api.get_varchar2_value
2601 (p_transaction_step_id => p_transaction_step_id
2602 ,p_name => 'P_PDS_INFORMATION21');
2603 --
2604 p_pds_information22:=
2605 hr_transaction_api.get_varchar2_value
2606 (p_transaction_step_id => p_transaction_step_id
2607 ,p_name => 'P_PDS_INFORMATION22');
2608 --
2609 p_pds_information23:=
2610 hr_transaction_api.get_varchar2_value
2611 (p_transaction_step_id => p_transaction_step_id
2612 ,p_name => 'P_PDS_INFORMATION23');
2613 --
2614 p_pds_information24:=
2615 hr_transaction_api.get_varchar2_value
2616 (p_transaction_step_id => p_transaction_step_id
2617 ,p_name => 'P_PDS_INFORMATION24');
2618 --
2619 p_pds_information25:=
2620 hr_transaction_api.get_varchar2_value
2621 (p_transaction_step_id => p_transaction_step_id
2622 ,p_name => 'P_PDS_INFORMATION25');
2623 --
2624 p_pds_information26:=
2625 hr_transaction_api.get_varchar2_value
2626 (p_transaction_step_id => p_transaction_step_id
2627 ,p_name => 'P_PDS_INFORMATION26');
2628 --
2629 p_pds_information27:=
2630 hr_transaction_api.get_varchar2_value
2631 (p_transaction_step_id => p_transaction_step_id
2632 ,p_name => 'P_PDS_INFORMATION27');
2633 --
2634 p_pds_information28:=
2635 hr_transaction_api.get_varchar2_value
2636 (p_transaction_step_id => p_transaction_step_id
2637 ,p_name => 'P_PDS_INFORMATION28');
2638 --
2639 p_pds_information29:=
2640 hr_transaction_api.get_varchar2_value
2641 (p_transaction_step_id => p_transaction_step_id
2642 ,p_name => 'P_PDS_INFORMATION29');
2643 --
2644 p_pds_information30:=
2645 hr_transaction_api.get_varchar2_value
2646 (p_transaction_step_id => p_transaction_step_id
2647 ,p_name => 'P_PDS_INFORMATION30');
2648 --
2649 hr_utility.set_location('Leaving: '|| l_proc,10);
2650 EXCEPTION
2651 WHEN OTHERS THEN
2652 hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2653 p_period_of_service_id := null;
2654 p_object_version_number := null;
2655 p_actual_termination_date := null;
2656 p_notified_termination_date := null;
2657 p_leaving_reason := null;
2658 p_person_type_id := NULL;
2659 p_assignment_status_type_id := NULL;
2660 p_comments := null;
2661 p_attribute_category := null;
2662 p_attribute1 := null;
2663 p_attribute2 := null;
2664 p_attribute3 := null;
2665 p_attribute4 := null;
2666 p_attribute5 := null;
2667 p_attribute6 := null;
2668 p_attribute7 := null;
2669 p_attribute8 := null;
2670 p_attribute9 := null;
2671 p_attribute10 := null;
2672 p_attribute11 := null;
2673 p_attribute12 := null;
2674 p_attribute13 := null;
2675 p_attribute14 := null;
2676 p_attribute15 := null;
2677 p_attribute16 := null;
2678 p_attribute17 := null;
2679 p_attribute18 := null;
2680 p_attribute19 := null;
2681 p_attribute20 := null;
2682 p_review_actid := null;
2683 p_review_proc_call := null;
2684 p_pds_information_category := null;
2685 p_pds_information1 := null;
2686 p_pds_information2 := null;
2687 p_pds_information3 := null;
2688 p_pds_information4 := null;
2689 p_pds_information5 := null;
2690 p_pds_information6 := null;
2691 p_pds_information7 := null;
2692 p_pds_information8 := null;
2693 p_pds_information9 := null;
2694 p_pds_information10 := null;
2695 p_pds_information11 := null;
2696 p_pds_information12 := null;
2697 p_pds_information13 := null;
2698 p_pds_information14 := null;
2699 p_pds_information15 := null;
2700 p_pds_information16 := null;
2701 p_pds_information17 := null;
2702 p_pds_information18 := null;
2703 p_pds_information19 := null;
2704 p_pds_information20 := null;
2705 p_pds_information21 := null;
2706 p_pds_information22 := null;
2707 p_pds_information23 := null;
2708 p_pds_information24 := null;
2709 p_pds_information25 := null;
2710 p_pds_information26 := null;
2711 p_pds_information27 := null;
2712 p_pds_information28 := null;
2713 p_pds_information29 := null;
2714 p_pds_information30 := null;
2715 RAISE; -- Raise error here relevant to the new tech stack.
2716
2717 END get_term_transaction;
2718
2719 END hr_termination_ss;