[Home] [Help]
PACKAGE BODY: APPS.HR_EMPLOYEE_SWI
Source
1 Package Body hr_employee_swi As
2 /* $Header: hrempswi.pkb 120.1 2005/09/13 15:04:00 ndorai noship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'hr_employee_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |----------------------------< create_employee >---------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_employee
12 (p_validate in number default hr_api.g_false_num
13 ,p_hire_date in date
14 ,p_business_group_id in number
15 ,p_last_name in varchar2
16 ,p_sex in varchar2
17 ,p_person_type_id in number default null
18 ,p_per_comments in varchar2 default null
19 ,p_date_employee_data_verified in date default null
20 ,p_date_of_birth in date default null
21 ,p_email_address in varchar2 default null
22 ,p_employee_number in out nocopy varchar2
23 ,p_expense_check_send_to_addres in varchar2 default null
24 ,p_first_name in varchar2 default null
25 ,p_known_as in varchar2 default null
26 ,p_marital_status in varchar2 default null
27 ,p_middle_names in varchar2 default null
28 ,p_nationality in varchar2 default null
29 ,p_national_identifier in varchar2 default null
30 ,p_previous_last_name in varchar2 default null
31 ,p_registered_disabled_flag in varchar2 default null
32 ,p_title in varchar2 default null
33 ,p_vendor_id in number default null
34 ,p_work_telephone in varchar2 default null
35 ,p_attribute_category in varchar2 default null
36 ,p_attribute1 in varchar2 default null
37 ,p_attribute2 in varchar2 default null
38 ,p_attribute3 in varchar2 default null
39 ,p_attribute4 in varchar2 default null
40 ,p_attribute5 in varchar2 default null
41 ,p_attribute6 in varchar2 default null
42 ,p_attribute7 in varchar2 default null
43 ,p_attribute8 in varchar2 default null
44 ,p_attribute9 in varchar2 default null
45 ,p_attribute10 in varchar2 default null
46 ,p_attribute11 in varchar2 default null
47 ,p_attribute12 in varchar2 default null
48 ,p_attribute13 in varchar2 default null
49 ,p_attribute14 in varchar2 default null
50 ,p_attribute15 in varchar2 default null
51 ,p_attribute16 in varchar2 default null
52 ,p_attribute17 in varchar2 default null
53 ,p_attribute18 in varchar2 default null
54 ,p_attribute19 in varchar2 default null
55 ,p_attribute20 in varchar2 default null
56 ,p_attribute21 in varchar2 default null
57 ,p_attribute22 in varchar2 default null
58 ,p_attribute23 in varchar2 default null
59 ,p_attribute24 in varchar2 default null
60 ,p_attribute25 in varchar2 default null
61 ,p_attribute26 in varchar2 default null
62 ,p_attribute27 in varchar2 default null
63 ,p_attribute28 in varchar2 default null
64 ,p_attribute29 in varchar2 default null
65 ,p_attribute30 in varchar2 default null
66 ,p_per_information_category in varchar2 default null
67 ,p_per_information1 in varchar2 default null
68 ,p_per_information2 in varchar2 default null
69 ,p_per_information3 in varchar2 default null
70 ,p_per_information4 in varchar2 default null
71 ,p_per_information5 in varchar2 default null
72 ,p_per_information6 in varchar2 default null
73 ,p_per_information7 in varchar2 default null
74 ,p_per_information8 in varchar2 default null
75 ,p_per_information9 in varchar2 default null
76 ,p_per_information10 in varchar2 default null
77 ,p_per_information11 in varchar2 default null
78 ,p_per_information12 in varchar2 default null
79 ,p_per_information13 in varchar2 default null
80 ,p_per_information14 in varchar2 default null
81 ,p_per_information15 in varchar2 default null
82 ,p_per_information16 in varchar2 default null
83 ,p_per_information17 in varchar2 default null
84 ,p_per_information18 in varchar2 default null
85 ,p_per_information19 in varchar2 default null
86 ,p_per_information20 in varchar2 default null
87 ,p_per_information21 in varchar2 default null
88 ,p_per_information22 in varchar2 default null
89 ,p_per_information23 in varchar2 default null
90 ,p_per_information24 in varchar2 default null
91 ,p_per_information25 in varchar2 default null
92 ,p_per_information26 in varchar2 default null
93 ,p_per_information27 in varchar2 default null
94 ,p_per_information28 in varchar2 default null
95 ,p_per_information29 in varchar2 default null
96 ,p_per_information30 in varchar2 default null
97 ,p_date_of_death in date default null
98 ,p_background_check_status in varchar2 default null
99 ,p_background_date_check in date default null
100 ,p_blood_type in varchar2 default null
101 ,p_correspondence_language in varchar2 default null
102 ,p_fast_path_employee in varchar2 default null
103 ,p_fte_capacity in number default null
104 ,p_honors in varchar2 default null
105 ,p_internal_location in varchar2 default null
106 ,p_last_medical_test_by in varchar2 default null
107 ,p_last_medical_test_date in date default null
108 ,p_mailstop in varchar2 default null
109 ,p_office_number in varchar2 default null
110 ,p_on_military_service in varchar2 default null
111 ,p_pre_name_adjunct in varchar2 default null
112 ,p_projected_start_date in date default null
113 ,p_resume_exists in varchar2 default null
114 ,p_resume_last_updated in date default null
115 ,p_second_passport_exists in varchar2 default null
116 ,p_student_status in varchar2 default null
117 ,p_work_schedule in varchar2 default null
118 ,p_suffix in varchar2 default null
119 ,p_benefit_group_id in number default null
120 ,p_receipt_of_death_cert_date in date default null
121 ,p_coord_ben_med_pln_no in varchar2 default null
122 ,p_coord_ben_no_cvg_flag in varchar2 default null
123 ,p_coord_ben_med_ext_er in varchar2 default null
124 ,p_coord_ben_med_pl_name in varchar2 default null
125 ,p_coord_ben_med_insr_crr_name in varchar2 default null
126 ,p_coord_ben_med_insr_crr_ident in varchar2 default null
127 ,p_coord_ben_med_cvg_strt_dt in date default null
128 ,p_coord_ben_med_cvg_end_dt in date default null
129 ,p_uses_tobacco_flag in varchar2 default null
130 ,p_dpdnt_adoption_date in date default null
131 ,p_dpdnt_vlntry_svce_flag in varchar2 default null
132 ,p_original_date_of_hire in date default null
133 ,p_adjusted_svc_date in date default null
134 ,p_town_of_birth in varchar2 default null
135 ,p_region_of_birth in varchar2 default null
136 ,p_country_of_birth in varchar2 default null
137 ,p_global_person_id in varchar2 default null
138 ,p_party_id in number default null
139 ,p_person_id out nocopy number
140 ,p_assignment_id out nocopy number
141 ,p_per_object_version_number out nocopy number
142 ,p_asg_object_version_number out nocopy number
143 ,p_per_effective_start_date out nocopy date
144 ,p_per_effective_end_date out nocopy date
145 ,p_full_name out nocopy varchar2
146 ,p_per_comment_id out nocopy number
147 ,p_assignment_sequence out nocopy number
148 ,p_assignment_number out nocopy varchar2
149 ,p_return_status out nocopy varchar2
150 ) is
151 --
152 -- Variables for API Boolean parameters
153 l_validate boolean;
154 l_name_combination_warning boolean;
155 l_assign_payroll_warning boolean;
156 l_orig_hire_warning boolean;
157 --
158 -- Variables for IN/OUT parameters
159 l_employee_number varchar2(240);
160 --
161 -- Other variables
162 l_proc varchar2(72) := g_package ||'create_employee';
163 Begin
164 hr_utility.set_location(' Entering:' || l_proc,10);
165 --
166 -- Issue a savepoint
167 --
168 savepoint create_employee_swi;
169 --
170 -- Initialise Multiple Message Detection
171 --
172 hr_multi_message.enable_message_list;
173 --
174 -- Remember IN OUT parameter IN values
175 --
176 l_employee_number := p_employee_number;
177 --
178 -- Convert constant values to their corresponding boolean value
179 --
180 l_validate :=
181 hr_api.constant_to_boolean
182 (p_constant_value => p_validate);
183 --
184 -- Register Surrogate ID or user key values
185 --
186 --
187 -- Call API
188 --
189 hr_employee_api.create_employee
190 (p_validate => l_validate
191 ,p_hire_date => p_hire_date
192 ,p_business_group_id => p_business_group_id
193 ,p_last_name => p_last_name
194 ,p_sex => p_sex
195 ,p_person_type_id => p_person_type_id
196 ,p_per_comments => p_per_comments
197 ,p_date_employee_data_verified => p_date_employee_data_verified
198 ,p_date_of_birth => p_date_of_birth
199 ,p_email_address => p_email_address
200 ,p_employee_number => p_employee_number
201 ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
202 ,p_first_name => p_first_name
203 ,p_known_as => p_known_as
204 ,p_marital_status => p_marital_status
205 ,p_middle_names => p_middle_names
206 ,p_nationality => p_nationality
207 ,p_national_identifier => p_national_identifier
208 ,p_previous_last_name => p_previous_last_name
209 ,p_registered_disabled_flag => p_registered_disabled_flag
210 ,p_title => p_title
211 ,p_vendor_id => p_vendor_id
212 ,p_work_telephone => p_work_telephone
213 ,p_attribute_category => p_attribute_category
214 ,p_attribute1 => p_attribute1
215 ,p_attribute2 => p_attribute2
216 ,p_attribute3 => p_attribute3
217 ,p_attribute4 => p_attribute4
218 ,p_attribute5 => p_attribute5
219 ,p_attribute6 => p_attribute6
220 ,p_attribute7 => p_attribute7
221 ,p_attribute8 => p_attribute8
222 ,p_attribute9 => p_attribute9
223 ,p_attribute10 => p_attribute10
224 ,p_attribute11 => p_attribute11
225 ,p_attribute12 => p_attribute12
226 ,p_attribute13 => p_attribute13
227 ,p_attribute14 => p_attribute14
228 ,p_attribute15 => p_attribute15
229 ,p_attribute16 => p_attribute16
230 ,p_attribute17 => p_attribute17
231 ,p_attribute18 => p_attribute18
232 ,p_attribute19 => p_attribute19
233 ,p_attribute20 => p_attribute20
234 ,p_attribute21 => p_attribute21
235 ,p_attribute22 => p_attribute22
236 ,p_attribute23 => p_attribute23
237 ,p_attribute24 => p_attribute24
238 ,p_attribute25 => p_attribute25
239 ,p_attribute26 => p_attribute26
240 ,p_attribute27 => p_attribute27
241 ,p_attribute28 => p_attribute28
242 ,p_attribute29 => p_attribute29
243 ,p_attribute30 => p_attribute30
244 ,p_per_information_category => p_per_information_category
245 ,p_per_information1 => p_per_information1
246 ,p_per_information2 => p_per_information2
247 ,p_per_information3 => p_per_information3
248 ,p_per_information4 => p_per_information4
249 ,p_per_information5 => p_per_information5
250 ,p_per_information6 => p_per_information6
251 ,p_per_information7 => p_per_information7
252 ,p_per_information8 => p_per_information8
253 ,p_per_information9 => p_per_information9
254 ,p_per_information10 => p_per_information10
255 ,p_per_information11 => p_per_information11
256 ,p_per_information12 => p_per_information12
257 ,p_per_information13 => p_per_information13
258 ,p_per_information14 => p_per_information14
259 ,p_per_information15 => p_per_information15
260 ,p_per_information16 => p_per_information16
261 ,p_per_information17 => p_per_information17
262 ,p_per_information18 => p_per_information18
263 ,p_per_information19 => p_per_information19
264 ,p_per_information20 => p_per_information20
265 ,p_per_information21 => p_per_information21
266 ,p_per_information22 => p_per_information22
267 ,p_per_information23 => p_per_information23
268 ,p_per_information24 => p_per_information24
269 ,p_per_information25 => p_per_information25
270 ,p_per_information26 => p_per_information26
271 ,p_per_information27 => p_per_information27
272 ,p_per_information28 => p_per_information28
273 ,p_per_information29 => p_per_information29
274 ,p_per_information30 => p_per_information30
275 ,p_date_of_death => p_date_of_death
276 ,p_background_check_status => p_background_check_status
277 ,p_background_date_check => p_background_date_check
278 ,p_blood_type => p_blood_type
279 ,p_correspondence_language => p_correspondence_language
280 ,p_fast_path_employee => p_fast_path_employee
281 ,p_fte_capacity => p_fte_capacity
282 ,p_honors => p_honors
283 ,p_internal_location => p_internal_location
284 ,p_last_medical_test_by => p_last_medical_test_by
285 ,p_last_medical_test_date => p_last_medical_test_date
286 ,p_mailstop => p_mailstop
287 ,p_office_number => p_office_number
288 ,p_on_military_service => p_on_military_service
289 ,p_pre_name_adjunct => p_pre_name_adjunct
290 ,p_projected_start_date => p_projected_start_date
291 ,p_resume_exists => p_resume_exists
292 ,p_resume_last_updated => p_resume_last_updated
293 ,p_second_passport_exists => p_second_passport_exists
294 ,p_student_status => p_student_status
295 ,p_work_schedule => p_work_schedule
296 ,p_suffix => p_suffix
297 ,p_benefit_group_id => p_benefit_group_id
298 ,p_receipt_of_death_cert_date => p_receipt_of_death_cert_date
299 ,p_coord_ben_med_pln_no => p_coord_ben_med_pln_no
300 ,p_coord_ben_no_cvg_flag => p_coord_ben_no_cvg_flag
301 ,p_coord_ben_med_ext_er => p_coord_ben_med_ext_er
302 ,p_coord_ben_med_pl_name => p_coord_ben_med_pl_name
303 ,p_coord_ben_med_insr_crr_name => p_coord_ben_med_insr_crr_name
304 ,p_coord_ben_med_insr_crr_ident => p_coord_ben_med_insr_crr_ident
305 ,p_coord_ben_med_cvg_strt_dt => p_coord_ben_med_cvg_strt_dt
306 ,p_coord_ben_med_cvg_end_dt => p_coord_ben_med_cvg_end_dt
307 ,p_uses_tobacco_flag => p_uses_tobacco_flag
308 ,p_dpdnt_adoption_date => p_dpdnt_adoption_date
309 ,p_dpdnt_vlntry_svce_flag => p_dpdnt_vlntry_svce_flag
310 ,p_original_date_of_hire => p_original_date_of_hire
311 ,p_adjusted_svc_date => p_adjusted_svc_date
312 ,p_town_of_birth => p_town_of_birth
313 ,p_region_of_birth => p_region_of_birth
314 ,p_country_of_birth => p_country_of_birth
315 ,p_global_person_id => p_global_person_id
316 ,p_party_id => p_party_id
317 ,p_person_id => p_person_id
318 ,p_assignment_id => p_assignment_id
319 ,p_per_object_version_number => p_per_object_version_number
320 ,p_asg_object_version_number => p_asg_object_version_number
321 ,p_per_effective_start_date => p_per_effective_start_date
322 ,p_per_effective_end_date => p_per_effective_end_date
323 ,p_full_name => p_full_name
324 ,p_per_comment_id => p_per_comment_id
325 ,p_assignment_sequence => p_assignment_sequence
326 ,p_assignment_number => p_assignment_number
327 ,p_name_combination_warning => l_name_combination_warning
328 ,p_assign_payroll_warning => l_assign_payroll_warning
329 ,p_orig_hire_warning => l_orig_hire_warning
330 );
331 --
332 -- Convert API warning boolean parameter values to specific
333 -- messages and add them to Multiple Message List
334 --
335 if l_name_combination_warning then
336 fnd_message.set_name('PER', 'PER_52076_PER_NULL_LAST_NAME');
337 hr_multi_message.add
338 (p_message_type => hr_multi_message.g_warning_msg
339 );
340 end if;
341 if l_assign_payroll_warning then
342 fnd_message.set_name('PER', 'HR_EMP_ASS_NO_DOB');
343 hr_multi_message.add
344 (p_message_type => hr_multi_message.g_warning_msg
345 );
346 end if;
347 if l_orig_hire_warning then
348 fnd_message.set_name('PER', 'PER_52474_PER_ORIG_ST_DATE');
349 hr_multi_message.add
350 (p_message_type => hr_multi_message.g_warning_msg
351 );
352 end if; --
353 -- Convert API non-warning boolean parameter values
354 --
355 --
356 -- Derive the API return status value based on whether
357 -- messages of any type exist in the Multiple Message List.
358 -- Also disable Multiple Message Detection.
359 --
360 p_return_status := hr_multi_message.get_return_status_disable;
361 hr_utility.set_location(' Leaving:' || l_proc,20);
362 --
363 exception
364 when hr_multi_message.error_message_exist then
365 --
366 -- Catch the Multiple Message List exception which
367 -- indicates API processing has been aborted because
368 -- at least one message exists in the list.
369 --
370 rollback to create_employee_swi;
371 --
372 -- Reset IN OUT parameters and set OUT parameters
373 --
374 p_employee_number := l_employee_number;
375 p_person_id := null;
376 p_assignment_id := null;
377 p_per_object_version_number := null;
378 p_asg_object_version_number := null;
379 p_per_effective_start_date := null;
380 p_per_effective_end_date := null;
381 p_full_name := null;
382 p_per_comment_id := null;
383 p_assignment_sequence := null;
384 p_assignment_number := null;
385 p_return_status := hr_multi_message.get_return_status_disable;
386 hr_utility.set_location(' Leaving:' || l_proc, 30);
387 when others then
388 --
389 -- When Multiple Message Detection is enabled catch
390 -- any Application specific or other unexpected
391 -- exceptions. Adding appropriate details to the
392 -- Multiple Message List. Otherwise re-raise the
393 -- error.
394 --
395 rollback to create_employee_swi;
396 if hr_multi_message.unexpected_error_add(l_proc) then
397 hr_utility.set_location(' Leaving:' || l_proc,40);
398 raise;
399 end if;
400 --
401 -- Reset IN OUT and set OUT parameters
402 --
403 p_employee_number := l_employee_number;
404 p_person_id := null;
405 p_assignment_id := null;
406 p_per_object_version_number := null;
407 p_asg_object_version_number := null;
408 p_per_effective_start_date := null;
409 p_per_effective_end_date := null;
410 p_full_name := null;
411 p_per_comment_id := null;
412 p_assignment_sequence := null;
413 p_assignment_number := null;
414 p_return_status := hr_multi_message.get_return_status_disable;
415 hr_utility.set_location(' Leaving:' || l_proc,50);
416 end create_employee;
417 --
418 -- ----------------------------------------------------------------------------
419 -- |----------------------------< create_employee >---------------------------|
420 -- ----------------------------------------------------------------------------
421 PROCEDURE create_employee
422 (p_validate in number default hr_api.g_false_num
423 ,p_hire_date in date
424 ,p_business_group_id in number
425 ,p_last_name in varchar2
426 ,p_sex in varchar2
427 ,p_person_type_id in number default null
428 ,p_per_comments in varchar2 default null
429 ,p_date_employee_data_verified in date default null
430 ,p_date_of_birth in date default null
431 ,p_email_address in varchar2 default null
432 ,p_employee_number in out nocopy varchar2
433 ,p_expense_check_send_to_addres in varchar2 default null
434 ,p_first_name in varchar2 default null
435 ,p_known_as in varchar2 default null
436 ,p_marital_status in varchar2 default null
437 ,p_middle_names in varchar2 default null
438 ,p_nationality in varchar2 default null
439 ,p_national_identifier in varchar2 default null
440 ,p_previous_last_name in varchar2 default null
441 ,p_registered_disabled_flag in varchar2 default null
442 ,p_title in varchar2 default null
443 ,p_vendor_id in number default null
444 ,p_work_telephone in varchar2 default null
445 ,p_attribute_category in varchar2 default null
446 ,p_attribute1 in varchar2 default null
447 ,p_attribute2 in varchar2 default null
448 ,p_attribute3 in varchar2 default null
449 ,p_attribute4 in varchar2 default null
450 ,p_attribute5 in varchar2 default null
451 ,p_attribute6 in varchar2 default null
452 ,p_attribute7 in varchar2 default null
453 ,p_attribute8 in varchar2 default null
454 ,p_attribute9 in varchar2 default null
455 ,p_attribute10 in varchar2 default null
456 ,p_attribute11 in varchar2 default null
457 ,p_attribute12 in varchar2 default null
458 ,p_attribute13 in varchar2 default null
459 ,p_attribute14 in varchar2 default null
460 ,p_attribute15 in varchar2 default null
461 ,p_attribute16 in varchar2 default null
462 ,p_attribute17 in varchar2 default null
463 ,p_attribute18 in varchar2 default null
464 ,p_attribute19 in varchar2 default null
465 ,p_attribute20 in varchar2 default null
466 ,p_attribute21 in varchar2 default null
467 ,p_attribute22 in varchar2 default null
468 ,p_attribute23 in varchar2 default null
469 ,p_attribute24 in varchar2 default null
470 ,p_attribute25 in varchar2 default null
471 ,p_attribute26 in varchar2 default null
472 ,p_attribute27 in varchar2 default null
473 ,p_attribute28 in varchar2 default null
474 ,p_attribute29 in varchar2 default null
475 ,p_attribute30 in varchar2 default null
476 ,p_per_information_category in varchar2 default null
477 ,p_per_information1 in varchar2 default null
478 ,p_per_information2 in varchar2 default null
479 ,p_per_information3 in varchar2 default null
480 ,p_per_information4 in varchar2 default null
481 ,p_per_information5 in varchar2 default null
482 ,p_per_information6 in varchar2 default null
483 ,p_per_information7 in varchar2 default null
484 ,p_per_information8 in varchar2 default null
485 ,p_per_information9 in varchar2 default null
486 ,p_per_information10 in varchar2 default null
487 ,p_per_information11 in varchar2 default null
488 ,p_per_information12 in varchar2 default null
489 ,p_per_information13 in varchar2 default null
490 ,p_per_information14 in varchar2 default null
491 ,p_per_information15 in varchar2 default null
492 ,p_per_information16 in varchar2 default null
493 ,p_per_information17 in varchar2 default null
494 ,p_per_information18 in varchar2 default null
495 ,p_per_information19 in varchar2 default null
496 ,p_per_information20 in varchar2 default null
497 ,p_per_information21 in varchar2 default null
498 ,p_per_information22 in varchar2 default null
499 ,p_per_information23 in varchar2 default null
500 ,p_per_information24 in varchar2 default null
501 ,p_per_information25 in varchar2 default null
502 ,p_per_information26 in varchar2 default null
503 ,p_per_information27 in varchar2 default null
504 ,p_per_information28 in varchar2 default null
505 ,p_per_information29 in varchar2 default null
506 ,p_per_information30 in varchar2 default null
507 ,p_date_of_death in date default null
508 ,p_background_check_status in varchar2 default null
509 ,p_background_date_check in date default null
510 ,p_blood_type in varchar2 default null
511 ,p_correspondence_language in varchar2 default null
512 ,p_fast_path_employee in varchar2 default null
513 ,p_fte_capacity in number default null
514 ,p_honors in varchar2 default null
515 ,p_internal_location in varchar2 default null
516 ,p_last_medical_test_by in varchar2 default null
517 ,p_last_medical_test_date in date default null
518 ,p_mailstop in varchar2 default null
519 ,p_office_number in varchar2 default null
520 ,p_on_military_service in varchar2 default null
521 ,p_pre_name_adjunct in varchar2 default null
522 ,p_projected_start_date in date default null
523 ,p_resume_exists in varchar2 default null
524 ,p_resume_last_updated in date default null
525 ,p_second_passport_exists in varchar2 default null
526 ,p_student_status in varchar2 default null
527 ,p_work_schedule in varchar2 default null
528 ,p_suffix in varchar2 default null
529 ,p_benefit_group_id in number default null
530 ,p_receipt_of_death_cert_date in date default null
531 ,p_coord_ben_med_pln_no in varchar2 default null
532 ,p_coord_ben_no_cvg_flag in varchar2 default null
533 ,p_coord_ben_med_ext_er in varchar2 default null
534 ,p_coord_ben_med_pl_name in varchar2 default null
535 ,p_coord_ben_med_insr_crr_name in varchar2 default null
536 ,p_coord_ben_med_insr_crr_ident in varchar2 default null
537 ,p_coord_ben_med_cvg_strt_dt in date default null
538 ,p_coord_ben_med_cvg_end_dt in date default null
539 ,p_uses_tobacco_flag in varchar2 default null
540 ,p_dpdnt_adoption_date in date default null
541 ,p_dpdnt_vlntry_svce_flag in varchar2 default null
542 ,p_original_date_of_hire in date default null
543 ,p_adjusted_svc_date in date default null
544 ,p_town_of_birth in varchar2 default null
545 ,p_region_of_birth in varchar2 default null
546 ,p_country_of_birth in varchar2 default null
547 ,p_global_person_id in varchar2 default null
548 ,p_party_id in number default null
549 ,p_person_id out nocopy number
550 ,p_assignment_id out nocopy number
551 ,p_per_object_version_number out nocopy number
552 ,p_asg_object_version_number out nocopy number
553 ,p_per_effective_start_date out nocopy date
554 ,p_per_effective_end_date out nocopy date
555 ,p_full_name out nocopy varchar2
556 ,p_per_comment_id out nocopy number
557 ,p_assignment_sequence out nocopy number
558 ,p_assignment_number out nocopy varchar2
559 ,p_return_status out nocopy varchar2
560 ,p_addr_validate in number default hr_api.g_false_num
561 ,p_addr_effective_date in date
562 ,p_pradd_ovlapval_override in number default null
563 ,p_addr_validate_county in number default null
564 ,p_addr_person_id in number default null
565 ,p_addr_primary_flag in varchar2
566 ,p_addr_style in varchar2
567 ,p_addr_date_from in date
568 ,p_addr_date_to in date default null
569 ,p_addr_address_type in varchar2 default null
570 ,p_addr_comments in long default null
571 ,p_addr_address_line1 in varchar2 default null
572 ,p_addr_address_line2 in varchar2 default null
573 ,p_addr_address_line3 in varchar2 default null
574 ,p_addr_town_or_city in varchar2 default null
575 ,p_addr_region_1 in varchar2 default null
576 ,p_addr_region_2 in varchar2 default null
577 ,p_addr_region_3 in varchar2 default null
578 ,p_addr_postal_code in varchar2 default null
579 ,p_addr_country in varchar2 default null
580 ,p_addr_telephone_number_1 in varchar2 default null
581 ,p_addr_telephone_number_2 in varchar2 default null
582 ,p_addr_telephone_number_3 in varchar2 default null
583 ,p_addr_attribute_category in varchar2 default null
584 ,p_addr_attribute1 in varchar2 default null
585 ,p_addr_attribute2 in varchar2 default null
586 ,p_addr_attribute3 in varchar2 default null
587 ,p_addr_attribute4 in varchar2 default null
588 ,p_addr_attribute5 in varchar2 default null
589 ,p_addr_attribute6 in varchar2 default null
590 ,p_addr_attribute7 in varchar2 default null
591 ,p_addr_attribute8 in varchar2 default null
592 ,p_addr_attribute9 in varchar2 default null
593 ,p_addr_attribute10 in varchar2 default null
594 ,p_addr_attribute11 in varchar2 default null
595 ,p_addr_attribute12 in varchar2 default null
596 ,p_addr_attribute13 in varchar2 default null
597 ,p_addr_attribute14 in varchar2 default null
598 ,p_addr_attribute15 in varchar2 default null
599 ,p_addr_attribute16 in varchar2 default null
600 ,p_addr_attribute17 in varchar2 default null
601 ,p_addr_attribute18 in varchar2 default null
602 ,p_addr_attribute19 in varchar2 default null
603 ,p_addr_attribute20 in varchar2 default null
604 ,p_addr_add_information13 in varchar2 default null
605 ,p_addr_add_information14 in varchar2 default null
606 ,p_addr_add_information15 in varchar2 default null
607 ,p_addr_add_information16 in varchar2 default null
608 ,p_addr_add_information17 in varchar2 default null
609 ,p_addr_add_information18 in varchar2 default null
610 ,p_addr_add_information19 in varchar2 default null
611 ,p_addr_add_information20 in varchar2 default null
612 ,p_addr_party_id in number default null
613 ,p_addr_address_id in number
614 ,p_addr_object_version_number out nocopy number
615 ,p_addr_return_status out nocopy varchar2
616 ) is
617 --
618 -- Variables for API Boolean parameters
619 l_validate boolean;
620 l_name_combination_warning boolean;
621 l_assign_payroll_warning boolean;
622 l_orig_hire_warning boolean;
623 --
624 -- Variables for IN/OUT parameters
625 l_employee_number varchar2(240);
626 l_addr_return_status varchar2(1);
627 l_addr_ovn number(3);
628 --
629 -- Other variables
630 l_proc varchar2(72) := g_package ||'create_employee';
631 --
632 Begin
633 hr_utility.set_location(' Entering:' || l_proc,10);
634 --
635 -- Issue a savepoint
636 --
637 savepoint create_employee_swi;
638 --
639 -- Initialise Multiple Message Detection
640 --
641 hr_multi_message.enable_message_list;
642 --
643 -- Remember IN OUT parameter IN values
644 --
645 l_employee_number := p_employee_number;
646 --
647 -- Convert constant values to their corresponding boolean value
648 --
649 l_validate :=
650 hr_api.constant_to_boolean
651 (p_constant_value => p_validate);
652 --
653 -- Register Surrogate ID or user key values
654 --
655 --
656 -- Call API
657 --
658 hr_employee_api.create_employee
659 (p_validate => l_validate
660 ,p_hire_date => p_hire_date
661 ,p_business_group_id => p_business_group_id
662 ,p_last_name => p_last_name
663 ,p_sex => p_sex
664 ,p_person_type_id => p_person_type_id
665 ,p_per_comments => p_per_comments
666 ,p_date_employee_data_verified => p_date_employee_data_verified
667 ,p_date_of_birth => p_date_of_birth
668 ,p_email_address => p_email_address
669 ,p_employee_number => p_employee_number
670 ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
671 ,p_first_name => p_first_name
672 ,p_known_as => p_known_as
673 ,p_marital_status => p_marital_status
674 ,p_middle_names => p_middle_names
675 ,p_nationality => p_nationality
676 ,p_national_identifier => p_national_identifier
677 ,p_previous_last_name => p_previous_last_name
678 ,p_registered_disabled_flag => p_registered_disabled_flag
679 ,p_title => p_title
680 ,p_vendor_id => p_vendor_id
681 ,p_work_telephone => p_work_telephone
682 ,p_attribute_category => p_attribute_category
683 ,p_attribute1 => p_attribute1
684 ,p_attribute2 => p_attribute2
685 ,p_attribute3 => p_attribute3
686 ,p_attribute4 => p_attribute4
687 ,p_attribute5 => p_attribute5
688 ,p_attribute6 => p_attribute6
689 ,p_attribute7 => p_attribute7
690 ,p_attribute8 => p_attribute8
691 ,p_attribute9 => p_attribute9
692 ,p_attribute10 => p_attribute10
693 ,p_attribute11 => p_attribute11
694 ,p_attribute12 => p_attribute12
695 ,p_attribute13 => p_attribute13
696 ,p_attribute14 => p_attribute14
697 ,p_attribute15 => p_attribute15
698 ,p_attribute16 => p_attribute16
699 ,p_attribute17 => p_attribute17
700 ,p_attribute18 => p_attribute18
701 ,p_attribute19 => p_attribute19
702 ,p_attribute20 => p_attribute20
703 ,p_attribute21 => p_attribute21
704 ,p_attribute22 => p_attribute22
705 ,p_attribute23 => p_attribute23
706 ,p_attribute24 => p_attribute24
707 ,p_attribute25 => p_attribute25
708 ,p_attribute26 => p_attribute26
709 ,p_attribute27 => p_attribute27
710 ,p_attribute28 => p_attribute28
711 ,p_attribute29 => p_attribute29
712 ,p_attribute30 => p_attribute30
713 ,p_per_information_category => p_per_information_category
714 ,p_per_information1 => p_per_information1
715 ,p_per_information2 => p_per_information2
716 ,p_per_information3 => p_per_information3
717 ,p_per_information4 => p_per_information4
718 ,p_per_information5 => p_per_information5
719 ,p_per_information6 => p_per_information6
720 ,p_per_information7 => p_per_information7
721 ,p_per_information8 => p_per_information8
722 ,p_per_information9 => p_per_information9
723 ,p_per_information10 => p_per_information10
724 ,p_per_information11 => p_per_information11
725 ,p_per_information12 => p_per_information12
726 ,p_per_information13 => p_per_information13
727 ,p_per_information14 => p_per_information14
728 ,p_per_information15 => p_per_information15
729 ,p_per_information16 => p_per_information16
730 ,p_per_information17 => p_per_information17
731 ,p_per_information18 => p_per_information18
732 ,p_per_information19 => p_per_information19
733 ,p_per_information20 => p_per_information20
734 ,p_per_information21 => p_per_information21
735 ,p_per_information22 => p_per_information22
736 ,p_per_information23 => p_per_information23
737 ,p_per_information24 => p_per_information24
738 ,p_per_information25 => p_per_information25
739 ,p_per_information26 => p_per_information26
740 ,p_per_information27 => p_per_information27
741 ,p_per_information28 => p_per_information28
742 ,p_per_information29 => p_per_information29
743 ,p_per_information30 => p_per_information30
744 ,p_date_of_death => p_date_of_death
745 ,p_background_check_status => p_background_check_status
746 ,p_background_date_check => p_background_date_check
747 ,p_blood_type => p_blood_type
748 ,p_correspondence_language => p_correspondence_language
749 ,p_fast_path_employee => p_fast_path_employee
750 ,p_fte_capacity => p_fte_capacity
751 ,p_honors => p_honors
752 ,p_internal_location => p_internal_location
753 ,p_last_medical_test_by => p_last_medical_test_by
754 ,p_last_medical_test_date => p_last_medical_test_date
755 ,p_mailstop => p_mailstop
756 ,p_office_number => p_office_number
757 ,p_on_military_service => p_on_military_service
758 ,p_pre_name_adjunct => p_pre_name_adjunct
759 ,p_projected_start_date => p_projected_start_date
760 ,p_resume_exists => p_resume_exists
761 ,p_resume_last_updated => p_resume_last_updated
762 ,p_second_passport_exists => p_second_passport_exists
763 ,p_student_status => p_student_status
764 ,p_work_schedule => p_work_schedule
765 ,p_suffix => p_suffix
766 ,p_benefit_group_id => p_benefit_group_id
767 ,p_receipt_of_death_cert_date => p_receipt_of_death_cert_date
768 ,p_coord_ben_med_pln_no => p_coord_ben_med_pln_no
769 ,p_coord_ben_no_cvg_flag => p_coord_ben_no_cvg_flag
770 ,p_coord_ben_med_ext_er => p_coord_ben_med_ext_er
771 ,p_coord_ben_med_pl_name => p_coord_ben_med_pl_name
772 ,p_coord_ben_med_insr_crr_name => p_coord_ben_med_insr_crr_name
773 ,p_coord_ben_med_insr_crr_ident => p_coord_ben_med_insr_crr_ident
774 ,p_coord_ben_med_cvg_strt_dt => p_coord_ben_med_cvg_strt_dt
775 ,p_coord_ben_med_cvg_end_dt => p_coord_ben_med_cvg_end_dt
776 ,p_uses_tobacco_flag => p_uses_tobacco_flag
777 ,p_dpdnt_adoption_date => p_dpdnt_adoption_date
778 ,p_dpdnt_vlntry_svce_flag => p_dpdnt_vlntry_svce_flag
779 ,p_original_date_of_hire => p_original_date_of_hire
780 ,p_adjusted_svc_date => p_adjusted_svc_date
781 ,p_town_of_birth => p_town_of_birth
782 ,p_region_of_birth => p_region_of_birth
783 ,p_country_of_birth => p_country_of_birth
784 ,p_global_person_id => p_global_person_id
785 ,p_party_id => p_party_id
786 ,p_person_id => p_person_id
787 ,p_assignment_id => p_assignment_id
788 ,p_per_object_version_number => p_per_object_version_number
789 ,p_asg_object_version_number => p_asg_object_version_number
790 ,p_per_effective_start_date => p_per_effective_start_date
791 ,p_per_effective_end_date => p_per_effective_end_date
792 ,p_full_name => p_full_name
793 ,p_per_comment_id => p_per_comment_id
794 ,p_assignment_sequence => p_assignment_sequence
795 ,p_assignment_number => p_assignment_number
796 ,p_name_combination_warning => l_name_combination_warning
797 ,p_assign_payroll_warning => l_assign_payroll_warning
798 ,p_orig_hire_warning => l_orig_hire_warning
799 );
800 --
801 -- Convert API warning boolean parameter values to specific
802 -- messages and add them to Multiple Message List
803 --
804 if l_name_combination_warning then
805 fnd_message.set_name('PER', 'PER_52076_PER_NULL_LAST_NAME');
806 hr_multi_message.add
807 (p_message_type => hr_multi_message.g_warning_msg
808 );
809 end if;
810 if l_assign_payroll_warning then
811 fnd_message.set_name('PER', 'HR_EMP_ASS_NO_DOB');
812 hr_multi_message.add
813 (p_message_type => hr_multi_message.g_warning_msg
814 );
815 end if;
816 if l_orig_hire_warning then
817 fnd_message.set_name('PER', 'PER_52474_PER_ORIG_ST_DATE');
818 hr_multi_message.add
819 (p_message_type => hr_multi_message.g_warning_msg
820 );
821 end if; --
822 -- Convert API non-warning boolean parameter values
823 --
824 --
825 -- Derive the API return status value based on whether
826 -- messages of any type exist in the Multiple Message List.
827 -- Also disable Multiple Message Detection.
828 --
829
830 hr_person_address_swi.create_person_address
831 (p_validate => p_addr_validate
832 ,p_effective_date => p_addr_effective_date
833 ,p_pradd_ovlapval_override => p_pradd_ovlapval_override
834 ,p_validate_county => p_addr_validate_county
835 ,p_person_id => p_person_id
836 ,p_primary_flag => p_addr_primary_flag
837 ,p_style => p_addr_style
838 ,p_date_from => p_addr_date_from
839 ,p_date_to => p_addr_date_to
840 ,p_address_type => p_addr_address_type
841 ,p_comments => p_addr_comments
842 ,p_address_line1 => p_addr_address_line1
843 ,p_address_line2 => p_addr_address_line2
844 ,p_address_line3 => p_addr_address_line3
845 ,p_town_or_city => p_addr_town_or_city
846 ,p_region_1 => p_addr_region_1
847 ,p_region_2 => p_addr_region_2
848 ,p_region_3 => p_addr_region_3
849 ,p_postal_code => p_addr_postal_code
850 ,p_country => p_addr_country
851 ,p_telephone_number_1 => p_addr_telephone_number_1
852 ,p_telephone_number_2 => p_addr_telephone_number_2
853 ,p_telephone_number_3 => p_addr_telephone_number_3
854 ,p_addr_attribute_category => p_addr_attribute_category
855 ,p_addr_attribute1 => p_addr_attribute1
856 ,p_addr_attribute2 => p_addr_attribute2
857 ,p_addr_attribute3 => p_addr_attribute3
858 ,p_addr_attribute4 => p_addr_attribute4
859 ,p_addr_attribute5 => p_addr_attribute5
860 ,p_addr_attribute6 => p_addr_attribute6
861 ,p_addr_attribute7 => p_addr_attribute7
862 ,p_addr_attribute8 => p_addr_attribute8
863 ,p_addr_attribute9 => p_addr_attribute9
864 ,p_addr_attribute10 => p_addr_attribute10
865 ,p_addr_attribute11 => p_addr_attribute11
866 ,p_addr_attribute12 => p_addr_attribute12
867 ,p_addr_attribute13 => p_addr_attribute13
868 ,p_addr_attribute14 => p_addr_attribute14
869 ,p_addr_attribute15 => p_addr_attribute15
870 ,p_addr_attribute16 => p_addr_attribute16
871 ,p_addr_attribute17 => p_addr_attribute17
872 ,p_addr_attribute18 => p_addr_attribute18
873 ,p_addr_attribute19 => p_addr_attribute19
874 ,p_addr_attribute20 => p_addr_attribute20
875 ,p_add_information13 => p_addr_add_information13
876 ,p_add_information14 => p_addr_add_information14
877 ,p_add_information15 => p_addr_add_information15
878 ,p_add_information16 => p_addr_add_information16
879 ,p_add_information17 => p_addr_add_information17
880 ,p_add_information18 => p_addr_add_information18
881 ,p_add_information19 => p_addr_add_information19
882 ,p_add_information20 => p_addr_add_information20
883 ,p_party_id => p_addr_party_id
884 ,p_address_id => p_addr_address_id
885 ,p_object_version_number => l_addr_ovn
886 ,p_return_status => l_addr_return_status
887 );
888
889 p_return_status := hr_multi_message.get_return_status_disable;
890 hr_utility.set_location(' Leaving:' || l_proc,20);
891 --
892 exception
893 when hr_multi_message.error_message_exist then
894 --
895 -- Catch the Multiple Message List exception which
896 -- indicates API processing has been aborted because
897 -- at least one message exists in the list.
898 --
899 rollback to create_employee_swi;
900 --
901 -- Reset IN OUT parameters and set OUT parameters
902 --
903 p_employee_number := l_employee_number;
904 p_person_id := null;
905 p_assignment_id := null;
906 p_per_object_version_number := null;
907 p_asg_object_version_number := null;
908 p_per_effective_start_date := null;
909 p_per_effective_end_date := null;
910 p_full_name := null;
911 p_per_comment_id := null;
912 p_assignment_sequence := null;
913 p_assignment_number := null;
914 p_return_status := hr_multi_message.get_return_status_disable;
915 hr_utility.set_location(' Leaving:' || l_proc, 30);
916 when others then
917 --
918 -- When Multiple Message Detection is enabled catch
919 -- any Application specific or other unexpected
920 -- exceptions. Adding appropriate details to the
921 -- Multiple Message List. Otherwise re-raise the
922 -- error.
923 --
924 rollback to create_employee_swi;
925 if hr_multi_message.unexpected_error_add(l_proc) then
926 hr_utility.set_location(' Leaving:' || l_proc,40);
927 raise;
928 end if;
929 --
930 -- Reset IN OUT and set OUT parameters
931 --
932 p_employee_number := l_employee_number;
933 p_person_id := null;
934 p_assignment_id := null;
935 p_per_object_version_number := null;
936 p_asg_object_version_number := null;
937 p_per_effective_start_date := null;
938 p_per_effective_end_date := null;
939 p_full_name := null;
940 p_per_comment_id := null;
941 p_assignment_sequence := null;
942 p_assignment_number := null;
943 p_return_status := hr_multi_message.get_return_status_disable;
944 hr_utility.set_location(' Leaving:' || l_proc,50);
945 end create_employee;
946 -- ----------------------------------------------------------------------------
947 -- |----------------------< apply_for_internal_vacancy >----------------------|
948 -- ----------------------------------------------------------------------------
949 PROCEDURE apply_for_internal_vacancy
950 (p_validate in number default hr_api.g_false_num
951 ,p_effective_date in date
952 ,p_person_id in number
953 ,p_applicant_number in out nocopy varchar2
954 ,p_per_object_version_number in out nocopy number
955 ,p_vacancy_id in number default hr_api.g_number
956 ,p_person_type_id in number default hr_api.g_number
957 ,p_application_id out nocopy number
958 ,p_assignment_id out nocopy number
959 ,p_apl_object_version_number out nocopy number
960 ,p_asg_object_version_number out nocopy number
961 ,p_assignment_sequence out nocopy number
962 ,p_per_effective_start_date out nocopy date
963 ,p_per_effective_end_date out nocopy date
964 ,p_return_status out nocopy varchar2
965 ) is
966 --
967 -- Variables for API Boolean parameters
968 l_validate boolean;
969 --
970 -- Variables for IN/OUT parameters
971 l_applicant_number varchar2(240);
972 l_per_object_version_number number;
973 --
974 -- Other variables
975 l_proc varchar2(72) := g_package ||'apply_for_internal_vacancy';
976 Begin
977 hr_utility.set_location(' Entering:' || l_proc,10);
978 --
979 -- Issue a savepoint
980 --
981 savepoint apply_for_internal_vacancy_swi;
982 --
983 -- Initialise Multiple Message Detection
984 --
985 hr_multi_message.enable_message_list;
986 --
987 -- Remember IN OUT parameter IN values
988 --
989 l_applicant_number := p_applicant_number;
990 l_per_object_version_number := p_per_object_version_number;
991 --
992 -- Convert constant values to their corresponding boolean value
993 --
994 l_validate :=
995 hr_api.constant_to_boolean
996 (p_constant_value => p_validate);
997 --
998 -- Register Surrogate ID or user key values
999 --
1000 --
1001 -- Call API
1002 --
1003 hr_employee_api.apply_for_internal_vacancy
1004 (p_validate => l_validate
1005 ,p_effective_date => p_effective_date
1006 ,p_person_id => p_person_id
1007 ,p_applicant_number => p_applicant_number
1008 ,p_per_object_version_number => p_per_object_version_number
1009 ,p_vacancy_id => p_vacancy_id
1010 ,p_person_type_id => p_person_type_id
1011 ,p_application_id => p_application_id
1012 ,p_assignment_id => p_assignment_id
1013 ,p_apl_object_version_number => p_apl_object_version_number
1014 ,p_asg_object_version_number => p_asg_object_version_number
1015 ,p_assignment_sequence => p_assignment_sequence
1016 ,p_per_effective_start_date => p_per_effective_start_date
1017 ,p_per_effective_end_date => p_per_effective_end_date
1018 );
1019 --
1020 -- Convert API warning boolean parameter values to specific
1021 -- messages and add them to Multiple Message List
1022 --
1023 --
1024 -- Convert API non-warning boolean parameter values
1025 --
1026 --
1027 -- Derive the API return status value based on whether
1028 -- messages of any type exist in the Multiple Message List.
1029 -- Also disable Multiple Message Detection.
1030 --
1031 p_return_status := hr_multi_message.get_return_status_disable;
1032 hr_utility.set_location(' Leaving:' || l_proc,20);
1033 --
1034 exception
1035 when hr_multi_message.error_message_exist then
1036 --
1037 -- Catch the Multiple Message List exception which
1038 -- indicates API processing has been aborted because
1039 -- at least one message exists in the list.
1040 --
1041 rollback to apply_for_internal_vacancy_swi;
1042 --
1043 -- Reset IN OUT parameters and set OUT parameters
1044 --
1045 p_applicant_number := l_applicant_number;
1046 p_per_object_version_number := l_per_object_version_number;
1047 p_application_id := null;
1048 p_assignment_id := null;
1049 p_apl_object_version_number := null;
1050 p_asg_object_version_number := null;
1051 p_assignment_sequence := null;
1052 p_per_effective_start_date := null;
1053 p_per_effective_end_date := null;
1054 p_return_status := hr_multi_message.get_return_status_disable;
1055 hr_utility.set_location(' Leaving:' || l_proc, 30);
1056 when others then
1057 --
1058 -- When Multiple Message Detection is enabled catch
1059 -- any Application specific or other unexpected
1060 -- exceptions. Adding appropriate details to the
1061 -- Multiple Message List. Otherwise re-raise the
1062 -- error.
1063 --
1064 rollback to apply_for_internal_vacancy_swi;
1065 if hr_multi_message.unexpected_error_add(l_proc) then
1066 hr_utility.set_location(' Leaving:' || l_proc,40);
1067 raise;
1068 end if;
1069 --
1070 -- Reset IN OUT and set OUT parameters
1071 --
1072 p_applicant_number := l_applicant_number;
1073 p_per_object_version_number := l_per_object_version_number;
1074 p_application_id := null;
1075 p_assignment_id := null;
1076 p_apl_object_version_number := null;
1077 p_asg_object_version_number := null;
1078 p_assignment_sequence := null;
1079 p_per_effective_start_date := null;
1080 p_per_effective_end_date := null;
1081 p_return_status := hr_multi_message.get_return_status_disable;
1082 hr_utility.set_location(' Leaving:' || l_proc,50);
1083 end apply_for_internal_vacancy;
1084 -- ----------------------------------------------------------------------------
1085 -- |-----------------------------< hire_into_job >----------------------------|
1086 -- ----------------------------------------------------------------------------
1087 PROCEDURE hire_into_job
1088 (p_validate in number default hr_api.g_false_num
1089 ,p_effective_date in date
1090 ,p_person_id in number
1091 ,p_object_version_number in out nocopy number
1092 ,p_employee_number in out nocopy varchar2
1093 ,p_datetrack_update_mode in varchar2 default hr_api.g_varchar2
1094 ,p_person_type_id in number default hr_api.g_number
1095 ,p_national_identifier in varchar2 default hr_api.g_varchar2
1096 ,p_effective_start_date out nocopy date
1097 ,p_effective_end_date out nocopy date
1098 ,p_return_status out nocopy varchar2
1099 ) is
1100 --
1101 -- Variables for API Boolean parameters
1102 l_validate boolean;
1103 l_assign_payroll_warning boolean;
1104 l_orig_hire_warning boolean;
1105 --
1106 -- Variables for IN/OUT parameters
1107 l_object_version_number number;
1108 l_employee_number varchar2(240);
1109 --
1110 -- Other variables
1111 l_proc varchar2(72) := g_package ||'hire_into_job';
1112 Begin
1113 hr_utility.set_location(' Entering:' || l_proc,10);
1114 --
1115 -- Issue a savepoint
1116 --
1117 savepoint hire_into_job_swi;
1118 --
1119 -- Initialise Multiple Message Detection
1120 --
1121 hr_multi_message.enable_message_list;
1122 --
1123 -- Remember IN OUT parameter IN values
1124 --
1125 l_object_version_number := p_object_version_number;
1126 l_employee_number := p_employee_number;
1127 --
1128 -- Convert constant values to their corresponding boolean value
1129 --
1130 l_validate :=
1131 hr_api.constant_to_boolean
1132 (p_constant_value => p_validate);
1133 --
1134 -- Register Surrogate ID or user key values
1135 --
1136 --
1137 -- Call API
1138 --
1139 hr_employee_api.hire_into_job
1140 (p_validate => l_validate
1141 ,p_effective_date => p_effective_date
1142 ,p_person_id => p_person_id
1143 ,p_object_version_number => p_object_version_number
1144 ,p_employee_number => p_employee_number
1145 ,p_datetrack_update_mode => p_datetrack_update_mode
1146 ,p_person_type_id => p_person_type_id
1147 ,p_national_identifier => p_national_identifier
1148 ,p_effective_start_date => p_effective_start_date
1149 ,p_effective_end_date => p_effective_end_date
1150 ,p_assign_payroll_warning => l_assign_payroll_warning
1151 ,p_orig_hire_warning => l_orig_hire_warning
1152 );
1153 --
1154 -- Convert API warning boolean parameter values to specific
1155 -- messages and add them to Multiple Message List
1156 --
1157 if l_assign_payroll_warning then
1158 fnd_message.set_name('PER', 'HR_EMP_ASS_NO_DOB');
1159 hr_multi_message.add
1160 (p_message_type => hr_multi_message.g_warning_msg
1161 );
1162 end if;
1163 if l_orig_hire_warning then
1164 fnd_message.set_name('PER', 'PER_52474_PER_ORIG_ST_DATE');
1165 hr_multi_message.add
1166 (p_message_type => hr_multi_message.g_warning_msg
1167 );
1168 end if; --
1169 -- Convert API non-warning boolean parameter values
1170 --
1171 --
1172 -- Derive the API return status value based on whether
1173 -- messages of any type exist in the Multiple Message List.
1174 -- Also disable Multiple Message Detection.
1175 --
1176 p_return_status := hr_multi_message.get_return_status_disable;
1177 hr_utility.set_location(' Leaving:' || l_proc,20);
1178 --
1179 exception
1180 when hr_multi_message.error_message_exist then
1181 --
1182 -- Catch the Multiple Message List exception which
1183 -- indicates API processing has been aborted because
1184 -- at least one message exists in the list.
1185 --
1186 rollback to hire_into_job_swi;
1187 --
1188 -- Reset IN OUT parameters and set OUT parameters
1189 --
1190 p_object_version_number := l_object_version_number;
1191 p_employee_number := l_employee_number;
1192 p_effective_start_date := null;
1193 p_effective_end_date := null;
1194 p_return_status := hr_multi_message.get_return_status_disable;
1195 hr_utility.set_location(' Leaving:' || l_proc, 30);
1196 when others then
1197 --
1198 -- When Multiple Message Detection is enabled catch
1199 -- any Application specific or other unexpected
1200 -- exceptions. Adding appropriate details to the
1201 -- Multiple Message List. Otherwise re-raise the
1202 -- error.
1203 --
1204 rollback to hire_into_job_swi;
1205 if hr_multi_message.unexpected_error_add(l_proc) then
1206 hr_utility.set_location(' Leaving:' || l_proc,40);
1207 raise;
1208 end if;
1209 --
1210 -- Reset IN OUT and set OUT parameters
1211 --
1212 p_object_version_number := l_object_version_number;
1213 p_employee_number := l_employee_number;
1214 p_effective_start_date := null;
1215 p_effective_end_date := null;
1216 p_return_status := hr_multi_message.get_return_status_disable;
1217 hr_utility.set_location(' Leaving:' || l_proc,50);
1218 end hire_into_job;
1219 -- ----------------------------------------------------------------------------
1220 -- |--------------------------< re_hire_ex_employee >-------------------------|
1221 -- ----------------------------------------------------------------------------
1222 PROCEDURE re_hire_ex_employee
1223 (p_validate in number default hr_api.g_false_num
1224 ,p_hire_date in date
1225 ,p_person_id in number
1226 ,p_per_object_version_number in out nocopy number
1227 ,p_person_type_id in number default hr_api.g_number
1228 ,p_rehire_reason in varchar2
1229 ,p_assignment_id out nocopy number
1230 ,p_asg_object_version_number out nocopy number
1231 ,p_per_effective_start_date out nocopy date
1232 ,p_per_effective_end_date out nocopy date
1233 ,p_assignment_sequence out nocopy number
1234 ,p_assignment_number out nocopy varchar2
1235 ,p_return_status out nocopy varchar2
1236 ) is
1237 --
1238 -- Variables for API Boolean parameters
1239 l_validate boolean;
1240 l_assign_payroll_warning boolean;
1241 --
1242 -- Variables for IN/OUT parameters
1243 l_per_object_version_number number;
1244 --
1245 -- Other variables
1246 l_proc varchar2(72) := g_package ||'re_hire_ex_employee';
1247 Begin
1248 hr_utility.set_location(' Entering:' || l_proc,10);
1249 --
1250 -- Issue a savepoint
1251 --
1252 savepoint re_hire_ex_employee_swi;
1253 --
1254 -- Initialise Multiple Message Detection
1255 --
1256 hr_multi_message.enable_message_list;
1257 --
1258 -- Remember IN OUT parameter IN values
1259 --
1260 l_per_object_version_number := p_per_object_version_number;
1261 --
1262 -- Convert constant values to their corresponding boolean value
1263 --
1264 l_validate :=
1265 hr_api.constant_to_boolean
1266 (p_constant_value => p_validate);
1267 --
1268 -- Register Surrogate ID or user key values
1269 --
1270 --
1271 -- Call API
1272 --
1273 hr_employee_api.re_hire_ex_employee
1274 (p_validate => l_validate
1275 ,p_hire_date => p_hire_date
1276 ,p_person_id => p_person_id
1277 ,p_per_object_version_number => p_per_object_version_number
1278 ,p_person_type_id => p_person_type_id
1279 ,p_rehire_reason => p_rehire_reason
1280 ,p_assignment_id => p_assignment_id
1281 ,p_asg_object_version_number => p_asg_object_version_number
1282 ,p_per_effective_start_date => p_per_effective_start_date
1283 ,p_per_effective_end_date => p_per_effective_end_date
1284 ,p_assignment_sequence => p_assignment_sequence
1285 ,p_assignment_number => p_assignment_number
1286 ,p_assign_payroll_warning => l_assign_payroll_warning
1287 );
1288 --
1289 -- Convert API warning boolean parameter values to specific
1290 -- messages and add them to Multiple Message List
1291 --
1292 if l_assign_payroll_warning then
1293 fnd_message.set_name('PER', 'HR_EMP_ASS_NO_DOB');
1294 hr_multi_message.add
1295 (p_message_type => hr_multi_message.g_warning_msg
1296 );
1297 end if; --
1298 -- Convert API non-warning boolean parameter values
1299 --
1300 --
1301 -- Derive the API return status value based on whether
1302 -- messages of any type exist in the Multiple Message List.
1303 -- Also disable Multiple Message Detection.
1304 --
1305 p_return_status := hr_multi_message.get_return_status_disable;
1306 hr_utility.set_location(' Leaving:' || l_proc,20);
1307 --
1308 exception
1309 when hr_multi_message.error_message_exist then
1310 --
1311 -- Catch the Multiple Message List exception which
1312 -- indicates API processing has been aborted because
1313 -- at least one message exists in the list.
1314 --
1315 rollback to re_hire_ex_employee_swi;
1316 --
1317 -- Reset IN OUT parameters and set OUT parameters
1318 --
1319 p_per_object_version_number := l_per_object_version_number;
1320 p_assignment_id := null;
1321 p_asg_object_version_number := null;
1322 p_per_effective_start_date := null;
1323 p_per_effective_end_date := null;
1324 p_assignment_sequence := null;
1325 p_assignment_number := null;
1326 p_return_status := hr_multi_message.get_return_status_disable;
1327 hr_utility.set_location(' Leaving:' || l_proc, 30);
1328 when others then
1329 --
1330 -- When Multiple Message Detection is enabled catch
1331 -- any Application specific or other unexpected
1332 -- exceptions. Adding appropriate details to the
1333 -- Multiple Message List. Otherwise re-raise the
1334 -- error.
1335 --
1336 rollback to re_hire_ex_employee_swi;
1337 if hr_multi_message.unexpected_error_add(l_proc) then
1338 hr_utility.set_location(' Leaving:' || l_proc,40);
1339 raise;
1340 end if;
1341 --
1342 -- Reset IN OUT and set OUT parameters
1343 --
1344 p_per_object_version_number := l_per_object_version_number;
1345 p_assignment_id := null;
1346 p_asg_object_version_number := null;
1347 p_per_effective_start_date := null;
1348 p_per_effective_end_date := null;
1349 p_assignment_sequence := null;
1350 p_assignment_number := null;
1351 p_return_status := hr_multi_message.get_return_status_disable;
1352 hr_utility.set_location(' Leaving:' || l_proc,50);
1353 end re_hire_ex_employee;
1354 -- ----------------------------------------------------------------------------
1355 -- |-------------------< convert_to_manual_gen_method >-----------------------|
1356 -- ----------------------------------------------------------------------------
1357 PROCEDURE convert_to_manual_gen_method
1358 (errbuf OUT nocopy varchar2
1359 ,retcode OUT nocopy number
1360 ,p_business_group_id IN number
1361 ) IS
1362 --
1363 -- Local variables
1364 --
1365 c_proc_name varchar2(100) := g_package||'.convert_to_manual_gen_method';
1366
1367 e_ResourceBusy EXCEPTION;
1368 PRAGMA EXCEPTION_INIT(e_ResourceBusy, -54);
1369
1370 TYPE t_bgRecord IS RECORD
1371 (
1372 org_id HR_ORGANIZATION_INFORMATION.Organization_id%TYPE,
1373 emp_method HR_ORGANIZATION_INFORMATION.Org_information2%TYPE,
1374 apl_method HR_ORGANIZATION_INFORMATION.Org_information3%TYPE,
1375 cwk_method HR_ORGANIZATION_INFORMATION.Org_information16%TYPE
1376 );
1377
1378 l_message varchar2(200) := null;
1379
1380 l_organization_id per_all_people_f.business_group_id%TYPE;
1381 l_rec_per_bg_groups t_bgRecord;
1382 --
1383 -- Returns the current method of number generation
1384 --
1385 cursor csr_method(cp_bg_id per_all_people.business_group_id%TYPE) is
1386 SELECT organization_id,
1387 org_information2,
1388 org_information3,
1389 org_information16
1390 FROM hr_organization_information
1391 WHERE organization_id = cp_bg_id
1392 AND ORG_INFORMATION_CONTEXT = 'Business Group Information'
1393 FOR UPDATE of Org_information3 -- method_of_generation_apl_num
1394 , Org_information2 -- method_of_generation_emp_num
1395 , Org_information16 NOWAIT; -- method_of_generation_cwk_num
1396 BEGIN
1397 --hr_utility.trace_on(null,'oracle');
1398
1399 hr_utility.set_location('Entering: '||c_proc_name,10);
1400 hr_utility.trace('Parameters:');
1401 hr_utility.trace(' business_group_id = '||to_char(p_business_group_id));
1402 --
1403 BEGIN
1404 l_organization_id := p_business_group_id;
1405
1406 -- Lock per_all_people_f to ensure person records are not
1407 -- created/updated/deleted
1408 --
1409 hr_utility.set_location(c_proc_name,20);
1410
1411 --LOCK TABLE per_all_people_f
1412 -- IN EXCLUSIVE MODE NOWAIT;
1413 --
1414 open csr_method(p_business_group_id);
1415 fetch csr_method into l_rec_per_bg_groups;
1416
1417 if csr_method%FOUND then
1418
1419 hr_utility.set_location(c_proc_name,30);
1420 -- -------------------------------------------------------------+
1421 -- Processing Applicants, Employee, Contigent Workers +
1422 -- -------------------------------------------------------------+
1423
1424 hr_utility.set_location(c_proc_name,40);
1425
1426 UPDATE HR_ORGANIZATION_INFORMATION
1427 SET org_information2 = 'M' -- method_of_generation_emp_num
1428 /*,org_information3 = 'M' -- method_of_generation_apl_num
1429 ,org_information16 = 'M' -- method_of_generation_cwk_num
1430 */
1431 WHERE organization_id = l_organization_id
1432 AND ORG_INFORMATION_CONTEXT = 'Business Group Information';
1433
1434 hr_utility.set_location(c_proc_name,40);
1435
1436 end if; -- csr_method cursor
1437 --
1438 hr_utility.set_location(c_proc_name,50);
1439 --
1440 close csr_method;
1441 EXCEPTION
1442 WHEN TIMEOUT_ON_RESOURCE OR e_ResourceBusy THEN
1443 hr_utility.set_location(c_proc_name,60);
1444 -- The required resources are used by some other process.
1445
1446 hr_utility.set_message(800,'PER_289849_RESOURCE_BUSY');
1447 hr_utility.raise_error;
1448
1449 WHEN OTHERS THEN
1450 hr_utility.set_location(c_proc_name,70);
1451 hr_utility.trace(SQLERRM);
1452
1453 RAISE;
1454
1455 END; -- Lock table
1456 hr_utility.set_location('Leaving: '||c_proc_name,80);
1457 --hr_utility.trace_off;
1458
1459 END convert_to_manual_gen_method;
1460 --
1461 end hr_employee_swi;