DBA Data[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;