[Home] [Help]
PACKAGE BODY: APPS.HR_CONTACT_API
Source
1 Package Body hr_contact_api as
2 /* $Header: peconapi.pkb 120.1 2010/05/07 05:51:00 rnemani ship $ */
3 --
4 -- Package Variables
5 --
6 g_package varchar2(33) := 'hr_contact_api';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |----------------------------< create_person >-----------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_person
13 (p_validate in boolean default false
14 ,p_start_date in date
15 ,p_business_group_id in number
16 ,p_last_name in varchar2
17 ,p_sex in varchar2
18 ,p_person_type_id in number default null -- Bug 918219
19 ,p_comments in varchar2 default null
20 ,p_date_employee_data_verified in date default null
21 ,p_date_of_birth in date default null
22 ,p_email_address in varchar2 default null
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_correspondence_language in varchar2 default null
98 ,p_honors in varchar2 default null
99 ,p_benefit_group_id in number default null
100 ,p_on_military_service in varchar2 default null
101 ,p_student_status in varchar2 default null
102 ,p_uses_tobacco_flag in varchar2 default null
103 ,p_coord_ben_no_cvg_flag in varchar2 default null
104 ,p_pre_name_adjunct in varchar2 default null
105 ,p_suffix in varchar2 default null
106 ,p_town_of_birth in varchar2 default null
107 ,p_region_of_birth in varchar2 default null
108 ,p_country_of_birth in varchar2 default null
109 ,p_global_person_id in varchar2 default null
110 ,p_person_id out nocopy number
111 ,p_object_version_number out nocopy number
112 ,p_effective_start_date out nocopy date
113 ,p_effective_end_date out nocopy date
114 ,p_full_name out nocopy varchar2
115 ,p_comment_id out nocopy number
116 ,p_name_combination_warning out nocopy boolean
117 ,p_orig_hire_warning out nocopy boolean
118 ) is
119 --
120 -- Declare cursors and local variables
121 --
122
123 -- Bug 3406332 starts here.
124 cursor csr_get_legislation_code is
125 select legislation_code
126 from per_business_groups
127 where business_group_id = p_business_group_id;
128 l_legislation_code per_business_groups.legislation_code%type;
129 -- 3406332 ends here.
130 l_proc varchar2(72) := g_package||'create_person';
131 l_person_type_id per_person_types.person_type_id%type:=
132 p_person_type_id;
133 l_person_id per_people_f.person_id%type;
134 l_start_date per_all_people_f.start_date%TYPE;
135 l_date_employee_data_verified per_all_people_f.date_employee_data_verified%TYPE;
136 l_date_of_birth per_all_people_f.date_of_birth%TYPE;
137 l_applicant_number number := null;
138 l_employee_number number;
139 l_npw_number number;
140 l_dummy_var varchar2(30);
141 l_dummy_boolean boolean;
142 l_phn_object_version_number per_phones.object_version_number%TYPE;
143 l_phone_id per_phones.phone_id%TYPE;
144 --
145 -- Declare additional OUT variables
146 --
147 l_effective_start_date per_all_people_f.effective_start_date%TYPE;
148 l_effective_end_date per_all_people_f.effective_end_date%TYPE;
149 l_object_version_number per_all_people_f.object_version_number%TYPE;
150 l_full_name per_all_people_f.full_name%TYPE;
151 l_comment_id per_all_people_f.comment_id%TYPE;
152 l_name_combination_warning boolean;
153 l_orig_hire_warning boolean;
154
155 begin
156 hr_utility.set_location('Entering:'|| l_proc, 5);
157 --
158 -- Issue a savepoint.
159 --
160 savepoint create_person_contact;
161 hr_utility.set_location(l_proc, 10);
162 --
163 -- Truncate the start date, as could use in a few areas.
164 --
165 l_start_date := trunc(p_start_date);
166 l_date_employee_data_verified := trunc(p_date_employee_data_verified);
167 l_date_of_birth := trunc(p_date_of_birth);
168 --
169 -- Bug fix 3406332 starts here.
170 open csr_get_legislation_code;
171 fetch csr_get_legislation_code into l_legislation_code;
172 close csr_get_legislation_code;
173 -- 3406332 end here.
174 begin
175 --
176 -- Start of API for the before process hook for create_person.
177 --
178 hr_contact_bk1.create_person_b
179 (p_start_date => l_start_date
180 ,p_business_group_id => p_business_group_id
181 ,p_last_name => p_last_name
182 ,p_sex => p_sex
183 ,p_person_type_id => p_person_type_id
184 ,p_comments => p_comments
185 ,p_date_employee_data_verified => l_date_employee_data_verified
186 ,p_date_of_birth => l_date_of_birth
187 ,p_email_address => p_email_address
188 ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
189 ,p_first_name => p_first_name
190 ,p_known_as => p_known_as
191 ,p_marital_status => p_marital_status
192 ,p_middle_names => p_middle_names
193 ,p_nationality => p_nationality
194 ,p_national_identifier => p_national_identifier
195 ,p_previous_last_name => p_previous_last_name
196 ,p_registered_disabled_flag => p_registered_disabled_flag
197 ,p_title => p_title
198 ,p_vendor_id => p_vendor_id
199 ,p_work_telephone => p_work_telephone
200 ,p_attribute_category => p_attribute_category
201 ,p_attribute1 => p_attribute1
202 ,p_attribute2 => p_attribute2
203 ,p_attribute3 => p_attribute3
204 ,p_attribute4 => p_attribute4
205 ,p_attribute5 => p_attribute5
206 ,p_attribute6 => p_attribute6
207 ,p_attribute7 => p_attribute7
208 ,p_attribute8 => p_attribute8
209 ,p_attribute9 => p_attribute9
210 ,p_attribute10 => p_attribute10
211 ,p_attribute11 => p_attribute11
212 ,p_attribute12 => p_attribute12
213 ,p_attribute13 => p_attribute13
214 ,p_attribute14 => p_attribute14
215 ,p_attribute15 => p_attribute15
216 ,p_attribute16 => p_attribute16
217 ,p_attribute17 => p_attribute17
218 ,p_attribute18 => p_attribute18
219 ,p_attribute19 => p_attribute19
220 ,p_attribute20 => p_attribute20
221 ,p_attribute21 => p_attribute21
222 ,p_attribute22 => p_attribute22
223 ,p_attribute23 => p_attribute23
224 ,p_attribute24 => p_attribute24
225 ,p_attribute25 => p_attribute25
226 ,p_attribute26 => p_attribute26
227 ,p_attribute27 => p_attribute27
228 ,p_attribute28 => p_attribute28
229 ,p_attribute29 => p_attribute29
230 ,p_attribute30 => p_attribute30
231 --,p_per_information_category => p_per_information_category
232 ,p_per_information_category => l_legislation_code -- bug fix 3406332.
233 ,p_per_information1 => p_per_information1
234 ,p_per_information2 => p_per_information2
235 ,p_per_information3 => p_per_information3
236 ,p_per_information4 => p_per_information4
237 ,p_per_information5 => p_per_information5
238 ,p_per_information6 => p_per_information6
239 ,p_per_information7 => p_per_information7
240 ,p_per_information8 => p_per_information8
241 ,p_per_information9 => p_per_information9
242 ,p_per_information10 => p_per_information10
243 ,p_per_information11 => p_per_information11
244 ,p_per_information12 => p_per_information12
245 ,p_per_information13 => p_per_information13
246 ,p_per_information14 => p_per_information14
247 ,p_per_information15 => p_per_information15
248 ,p_per_information16 => p_per_information16
249 ,p_per_information17 => p_per_information17
250 ,p_per_information18 => p_per_information18
251 ,p_per_information19 => p_per_information19
252 ,p_per_information20 => p_per_information20
253 ,p_per_information21 => p_per_information21
254 ,p_per_information22 => p_per_information22
255 ,p_per_information23 => p_per_information23
256 ,p_per_information24 => p_per_information24
257 ,p_per_information25 => p_per_information25
258 ,p_per_information26 => p_per_information26
259 ,p_per_information27 => p_per_information27
260 ,p_per_information28 => p_per_information28
261 ,p_per_information29 => p_per_information29
262 ,p_per_information30 => p_per_information30
263 ,p_correspondence_language => p_correspondence_language
264 ,p_honors => p_honors
265 ,p_benefit_group_id => p_benefit_group_id
266 ,p_on_military_service => p_on_military_service
267 ,p_student_status => p_student_status
268 ,p_uses_tobacco_flag => p_uses_tobacco_flag
269 ,p_coord_ben_no_cvg_flag => p_coord_ben_no_cvg_flag
270 ,p_pre_name_adjunct => p_pre_name_adjunct
271 ,p_suffix => p_suffix
272 ,p_town_of_birth => p_town_of_birth
273 ,p_region_of_birth => p_region_of_birth
274 ,p_country_of_birth => p_country_of_birth
275 ,p_global_person_id => p_global_person_id
276 );
277 exception
278 when hr_api.cannot_find_prog_unit then
279 hr_api.cannot_find_prog_unit_error
280 (p_module_name => 'CREATE_PERSON'
281 ,p_hook_type => 'BP'
282 );
283 --
284 -- End of the before process hook for create_person
285 --
286 end;
287 --
288 --
289 -- Validation in addition to Table Handlers
290 --
291 -- If the specified person type id is not null then check that it
292 -- corresponds to type 'OTHER', is currently active and is in the correct
293 -- business group, otherwise set person type to the active default for OTHER
294 -- in the current business group.
295 --
296 per_per_bus.chk_person_type
297 (p_person_type_id => l_person_type_id
298 ,p_business_group_id => p_business_group_id
299 ,p_expected_sys_type => 'OTHER'
300 );
301 l_applicant_number := null;
302 l_employee_number := null;
303 l_npw_number := null;
304 hr_utility.set_location(l_proc, 20);
305 --
306 -- Create the person details
307 --
308 -- added for PTU:
309 l_person_type_id :=
310 hr_person_type_usage_info.get_default_person_type_id(l_person_type_id);
311 --
312 per_per_ins.ins
313 (p_business_group_id => p_business_group_id
314 ,p_person_type_id => l_person_type_id
315 ,p_last_name => p_last_name
316 ,p_start_date => l_start_date
317 ,p_effective_date => l_start_date
318 ,p_applicant_number => l_applicant_number
319 ,p_current_applicant_flag => l_dummy_var
320 ,p_current_emp_or_apl_flag => l_dummy_var
321 ,p_current_employee_flag => l_dummy_var
322 ,p_employee_number => l_employee_number
323 --
324 ,p_comments => p_comments
325 ,p_date_employee_data_verified => l_date_employee_data_verified
326 ,p_date_of_birth => l_date_of_birth
327 ,p_email_address => p_email_address
328 ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
329 ,p_first_name => p_first_name
330 ,p_known_as => p_known_as
331 ,p_marital_status => p_marital_status
332 ,p_middle_names => p_middle_names
333 ,p_nationality => p_nationality
334 ,p_national_identifier => p_national_identifier
335 ,p_previous_last_name => p_previous_last_name
336 ,p_registered_disabled_flag => p_registered_disabled_flag
337 ,p_sex => p_sex
338 ,p_title => p_title
339 ,p_vendor_id => p_vendor_id
340 -- ,p_work_telephone => p_work_telephone -- Now handled by create_phone
341 ,p_attribute_category => p_attribute_category
342 ,p_attribute1 => p_attribute1
343 ,p_attribute2 => p_attribute2
344 ,p_attribute3 => p_attribute3
345 ,p_attribute4 => p_attribute4
346 ,p_attribute5 => p_attribute5
347 ,p_attribute6 => p_attribute6
348 ,p_attribute7 => p_attribute7
349 ,p_attribute8 => p_attribute8
350 ,p_attribute9 => p_attribute9
351 ,p_attribute10 => p_attribute10
352 ,p_attribute11 => p_attribute11
353 ,p_attribute12 => p_attribute12
354 ,p_attribute13 => p_attribute13
355 ,p_attribute14 => p_attribute14
356 ,p_attribute15 => p_attribute15
357 ,p_attribute16 => p_attribute16
358 ,p_attribute17 => p_attribute17
359 ,p_attribute18 => p_attribute18
360 ,p_attribute19 => p_attribute19
361 ,p_attribute20 => p_attribute20
362 ,p_attribute21 => p_attribute21
363 ,p_attribute22 => p_attribute22
364 ,p_attribute23 => p_attribute23
365 ,p_attribute24 => p_attribute24
366 ,p_attribute25 => p_attribute25
367 ,p_attribute26 => p_attribute26
368 ,p_attribute27 => p_attribute27
369 ,p_attribute28 => p_attribute28
370 ,p_attribute29 => p_attribute29
371 ,p_attribute30 => p_attribute30
372 --,p_per_information_category => p_per_information_category
373 ,p_per_information_category => l_legislation_code -- bug fix 3406332.
374 ,p_per_information1 => p_per_information1
375 ,p_per_information2 => p_per_information2
376 ,p_per_information3 => p_per_information3
377 ,p_per_information4 => p_per_information4
378 ,p_per_information5 => p_per_information5
379 ,p_per_information6 => p_per_information6
380 ,p_per_information7 => p_per_information7
381 ,p_per_information8 => p_per_information8
382 ,p_per_information9 => p_per_information9
383 ,p_per_information10 => p_per_information10
384 ,p_per_information11 => p_per_information11
385 ,p_per_information12 => p_per_information12
386 ,p_per_information13 => p_per_information13
387 ,p_per_information14 => p_per_information14
388 ,p_per_information15 => p_per_information15
389 ,p_per_information16 => p_per_information16
390 ,p_per_information17 => p_per_information17
391 ,p_per_information18 => p_per_information18
392 ,p_per_information19 => p_per_information19
393 ,p_per_information20 => p_per_information20
394 ,p_per_information21 => p_per_information21
395 ,p_per_information22 => p_per_information22
396 ,p_per_information23 => p_per_information23
397 ,p_per_information24 => p_per_information24
398 ,p_per_information25 => p_per_information25
399 ,p_per_information26 => p_per_information26
400 ,p_per_information27 => p_per_information27
401 ,p_per_information28 => p_per_information28
402 ,p_per_information29 => p_per_information29
403 ,p_per_information30 => p_per_information30
404 ,p_correspondence_language => p_correspondence_language
405 ,p_honors => p_honors
406 ,p_benefit_group_id => p_benefit_group_id
407 ,p_on_military_service => p_on_military_service
408 ,p_student_status => p_student_status
409 ,p_uses_tobacco_flag => p_uses_tobacco_flag
410 ,p_coord_ben_no_cvg_flag => p_coord_ben_no_cvg_flag
411 ,p_pre_name_adjunct => p_pre_name_adjunct
412 ,p_suffix => p_suffix
413 ,p_town_of_birth => p_town_of_birth
414 ,p_region_of_birth => p_region_of_birth
415 ,p_country_of_birth => p_country_of_birth
416 ,p_global_person_id => p_global_person_id
417 ,p_validate => false
418 --
419 ,p_person_id => l_person_id
420 ,p_effective_start_date => l_effective_start_date
421 ,p_effective_end_date => l_effective_end_date
422 ,p_comment_id => p_comment_id
423 ,p_full_name => p_full_name
424 ,p_object_version_number => l_object_version_number
425 ,p_name_combination_warning => l_name_combination_warning
426 ,p_dob_null_warning => l_dummy_boolean
427 ,p_orig_hire_warning => l_orig_hire_warning
428 ,p_npw_number => l_npw_number
429 );
430 --
431 hr_utility.set_location(l_proc, 30);
432 --
433 -- Maintain security access to profiles which restrict access to contacts.
434 --
435 hr_security_internal.populate_new_contact(
436 p_business_group_id => p_business_group_id,
437 p_person_id => l_person_id);
438 --
439 -- added for PTU
440 --
441 if p_person_type_id is not null and p_person_type_id <> hr_api.g_number then
442 begin
443 select person_type_id into l_person_type_id
444 from per_person_types
445 where person_type_id = p_person_type_id
446 and business_group_id = p_business_group_id
447 and active_flag = 'Y'
448 and system_person_type = 'OTHER';
449 exception
450 when no_data_found then
451 hr_utility.set_message(801, 'HR_7513_PER_TYPE_INVALID');
452 hr_utility.raise_error;
453 end;
454 l_person_type_id := p_person_type_id;
455 else
456 l_person_type_id := hr_person_type_usage_info.get_default_person_type_id
457 (p_business_group_id,
458 'OTHER');
459 end if;
460 --
461 hr_per_type_usage_internal.maintain_person_type_usage
462 (p_effective_date => p_start_date
463 ,p_person_id => l_person_id
464 ,p_person_type_id => l_person_type_id
465 );
466 --
467 -- end of PTU changes
468 --
469 --
470 -- Create a phone row using the newly created person as the parent row.
471 -- This phone row replaces the work_telephone column on the person.
472 --
473 if p_work_telephone is not null then
474 hr_phone_api.create_phone
475 (p_date_from => l_start_date
476 ,p_date_to => null
477 ,p_phone_type => 'W1'
478 ,p_phone_number => p_work_telephone
479 ,p_parent_id => l_person_id
480 ,p_parent_table => 'PER_ALL_PEOPLE_F'
481 ,p_validate => FALSE
482 ,p_effective_date => l_start_date
483 ,p_object_version_number => l_phn_object_version_number --out
484 ,p_phone_id => l_phone_id --out
485 );
486 end if;
487 --
488 begin
489 --
490 -- Start of API for the after process hook for create_person.
491 --
492 hr_contact_bk1.create_person_a
493 (p_start_date => l_start_date
494 ,p_business_group_id => p_business_group_id
495 ,p_last_name => p_last_name
496 ,p_sex => p_sex
497 ,p_person_type_id => p_person_type_id
498 ,p_comments => p_comments
499 ,p_date_employee_data_verified => l_date_employee_data_verified
500 ,p_date_of_birth => l_date_of_birth
501 ,p_email_address => p_email_address
502 ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
503 ,p_first_name => p_first_name
504 ,p_known_as => p_known_as
505 ,p_marital_status => p_marital_status
506 ,p_middle_names => p_middle_names
507 ,p_nationality => p_nationality
508 ,p_national_identifier => p_national_identifier
509 ,p_previous_last_name => p_previous_last_name
510 ,p_registered_disabled_flag => p_registered_disabled_flag
511 ,p_title => p_title
512 ,p_vendor_id => p_vendor_id
513 ,p_work_telephone => p_work_telephone
514 ,p_attribute_category => p_attribute_category
515 ,p_attribute1 => p_attribute1
516 ,p_attribute2 => p_attribute2
517 ,p_attribute3 => p_attribute3
518 ,p_attribute4 => p_attribute4
519 ,p_attribute5 => p_attribute5
520 ,p_attribute6 => p_attribute6
521 ,p_attribute7 => p_attribute7
522 ,p_attribute8 => p_attribute8
523 ,p_attribute9 => p_attribute9
524 ,p_attribute10 => p_attribute10
525 ,p_attribute11 => p_attribute11
526 ,p_attribute12 => p_attribute12
527 ,p_attribute13 => p_attribute13
528 ,p_attribute14 => p_attribute14
529 ,p_attribute15 => p_attribute15
530 ,p_attribute16 => p_attribute16
531 ,p_attribute17 => p_attribute17
532 ,p_attribute18 => p_attribute18
533 ,p_attribute19 => p_attribute19
534 ,p_attribute20 => p_attribute20
535 ,p_attribute21 => p_attribute21
536 ,p_attribute22 => p_attribute22
537 ,p_attribute23 => p_attribute23
538 ,p_attribute24 => p_attribute24
539 ,p_attribute25 => p_attribute25
540 ,p_attribute26 => p_attribute26
541 ,p_attribute27 => p_attribute27
542 ,p_attribute28 => p_attribute28
543 ,p_attribute29 => p_attribute29
544 ,p_attribute30 => p_attribute30
545 --,p_per_information_category => p_per_information_category
546 ,p_per_information_category => l_legislation_code -- bug fix 3406332.
547 ,p_per_information1 => p_per_information1
548 ,p_per_information2 => p_per_information2
549 ,p_per_information3 => p_per_information3
550 ,p_per_information4 => p_per_information4
551 ,p_per_information5 => p_per_information5
552 ,p_per_information6 => p_per_information6
553 ,p_per_information7 => p_per_information7
554 ,p_per_information8 => p_per_information8
555 ,p_per_information9 => p_per_information9
556 ,p_per_information10 => p_per_information10
557 ,p_per_information11 => p_per_information11
558 ,p_per_information12 => p_per_information12
559 ,p_per_information13 => p_per_information13
560 ,p_per_information14 => p_per_information14
561 ,p_per_information15 => p_per_information15
562 ,p_per_information16 => p_per_information16
563 ,p_per_information17 => p_per_information17
564 ,p_per_information18 => p_per_information18
565 ,p_per_information19 => p_per_information19
566 ,p_per_information20 => p_per_information20
567 ,p_per_information21 => p_per_information21
568 ,p_per_information22 => p_per_information22
569 ,p_per_information23 => p_per_information23
570 ,p_per_information24 => p_per_information24
571 ,p_per_information25 => p_per_information25
572 ,p_per_information26 => p_per_information26
573 ,p_per_information27 => p_per_information27
574 ,p_per_information28 => p_per_information28
575 ,p_per_information29 => p_per_information29
576 ,p_per_information30 => p_per_information30
577 ,p_correspondence_language => p_correspondence_language
578 ,p_honors => p_honors
579 ,p_benefit_group_id => p_benefit_group_id
580 ,p_on_military_service => p_on_military_service
581 ,p_student_status => p_student_status
582 ,p_uses_tobacco_flag => p_uses_tobacco_flag
583 ,p_coord_ben_no_cvg_flag => p_coord_ben_no_cvg_flag
584 ,p_pre_name_adjunct => p_pre_name_adjunct
585 ,p_suffix => p_suffix
586 ,p_town_of_birth => p_town_of_birth
587 ,p_region_of_birth => p_region_of_birth
588 ,p_country_of_birth => p_country_of_birth
589 ,p_global_person_id => p_global_person_id
590 ,p_person_id => l_person_id
591 ,p_object_version_number => l_object_version_number
592 ,p_effective_start_date => l_effective_start_date
593 ,p_effective_end_date => l_effective_end_date
594 ,p_full_name => l_full_name
595 ,p_comment_id => l_comment_id
596 ,p_name_combination_warning => l_name_combination_warning
597 ,p_orig_hire_warning => l_orig_hire_warning
598 );
599 exception
600 when hr_api.cannot_find_prog_unit then
601 hr_api.cannot_find_prog_unit_error
602 (p_module_name => 'CREATE_PERSON'
603 ,p_hook_type => 'AP'
604 );
605 --
606 -- End of the after process hook for create_person
607 --
608 end;
609 --
610 -- When in validation only mode raise the Validate_Enabled exception
611 --
612 if p_validate then
613 raise hr_api.validate_enabled;
614 end if;
615
616 -- Fix 3637708 Start
617 SELECT object_version_number
618 INTO p_object_version_number
619 FROM per_all_people_f
620 WHERE person_id = l_person_id
621 And effective_start_Date = l_effective_start_date
622 and effective_end_Date = l_effective_end_date;
623 -- Fix 3637708 End
624
625 --
626 -- Set all output arguments
627 --
628 p_person_id := l_person_id;
629 p_effective_start_date := l_effective_start_date;
630 p_effective_end_date := l_effective_end_date;
631 p_full_name := l_full_name;
632 p_comment_id := l_comment_id;
633 p_name_combination_warning := l_name_combination_warning;
634 p_orig_hire_warning := l_orig_hire_warning;
635 --
636 hr_utility.set_location(' Leaving:'||l_proc, 40);
637 --
638 exception
639 when hr_api.validate_enabled then
640 --
641 -- As the Validate_Enabled exception has been raised
642 -- we must rollback to the savepoint
643 --
644 ROLLBACK TO create_person_contact;
645 --
646 -- Only set output warning arguments
647 -- (Any key or derived arguments must be set to null
648 -- when validation only mode is being used.)
649 --
650 p_person_id := null;
651 p_object_version_number := null;
652 p_effective_start_date := null;
653 p_effective_end_date := null;
654 p_full_name := null;
655 p_comment_id := null;
656 p_name_combination_warning := l_name_combination_warning;
657 p_orig_hire_warning := l_orig_hire_warning;
658 --
659 hr_utility.set_location(' Leaving:'||l_proc, 50);
660 --
661 when others then
662 --
663 -- A validation or unexpected error has occurred
664 --
665 -- Added as part of fix to bug 632479
666 --
667 ROLLBACK TO create_person_contact;
668 --
669 -- Set Out parameters [part of nocopy changes]
670 p_person_id := null;
671 p_object_version_number := null;
672 p_effective_start_date := null;
673 p_effective_end_date := null;
674 p_full_name := null;
675 p_comment_id := null;
676 p_name_combination_warning := FALSE;
677 p_orig_hire_warning := FALSE;
678 --
679 raise;
680 --
681 -- End of fix.
682 --
683 end create_person;
684 --
685 --
686 -- ----------------------------------------------------------------------------
687 -- |----------------------------< create_irec_person >-----------------------------|
688 -- ----------------------------------------------------------------------------
689 --
690 procedure create_irec_person
691 (p_validate in boolean default false
692 ,p_start_date in date
693 ,p_business_group_id in number
694 ,p_last_name in varchar2
695 ,p_sex in varchar2
696 ,p_person_type_id in number default null -- Bug 918219
697 ,p_comments in varchar2 default null
698 ,p_date_employee_data_verified in date default null
699 ,p_date_of_birth in date default null
700 ,p_email_address in varchar2 default null
701 ,p_expense_check_send_to_addres in varchar2 default null
702 ,p_first_name in varchar2 default null
703 ,p_known_as in varchar2 default null
704 ,p_marital_status in varchar2 default null
705 ,p_middle_names in varchar2 default null
706 ,p_nationality in varchar2 default null
707 ,p_national_identifier in varchar2 default null
708 ,p_previous_last_name in varchar2 default null
709 ,p_registered_disabled_flag in varchar2 default null
710 ,p_title in varchar2 default null
711 ,p_vendor_id in number default null
712 ,p_work_telephone in varchar2 default null
713 ,p_attribute_category in varchar2 default null
714 ,p_attribute1 in varchar2 default null
715 ,p_attribute2 in varchar2 default null
716 ,p_attribute3 in varchar2 default null
717 ,p_attribute4 in varchar2 default null
718 ,p_attribute5 in varchar2 default null
719 ,p_attribute6 in varchar2 default null
720 ,p_attribute7 in varchar2 default null
721 ,p_attribute8 in varchar2 default null
722 ,p_attribute9 in varchar2 default null
723 ,p_attribute10 in varchar2 default null
724 ,p_attribute11 in varchar2 default null
725 ,p_attribute12 in varchar2 default null
726 ,p_attribute13 in varchar2 default null
727 ,p_attribute14 in varchar2 default null
728 ,p_attribute15 in varchar2 default null
729 ,p_attribute16 in varchar2 default null
730 ,p_attribute17 in varchar2 default null
731 ,p_attribute18 in varchar2 default null
732 ,p_attribute19 in varchar2 default null
733 ,p_attribute20 in varchar2 default null
734 ,p_attribute21 in varchar2 default null
735 ,p_attribute22 in varchar2 default null
736 ,p_attribute23 in varchar2 default null
737 ,p_attribute24 in varchar2 default null
738 ,p_attribute25 in varchar2 default null
739 ,p_attribute26 in varchar2 default null
740 ,p_attribute27 in varchar2 default null
741 ,p_attribute28 in varchar2 default null
742 ,p_attribute29 in varchar2 default null
743 ,p_attribute30 in varchar2 default null
744 ,p_per_information_category in varchar2 default null
745 ,p_per_information1 in varchar2 default null
746 ,p_per_information2 in varchar2 default null
747 ,p_per_information3 in varchar2 default null
748 ,p_per_information4 in varchar2 default null
749 ,p_per_information5 in varchar2 default null
750 ,p_per_information6 in varchar2 default null
751 ,p_per_information7 in varchar2 default null
752 ,p_per_information8 in varchar2 default null
753 ,p_per_information9 in varchar2 default null
754 ,p_per_information10 in varchar2 default null
755 ,p_per_information11 in varchar2 default null
756 ,p_per_information12 in varchar2 default null
757 ,p_per_information13 in varchar2 default null
758 ,p_per_information14 in varchar2 default null
759 ,p_per_information15 in varchar2 default null
760 ,p_per_information16 in varchar2 default null
761 ,p_per_information17 in varchar2 default null
762 ,p_per_information18 in varchar2 default null
763 ,p_per_information19 in varchar2 default null
764 ,p_per_information20 in varchar2 default null
765 ,p_per_information21 in varchar2 default null
766 ,p_per_information22 in varchar2 default null
767 ,p_per_information23 in varchar2 default null
768 ,p_per_information24 in varchar2 default null
769 ,p_per_information25 in varchar2 default null
770 ,p_per_information26 in varchar2 default null
771 ,p_per_information27 in varchar2 default null
772 ,p_per_information28 in varchar2 default null
773 ,p_per_information29 in varchar2 default null
774 ,p_per_information30 in varchar2 default null
775 ,p_correspondence_language in varchar2 default null
776 ,p_honors in varchar2 default null
777 ,p_benefit_group_id in number default null
778 ,p_on_military_service in varchar2 default null
779 ,p_student_status in varchar2 default null
780 ,p_uses_tobacco_flag in varchar2 default null
781 ,p_coord_ben_no_cvg_flag in varchar2 default null
782 ,p_pre_name_adjunct in varchar2 default null
783 ,p_suffix in varchar2 default null
784 ,p_town_of_birth in varchar2 default null
785 ,p_region_of_birth in varchar2 default null
786 ,p_country_of_birth in varchar2 default null
787 ,p_global_person_id in varchar2 default null
788 ,p_person_id out nocopy number
789 ,p_object_version_number out nocopy number
790 ,p_effective_start_date out nocopy date
791 ,p_effective_end_date out nocopy date
792 ,p_full_name out nocopy varchar2
793 ,p_comment_id out nocopy number
794 ,p_name_combination_warning out nocopy boolean
795 ,p_orig_hire_warning out nocopy boolean
796 ) is
797 --
798 -- Declare cursors and local variables
799 --
800
801 -- Bug 3406332 starts here.
802 cursor csr_get_legislation_code is
803 select legislation_code
804 from per_business_groups
805 where business_group_id = p_business_group_id;
806 l_legislation_code per_business_groups.legislation_code%type;
807 -- 3406332 ends here.
808 l_proc varchar2(72) := g_package||'create_person';
809 l_person_type_id per_person_types.person_type_id%type:=
810 p_person_type_id;
811 l_person_id per_people_f.person_id%type;
812 l_start_date per_all_people_f.start_date%TYPE;
813 l_date_employee_data_verified per_all_people_f.date_employee_data_verified%TYPE;
814 l_date_of_birth per_all_people_f.date_of_birth%TYPE;
815 l_applicant_number number := null;
816 l_employee_number number;
817 l_npw_number number;
818 l_dummy_var varchar2(30);
819 l_dummy_boolean boolean;
820 l_phn_object_version_number per_phones.object_version_number%TYPE;
821 l_phone_id per_phones.phone_id%TYPE;
822 --
823 -- Declare additional OUT variables
824 --
825 l_effective_start_date per_all_people_f.effective_start_date%TYPE;
826 l_effective_end_date per_all_people_f.effective_end_date%TYPE;
827 l_object_version_number per_all_people_f.object_version_number%TYPE;
828 l_full_name per_all_people_f.full_name%TYPE;
829 l_comment_id per_all_people_f.comment_id%TYPE;
830 l_name_combination_warning boolean;
831 l_orig_hire_warning boolean;
832
833 begin
834 hr_utility.set_location('Entering:'|| l_proc, 5);
835 --
836 -- Issue a savepoint.
837 --
838 savepoint create_person_contact;
839 hr_utility.set_location(l_proc, 10);
840 --
841 -- Truncate the start date, as could use in a few areas.
842 --
843 l_start_date := trunc(p_start_date);
844 l_date_employee_data_verified := trunc(p_date_employee_data_verified);
845 l_date_of_birth := trunc(p_date_of_birth);
846 --
847 -- Bug fix 3406332 starts here.
848 open csr_get_legislation_code;
849 fetch csr_get_legislation_code into l_legislation_code;
850 close csr_get_legislation_code;
851 -- 3406332 end here.
852 begin
853 --
854 -- Start of API for the before process hook for create_person.
855 --
856 hr_contact_bk1.create_person_b
857 (p_start_date => l_start_date
858 ,p_business_group_id => p_business_group_id
859 ,p_last_name => p_last_name
860 ,p_sex => p_sex
861 ,p_person_type_id => p_person_type_id
862 ,p_comments => p_comments
863 ,p_date_employee_data_verified => l_date_employee_data_verified
864 ,p_date_of_birth => l_date_of_birth
865 ,p_email_address => p_email_address
866 ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
867 ,p_first_name => p_first_name
868 ,p_known_as => p_known_as
869 ,p_marital_status => p_marital_status
870 ,p_middle_names => p_middle_names
871 ,p_nationality => p_nationality
872 ,p_national_identifier => p_national_identifier
873 ,p_previous_last_name => p_previous_last_name
874 ,p_registered_disabled_flag => p_registered_disabled_flag
875 ,p_title => p_title
876 ,p_vendor_id => p_vendor_id
877 ,p_work_telephone => p_work_telephone
878 ,p_attribute_category => p_attribute_category
879 ,p_attribute1 => p_attribute1
880 ,p_attribute2 => p_attribute2
881 ,p_attribute3 => p_attribute3
882 ,p_attribute4 => p_attribute4
883 ,p_attribute5 => p_attribute5
884 ,p_attribute6 => p_attribute6
885 ,p_attribute7 => p_attribute7
886 ,p_attribute8 => p_attribute8
887 ,p_attribute9 => p_attribute9
888 ,p_attribute10 => p_attribute10
889 ,p_attribute11 => p_attribute11
890 ,p_attribute12 => p_attribute12
891 ,p_attribute13 => p_attribute13
892 ,p_attribute14 => p_attribute14
893 ,p_attribute15 => p_attribute15
894 ,p_attribute16 => p_attribute16
895 ,p_attribute17 => p_attribute17
896 ,p_attribute18 => p_attribute18
897 ,p_attribute19 => p_attribute19
898 ,p_attribute20 => p_attribute20
899 ,p_attribute21 => p_attribute21
900 ,p_attribute22 => p_attribute22
901 ,p_attribute23 => p_attribute23
902 ,p_attribute24 => p_attribute24
903 ,p_attribute25 => p_attribute25
904 ,p_attribute26 => p_attribute26
905 ,p_attribute27 => p_attribute27
906 ,p_attribute28 => p_attribute28
907 ,p_attribute29 => p_attribute29
908 ,p_attribute30 => p_attribute30
909 --,p_per_information_category => p_per_information_category
910 ,p_per_information_category => l_legislation_code -- bug fix 3406332.
911 ,p_per_information1 => p_per_information1
912 ,p_per_information2 => p_per_information2
913 ,p_per_information3 => p_per_information3
914 ,p_per_information4 => p_per_information4
915 ,p_per_information5 => p_per_information5
916 ,p_per_information6 => p_per_information6
917 ,p_per_information7 => p_per_information7
918 ,p_per_information8 => p_per_information8
919 ,p_per_information9 => p_per_information9
920 ,p_per_information10 => p_per_information10
921 ,p_per_information11 => p_per_information11
922 ,p_per_information12 => p_per_information12
923 ,p_per_information13 => p_per_information13
924 ,p_per_information14 => p_per_information14
925 ,p_per_information15 => p_per_information15
926 ,p_per_information16 => p_per_information16
927 ,p_per_information17 => p_per_information17
928 ,p_per_information18 => p_per_information18
929 ,p_per_information19 => p_per_information19
930 ,p_per_information20 => p_per_information20
931 ,p_per_information21 => p_per_information21
932 ,p_per_information22 => p_per_information22
933 ,p_per_information23 => p_per_information23
934 ,p_per_information24 => p_per_information24
935 ,p_per_information25 => p_per_information25
936 ,p_per_information26 => p_per_information26
937 ,p_per_information27 => p_per_information27
938 ,p_per_information28 => p_per_information28
939 ,p_per_information29 => p_per_information29
940 ,p_per_information30 => p_per_information30
941 ,p_correspondence_language => p_correspondence_language
942 ,p_honors => p_honors
943 ,p_benefit_group_id => p_benefit_group_id
944 ,p_on_military_service => p_on_military_service
945 ,p_student_status => p_student_status
946 ,p_uses_tobacco_flag => p_uses_tobacco_flag
947 ,p_coord_ben_no_cvg_flag => p_coord_ben_no_cvg_flag
948 ,p_pre_name_adjunct => p_pre_name_adjunct
949 ,p_suffix => p_suffix
950 ,p_town_of_birth => p_town_of_birth
951 ,p_region_of_birth => p_region_of_birth
952 ,p_country_of_birth => p_country_of_birth
953 ,p_global_person_id => p_global_person_id
954 );
955 exception
956 when hr_api.cannot_find_prog_unit then
957 hr_api.cannot_find_prog_unit_error
958 (p_module_name => 'CREATE_PERSON'
959 ,p_hook_type => 'BP'
960 );
961 --
962 -- End of the before process hook for create_person
963 --
964 end;
965 --
966 --
967 -- Validation in addition to Table Handlers
968 --
969 -- If the specified person type id is not null then check that it
970 -- corresponds to type 'OTHER', is currently active and is in the correct
971 -- business group, otherwise set person type to the active default for OTHER
972 -- in the current business group.
973 --
974 per_per_bus.chk_person_type
975 (p_person_type_id => l_person_type_id
976 ,p_business_group_id => p_business_group_id
977 ,p_expected_sys_type => 'OTHER'
978 );
979 l_applicant_number := null;
980 l_employee_number := null;
981 l_npw_number := null;
982 hr_utility.set_location(l_proc, 20);
983 --
984 -- Create the person details
985 --
986 -- added for PTU:
987 l_person_type_id :=
988 hr_person_type_usage_info.get_default_person_type_id(l_person_type_id);
989 --
990 per_per_ins.ins
991 (p_business_group_id => p_business_group_id
992 ,p_person_type_id => l_person_type_id
993 ,p_last_name => p_last_name
994 ,p_start_date => l_start_date
995 ,p_effective_date => l_start_date
996 ,p_applicant_number => l_applicant_number
997 ,p_current_applicant_flag => l_dummy_var
998 ,p_current_emp_or_apl_flag => l_dummy_var
999 ,p_current_employee_flag => l_dummy_var
1000 ,p_employee_number => l_employee_number
1001 --
1002 ,p_comments => p_comments
1003 ,p_date_employee_data_verified => l_date_employee_data_verified
1004 ,p_date_of_birth => l_date_of_birth
1005 ,p_email_address => p_email_address
1006 ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
1007 ,p_first_name => p_first_name
1008 ,p_known_as => p_known_as
1009 ,p_marital_status => p_marital_status
1010 ,p_middle_names => p_middle_names
1011 ,p_nationality => p_nationality
1012 ,p_national_identifier => p_national_identifier
1013 ,p_previous_last_name => p_previous_last_name
1014 ,p_registered_disabled_flag => p_registered_disabled_flag
1015 ,p_sex => p_sex
1016 ,p_title => p_title
1017 ,p_vendor_id => p_vendor_id
1018 -- ,p_work_telephone => p_work_telephone -- Now handled by create_phone
1019 ,p_attribute_category => p_attribute_category
1020 ,p_attribute1 => p_attribute1
1021 ,p_attribute2 => p_attribute2
1022 ,p_attribute3 => p_attribute3
1023 ,p_attribute4 => p_attribute4
1024 ,p_attribute5 => p_attribute5
1025 ,p_attribute6 => p_attribute6
1026 ,p_attribute7 => p_attribute7
1027 ,p_attribute8 => p_attribute8
1028 ,p_attribute9 => p_attribute9
1029 ,p_attribute10 => p_attribute10
1030 ,p_attribute11 => p_attribute11
1031 ,p_attribute12 => p_attribute12
1032 ,p_attribute13 => p_attribute13
1033 ,p_attribute14 => p_attribute14
1034 ,p_attribute15 => p_attribute15
1035 ,p_attribute16 => p_attribute16
1036 ,p_attribute17 => p_attribute17
1037 ,p_attribute18 => p_attribute18
1038 ,p_attribute19 => p_attribute19
1039 ,p_attribute20 => p_attribute20
1040 ,p_attribute21 => p_attribute21
1041 ,p_attribute22 => p_attribute22
1042 ,p_attribute23 => p_attribute23
1043 ,p_attribute24 => p_attribute24
1044 ,p_attribute25 => p_attribute25
1045 ,p_attribute26 => p_attribute26
1046 ,p_attribute27 => p_attribute27
1047 ,p_attribute28 => p_attribute28
1048 ,p_attribute29 => p_attribute29
1049 ,p_attribute30 => p_attribute30
1050 --,p_per_information_category => p_per_information_category
1051 ,p_per_information_category => l_legislation_code -- bug fix 3406332.
1052 ,p_per_information1 => p_per_information1
1053 ,p_per_information2 => p_per_information2
1054 ,p_per_information3 => p_per_information3
1055 ,p_per_information4 => p_per_information4
1056 ,p_per_information5 => p_per_information5
1057 ,p_per_information6 => p_per_information6
1058 ,p_per_information7 => p_per_information7
1059 ,p_per_information8 => p_per_information8
1060 ,p_per_information9 => p_per_information9
1061 ,p_per_information10 => p_per_information10
1062 ,p_per_information11 => p_per_information11
1063 ,p_per_information12 => p_per_information12
1064 ,p_per_information13 => p_per_information13
1065 ,p_per_information14 => p_per_information14
1066 ,p_per_information15 => p_per_information15
1067 ,p_per_information16 => p_per_information16
1068 ,p_per_information17 => p_per_information17
1069 ,p_per_information18 => p_per_information18
1070 ,p_per_information19 => p_per_information19
1071 ,p_per_information20 => p_per_information20
1072 ,p_per_information21 => p_per_information21
1073 ,p_per_information22 => p_per_information22
1074 ,p_per_information23 => p_per_information23
1075 ,p_per_information24 => p_per_information24
1076 ,p_per_information25 => p_per_information25
1077 ,p_per_information26 => p_per_information26
1078 ,p_per_information27 => p_per_information27
1079 ,p_per_information28 => p_per_information28
1080 ,p_per_information29 => p_per_information29
1081 ,p_per_information30 => p_per_information30
1082 ,p_correspondence_language => p_correspondence_language
1083 ,p_honors => p_honors
1084 ,p_benefit_group_id => p_benefit_group_id
1085 ,p_on_military_service => p_on_military_service
1086 ,p_student_status => p_student_status
1087 ,p_uses_tobacco_flag => p_uses_tobacco_flag
1088 ,p_coord_ben_no_cvg_flag => p_coord_ben_no_cvg_flag
1089 ,p_pre_name_adjunct => p_pre_name_adjunct
1090 ,p_suffix => p_suffix
1091 ,p_town_of_birth => p_town_of_birth
1092 ,p_region_of_birth => p_region_of_birth
1093 ,p_country_of_birth => p_country_of_birth
1094 ,p_global_person_id => p_global_person_id
1095 ,p_validate => false
1096 --
1097 ,p_person_id => l_person_id
1098 ,p_effective_start_date => l_effective_start_date
1099 ,p_effective_end_date => l_effective_end_date
1100 ,p_comment_id => p_comment_id
1101 ,p_full_name => p_full_name
1102 ,p_object_version_number => l_object_version_number
1103 ,p_name_combination_warning => l_name_combination_warning
1104 ,p_dob_null_warning => l_dummy_boolean
1105 ,p_orig_hire_warning => l_orig_hire_warning
1106 ,p_npw_number => l_npw_number
1107 );
1108 --
1109 hr_utility.set_location(l_proc, 30);
1110 --
1111 -- Maintain security access to profiles which restrict access to contacts.
1112 --
1113 hr_security.add_person(p_person_id => l_person_id);
1114 --
1115 -- added for PTU
1116 --
1117 if p_person_type_id is not null and p_person_type_id <> hr_api.g_number then
1118 begin
1119 select person_type_id into l_person_type_id
1120 from per_person_types
1121 where person_type_id = p_person_type_id
1122 and business_group_id = p_business_group_id
1123 and active_flag = 'Y'
1124 and system_person_type = 'OTHER';
1125 exception
1126 when no_data_found then
1127 hr_utility.set_message(801, 'HR_7513_PER_TYPE_INVALID');
1128 hr_utility.raise_error;
1129 end;
1130 l_person_type_id := p_person_type_id;
1131 else
1132 l_person_type_id := hr_person_type_usage_info.get_default_person_type_id
1133 (p_business_group_id,
1134 'OTHER');
1135 end if;
1136 --
1137 hr_per_type_usage_internal.maintain_person_type_usage
1138 (p_effective_date => p_start_date
1139 ,p_person_id => l_person_id
1140 ,p_person_type_id => l_person_type_id
1141 );
1142 --
1143 -- end of PTU changes
1144 --
1145 --
1146 -- Create a phone row using the newly created person as the parent row.
1147 -- This phone row replaces the work_telephone column on the person.
1148 --
1149 if p_work_telephone is not null then
1150 hr_phone_api.create_phone
1151 (p_date_from => l_start_date
1152 ,p_date_to => null
1153 ,p_phone_type => 'W1'
1154 ,p_phone_number => p_work_telephone
1155 ,p_parent_id => l_person_id
1156 ,p_parent_table => 'PER_ALL_PEOPLE_F'
1157 ,p_validate => FALSE
1158 ,p_effective_date => l_start_date
1159 ,p_object_version_number => l_phn_object_version_number --out
1160 ,p_phone_id => l_phone_id --out
1161 );
1162 end if;
1163 --
1164 begin
1165 --
1166 -- Start of API for the after process hook for create_person.
1167 --
1168 hr_contact_bk1.create_person_a
1169 (p_start_date => l_start_date
1170 ,p_business_group_id => p_business_group_id
1171 ,p_last_name => p_last_name
1172 ,p_sex => p_sex
1173 ,p_person_type_id => p_person_type_id
1174 ,p_comments => p_comments
1175 ,p_date_employee_data_verified => l_date_employee_data_verified
1176 ,p_date_of_birth => l_date_of_birth
1177 ,p_email_address => p_email_address
1178 ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
1179 ,p_first_name => p_first_name
1180 ,p_known_as => p_known_as
1181 ,p_marital_status => p_marital_status
1182 ,p_middle_names => p_middle_names
1183 ,p_nationality => p_nationality
1184 ,p_national_identifier => p_national_identifier
1185 ,p_previous_last_name => p_previous_last_name
1186 ,p_registered_disabled_flag => p_registered_disabled_flag
1187 ,p_title => p_title
1188 ,p_vendor_id => p_vendor_id
1189 ,p_work_telephone => p_work_telephone
1190 ,p_attribute_category => p_attribute_category
1191 ,p_attribute1 => p_attribute1
1192 ,p_attribute2 => p_attribute2
1193 ,p_attribute3 => p_attribute3
1194 ,p_attribute4 => p_attribute4
1195 ,p_attribute5 => p_attribute5
1196 ,p_attribute6 => p_attribute6
1197 ,p_attribute7 => p_attribute7
1198 ,p_attribute8 => p_attribute8
1199 ,p_attribute9 => p_attribute9
1200 ,p_attribute10 => p_attribute10
1201 ,p_attribute11 => p_attribute11
1202 ,p_attribute12 => p_attribute12
1203 ,p_attribute13 => p_attribute13
1204 ,p_attribute14 => p_attribute14
1205 ,p_attribute15 => p_attribute15
1206 ,p_attribute16 => p_attribute16
1207 ,p_attribute17 => p_attribute17
1208 ,p_attribute18 => p_attribute18
1209 ,p_attribute19 => p_attribute19
1210 ,p_attribute20 => p_attribute20
1211 ,p_attribute21 => p_attribute21
1212 ,p_attribute22 => p_attribute22
1213 ,p_attribute23 => p_attribute23
1214 ,p_attribute24 => p_attribute24
1215 ,p_attribute25 => p_attribute25
1216 ,p_attribute26 => p_attribute26
1217 ,p_attribute27 => p_attribute27
1218 ,p_attribute28 => p_attribute28
1219 ,p_attribute29 => p_attribute29
1220 ,p_attribute30 => p_attribute30
1221 --,p_per_information_category => p_per_information_category
1222 ,p_per_information_category => l_legislation_code -- bug fix 3406332.
1223 ,p_per_information1 => p_per_information1
1224 ,p_per_information2 => p_per_information2
1225 ,p_per_information3 => p_per_information3
1226 ,p_per_information4 => p_per_information4
1227 ,p_per_information5 => p_per_information5
1228 ,p_per_information6 => p_per_information6
1229 ,p_per_information7 => p_per_information7
1230 ,p_per_information8 => p_per_information8
1231 ,p_per_information9 => p_per_information9
1232 ,p_per_information10 => p_per_information10
1233 ,p_per_information11 => p_per_information11
1234 ,p_per_information12 => p_per_information12
1235 ,p_per_information13 => p_per_information13
1236 ,p_per_information14 => p_per_information14
1237 ,p_per_information15 => p_per_information15
1238 ,p_per_information16 => p_per_information16
1239 ,p_per_information17 => p_per_information17
1240 ,p_per_information18 => p_per_information18
1241 ,p_per_information19 => p_per_information19
1242 ,p_per_information20 => p_per_information20
1243 ,p_per_information21 => p_per_information21
1244 ,p_per_information22 => p_per_information22
1245 ,p_per_information23 => p_per_information23
1246 ,p_per_information24 => p_per_information24
1247 ,p_per_information25 => p_per_information25
1248 ,p_per_information26 => p_per_information26
1249 ,p_per_information27 => p_per_information27
1250 ,p_per_information28 => p_per_information28
1251 ,p_per_information29 => p_per_information29
1252 ,p_per_information30 => p_per_information30
1253 ,p_correspondence_language => p_correspondence_language
1254 ,p_honors => p_honors
1255 ,p_benefit_group_id => p_benefit_group_id
1256 ,p_on_military_service => p_on_military_service
1257 ,p_student_status => p_student_status
1258 ,p_uses_tobacco_flag => p_uses_tobacco_flag
1259 ,p_coord_ben_no_cvg_flag => p_coord_ben_no_cvg_flag
1260 ,p_pre_name_adjunct => p_pre_name_adjunct
1261 ,p_suffix => p_suffix
1262 ,p_town_of_birth => p_town_of_birth
1263 ,p_region_of_birth => p_region_of_birth
1264 ,p_country_of_birth => p_country_of_birth
1265 ,p_global_person_id => p_global_person_id
1266 ,p_person_id => l_person_id
1267 ,p_object_version_number => l_object_version_number
1268 ,p_effective_start_date => l_effective_start_date
1269 ,p_effective_end_date => l_effective_end_date
1270 ,p_full_name => l_full_name
1271 ,p_comment_id => l_comment_id
1272 ,p_name_combination_warning => l_name_combination_warning
1273 ,p_orig_hire_warning => l_orig_hire_warning
1274 );
1275 exception
1276 when hr_api.cannot_find_prog_unit then
1277 hr_api.cannot_find_prog_unit_error
1278 (p_module_name => 'CREATE_PERSON'
1279 ,p_hook_type => 'AP'
1280 );
1281 --
1282 -- End of the after process hook for create_person
1283 --
1284 end;
1285 --
1286 -- When in validation only mode raise the Validate_Enabled exception
1287 --
1288 if p_validate then
1289 raise hr_api.validate_enabled;
1290 end if;
1291
1292 -- Fix 3637708 Start
1293 SELECT object_version_number
1294 INTO p_object_version_number
1295 FROM per_all_people_f
1296 WHERE person_id = l_person_id
1297 And effective_start_Date = l_effective_start_date
1298 and effective_end_Date = l_effective_end_date;
1299 -- Fix 3637708 End
1300
1301 --
1302 -- Set all output arguments
1303 --
1304 p_person_id := l_person_id;
1305 p_effective_start_date := l_effective_start_date;
1306 p_effective_end_date := l_effective_end_date;
1307 p_full_name := l_full_name;
1308 p_comment_id := l_comment_id;
1309 p_name_combination_warning := l_name_combination_warning;
1310 p_orig_hire_warning := l_orig_hire_warning;
1311 --
1312 hr_utility.set_location(' Leaving:'||l_proc, 40);
1313 --
1314 exception
1315 when hr_api.validate_enabled then
1316 --
1317 -- As the Validate_Enabled exception has been raised
1318 -- we must rollback to the savepoint
1319 --
1320 ROLLBACK TO create_person_contact;
1321 --
1322 -- Only set output warning arguments
1323 -- (Any key or derived arguments must be set to null
1324 -- when validation only mode is being used.)
1325 --
1326 p_person_id := null;
1327 p_object_version_number := null;
1328 p_effective_start_date := null;
1329 p_effective_end_date := null;
1330 p_full_name := null;
1331 p_comment_id := null;
1332 p_name_combination_warning := l_name_combination_warning;
1333 p_orig_hire_warning := l_orig_hire_warning;
1334 --
1335 hr_utility.set_location(' Leaving:'||l_proc, 50);
1336 --
1337 when others then
1338 --
1339 -- A validation or unexpected error has occurred
1340 --
1341 -- Added as part of fix to bug 632479
1342 --
1343 ROLLBACK TO create_person_contact;
1344 --
1345 -- Set Out parameters [part of nocopy changes]
1346 p_person_id := null;
1347 p_object_version_number := null;
1348 p_effective_start_date := null;
1349 p_effective_end_date := null;
1350 p_full_name := null;
1351 p_comment_id := null;
1352 p_name_combination_warning := FALSE;
1353 p_orig_hire_warning := FALSE;
1354 --
1355 raise;
1356 --
1357 -- End of fix.
1358 --
1359 end create_irec_person;
1360 --
1361 end hr_contact_api;