[Home] [Help]
PACKAGE BODY: APPS.HR_CONTACT_API
Source
1 Package Body hr_contact_api as
2 /* $Header: peconapi.pkb 120.0 2005/05/31 07:03:45 appldev noship $ */
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 end hr_contact_api;