[Home] [Help]
PACKAGE BODY: APPS.PER_RECRUITMENT_ACTIVITY_SWI
Source
1 Package Body per_recruitment_activity_swi As
2 /* $Header: peraaswi.pkb 120.2 2006/12/19 01:19:14 gjaggava noship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'per_recruitment_activity_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |----------------------< create_recruitment_activity >---------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_recruitment_activity
12 (p_validate in number default hr_api.g_false_num
13 ,p_business_group_id in number
14 ,p_date_start in date
15 ,p_name in varchar2
16 ,p_authorising_person_id in number default null
17 ,p_run_by_organization_id in number default null
18 ,p_internal_contact_person_id in number default null
19 ,p_parent_recruitment_activity in number default null
20 ,p_currency_code in varchar2 default null
21 ,p_actual_cost in varchar2 default null
22 ,p_comments in long default null
23 ,p_contact_telephone_number in varchar2 default null
24 ,p_date_closing in date default null
25 ,p_date_end in date default null
26 ,p_external_contact in varchar2 default null
27 ,p_planned_cost in varchar2 default null
28 ,p_recruiting_site_id in number default null
29 ,p_recruiting_site_response in varchar2 default null
30 ,p_last_posted_date in date default null
31 ,p_type in varchar2 default null
32 ,p_attribute_category in varchar2 default null
33 ,p_attribute1 in varchar2 default null
34 ,p_attribute2 in varchar2 default null
35 ,p_attribute3 in varchar2 default null
36 ,p_attribute4 in varchar2 default null
37 ,p_attribute5 in varchar2 default null
38 ,p_attribute6 in varchar2 default null
39 ,p_attribute7 in varchar2 default null
40 ,p_attribute8 in varchar2 default null
41 ,p_attribute9 in varchar2 default null
42 ,p_attribute10 in varchar2 default null
43 ,p_attribute11 in varchar2 default null
44 ,p_attribute12 in varchar2 default null
45 ,p_attribute13 in varchar2 default null
46 ,p_attribute14 in varchar2 default null
47 ,p_attribute15 in varchar2 default null
48 ,p_attribute16 in varchar2 default null
49 ,p_attribute17 in varchar2 default null
50 ,p_attribute18 in varchar2 default null
51 ,p_attribute19 in varchar2 default null
52 ,p_attribute20 in varchar2 default null
53 ,p_posting_content_id in number default null
54 ,p_status in varchar2 default null
55 ,p_object_version_number out nocopy number
56 ,p_recruitment_activity_id in number
57 ,p_return_status out nocopy varchar2
58 ) is
59 --
60 -- Variables for API Boolean parameters
61 l_validate boolean;
62 --
63 -- Variables for IN/OUT parameters
64 --
65 -- Other variables
66 l_recruitment_activity_id number;
67 l_proc varchar2(72) := g_package ||'create_recruitment_activity';
68 Begin
69 hr_utility.set_location(' Entering:' || l_proc,10);
70 --
71 -- Issue a savepoint
72 --
73 savepoint create_rec_activity_swi;
74 --
75 -- Initialise Multiple Message Detection
76 --
77 hr_multi_message.enable_message_list;
78 --
79 -- Remember IN OUT parameter IN values
80 --
81 --
82 -- Convert constant values to their corresponding boolean value
83 --
84 l_validate :=
85 hr_api.constant_to_boolean
86 (p_constant_value => p_validate);
87 --
88 -- Register Surrogate ID or user key values
89 --
90 per_raa_ins.set_base_key_value
91 (p_recruitment_activity_id => p_recruitment_activity_id
92 );
93 --
94 -- Call API
95 --
96 per_recruitment_activity_api.create_recruitment_activity
97 (p_validate => l_validate
98 ,p_business_group_id => p_business_group_id
99 ,p_date_start => p_date_start
100 ,p_name => p_name
101 ,p_authorising_person_id => p_authorising_person_id
102 ,p_run_by_organization_id => p_run_by_organization_id
103 ,p_internal_contact_person_id => p_internal_contact_person_id
104 ,p_parent_recruitment_activity => p_parent_recruitment_activity
105 ,p_currency_code => p_currency_code
106 ,p_actual_cost => p_actual_cost
107 ,p_comments => p_comments
108 ,p_contact_telephone_number => p_contact_telephone_number
109 ,p_date_closing => p_date_closing
110 ,p_date_end => p_date_end
111 ,p_external_contact => p_external_contact
112 ,p_planned_cost => p_planned_cost
113 ,p_recruiting_site_id => p_recruiting_site_id
114 ,p_recruiting_site_response => p_recruiting_site_response
115 ,p_last_posted_date => p_last_posted_date
116 ,p_type => p_type
117 ,p_attribute_category => p_attribute_category
118 ,p_attribute1 => p_attribute1
119 ,p_attribute2 => p_attribute2
120 ,p_attribute3 => p_attribute3
121 ,p_attribute4 => p_attribute4
122 ,p_attribute5 => p_attribute5
123 ,p_attribute6 => p_attribute6
124 ,p_attribute7 => p_attribute7
125 ,p_attribute8 => p_attribute8
126 ,p_attribute9 => p_attribute9
127 ,p_attribute10 => p_attribute10
128 ,p_attribute11 => p_attribute11
129 ,p_attribute12 => p_attribute12
130 ,p_attribute13 => p_attribute13
131 ,p_attribute14 => p_attribute14
132 ,p_attribute15 => p_attribute15
133 ,p_attribute16 => p_attribute16
134 ,p_attribute17 => p_attribute17
135 ,p_attribute18 => p_attribute18
136 ,p_attribute19 => p_attribute19
137 ,p_attribute20 => p_attribute20
138 ,p_posting_content_id => p_posting_content_id
139 ,p_status => p_status
140 ,p_object_version_number => p_object_version_number
141 ,p_recruitment_activity_id => l_recruitment_activity_id
142 );
143 --
144 -- Convert API warning boolean parameter values to specific
145 -- messages and add them to Multiple Message List
146 --
147 --
148 -- Convert API non-warning boolean parameter values
149 --
150 --
151 -- Derive the API return status value based on whether
152 -- messages of any type exist in the Multiple Message List.
153 -- Also disable Multiple Message Detection.
154 --
155 p_return_status := hr_multi_message.get_return_status_disable;
156 hr_utility.set_location(' Leaving:' || l_proc,20);
157 --
158 exception
159 when hr_multi_message.error_message_exist then
160 --
161 -- Catch the Multiple Message List exception which
162 -- indicates API processing has been aborted because
163 -- at least one message exists in the list.
164 --
165 rollback to create_rec_activity_swi;
166 --
167 -- Reset IN OUT parameters and set OUT parameters
168 --
169 p_object_version_number := null;
170 p_return_status := hr_multi_message.get_return_status_disable;
171 hr_utility.set_location(' Leaving:' || l_proc, 30);
172 when others then
173 --
174 -- When Multiple Message Detection is enabled catch
175 -- any Application specific or other unexpected
176 -- exceptions. Adding appropriate details to the
177 -- Multiple Message List. Otherwise re-raise the
178 -- error.
179 --
180 rollback to create_rec_activity_swi;
181 if hr_multi_message.unexpected_error_add(l_proc) then
182 hr_utility.set_location(' Leaving:' || l_proc,40);
183 raise;
184 end if;
185 --
186 -- Reset IN OUT and set OUT parameters
187 --
188 p_object_version_number := null;
189 p_return_status := hr_multi_message.get_return_status_disable;
190 hr_utility.set_location(' Leaving:' || l_proc,50);
191 end create_recruitment_activity;
192 -- ----------------------------------------------------------------------------
193 -- |----------------------< delete_recruitment_activity >---------------------|
194 -- ----------------------------------------------------------------------------
195 PROCEDURE delete_recruitment_activity
196 (p_validate in number default hr_api.g_false_num
197 ,p_object_version_number in number
198 ,p_recruitment_activity_id in number
199 ,p_return_status out nocopy varchar2
200 ) is
201 --
202 -- Variables for API Boolean parameters
203 l_validate boolean;
204 --
205 -- Variables for IN/OUT parameters
206 --
207 -- Other variables
208 l_proc varchar2(72) := g_package ||'delete_recruitment_activity';
209 Begin
210 hr_utility.set_location(' Entering:' || l_proc,10);
211 --
212 -- Issue a savepoint
213 --
214 savepoint delete_rec_activity_swi;
215 --
216 -- Initialise Multiple Message Detection
217 --
218 hr_multi_message.enable_message_list;
219 --
220 -- Remember IN OUT parameter IN values
221 --
222 --
223 -- Convert constant values to their corresponding boolean value
224 --
225 l_validate :=
226 hr_api.constant_to_boolean
227 (p_constant_value => p_validate);
228 --
229 -- Register Surrogate ID or user key values
230 --
231 --
232 -- Call API
233 --
234 per_recruitment_activity_api.delete_recruitment_activity
235 (p_validate => l_validate
236 ,p_object_version_number => p_object_version_number
237 ,p_recruitment_activity_id => p_recruitment_activity_id
238 );
239 --
240 -- Convert API warning boolean parameter values to specific
241 -- messages and add them to Multiple Message List
242 --
243 --
244 -- Convert API non-warning boolean parameter values
245 --
246 --
247 -- Derive the API return status value based on whether
248 -- messages of any type exist in the Multiple Message List.
249 -- Also disable Multiple Message Detection.
250 --
251 p_return_status := hr_multi_message.get_return_status_disable;
252 hr_utility.set_location(' Leaving:' || l_proc,20);
253 --
254 exception
255 when hr_multi_message.error_message_exist then
256 --
257 -- Catch the Multiple Message List exception which
258 -- indicates API processing has been aborted because
259 -- at least one message exists in the list.
260 --
261 rollback to delete_rec_activity_swi;
262 --
263 -- Reset IN OUT parameters and set OUT parameters
264 --
265 p_return_status := hr_multi_message.get_return_status_disable;
266 hr_utility.set_location(' Leaving:' || l_proc, 30);
267 when others then
268 --
269 -- When Multiple Message Detection is enabled catch
270 -- any Application specific or other unexpected
271 -- exceptions. Adding appropriate details to the
272 -- Multiple Message List. Otherwise re-raise the
273 -- error.
274 --
275 rollback to delete_rec_activity_swi;
276 if hr_multi_message.unexpected_error_add(l_proc) then
277 hr_utility.set_location(' Leaving:' || l_proc,40);
278 raise;
279 end if;
280 --
281 -- Reset IN OUT and set OUT parameters
282 --
283 p_return_status := hr_multi_message.get_return_status_disable;
284 hr_utility.set_location(' Leaving:' || l_proc,50);
285 end delete_recruitment_activity;
286 -- ----------------------------------------------------------------------------
287 -- |----------------------< update_recruitment_activity >---------------------|
288 -- ----------------------------------------------------------------------------
289 PROCEDURE update_recruitment_activity
290 (p_validate in number default hr_api.g_false_num
291 ,p_recruitment_activity_id in number
292 ,p_authorising_person_id in number default hr_api.g_number
293 ,p_run_by_organization_id in number default hr_api.g_number
294 ,p_internal_contact_person_id in number default hr_api.g_number
295 ,p_parent_recruitment_activity in number default hr_api.g_number
296 ,p_currency_code in varchar2 default hr_api.g_varchar2
297 ,p_date_start in date default hr_api.g_date
298 ,p_name in varchar2 default hr_api.g_varchar2
299 ,p_actual_cost in varchar2 default hr_api.g_varchar2
300 ,p_comments in long default hr_api.g_varchar2
301 ,p_contact_telephone_number in varchar2 default hr_api.g_varchar2
302 ,p_date_closing in date default hr_api.g_date
303 ,p_date_end in date default hr_api.g_date
304 ,p_external_contact in varchar2 default hr_api.g_varchar2
305 ,p_planned_cost in varchar2 default hr_api.g_varchar2
306 ,p_recruiting_site_id in number default hr_api.g_number
307 ,p_recruiting_site_response in varchar2 default hr_api.g_varchar2
308 ,p_last_posted_date in date default hr_api.g_date
309 ,p_type in varchar2 default hr_api.g_varchar2
310 ,p_attribute_category in varchar2 default hr_api.g_varchar2
311 ,p_attribute1 in varchar2 default hr_api.g_varchar2
312 ,p_attribute2 in varchar2 default hr_api.g_varchar2
313 ,p_attribute3 in varchar2 default hr_api.g_varchar2
314 ,p_attribute4 in varchar2 default hr_api.g_varchar2
315 ,p_attribute5 in varchar2 default hr_api.g_varchar2
316 ,p_attribute6 in varchar2 default hr_api.g_varchar2
317 ,p_attribute7 in varchar2 default hr_api.g_varchar2
318 ,p_attribute8 in varchar2 default hr_api.g_varchar2
319 ,p_attribute9 in varchar2 default hr_api.g_varchar2
320 ,p_attribute10 in varchar2 default hr_api.g_varchar2
321 ,p_attribute11 in varchar2 default hr_api.g_varchar2
322 ,p_attribute12 in varchar2 default hr_api.g_varchar2
323 ,p_attribute13 in varchar2 default hr_api.g_varchar2
327 ,p_attribute17 in varchar2 default hr_api.g_varchar2
324 ,p_attribute14 in varchar2 default hr_api.g_varchar2
325 ,p_attribute15 in varchar2 default hr_api.g_varchar2
326 ,p_attribute16 in varchar2 default hr_api.g_varchar2
328 ,p_attribute18 in varchar2 default hr_api.g_varchar2
329 ,p_attribute19 in varchar2 default hr_api.g_varchar2
330 ,p_attribute20 in varchar2 default hr_api.g_varchar2
331 ,p_posting_content_id in number default hr_api.g_number
332 ,p_status in varchar2 default hr_api.g_varchar2
333 ,p_object_version_number in out nocopy number
334 ,p_return_status out nocopy varchar2
335 ) is
336 --
337 -- Variables for API Boolean parameters
338 l_validate boolean;
339 --
340 -- Variables for IN/OUT parameters
341 l_object_version_number number;
342 --
343 -- Other variables
344 l_proc varchar2(72) := g_package ||'update_recruitment_activity';
345 Begin
346 hr_utility.set_location(' Entering:' || l_proc,10);
347 --
348 -- Issue a savepoint
349 --
350 savepoint update_rec_activity_swi;
351 --
352 -- Initialise Multiple Message Detection
353 --
354 hr_multi_message.enable_message_list;
355 --
356 -- Remember IN OUT parameter IN values
357 --
358 l_object_version_number := p_object_version_number;
359 --
360 -- Convert constant values to their corresponding boolean value
361 --
362 l_validate :=
363 hr_api.constant_to_boolean
364 (p_constant_value => p_validate);
365 --
366 -- Register Surrogate ID or user key values
367 --
368 --
369 -- Call API
370 --
371 per_recruitment_activity_api.update_recruitment_activity
372 (p_validate => l_validate
373 ,p_recruitment_activity_id => p_recruitment_activity_id
374 ,p_authorising_person_id => p_authorising_person_id
375 ,p_run_by_organization_id => p_run_by_organization_id
376 ,p_internal_contact_person_id => p_internal_contact_person_id
377 ,p_parent_recruitment_activity => p_parent_recruitment_activity
378 ,p_currency_code => p_currency_code
379 ,p_date_start => p_date_start
380 ,p_name => p_name
381 ,p_actual_cost => p_actual_cost
382 ,p_comments => p_comments
383 ,p_contact_telephone_number => p_contact_telephone_number
384 ,p_date_closing => p_date_closing
385 ,p_date_end => p_date_end
386 ,p_external_contact => p_external_contact
387 ,p_planned_cost => p_planned_cost
388 ,p_recruiting_site_id => p_recruiting_site_id
389 ,p_recruiting_site_response => p_recruiting_site_response
390 ,p_last_posted_date => p_last_posted_date
391 ,p_type => p_type
392 ,p_attribute_category => p_attribute_category
393 ,p_attribute1 => p_attribute1
394 ,p_attribute2 => p_attribute2
395 ,p_attribute3 => p_attribute3
396 ,p_attribute4 => p_attribute4
397 ,p_attribute5 => p_attribute5
398 ,p_attribute6 => p_attribute6
399 ,p_attribute7 => p_attribute7
400 ,p_attribute8 => p_attribute8
401 ,p_attribute9 => p_attribute9
402 ,p_attribute10 => p_attribute10
403 ,p_attribute11 => p_attribute11
404 ,p_attribute12 => p_attribute12
405 ,p_attribute13 => p_attribute13
406 ,p_attribute14 => p_attribute14
407 ,p_attribute15 => p_attribute15
408 ,p_attribute16 => p_attribute16
409 ,p_attribute17 => p_attribute17
410 ,p_attribute18 => p_attribute18
411 ,p_attribute19 => p_attribute19
412 ,p_attribute20 => p_attribute20
413 ,p_posting_content_id => p_posting_content_id
414 ,p_status => p_status
415 ,p_object_version_number => p_object_version_number
416 );
417 --
418 -- Convert API warning boolean parameter values to specific
419 -- messages and add them to Multiple Message List
420 --
421 --
422 -- Convert API non-warning boolean parameter values
423 --
424 --
425 -- Derive the API return status value based on whether
426 -- messages of any type exist in the Multiple Message List.
427 -- Also disable Multiple Message Detection.
428 --
429 p_return_status := hr_multi_message.get_return_status_disable;
430 hr_utility.set_location(' Leaving:' || l_proc,20);
431 --
432 exception
433 when hr_multi_message.error_message_exist then
434 --
435 -- Catch the Multiple Message List exception which
436 -- indicates API processing has been aborted because
437 -- at least one message exists in the list.
438 --
439 rollback to update_rec_activity_swi;
440 --
441 -- Reset IN OUT parameters and set OUT parameters
442 --
446 when others then
443 p_object_version_number := l_object_version_number;
444 p_return_status := hr_multi_message.get_return_status_disable;
445 hr_utility.set_location(' Leaving:' || l_proc, 30);
447 --
448 -- When Multiple Message Detection is enabled catch
449 -- any Application specific or other unexpected
450 -- exceptions. Adding appropriate details to the
451 -- Multiple Message List. Otherwise re-raise the
452 -- error.
453 --
454 rollback to update_rec_activity_swi;
455 if hr_multi_message.unexpected_error_add(l_proc) then
456 hr_utility.set_location(' Leaving:' || l_proc,40);
457 raise;
458 end if;
459 --
460 -- Reset IN OUT and set OUT parameters
461 --
462 p_object_version_number := l_object_version_number;
463 p_return_status := hr_multi_message.get_return_status_disable;
464 hr_utility.set_location(' Leaving:' || l_proc,50);
465 end update_recruitment_activity;
466 --
467 -- ----------------------------------------------------------------------------
468 -- |----------------------------< process_api >-------------------------------|
469 -- ----------------------------------------------------------------------------
470
471 procedure process_api
472 (
473 p_document in CLOB
474 ,p_return_status out nocopy VARCHAR2
475 ,p_validate in number default hr_api.g_false_num
476 ,p_effective_date in date default null
477 )
478 IS
479 l_postState VARCHAR2(2);
480 l_return_status VARCHAR2(1);
481 l_object_version_number number;
482 l_recruitment_activity_id number;
483 l_commitElement xmldom.DOMElement;
484 l_parser xmlparser.Parser;
485 l_CommitNode xmldom.DOMNode;
486
487 l_proc varchar2(72) := g_package || 'process_api';
488 l_effective_date date := trunc(sysdate);
489 l_posting_date date;
490
491 cursor csr_rec_act_for(rec_act_id in number) is
492 select recruitment_activity_for_id, object_version_number
493 from per_recruitment_activity_for
494 where recruitment_activity_id = rec_act_id;
495
496 cursor csr_rec_act_ovn(rec_act_id in number) is
497 select object_version_number
498 from per_recruitment_activities
499 where recruitment_activity_id = rec_act_id;
500
501 BEGIN
502 --
503 hr_utility.set_location(' Entering:' || l_proc,10);
504 hr_utility.set_location(' CLOB --> xmldom.DOMNode:' || l_proc,15);
505 --
506 l_parser := xmlparser.newParser;
507 xmlparser.ParseCLOB(l_parser,p_document);
508 l_CommitNode := xmldom.makeNode(xmldom.getDocumentElement(xmlparser.getDocument(l_parser)));
509 --
510 hr_utility.set_location('Extracting the PostState:' || l_proc,20);
511
512 l_commitElement := xmldom.makeElement(l_CommitNode);
513 l_postState := xmldom.getAttribute(l_commitElement, 'PS');
514 --
515 --Get the values for in/out parameters
516 --
517 l_object_version_number := hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectVersionNumber');
518 l_recruitment_activity_id := hr_transaction_swi.getNumberValue(l_CommitNode,'RecruitmentActivityId');
519 --
520 if p_effective_date is null then
521 l_effective_date := trunc(sysdate);
522 else
523 l_effective_date := p_effective_date;
524 end if;
525 --
526 l_posting_date := get_posting_date
527 ( p_type_flag => hr_transaction_swi.getVarchar2Value(l_CommitNode,'RecruitingSiteType',NULL)
528 , p_current_start_date => hr_transaction_swi.getDateValue(l_CommitNode,'DateStart',NULL)
529 , p_internal_start_date => hr_transaction_swi.getDateValue(l_CommitNode,'InternalStartDate',NULL)
530 , p_dates_editable => hr_transaction_swi.getVarchar2Value(l_CommitNode,'DatesEditable',NULL));
531 --
532 if l_postState = '0' then
533 --
534 hr_utility.set_location('creating :' || l_proc,30);
535 --
536 create_recruitment_activity
537 (p_validate => p_validate
538 ,p_business_group_id => hr_transaction_swi.getNumberValue(l_CommitNode,'BusinessGroupId',NULL)
539 ,p_date_start => l_posting_date
540 ,p_name => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Name',NULL)
541 ,p_date_closing => hr_transaction_swi.getDateValue(l_CommitNode,'DateClosing',NULL)
542 ,p_date_end => hr_transaction_swi.getDateValue(l_CommitNode,'DateEnd',NULL)
543 ,p_recruiting_site_id => hr_transaction_swi.getNumberValue(l_CommitNode,'RecruitingSiteId',NULL)
544 ,p_last_posted_date => hr_transaction_swi.getDateValue(l_CommitNode,'LastPostedDate',NULL)
545 ,p_attribute_category => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory',NULL)
546 ,p_attribute1 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1',NULL)
547 ,p_attribute2 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2',NULL)
548 ,p_attribute3 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3',NULL)
549 ,p_attribute4 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4',NULL)
550 ,p_attribute5 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5',NULL)
554 ,p_attribute9 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9',NULL)
551 ,p_attribute6 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6',NULL)
552 ,p_attribute7 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7',NULL)
553 ,p_attribute8 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8',NULL)
555 ,p_attribute10 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10',NULL)
556 ,p_attribute11 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11',NULL)
557 ,p_attribute12 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12',NULL)
558 ,p_attribute13 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13',NULL)
559 ,p_attribute14 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14',NULL)
560 ,p_attribute15 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15',NULL)
561 ,p_attribute16 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16',NULL)
562 ,p_attribute17 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17',NULL)
563 ,p_attribute18 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18',NULL)
564 ,p_attribute19 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19',NULL)
565 ,p_attribute20 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20',NULL)
566 ,p_posting_content_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PostingContentId',NULL)
567 ,p_recruitment_activity_id => l_recruitment_activity_id
568 ,p_object_version_number => l_object_version_number
569 ,p_return_status => l_return_status
570 );
571 --
572 elsif l_postState = '2' then
573 --
574 hr_utility.set_location('updating :' || l_proc,32);
575 --
576 update_recruitment_activity
577 (p_validate => p_validate
578 ,p_recruitment_activity_id => l_recruitment_activity_id
579 ,p_authorising_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AuthorisingPersonId',NULL)
580 ,p_run_by_organization_id => hr_transaction_swi.getNumberValue(l_CommitNode,'RunByOrganizationId',NULL)
581 ,p_internal_contact_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'InternalContactPersonId',NULL)
582 ,p_parent_recruitment_activity => hr_transaction_swi.getNumberValue(l_CommitNode,'ParentRecruitmentActivity',NULL)
583 ,p_currency_code => hr_transaction_swi.getVarchar2Value(l_CommitNode,'CurrencyCode',NULL)
584 ,p_date_start => l_posting_date
585 ,p_name => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Name',NULL)
586 ,p_actual_cost => hr_transaction_swi.getVarchar2Value(l_CommitNode,'ActualCost',NULL)
587 ,p_contact_telephone_number => hr_transaction_swi.getVarchar2Value(l_CommitNode,'ContactTelephoneNumber',NULL)
588 ,p_date_closing => hr_transaction_swi.getDateValue(l_CommitNode,'DateClosing',NULL)
589 ,p_date_end => hr_transaction_swi.getDateValue(l_CommitNode,'DateEnd',NULL)
590 ,p_external_contact => hr_transaction_swi.getVarchar2Value(l_CommitNode,'ExternalContact',NULL)
591 ,p_planned_cost => hr_transaction_swi.getVarchar2Value(l_CommitNode,'PlannedCost',NULL)
592 ,p_recruiting_site_id => hr_transaction_swi.getNumberValue(l_CommitNode,'RecruitingSiteId',NULL)
593 ,p_recruiting_site_response => hr_transaction_swi.getVarchar2Value(l_CommitNode,'RecruitingSiteResponse',NULL)
594 ,p_last_posted_date => hr_transaction_swi.getDateValue(l_CommitNode,'LastPostedDate',NULL)
595 ,p_type => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Type',NULL)
596 ,p_attribute_category => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory',NULL)
597 ,p_attribute1 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1',NULL)
598 ,p_attribute2 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2',NULL)
599 ,p_attribute3 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3',NULL)
600 ,p_attribute4 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4',NULL)
601 ,p_attribute5 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5',NULL)
602 ,p_attribute6 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6',NULL)
603 ,p_attribute7 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7',NULL)
604 ,p_attribute8 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8',NULL)
605 ,p_attribute9 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9',NULL)
606 ,p_attribute10 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10',NULL)
607 ,p_attribute11 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11',NULL)
608 ,p_attribute12 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12',NULL)
609 ,p_attribute13 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13',NULL)
610 ,p_attribute14 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14',NULL)
611 ,p_attribute15 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15',NULL)
615 ,p_attribute19 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19',NULL)
612 ,p_attribute16 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16',NULL)
613 ,p_attribute17 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17',NULL)
614 ,p_attribute18 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18',NULL)
616 ,p_attribute20 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20',NULL)
617 ,p_posting_content_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PostingContentId',NULL)
618 ,p_status => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Status',NULL)
619 ,p_object_version_number => l_object_version_number
620 ,p_return_status => l_return_status
621 );
622 --
623 elsif l_postState = '3' then
624 --
625 hr_utility.set_location('deleting :' || l_proc,33);
626 --
627 -- delete all child recruitment_activity_for rows before deleting
628 -- the parent entity
629 for rec_act_for in csr_rec_act_for(l_recruitment_activity_id) loop
630 per_rec_activity_for_swi.delete_rec_activity_for
631 (p_validate => p_validate
632 ,p_object_version_number => rec_act_for.object_version_number
633 ,p_rec_activity_for_id => rec_act_for.recruitment_activity_for_id
634 ,p_return_status => l_return_status
635 );
636 end loop;
637
638 -- the following if block is a work around for SSHR bug 5353275
639 if l_object_version_number = hr_api.g_number then
640 hr_utility.set_location('OVN is NULL for delete ' || l_proc, 36);
641 open csr_rec_act_ovn(l_recruitment_activity_id);
642 fetch csr_rec_act_ovn into l_object_version_number;
643 close csr_rec_act_ovn;
644 end if;
645 --
646 delete_recruitment_activity
647 (p_validate => p_validate
648 ,p_object_version_number => l_object_version_number
649 ,p_recruitment_activity_id => l_recruitment_activity_id
650 ,p_return_status => l_return_status
651 );
652 --
653 end if;
654
655 p_return_status := l_return_status;
656
657 hr_utility.set_location
658 ('Exiting :'|| l_proc || ': return status :'|| l_return_status || ':',40);
659
660 end process_api;
661 --
662
663
664
665
666 --
667 -- If the start date of the external posting was not enterable
668 -- because the IRC: Internal Posting Days profile option was set then
669 -- the start date of the external posting will be set to be that
670 -- number of days after the start date of the internal posting.
671 --
672 -- find the internal site and determine any correction to
673 -- the start date required
674 --
675 -- If the start date of the internal posting is before the approval date then
676 -- the start date of the internal posting will be moved to the approval date
677 -- the start date of the external posting will be moved by the same amount.
678 --
679 function get_posting_date
680 (p_type_flag varchar2, p_current_start_date date,
681 p_internal_start_date date, p_dates_editable varchar2)
682 return date is
683 --
684 return_date date;
685 --
686 begin
687 --
688 hr_utility.trace('Entering get_posting_date');
689 --
690 return_date := p_current_start_date;
691 --
692 if (p_type_flag = 'I' AND p_current_start_date < sysdate() AND p_dates_editable = 'Y') then
693 --
694 hr_utility.trace('Moving internal date to approval date');
695 --
696 return_date := sysdate;
697 end if;
698 --
699 if (p_type_flag = 'X') then
700 if (p_dates_editable = 'N') then
701 --
702 hr_utility.trace('External date not editable - moving to internal date plus posting days');
703 --
704 return_date := p_internal_start_date + get_internal_posting_days();
705 else
706 --
707 hr_utility.trace('Dates Editable');
708 --
709 if (p_type_flag = 'X' AND p_current_start_date < sysdate()) then
710 --
711 hr_utility.trace('moving external date');
712 --
713 return_date := p_current_start_date + (sysdate - p_internal_start_date);
714 end if;
715 end if;
716 end if;
717 --
718 hr_utility.trace('Exiting get_posting_date returning :' || to_char(return_date) || ':');
719 --
720 return return_date;
721 --
722 end get_posting_date;
723 --
724 ----------------------------------------------------------
725 FUNCTION get_internal_posting_days return number IS
726 --
727 number_of_days varchar2(10);
728 --
729 BEGIN
730 --
731 hr_utility.trace('Entering get_internal_posting_days');
732 --
733 number_of_days := fnd_profile.value('IRC_INTERNAL_POSTING_DAYS');
734
735 if (number_of_days is null) then
736 hr_utility.trace('Number of days is null - returning -1');
737 return -1;
738 else
739 hr_utility.trace('Returning number of days as :' || number_of_days || ':');
740 return to_number(number_of_days);
741 end if;
742 --
743 END get_internal_posting_days;
744 --
745 --
746 ----------------------------------------------------------
747 end per_recruitment_activity_swi;