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