DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_CONTINGENT_WORKER_BE2

Source


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