[Home] [Help]
PACKAGE BODY: APPS.IRC_REC_TEAM_MEMBERS_SWI
Source
1 Package Body irc_rec_team_members_swi As
2 /* $Header: irrtmswi.pkb 120.3.12010000.2 2008/09/05 10:10:34 pvelugul ship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'irc_rec_team_members_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |------------------------< create_rec_team_member >------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_rec_team_member
12 (p_validate in number default hr_api.g_false_num
13 ,p_rec_team_member_id in number
14 ,p_person_id in number
15 ,p_vacancy_id in number
16 ,p_job_id in number default null
17 ,p_start_date in date default null
18 ,p_end_date in date default null
19 ,p_update_allowed in varchar2 default null
20 ,p_delete_allowed in varchar2 default null
21 ,p_interview_security in varchar2 default 'SELF'
22 ,p_object_version_number out nocopy number
23 ,p_return_status out nocopy varchar2
24 ) is
25 --
26 -- Variables for API Boolean parameters
27 l_validate boolean;
28 l_rec_team_member_id number;
29 --
30 -- Variables for IN/OUT parameters
31 --
32 -- Other variables
33 l_proc varchar2(72) := g_package ||'create_rec_team_member';
34 Begin
35 hr_utility.set_location(' Entering:' || l_proc,10);
36 --
37 -- Issue a savepoint
38 --
39 savepoint create_rec_team_member_swi;
40 --
41 -- Initialise Multiple Message Detection
42 --
43 hr_multi_message.enable_message_list;
44 --
45 -- Remember IN OUT parameter IN values
46 --
47 --
48 -- Convert constant values to their corresponding boolean value
49 --
50 l_validate :=
51 hr_api.constant_to_boolean
52 (p_constant_value => p_validate);
53 --
54 -- Register Surrogate ID or user key values
55 --
56 irc_rtm_ins.set_base_key_value
57 (p_rec_team_member_id => p_rec_team_member_id
58 );
59 --
60 -- Call API
61 --
62 irc_rec_team_members_api.create_rec_team_member
63 (p_validate => l_validate
64 ,p_rec_team_member_id => l_rec_team_member_id
65 ,p_person_id => p_person_id
66 ,p_vacancy_id => p_vacancy_id
67 ,p_job_id => p_job_id
68 ,p_start_date => p_start_date
69 ,p_end_date => p_end_date
70 ,p_update_allowed => p_update_allowed
71 ,p_delete_allowed => p_delete_allowed
72 ,p_interview_security => p_interview_security
73 ,p_object_version_number => p_object_version_number
74 );
75 --
76 -- Convert API warning boolean parameter values to specific
77 -- messages and add them to Multiple Message List
78 --
79 --
80 -- Convert API non-warning boolean parameter values
81 --
82 --
83 -- Derive the API return status value based on whether
84 -- messages of any type exist in the Multiple Message List.
85 -- Also disable Multiple Message Detection.
86 --
87 p_return_status := hr_multi_message.get_return_status_disable;
88 hr_utility.set_location(' Leaving:' || l_proc,20);
89 --
90 exception
91 when hr_multi_message.error_message_exist then
92 --
93 -- Catch the Multiple Message List exception which
94 -- indicates API processing has been aborted because
95 -- at least one error message exists in the list.
96 --
97 rollback to create_rec_team_member_swi;
98 --
99 -- Reset IN OUT paramters and set OUT parameters
100 --
101 p_object_version_number := null;
102 p_return_status := hr_multi_message.get_return_status_disable;
103 hr_utility.set_location(' Leaving:' || l_proc,30);
104 when others then
105 --
106 -- When Multiple Message Detection is enabled catch
107 -- any Application specific or other unexpected
108 -- exceptions. Adding appropriate details to the
109 -- Multiple Message List. Otherwise re-raise
110 -- the error.
111 --
112 rollback to create_rec_team_member_swi;
113 if hr_multi_message.unexpected_error_add(l_proc) then
114 hr_utility.set_location(' Leaving:' || l_proc, 40);
115 raise;
116 end if;
117 --
118 -- Reset IN OUT parameters and set OUT parameters
119 --
120 p_object_version_number := null;
121 p_return_status := hr_multi_message.get_return_status_disable;
122 hr_utility.set_location(' Leaving: ' || l_proc, 50);
123 end create_rec_team_member;
124 -- ----------------------------------------------------------------------------
125 -- |------------------------< delete_rec_team_member >------------------------|
126 -- ----------------------------------------------------------------------------
127 PROCEDURE delete_rec_team_member
128 (p_validate in number default hr_api.g_false_num
129 ,p_rec_team_member_id in number
130 ,p_object_version_number in number
131 ,p_return_status out nocopy varchar2
132 ) is
133 --
134 -- Variables for API Boolean parameters
135 l_validate boolean;
136 --
137 -- Variables for IN/OUT parameters
138 --
139 -- Other variables
140 l_proc varchar2(72) := g_package ||'delete_rec_team_member';
141 l_object_version_number irc_rec_team_members.object_version_number%TYPE;
142
143 cursor get_object_version_number(p_rec_team_member_id irc_rec_team_members.rec_team_member_id%TYPE) is
144 select object_version_number
145 from irc_rec_team_members
146 where rec_team_member_id = p_rec_team_member_id;
147
148 Begin
149 hr_utility.set_location(' Entering:' || l_proc,10);
150 --
151 -- Issue a savepoint
152 --
153 savepoint delete_rec_team_member_swi;
154 --
155 -- Initialise Multiple Message Detection
156 --
157 hr_multi_message.enable_message_list;
158 --
159 -- Remember IN OUT parameter IN values
160 --
161 --
162 -- Convert constant values to their corresponding boolean value
163 --
164 l_validate :=
165 hr_api.constant_to_boolean
166 (p_constant_value => p_validate);
167 --
168 -- Register Surrogate ID or user key values
169 --
170 --
171 -- Call API
172 --
173 l_object_version_number := p_object_version_number;
174 if(p_object_version_number is null or p_object_version_number < 0) then
175 open get_object_version_number(p_rec_team_member_id);
176 fetch get_object_version_number into l_object_version_number;
177 close get_object_version_number;
178 end if;
179 --
180 irc_rec_team_members_api.delete_rec_team_member
181 (p_validate => l_validate
182 ,p_rec_team_member_id => p_rec_team_member_id
183 ,p_object_version_number => l_object_version_number
184 );
185 --
186 -- Convert API warning boolean parameter values to specific
187 -- messages and add them to Multiple Message List
188 --
189 --
190 -- Convert API non-warning boolean parameter values
191 --
192 --
193 -- Derive the API return status value based on whether
194 -- messages of any type exist in the Multiple Message List.
195 -- Also disable Multiple Message Detection.
196 --
197 p_return_status := hr_multi_message.get_return_status_disable;
198 hr_utility.set_location(' Leaving:' || l_proc,20);
199 --
200 exception
201 when hr_multi_message.error_message_exist then
202 --
203 -- Catch the Multiple Message List exception which
204 -- indicates API processing has been aborted because
205 -- at least one error message exists in the list.
206 --
207 rollback to delete_rec_team_member_swi;
208 --
209 -- Reset IN OUT paramters and set OUT parameters
210 --
211 p_return_status := hr_multi_message.get_return_status_disable;
212 hr_utility.set_location(' Leaving:' || l_proc,30);
213 when others then
214 --
215 -- When Multiple Message Detection is enabled catch
216 -- any Application specific or other unexpected
217 -- exceptions. Adding appropriate details to the
218 -- Multiple Message List. Otherwise re-raise
219 -- the error.
220 --
221 rollback to delete_rec_team_member_swi;
222 if hr_multi_message.unexpected_error_add(l_proc) then
223 hr_utility.set_location(' Leaving:' || l_proc, 40);
224 raise;
225 end if;
226 --
227 -- Reset IN OUT parameters and set OUT parameters
228 --
229 p_return_status := hr_multi_message.get_return_status_disable;
230 hr_utility.set_location(' Leaving: ' || l_proc, 50);
231 end delete_rec_team_member;
232 -- ----------------------------------------------------------------------------
233 -- |------------------------< update_rec_team_member >------------------------|
234 -- ----------------------------------------------------------------------------
235 PROCEDURE update_rec_team_member
236 (p_validate in number default hr_api.g_false_num
237 ,p_rec_team_member_id in number
238 ,p_person_id in number default hr_api.g_number
239 ,p_party_id in number default hr_api.g_number
240 ,p_vacancy_id in number default hr_api.g_number
241 ,p_object_version_number in out nocopy number
242 ,p_job_id in number default hr_api.g_number
243 ,p_start_date in date default hr_api.g_date
244 ,p_end_date in date default hr_api.g_date
245 ,p_update_allowed in varchar2 default hr_api.g_varchar2
246 ,p_delete_allowed in varchar2 default hr_api.g_varchar2
247 ,p_interview_security in varchar2 default 'SELF'
248 ,p_return_status out nocopy varchar2
249 ) is
250 --
251 -- Variables for API Boolean parameters
252 l_validate boolean;
253 --
254 -- Variables for IN/OUT parameters
255 l_object_version_number number;
256 --
257 -- Other variables
258 l_proc varchar2(72) := g_package ||'update_rec_team_member';
259 Begin
260 hr_utility.set_location(' Entering:' || l_proc,10);
261 --
262 -- Issue a savepoint
263 --
264 savepoint update_rec_team_member_swi;
265 --
266 -- Initialise Multiple Message Detection
267 --
268 hr_multi_message.enable_message_list;
269 --
270 -- Remember IN OUT parameter IN values
271 --
272 l_object_version_number := p_object_version_number;
273 --
274 -- Convert constant values to their corresponding boolean value
275 --
276 l_validate :=
277 hr_api.constant_to_boolean
278 (p_constant_value => p_validate);
279 --
280 -- Register Surrogate ID or user key values
281 --
282 --
283 -- Call API
284 --
285 irc_rec_team_members_api.update_rec_team_member
286 (p_validate => l_validate
287 ,p_rec_team_member_id => p_rec_team_member_id
288 ,p_person_id => p_person_id
289 ,p_object_version_number => p_object_version_number
290 ,p_job_id => p_job_id
291 ,p_party_id => p_party_id
292 ,p_vacancy_id => p_vacancy_id
293 ,p_start_date => p_start_date
294 ,p_end_date => p_end_date
295 ,p_update_allowed => p_update_allowed
296 ,p_delete_allowed => p_delete_allowed
297 ,p_interview_security => p_interview_security
298 );
299 --
300 -- Convert API warning boolean parameter values to specific
301 -- messages and add them to Multiple Message List
302 --
303 --
304 -- Convert API non-warning boolean parameter values
305 --
306 --
307 -- Derive the API return status value based on whether
308 -- messages of any type exist in the Multiple Message List.
309 -- Also disable Multiple Message Detection.
310 --
311 p_return_status := hr_multi_message.get_return_status_disable;
312 hr_utility.set_location(' Leaving:' || l_proc,20);
313 --
314 exception
315 when hr_multi_message.error_message_exist then
316 --
317 -- Catch the Multiple Message List exception which
318 -- indicates API processing has been aborted because
319 -- at least one error message exists in the list.
320 --
321 rollback to update_rec_team_member_swi;
322 --
323 -- Reset IN OUT paramters and set OUT parameters
324 --
325 p_object_version_number := l_object_version_number;
326 p_return_status := hr_multi_message.get_return_status_disable;
327 hr_utility.set_location(' Leaving:' || l_proc,30);
328 when others then
329 --
330 -- When Multiple Message Detection is enabled catch
331 -- any Application specific or other unexpected
332 -- exceptions. Adding appropriate details to the
333 -- Multiple Message List. Otherwise re-raise
334 -- the error.
335 --
336 rollback to update_rec_team_member_swi;
337 if hr_multi_message.unexpected_error_add(l_proc) then
338 hr_utility.set_location(' Leaving:' || l_proc, 40);
339 raise;
340 end if;
341 --
342 -- Reset IN OUT parameters and set OUT parameters
343 --
344 p_object_version_number := l_object_version_number;
345 p_return_status := hr_multi_message.get_return_status_disable;
346 hr_utility.set_location(' Leaving: ' || l_proc, 50);
347 end update_rec_team_member;
348 --
349 -- ----------------------------------------------------------------------------
350 -- |----------------------------< process_api >-------------------------------|
351 -- ----------------------------------------------------------------------------
352
353 procedure process_api
354 (
355 p_document in CLOB
356 ,p_return_status out nocopy VARCHAR2
357 ,p_validate in number default hr_api.g_false_num
358 ,p_effective_date in date default null
359 )
360 IS
361 l_postState VARCHAR2(2);
362 l_return_status VARCHAR2(1);
363 l_object_version_number number;
364 l_rec_team_member_id number;
365 l_commitElement xmldom.DOMElement;
366 l_parser xmlparser.Parser;
367 l_CommitNode xmldom.DOMNode;
368
369 l_proc varchar2(72) := g_package || 'process_offers_api';
370 l_effective_date date := trunc(sysdate);
371
372 BEGIN
373 --
374 hr_utility.set_location(' Entering:' || l_proc,10);
375 hr_utility.set_location(' CLOB --> xmldom.DOMNode:' || l_proc,15);
376 --
377 l_parser := xmlparser.newParser;
378 xmlparser.ParseCLOB(l_parser,p_document);
379 l_CommitNode := xmldom.makeNode(xmldom.getDocumentElement(xmlparser.getDocument(l_parser)));
380 --
381 hr_utility.set_location('Extracting the PostState:' || l_proc,20);
382
383 l_commitElement := xmldom.makeElement(l_CommitNode);
384 l_postState := xmldom.getAttribute(l_commitElement, 'PS');
385 --
386 --Get the values for in/out parameters
387 --
388 l_object_version_number := hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectVersionNumber');
389 l_rec_team_member_id := hr_transaction_swi.getNumberValue(l_CommitNode,'RecTeamMemberId');
390 --
391 if p_effective_date is null then
392 l_effective_date := trunc(sysdate);
393 else
394 l_effective_date := p_effective_date;
395 end if;
396 --
397 if l_postState = '0' then
398 --
399 hr_utility.set_location('creating :' || l_proc,30);
400 --
401 create_rec_team_member
402 (p_validate => p_validate
403 ,p_rec_team_member_id => l_rec_team_member_id
404 ,p_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PersonId',NULL)
405 ,p_vacancy_id => hr_transaction_swi.getNumberValue(l_CommitNode,'VacancyId',NULL)
406 ,p_job_id => hr_transaction_swi.getNumberValue(l_CommitNode,'JobId',NULL)
407 ,p_start_date => hr_transaction_swi.getDateValue(l_CommitNode,'StartDate',NULL)
408 ,p_end_date => hr_transaction_swi.getDateValue(l_CommitNode,'EndDate',NULL)
409 ,p_update_allowed => hr_transaction_swi.getVarchar2Value(l_CommitNode,'UpdateAllowed',NULL)
410 ,p_delete_allowed => hr_transaction_swi.getVarchar2Value(l_CommitNode,'DeleteAllowed',NULL)
411 ,p_interview_security => hr_transaction_swi.getVarchar2Value(l_CommitNode,'InterviewSecurity',NULL)
412 ,p_object_version_number => l_object_version_number
413 ,p_return_status => l_return_status
414 );
415 --
416 elsif l_postState = '2' then
417 --
418 hr_utility.set_location('updating :' || l_proc,32);
419 --
420 update_rec_team_member
421 (p_validate => p_validate
422 ,p_rec_team_member_id => l_rec_team_member_id
423 ,p_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PersonId',NULL)
424 ,p_party_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PartyId',NULL)
425 ,p_vacancy_id => hr_transaction_swi.getNumberValue(l_CommitNode,'VacancyId',NULL)
426 ,p_job_id => hr_transaction_swi.getNumberValue(l_CommitNode,'JobId',NULL)
427 ,p_start_date => hr_transaction_swi.getDateValue(l_CommitNode,'StartDate',NULL)
428 ,p_end_date => hr_transaction_swi.getDateValue(l_CommitNode,'EndDate',NULL)
429 ,p_update_allowed => hr_transaction_swi.getVarchar2Value(l_CommitNode,'UpdateAllowed',NULL)
430 ,p_delete_allowed => hr_transaction_swi.getVarchar2Value(l_CommitNode,'DeleteAllowed',NULL)
431 ,p_interview_security => hr_transaction_swi.getVarchar2Value(l_CommitNode,'InterviewSecurity',NULL)
432 ,p_object_version_number => l_object_version_number
433 ,p_return_status => l_return_status
434 );
435 --
436 elsif l_postState = '3' then
437 --
438 hr_utility.set_location('deleting :' || l_proc,33);
439 --
440 delete_rec_team_member
441 (p_validate => p_validate
442 ,p_object_version_number => l_object_version_number
443 ,p_rec_team_member_id => l_rec_team_member_id
444 ,p_return_status => l_return_status
445 );
446 --
447 end if;
448
449 p_return_status := l_return_status;
450
451 hr_utility.set_location
452 ('Exiting :'|| l_proc || ': return status :'|| l_return_status || ':',40);
453
454 end process_api;
455 --
456 end irc_rec_team_members_swi;