DBA Data[Home] [Help]
Skip to content

PACKAGE BODY: APPS.HR_REVTERMINATION_SS

Source


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