DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_EMPLOYEE_SWI

Source


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