1 package body hr_assignment_be4 as
2 --Code generated on 30/03/2009 04:46:18
3 /* $Header: hrapiwfe.pkb 120.4.12010000.2 2008/09/29 12:54:07 srgnanas ship $*/
4 procedure actual_termination_emp_asg_a (
5 p_assignment_id number,
6 p_object_version_number number,
7 p_actual_termination_date date,
8 p_assignment_status_type_id number,
9 p_effective_start_date date,
10 p_effective_end_date date,
11 p_asg_future_changes_warning boolean,
12 p_entries_changed_warning varchar2,
13 p_pay_proposal_warning boolean,
14 p_business_group_id number) is
15 l_event_key number;
16 l_event_data clob;
17 l_event_name varchar2(250);
18 l_text varchar2(2000);
19 l_message varchar2(10);
20 --
21 cursor get_seq is
22 select per_wf_events_s.nextval from dual;
23 --
24 l_proc varchar2(72):=' hr_assignment_be4.actual_termination_emp_asg_a';
25 begin
26 hr_utility.set_location('Entering: '||l_proc,10);
27 -- check the status of the business event
28 l_event_name:='oracle.apps.per.api.assignment.actual_termination_emp_asg';
29 l_message:=wf_event.test(l_event_name);
30 --
31 if (l_message='MESSAGE') then
32 hr_utility.set_location(l_proc,20);
33 --
34 -- get a key for the event
35 --
36 open get_seq;
37 fetch get_seq into l_event_key;
38 close get_seq;
39 --
40 -- build the xml data for the event
41 --
42 dbms_lob.createTemporary(l_event_data,false,dbms_lob.call);
43 l_text:='<?xml version =''1.0'' encoding =''ASCII''?>';
44 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
45 l_text:='<assignment>';
46 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
47 --
48 l_text:='<assignment_id>';
49 l_text:=l_text||fnd_number.number_to_canonical(p_assignment_id);
50 l_text:=l_text||'</assignment_id>';
51 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
52 l_text:='<object_version_number>';
53 l_text:=l_text||fnd_number.number_to_canonical(p_object_version_number);
54 l_text:=l_text||'</object_version_number>';
55 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
56 l_text:='<actual_termination_date>';
57 l_text:=l_text||fnd_date.date_to_canonical(p_actual_termination_date);
58 l_text:=l_text||'</actual_termination_date>';
59 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
60 l_text:='<assignment_status_type_id>';
61 l_text:=l_text||fnd_number.number_to_canonical(p_assignment_status_type_id);
62 l_text:=l_text||'</assignment_status_type_id>';
63 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
64 l_text:='<effective_start_date>';
65 l_text:=l_text||fnd_date.date_to_canonical(p_effective_start_date);
66 l_text:=l_text||'</effective_start_date>';
67 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
68 l_text:='<effective_end_date>';
69 l_text:=l_text||fnd_date.date_to_canonical(p_effective_end_date);
70 l_text:=l_text||'</effective_end_date>';
71 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
72 l_text:='<asg_future_changes_warning>';
73 if(P_ASG_FUTURE_CHANGES_WARNING) then
74 l_text:=l_text||'TRUE';
75 else
76 l_text:=l_text||'FALSE';
77 end if;
78 l_text:=l_text||'</asg_future_changes_warning>';
79 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
80 l_text:='<entries_changed_warning>';
81 l_text:=l_text||irc_utilities_pkg.removeTags(p_entries_changed_warning);
82 l_text:=l_text||'</entries_changed_warning>';
83 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
84 l_text:='<pay_proposal_warning>';
85 if(P_PAY_PROPOSAL_WARNING) then
86 l_text:=l_text||'TRUE';
87 else
88 l_text:=l_text||'FALSE';
89 end if;
90 l_text:=l_text||'</pay_proposal_warning>';
91 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
92 l_text:='<business_group_id>';
93 l_text:=l_text||fnd_number.number_to_canonical(p_business_group_id);
94 l_text:=l_text||'</business_group_id>';
95 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
96 l_text:='</assignment>';
97 --
98 dbms_lob.writeAppend(l_event_data,length(l_text),l_text);
99 --
100 if p_effective_start_date is not NULL and
101 p_effective_start_date > trunc(SYSDATE) and
102 fnd_profile.value('HR_DEFER_FD_BE_EVENTS') = 'Y' then
103 -- raise the event with the event data, with send date set to effective date
104 wf_event.raise(p_event_name=>l_event_name
105 ,p_event_key=>l_event_key
106 ,p_event_data=>l_event_data
107 ,p_send_date => p_effective_start_date);
108 --
109 else
110 -- raise the event with the event data
111 wf_event.raise(p_event_name=>l_event_name
112 ,p_event_key=>l_event_key
113 ,p_event_data=>l_event_data);
114 end if;
115 elsif (l_message='KEY') then
116 hr_utility.set_location(l_proc,30);
117 -- get a key for the event
118 open get_seq;
119 fetch get_seq into l_event_key;
120 close get_seq;
121 if p_effective_start_date is not NULL and
122 p_effective_start_date > trunc(SYSDATE) and
123 fnd_profile.value('HR_DEFER_FD_BE_EVENTS') = 'Y' then
124 -- this is a key event, so just raise the event
125 -- without the event data, with send date set to effective date
126 wf_event.raise(p_event_name=>l_event_name
127 ,p_event_key=>l_event_key
128 ,p_send_date => p_effective_start_date);
129 --
130 else
131 -- this is a key event, so just raise the event
132 -- without the event data
133 wf_event.raise(p_event_name=>l_event_name
134 ,p_event_key=>l_event_key);
135 end if;
136 elsif (l_message='NONE') then
137 hr_utility.set_location(l_proc,40);
138 -- no event is required, so do nothing
139 null;
140 end if;
141 hr_utility.set_location('Leaving: '||l_proc,50);
142 end actual_termination_emp_asg_a;
143 end hr_assignment_be4;