1 package body hr_ex_employee_be4 as
2 --Code generated on 13/08/2013 06:42:20
3 /* $Header: hrapiwfe.pkb 120.11 2011/12/24 13:28:35 vboggava ship $*/
4 procedure reverse_terminate_employee_a (
5 p_person_id number,
6 p_actual_termination_date date,
7 p_clear_details varchar2) is
8 l_event_key number;
9 l_event_data clob;
10 l_event_name varchar2(250);
11 l_text varchar2(2000);
12 l_message varchar2(10);
13 --
14 cursor get_seq is
15 select per_wf_events_s.nextval from dual;
16 --
17 l_proc varchar2(72):=' hr_ex_employee_be4.reverse_terminate_employee_a';
18 begin
19 hr_utility.set_location('Entering: '||l_proc,10);
20 -- check the status of the business event
21 l_event_name:='oracle.apps.per.api.ex_employee.reverse_terminate_employee';
22 l_message:=wf_event.test(l_event_name);
23 --
24 if (l_message='MESSAGE') then
25 hr_utility.set_location(l_proc,20);
26 --
27 -- get a key for the event
28 --
29 open get_seq;
30 fetch get_seq into l_event_key;
31 close get_seq;
32 --
33 -- build the xml data for the event
34 --
35 dbms_lob.createTemporary(l_event_data,false,dbms_lob.call);
36 l_text:='<?xml version =''1.0'' encoding =''ASCII''?>';
37 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
38 l_text:='<ex_employee>';
39 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
40 --
41 l_text:='<person_id>';
42 l_text:=l_text||fnd_number.number_to_canonical(p_person_id);
43 l_text:=l_text||'</person_id>';
44 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
45 l_text:='<actual_termination_date>';
46 l_text:=l_text||fnd_date.date_to_canonical(p_actual_termination_date);
47 l_text:=l_text||'</actual_termination_date>';
48 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
49 l_text:='<clear_details>';
50 l_text:=l_text||irc_utilities_pkg.removeTags(p_clear_details);
51 l_text:=l_text||'</clear_details>';
52 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
53 l_text:='</ex_employee>';
54 --
55 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
56 --
57 if p_actual_termination_date is not NULL and
58 p_actual_termination_date > trunc(SYSDATE) and
59 fnd_profile.value('HR_DEFER_FD_BE_EVENTS') = 'Y' then
60 -- raise the event with the event data, with send date set to effective date
61 wf_event.raise(p_event_name=>l_event_name
62 ,p_event_key=>l_event_key
63 ,p_event_data=>l_event_data
64 ,p_send_date => p_actual_termination_date);
65 --
66 else
67 -- raise the event with the event data
68 wf_event.raise(p_event_name=>l_event_name
69 ,p_event_key=>l_event_key
70 ,p_event_data=>l_event_data);
71 end if;
72 elsif (l_message='KEY') then
73 hr_utility.set_location(l_proc,30);
74 -- get a key for the event
75 open get_seq;
76 fetch get_seq into l_event_key;
77 close get_seq;
78 if p_actual_termination_date is not NULL and
79 p_actual_termination_date > trunc(SYSDATE) and
80 fnd_profile.value('HR_DEFER_FD_BE_EVENTS') = 'Y' then
81 -- this is a key event, so just raise the event
82 -- without the event data, with send date set to effective date
83 wf_event.raise(p_event_name=>l_event_name
84 ,p_event_key=>l_event_key
85 ,p_send_date => p_actual_termination_date);
86 --
87 else
88 -- this is a key event, so just raise the event
89 -- without the event data
90 wf_event.raise(p_event_name=>l_event_name
91 ,p_event_key=>l_event_key);
92 end if;
93 elsif (l_message='NONE') then
94 hr_utility.set_location(l_proc,40);
95 -- no event is required, so do nothing
96 null;
97 end if;
98 hr_utility.set_location('Leaving: '||l_proc,50);
99 end reverse_terminate_employee_a;
100 end hr_ex_employee_be4;