DBA Data[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;