DBA Data[Home] [Help]

PACKAGE BODY: APPS.HRDPP_SUSPEND_EMP_ASG

Source


1 package body hrdpp_SUSPEND_EMP_ASG as
2 /*
3  * Generated by hr_pump_meta_mapper at: 2007/01/04 02:01:59
4  * Generated for API: HR_ASSIGNMENT_API.SUSPEND_EMP_ASG
5  */
6 --
7 dh constant date := hr_api.g_date;
8 nh constant number := hr_api.g_number;
9 vh constant varchar2(64) := hr_api.g_varchar2;
10 c_sot constant date := to_date('01010001','DDMMYYYY');
11 cn constant varchar2(32) := '<NULL>';
12 dn constant date := null;
13 nn constant number := null;
14 vn constant varchar2(1) := null;
15 --
16 function dc(p in date) return varchar2 is
17 begin
18 if p<c_sot then
19  if p<>trunc(p) then
20   return to_char(p,'SYYYY/MM/DD HH24:MI:SS');
21  end if;
22  return to_char(p,'SYYYY/MM/DD');
23 elsif p<>trunc(p) then
24  return to_char(p,'YYYY/MM/DD HH24:MI:SS');
25 end if;
26 return to_char(p,'YYYY/MM/DD');
27 end dc;
28 function d(p in varchar2) return date is
29 begin
30 if length(p)=10 then
31 return to_date(p,'YYYY/MM/DD');
32 elsif length(p)=19 then
33 return to_date(p,'YYYY/MM/DD HH24:MI:SS');
34 elsif length(p)=11 then
35 return to_date(p,'SYYYY/MM/DD');
36 elsif length(p)=20 then
37 return to_date(p,'SYYYY/MM/DD HH24:MI:SS');
38 end if;
39 -- Try default format as last resort.
40 return to_date(p,'YYYY/MM/DD');
41 end d;
42 function n(p in varchar2) return number is
43 begin
44 return to_number(p);
45 end n;
46 function dd(p in date,i in varchar2)
47 return varchar2 is
48 begin
49 if upper(i) = 'N' then return dc(p);
50 else return cn; end if;
51 end dd;
52 function nd(p in number,i in varchar2)
53 return varchar2 is
54 begin
55 if upper(i) = 'N' then return to_char(p);
56 else return cn; end if;
57 end nd;
58 --
59 procedure iuk
60 (p_batch_line_id  in number,
61 p_user_key_value in varchar2,
62 p_unique_key_id  in number)
63 is
64 begin
65 hr_data_pump.entry('ins_user_key');
66 insert into hr_pump_batch_line_user_keys
67 (user_key_id, batch_line_id,user_key_value,unique_key_id)
68 values
69 (hr_pump_batch_line_user_keys_s.nextval,
70 p_batch_line_id,
71 p_user_key_value,
72 p_unique_key_id);
73 hr_data_pump.exit('ins_user_key');
74 end iuk;
75 --
76 procedure insert_batch_lines
77 (p_batch_id      in number
78 ,p_data_pump_batch_line_id in number default null
79 ,p_data_pump_business_grp_name in varchar2 default null
80 ,p_user_sequence in number default null
81 ,p_link_value    in number default null
82 ,P_EFFECTIVE_DATE in date
83 ,P_DATETRACK_UPDATE_MODE in varchar2
84 ,P_CHANGE_REASON in varchar2 default null
85 ,P_ASSIGNMENT_USER_KEY in varchar2
86 ,P_USER_STATUS in varchar2 default null
87 ,P_LANGUAGE_CODE in varchar2 default null) is
88 blid number := p_data_pump_batch_line_id;
89 begin
90 if blid is not null then
91 delete from hr_pump_batch_lines where batch_line_id = blid;
92 delete from hr_pump_batch_exceptions
93 where source_type = 'BATCH_LINE' and source_id = blid;
94 end if;
95 insert into hr_pump_batch_lines
96 (batch_id
97 ,batch_line_id
98 ,business_group_name
99 ,api_module_id
100 ,line_status
101 ,user_sequence
102 ,link_value
103 ,pval001
104 ,pval002
105 ,pval003
106 ,pval006
107 ,pval007
108 ,pval008)
109 values
110 (p_batch_id
111 ,nvl(blid,hr_pump_batch_lines_s.nextval)
112 ,p_data_pump_business_grp_name
113 ,1191
114 ,'U'
115 ,p_user_sequence
116 ,p_link_value
117 ,dc(P_EFFECTIVE_DATE)
118 ,P_DATETRACK_UPDATE_MODE
119 ,P_CHANGE_REASON
120 ,P_ASSIGNMENT_USER_KEY
121 ,P_USER_STATUS
122 ,P_LANGUAGE_CODE);
123 end insert_batch_lines;
124 --
125 procedure call
126 (p_business_group_id in number,
127 p_batch_line_id     in number) is
128 cursor cr is
129 select l.rowid myrowid,
130 decode(l.pval001,cn,dn,d(l.pval001)) p1,
131 decode(l.pval002,cn,vn,l.pval002) p2,
132 decode(l.pval003,cn,vn,vn,vh,
133  hr_pump_get.gl(l.pval003,'EMP_ASSIGN_REASON',d(l.pval001),l.pval008)) p3,
134 l.pval003 d3,
135 decode(l.pval004,cn,dn,d(l.pval004)) p4,
136 decode(l.pval005,cn,dn,d(l.pval005)) p5,
137 decode(l.pval006,cn,vn,l.pval006) p6,
138 decode(l.pval007,cn,vn,vn,vh,l.pval007) p7,
139 l.pval007 d7,
140 decode(l.pval008,cn,vn,vn,vh,l.pval008) p8,
141 l.pval008 d8
142 from hr_pump_batch_lines l
143 where l.batch_line_id = p_batch_line_id;
144 --
145 c cr%rowtype;
146 l_validate boolean := false;
147 L_ASSIGNMENT_ID number;
148 L_OBJECT_VERSION_NUMBER number;
149 L_ASSIGNMENT_STATUS_TYPE_ID number;
150 --
151 begin
152 hr_data_pump.entry('call');
153 open cr;
154 fetch cr into c;
155 if cr%notfound then
156 hr_utility.set_message(800,'HR_50326_DP_NO_ROW');
157 hr_utility.set_message_token('TABLE','HR_PUMP_BATCH_LINES');
158 hr_utility.set_message_token('COLUMN','P_BATCH_LINE_ID');
159 hr_utility.set_message_token('VALUE',p_batch_line_id);
160 hr_utility.raise_error;
161 end if;
162 --
163 if c.p6 is null then
164 L_ASSIGNMENT_ID:=nn;
165 else
166 L_ASSIGNMENT_ID := 
167 hr_pump_get.get_assignment_id
168 (P_ASSIGNMENT_USER_KEY => c.p6);
169 end if;
170 --
171 if c.p6 is null or
172 c.p1 is null then
173 L_OBJECT_VERSION_NUMBER:=nn;
174 else
175 L_OBJECT_VERSION_NUMBER := 
176 hr_pump_get.GET_ASG_OVN
177 (P_ASSIGNMENT_USER_KEY => c.p6
178 ,P_EFFECTIVE_DATE => c.p1);
179 end if;
180 --
181 if c.d7=cn or
182 c.d8=cn then
183 L_ASSIGNMENT_STATUS_TYPE_ID:=nn;
184 elsif c.d7 is null or
185 c.d8 is null then 
186 L_ASSIGNMENT_STATUS_TYPE_ID:=nh;
187 else
188 L_ASSIGNMENT_STATUS_TYPE_ID := 
189 hr_pump_get.get_assignment_status_type_id
190 (P_USER_STATUS => c.p7
191 ,P_BUSINESS_GROUP_ID => P_BUSINESS_GROUP_ID
192 ,P_LANGUAGE_CODE => c.p8);
193 end if;
194 --
195 hr_data_pump.api_trc_on;
196 HR_ASSIGNMENT_API.SUSPEND_EMP_ASG
197 (p_validate => l_validate
198 ,P_EFFECTIVE_DATE => c.p1
199 ,P_DATETRACK_UPDATE_MODE => c.p2
200 ,P_ASSIGNMENT_ID => L_ASSIGNMENT_ID
201 ,P_CHANGE_REASON => c.p3
202 ,P_OBJECT_VERSION_NUMBER => L_OBJECT_VERSION_NUMBER
203 ,P_ASSIGNMENT_STATUS_TYPE_ID => L_ASSIGNMENT_STATUS_TYPE_ID
204 ,P_EFFECTIVE_START_DATE => c.p4
205 ,P_EFFECTIVE_END_DATE => c.p5);
206 hr_data_pump.api_trc_off;
207 
208 --
209 update hr_pump_batch_lines l set
210 l.pval004 = decode(c.p4,null,cn,dc(c.p4)),
211 l.pval005 = decode(c.p5,null,cn,dc(c.p5))
212 where l.rowid = c.myrowid;
213 --
214 close cr;
215 --
216 hr_data_pump.exit('call');
217 exception
218  when hr_multi_message.error_message_exist then
219    if cr%isopen then
220     close cr;
221    end if;
222    hr_pump_utils.set_multi_msg_error_flag(true);
223  when others then
224  if cr%isopen then
225   close cr;
226  end if;
227  raise;
228 end call;
229 end hrdpp_SUSPEND_EMP_ASG;