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