[Home] [Help]
PACKAGE BODY: APPS.HR_PERSON_SWI
Source
1 Package Body hr_person_swi As
2 /* $Header: hrperswi.pkb 115.4 2003/02/12 20:13:31 pzwalker ship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'hr_person_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-----------------------------< update_person >----------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE update_person
12 (p_validate in number default hr_api.g_false_num
13 ,p_effective_date in date
14 ,p_datetrack_update_mode in varchar2
15 ,p_person_id in number
16 ,p_object_version_number in out nocopy number
17 ,p_person_type_id in number default hr_api.g_number
18 ,p_last_name in varchar2 default hr_api.g_varchar2
19 ,p_applicant_number in varchar2 default hr_api.g_varchar2
20 ,p_comments in varchar2 default hr_api.g_varchar2
21 ,p_date_employee_data_verified in date default hr_api.g_date
22 ,p_date_of_birth in date default hr_api.g_date
23 ,p_email_address in varchar2 default hr_api.g_varchar2
24 ,p_employee_number in out nocopy varchar2
25 ,p_expense_check_send_to_addres in varchar2 default hr_api.g_varchar2
26 ,p_first_name in varchar2 default hr_api.g_varchar2
27 ,p_known_as in varchar2 default hr_api.g_varchar2
28 ,p_marital_status in varchar2 default hr_api.g_varchar2
29 ,p_middle_names in varchar2 default hr_api.g_varchar2
30 ,p_nationality in varchar2 default hr_api.g_varchar2
31 ,p_national_identifier in varchar2 default hr_api.g_varchar2
32 ,p_previous_last_name in varchar2 default hr_api.g_varchar2
33 ,p_registered_disabled_flag in varchar2 default hr_api.g_varchar2
34 ,p_sex in varchar2 default hr_api.g_varchar2
35 ,p_title in varchar2 default hr_api.g_varchar2
36 ,p_vendor_id in number default hr_api.g_number
37 ,p_work_telephone in varchar2 default hr_api.g_varchar2
38 ,p_attribute_category in varchar2 default hr_api.g_varchar2
39 ,p_attribute1 in varchar2 default hr_api.g_varchar2
40 ,p_attribute2 in varchar2 default hr_api.g_varchar2
41 ,p_attribute3 in varchar2 default hr_api.g_varchar2
42 ,p_attribute4 in varchar2 default hr_api.g_varchar2
43 ,p_attribute5 in varchar2 default hr_api.g_varchar2
44 ,p_attribute6 in varchar2 default hr_api.g_varchar2
45 ,p_attribute7 in varchar2 default hr_api.g_varchar2
46 ,p_attribute8 in varchar2 default hr_api.g_varchar2
47 ,p_attribute9 in varchar2 default hr_api.g_varchar2
48 ,p_attribute10 in varchar2 default hr_api.g_varchar2
49 ,p_attribute11 in varchar2 default hr_api.g_varchar2
50 ,p_attribute12 in varchar2 default hr_api.g_varchar2
51 ,p_attribute13 in varchar2 default hr_api.g_varchar2
52 ,p_attribute14 in varchar2 default hr_api.g_varchar2
53 ,p_attribute15 in varchar2 default hr_api.g_varchar2
54 ,p_attribute16 in varchar2 default hr_api.g_varchar2
55 ,p_attribute17 in varchar2 default hr_api.g_varchar2
56 ,p_attribute18 in varchar2 default hr_api.g_varchar2
57 ,p_attribute19 in varchar2 default hr_api.g_varchar2
58 ,p_attribute20 in varchar2 default hr_api.g_varchar2
59 ,p_attribute21 in varchar2 default hr_api.g_varchar2
60 ,p_attribute22 in varchar2 default hr_api.g_varchar2
61 ,p_attribute23 in varchar2 default hr_api.g_varchar2
62 ,p_attribute24 in varchar2 default hr_api.g_varchar2
63 ,p_attribute25 in varchar2 default hr_api.g_varchar2
64 ,p_attribute26 in varchar2 default hr_api.g_varchar2
65 ,p_attribute27 in varchar2 default hr_api.g_varchar2
66 ,p_attribute28 in varchar2 default hr_api.g_varchar2
67 ,p_attribute29 in varchar2 default hr_api.g_varchar2
68 ,p_attribute30 in varchar2 default hr_api.g_varchar2
69 ,p_per_information_category in varchar2 default hr_api.g_varchar2
70 ,p_per_information1 in varchar2 default hr_api.g_varchar2
71 ,p_per_information2 in varchar2 default hr_api.g_varchar2
72 ,p_per_information3 in varchar2 default hr_api.g_varchar2
73 ,p_per_information4 in varchar2 default hr_api.g_varchar2
74 ,p_per_information5 in varchar2 default hr_api.g_varchar2
75 ,p_per_information6 in varchar2 default hr_api.g_varchar2
76 ,p_per_information7 in varchar2 default hr_api.g_varchar2
77 ,p_per_information8 in varchar2 default hr_api.g_varchar2
78 ,p_per_information9 in varchar2 default hr_api.g_varchar2
79 ,p_per_information10 in varchar2 default hr_api.g_varchar2
80 ,p_per_information11 in varchar2 default hr_api.g_varchar2
81 ,p_per_information12 in varchar2 default hr_api.g_varchar2
82 ,p_per_information13 in varchar2 default hr_api.g_varchar2
83 ,p_per_information14 in varchar2 default hr_api.g_varchar2
84 ,p_per_information15 in varchar2 default hr_api.g_varchar2
85 ,p_per_information16 in varchar2 default hr_api.g_varchar2
86 ,p_per_information17 in varchar2 default hr_api.g_varchar2
87 ,p_per_information18 in varchar2 default hr_api.g_varchar2
88 ,p_per_information19 in varchar2 default hr_api.g_varchar2
89 ,p_per_information20 in varchar2 default hr_api.g_varchar2
90 ,p_per_information21 in varchar2 default hr_api.g_varchar2
91 ,p_per_information22 in varchar2 default hr_api.g_varchar2
92 ,p_per_information23 in varchar2 default hr_api.g_varchar2
93 ,p_per_information24 in varchar2 default hr_api.g_varchar2
94 ,p_per_information25 in varchar2 default hr_api.g_varchar2
95 ,p_per_information26 in varchar2 default hr_api.g_varchar2
96 ,p_per_information27 in varchar2 default hr_api.g_varchar2
97 ,p_per_information28 in varchar2 default hr_api.g_varchar2
98 ,p_per_information29 in varchar2 default hr_api.g_varchar2
99 ,p_per_information30 in varchar2 default hr_api.g_varchar2
100 ,p_date_of_death in date default hr_api.g_date
101 ,p_background_check_status in varchar2 default hr_api.g_varchar2
102 ,p_background_date_check in date default hr_api.g_date
103 ,p_blood_type in varchar2 default hr_api.g_varchar2
104 ,p_correspondence_language in varchar2 default hr_api.g_varchar2
105 ,p_fast_path_employee in varchar2 default hr_api.g_varchar2
106 ,p_fte_capacity in number default hr_api.g_number
107 ,p_hold_applicant_date_until in date default hr_api.g_date
108 ,p_honors in varchar2 default hr_api.g_varchar2
109 ,p_internal_location in varchar2 default hr_api.g_varchar2
110 ,p_last_medical_test_by in varchar2 default hr_api.g_varchar2
111 ,p_last_medical_test_date in date default hr_api.g_date
112 ,p_mailstop in varchar2 default hr_api.g_varchar2
113 ,p_office_number in varchar2 default hr_api.g_varchar2
114 ,p_on_military_service in varchar2 default hr_api.g_varchar2
115 ,p_pre_name_adjunct in varchar2 default hr_api.g_varchar2
116 ,p_projected_start_date in date default hr_api.g_date
117 ,p_rehire_authorizor in varchar2 default hr_api.g_varchar2
118 ,p_rehire_recommendation in varchar2 default hr_api.g_varchar2
119 ,p_resume_exists in varchar2 default hr_api.g_varchar2
120 ,p_resume_last_updated in date default hr_api.g_date
121 ,p_second_passport_exists in varchar2 default hr_api.g_varchar2
122 ,p_student_status in varchar2 default hr_api.g_varchar2
123 ,p_work_schedule in varchar2 default hr_api.g_varchar2
124 ,p_rehire_reason in varchar2 default hr_api.g_varchar2
125 ,p_suffix in varchar2 default hr_api.g_varchar2
126 ,p_benefit_group_id in number default hr_api.g_number
127 ,p_receipt_of_death_cert_date in date default hr_api.g_date
128 ,p_coord_ben_med_pln_no in varchar2 default hr_api.g_varchar2
129 ,p_coord_ben_no_cvg_flag in varchar2 default hr_api.g_varchar2
130 ,p_coord_ben_med_ext_er in varchar2 default hr_api.g_varchar2
131 ,p_coord_ben_med_pl_name in varchar2 default hr_api.g_varchar2
132 ,p_coord_ben_med_insr_crr_name in varchar2 default hr_api.g_varchar2
133 ,p_coord_ben_med_insr_crr_ident in varchar2 default hr_api.g_varchar2
134 ,p_coord_ben_med_cvg_strt_dt in date default hr_api.g_date
135 ,p_coord_ben_med_cvg_end_dt in date default hr_api.g_date
136 ,p_uses_tobacco_flag in varchar2 default hr_api.g_varchar2
137 ,p_dpdnt_adoption_date in date default hr_api.g_date
138 ,p_dpdnt_vlntry_svce_flag in varchar2 default hr_api.g_varchar2
139 ,p_original_date_of_hire in date default hr_api.g_date
140 ,p_adjusted_svc_date in date default hr_api.g_date
141 ,p_town_of_birth in varchar2 default hr_api.g_varchar2
142 ,p_region_of_birth in varchar2 default hr_api.g_varchar2
143 ,p_country_of_birth in varchar2 default hr_api.g_varchar2
144 ,p_global_person_id in varchar2 default hr_api.g_varchar2
145 ,p_party_id in number default hr_api.g_number
146 ,p_npw_number in varchar2 default hr_api.g_varchar2
147 ,p_effective_start_date out nocopy date
148 ,p_effective_end_date out nocopy date
149 ,p_party_last_update_date out nocopy date
150 ,p_full_name out nocopy varchar2
151 ,p_comment_id out nocopy number
152 ,p_return_status out nocopy varchar2
153 ) is
154 --
155 -- Variables for API Boolean parameters
156 l_validate boolean;
157 l_name_combination_warning boolean;
158 l_assign_payroll_warning boolean;
159 l_orig_hire_warning boolean;
160 --
161 -- Variables for IN/OUT parameters
162 l_object_version_number number;
163 l_employee_number varchar2(30);
164 --
165 -- Other variables
166 l_proc varchar2(72) := g_package ||'update_person';
167 --
168 -- Cursor to return party last update date
169 cursor csr_party_last_update_date(p_party_id number,
170 p_effective_date date) is
171 select hzp.last_update_date
172 from hz_person_profiles hzp
173 where hzp.party_id = p_party_id
174 and p_effective_date
175 between hzp.effective_start_date
176 and nvl(hzp.effective_end_date,hr_api.g_eot);
177 --
178 Begin
179 hr_utility.set_location(' Entering:' || l_proc,10);
180 --
181 -- Issue a savepoint
182 --
183 savepoint update_person_swi;
184 --
185 -- Initialise Multiple Message Detection
186 --
187 hr_multi_message.enable_message_list;
188 --
189 -- Remember IN OUT parameter IN values
190 --
191 l_object_version_number := p_object_version_number;
192 l_employee_number := p_employee_number;
193 --
194 -- Convert constant values to their corresponding boolean value
195 --
196 l_validate :=
197 hr_api.constant_to_boolean
198 (p_constant_value => p_validate);
199 --
200 -- Register Surrogate ID or user key values
201 --
202 --
203 -- Call API
204 --
205 hr_person_api.update_person
206 (p_validate => l_validate
207 ,p_effective_date => p_effective_date
208 ,p_datetrack_update_mode => p_datetrack_update_mode
209 ,p_person_id => p_person_id
210 ,p_object_version_number => p_object_version_number
211 -- advised by core hr not to pass person_type_id
212 -- bug 2660465
213 --,p_person_type_id => p_person_type_id
214 ,p_last_name => p_last_name
215 ,p_applicant_number => p_applicant_number
216 ,p_comments => p_comments
217 ,p_date_employee_data_verified => p_date_employee_data_verified
218 ,p_date_of_birth => p_date_of_birth
219 ,p_email_address => p_email_address
220 ,p_employee_number => l_employee_number
221 ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
222 ,p_first_name => p_first_name
223 ,p_known_as => p_known_as
224 ,p_marital_status => p_marital_status
225 ,p_middle_names => p_middle_names
226 ,p_nationality => p_nationality
227 ,p_national_identifier => p_national_identifier
228 ,p_previous_last_name => p_previous_last_name
229 ,p_registered_disabled_flag => p_registered_disabled_flag
230 ,p_sex => p_sex
231 ,p_title => p_title
232 ,p_vendor_id => p_vendor_id
233 ,p_work_telephone => p_work_telephone
234 ,p_attribute_category => p_attribute_category
235 ,p_attribute1 => p_attribute1
236 ,p_attribute2 => p_attribute2
237 ,p_attribute3 => p_attribute3
238 ,p_attribute4 => p_attribute4
239 ,p_attribute5 => p_attribute5
240 ,p_attribute6 => p_attribute6
241 ,p_attribute7 => p_attribute7
242 ,p_attribute8 => p_attribute8
243 ,p_attribute9 => p_attribute9
244 ,p_attribute10 => p_attribute10
245 ,p_attribute11 => p_attribute11
246 ,p_attribute12 => p_attribute12
247 ,p_attribute13 => p_attribute13
248 ,p_attribute14 => p_attribute14
249 ,p_attribute15 => p_attribute15
250 ,p_attribute16 => p_attribute16
251 ,p_attribute17 => p_attribute17
252 ,p_attribute18 => p_attribute18
253 ,p_attribute19 => p_attribute19
254 ,p_attribute20 => p_attribute20
255 ,p_attribute21 => p_attribute21
256 ,p_attribute22 => p_attribute22
257 ,p_attribute23 => p_attribute23
258 ,p_attribute24 => p_attribute24
259 ,p_attribute25 => p_attribute25
260 ,p_attribute26 => p_attribute26
261 ,p_attribute27 => p_attribute27
262 ,p_attribute28 => p_attribute28
263 ,p_attribute29 => p_attribute29
264 ,p_attribute30 => p_attribute30
265 ,p_per_information_category => p_per_information_category
266 ,p_per_information1 => p_per_information1
267 ,p_per_information2 => p_per_information2
268 ,p_per_information3 => p_per_information3
269 ,p_per_information4 => p_per_information4
270 ,p_per_information5 => p_per_information5
271 ,p_per_information6 => p_per_information6
272 ,p_per_information7 => p_per_information7
273 ,p_per_information8 => p_per_information8
274 ,p_per_information9 => p_per_information9
275 ,p_per_information10 => p_per_information10
276 ,p_per_information11 => p_per_information11
277 ,p_per_information12 => p_per_information12
278 ,p_per_information13 => p_per_information13
279 ,p_per_information14 => p_per_information14
280 ,p_per_information15 => p_per_information15
281 ,p_per_information16 => p_per_information16
282 ,p_per_information17 => p_per_information17
283 ,p_per_information18 => p_per_information18
284 ,p_per_information19 => p_per_information19
285 ,p_per_information20 => p_per_information20
286 ,p_per_information21 => p_per_information21
287 ,p_per_information22 => p_per_information22
288 ,p_per_information23 => p_per_information23
289 ,p_per_information24 => p_per_information24
290 ,p_per_information25 => p_per_information25
291 ,p_per_information26 => p_per_information26
292 ,p_per_information27 => p_per_information27
293 ,p_per_information28 => p_per_information28
294 ,p_per_information29 => p_per_information29
295 ,p_per_information30 => p_per_information30
296 ,p_date_of_death => p_date_of_death
297 ,p_background_check_status => p_background_check_status
298 ,p_background_date_check => p_background_date_check
299 ,p_blood_type => p_blood_type
300 ,p_correspondence_language => p_correspondence_language
301 ,p_fast_path_employee => p_fast_path_employee
302 ,p_fte_capacity => p_fte_capacity
303 ,p_hold_applicant_date_until => p_hold_applicant_date_until
304 ,p_honors => p_honors
305 ,p_internal_location => p_internal_location
306 ,p_last_medical_test_by => p_last_medical_test_by
307 ,p_last_medical_test_date => p_last_medical_test_date
308 ,p_mailstop => p_mailstop
309 ,p_office_number => p_office_number
310 ,p_on_military_service => p_on_military_service
311 ,p_pre_name_adjunct => p_pre_name_adjunct
312 ,p_projected_start_date => p_projected_start_date
313 ,p_rehire_authorizor => p_rehire_authorizor
314 ,p_rehire_recommendation => p_rehire_recommendation
315 ,p_resume_exists => p_resume_exists
316 ,p_resume_last_updated => p_resume_last_updated
317 ,p_second_passport_exists => p_second_passport_exists
318 ,p_student_status => p_student_status
319 ,p_work_schedule => p_work_schedule
320 ,p_rehire_reason => p_rehire_reason
321 ,p_suffix => p_suffix
322 ,p_benefit_group_id => p_benefit_group_id
323 ,p_receipt_of_death_cert_date => p_receipt_of_death_cert_date
324 ,p_coord_ben_med_pln_no => p_coord_ben_med_pln_no
325 ,p_coord_ben_no_cvg_flag => p_coord_ben_no_cvg_flag
326 ,p_coord_ben_med_ext_er => p_coord_ben_med_ext_er
327 ,p_coord_ben_med_pl_name => p_coord_ben_med_pl_name
328 ,p_coord_ben_med_insr_crr_name => p_coord_ben_med_insr_crr_name
329 ,p_coord_ben_med_insr_crr_ident => p_coord_ben_med_insr_crr_ident
330 ,p_coord_ben_med_cvg_strt_dt => p_coord_ben_med_cvg_strt_dt
331 ,p_coord_ben_med_cvg_end_dt => p_coord_ben_med_cvg_end_dt
332 ,p_uses_tobacco_flag => p_uses_tobacco_flag
333 ,p_dpdnt_adoption_date => p_dpdnt_adoption_date
334 ,p_dpdnt_vlntry_svce_flag => p_dpdnt_vlntry_svce_flag
335 ,p_original_date_of_hire => p_original_date_of_hire
336 ,p_adjusted_svc_date => p_adjusted_svc_date
337 ,p_town_of_birth => p_town_of_birth
338 ,p_region_of_birth => p_region_of_birth
339 ,p_country_of_birth => p_country_of_birth
340 ,p_global_person_id => p_global_person_id
341 ,p_party_id => p_party_id
342 ,p_npw_number => p_npw_number
343 ,p_effective_start_date => p_effective_start_date
344 ,p_effective_end_date => p_effective_end_date
345 ,p_full_name => p_full_name
346 ,p_comment_id => p_comment_id
347 ,p_name_combination_warning => l_name_combination_warning
348 ,p_assign_payroll_warning => l_assign_payroll_warning
349 ,p_orig_hire_warning => l_orig_hire_warning
350 );
351 --
352 -- set the party last update out parameter
353 --
354 open csr_party_last_update_date(p_party_id, p_effective_date);
355 fetch csr_party_last_update_date into p_party_last_update_date;
356 close csr_party_last_update_date;
357 --
358 -- Convert API warning boolean parameter values to specific
359 -- messages and add them to Multiple Message List
360 --
361 if l_name_combination_warning then
362 fnd_message.set_name('PER', 'PER_WEB_CONTACT_DUPLICATE');
363 hr_multi_message.add
364 (p_message_type => hr_multi_message.g_warning_msg
365 );
366 end if;
367 if l_assign_payroll_warning then
368 fnd_message.set_name('PER', 'HR_EMP_ASS_NO_DOB ');
369 hr_multi_message.add
370 (p_message_type => hr_multi_message.g_warning_msg
371 );
372 end if;
373 if l_orig_hire_warning then
374 fnd_message.set_name('PER', 'PER_52359_HIRE_DATES_WARN ');
375 hr_multi_message.add
376 (p_message_type => hr_multi_message.g_warning_msg
377 );
378 end if; --
379 -- Convert API non-warning boolean parameter values
380 --
381 --
382 -- Derive the API return status value based on whether
383 -- messages of any type exist in the Multiple Message List.
384 -- Also disable Multiple Message Detection.
385 --
386 p_return_status := hr_multi_message.get_return_status_disable;
387 hr_utility.set_location(' Leaving:' || l_proc,20);
388 --
389 exception
390 when hr_multi_message.error_message_exist then
391 --
392 -- Catch the Multiple Message List exception which
393 -- indicates API processing has been aborted because
394 -- at least one message exists in the list.
395 --
396 rollback to update_person_swi;
397 --
398 -- Reset IN OUT parameters and set OUT parameters
399 --
400 p_object_version_number := l_object_version_number;
401 p_employee_number := l_employee_number;
402 p_effective_start_date := null;
403 p_effective_end_date := null;
404 p_full_name := null;
405 p_comment_id := null;
406 p_return_status := hr_multi_message.get_return_status_disable;
407 hr_utility.set_location(' Leaving:' || l_proc, 30);
408 when others then
409 --
410 -- When Multiple Message Detection is enabled catch
411 -- any Application specific or other unexpected
412 -- exceptions. Adding appropriate details to the
413 -- Multiple Message List. Otherwise re-raise the
414 -- error.
415 --
416 rollback to update_person_swi;
417 if hr_multi_message.unexpected_error_add(l_proc) then
418 hr_utility.set_location(' Leaving:' || l_proc,40);
419 raise;
420 end if;
421 --
422 -- Reset IN OUT and set OUT parameters
423 --
424 p_object_version_number := l_object_version_number;
425 p_employee_number := l_employee_number;
426 p_effective_start_date := null;
427 p_effective_end_date := null;
428 p_full_name := null;
429 p_comment_id := null;
430 p_return_status := hr_multi_message.get_return_status_disable;
431 hr_utility.set_location(' Leaving:' || l_proc,50);
432 end update_person;
433 end hr_person_swi;