DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_CWK_TERMINATION_SWI

Source


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