DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_PERSON_ATT

Source


1 Package Body hr_person_att as
2 /* $Header: peperati.pkb 120.1 2005/06/15 05:39:23 bshukla noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := 'hr_person_att.';
7 -- ----------------------------------------------------------------------------
8 -- |---------------------------< update_person >------------------------------|
9 -- ----------------------------------------------------------------------------
10 procedure update_person
11   (p_validate                     in      boolean   default false
12   ,p_effective_date               in      date
13   ,p_attribute_update_mode        in      varchar2
14   ,p_person_id                    in      number
15   ,p_object_version_number        in out nocopy  number
16   ,p_person_type_id               in      number   default hr_api.g_number
17   ,p_last_name                    in      varchar2 default hr_api.g_varchar2
18   ,p_applicant_number             in      varchar2 default hr_api.g_varchar2
19   ,p_comments                     in      varchar2 default hr_api.g_varchar2
20   ,p_date_employee_data_verified  in      date     default hr_api.g_date
21   ,p_date_of_birth                in      date     default hr_api.g_date
22   ,p_email_address                in      varchar2 default hr_api.g_varchar2
23   ,p_employee_number              in out nocopy  varchar2
24   ,p_expense_check_send_to_addres in      varchar2 default hr_api.g_varchar2
25   ,p_first_name                   in      varchar2 default hr_api.g_varchar2
26   ,p_known_as                     in      varchar2 default hr_api.g_varchar2
27   ,p_marital_status               in      varchar2 default hr_api.g_varchar2
28   ,p_middle_names                 in      varchar2 default hr_api.g_varchar2
29   ,p_nationality                  in      varchar2 default hr_api.g_varchar2
30   ,p_national_identifier          in      varchar2 default hr_api.g_varchar2
31   ,p_previous_last_name           in      varchar2 default hr_api.g_varchar2
32   ,p_registered_disabled_flag     in      varchar2 default hr_api.g_varchar2
33   ,p_sex                          in      varchar2 default hr_api.g_varchar2
34   ,p_title                        in      varchar2 default hr_api.g_varchar2
35   ,p_vendor_id                    in      number   default hr_api.g_number
36   ,p_work_telephone               in      varchar2 default hr_api.g_varchar2
37   ,p_suffix                       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_benefit_group_id             in      number   default hr_api.g_number
126   ,p_receipt_of_death_cert_date   in      date     default hr_api.g_date
127   ,p_coord_ben_med_pln_no         in      varchar2 default hr_api.g_varchar2
128   ,p_coord_ben_no_cvg_flag        in      varchar2 default hr_api.g_varchar2
129   ,p_uses_tobacco_flag            in      varchar2 default hr_api.g_varchar2
130   ,p_dpdnt_adoption_date          in      date     default hr_api.g_date
131   ,p_dpdnt_vlntry_svce_flag       in      varchar2 default hr_api.g_varchar2
132   ,p_original_date_of_hire        in      date     default hr_api.g_date
133   ,p_town_of_birth                in      varchar2 default hr_api.g_varchar2
134   ,p_region_of_birth              in      varchar2 default hr_api.g_varchar2
135   ,p_country_of_birth             in      varchar2 default hr_api.g_varchar2
136   ,p_global_person_id             in      varchar2 default hr_api.g_varchar2
137   ,p_effective_start_date            out nocopy  date
138   ,p_effective_end_date              out nocopy  date
139   ,p_full_name                       out nocopy  varchar2
140   ,p_comment_id                      out nocopy  number
141   ,p_name_combination_warning        out nocopy  boolean
142   ,p_assign_payroll_warning          out nocopy  boolean
143   ,p_orig_hire_warning               out nocopy  boolean) is
144   -- --------------------------------------------------------------------------
145   -- declare local variables
146   -- --------------------------------------------------------------------------
147   l_proc                     varchar2(72)  := g_package||'update_person';
148   l_effective_date           date          := trunc(p_effective_date);
149   l_constant_effective_date  constant date := l_effective_date;
150   l_effective_date_row       boolean       := true;
151   l_validation_start_date    date;
152   l_validation_end_date      date;
153   l_datetrack_update_mode    varchar2(30);
154   l_correction               boolean;
155   l_update                   boolean;
156   l_update_override          boolean;
157   l_update_change_insert     boolean;
158   l_lck_start_date           date;
159   -- --------------------------------------------------------------------------
160   -- local cursor definitions
161   -- --------------------------------------------------------------------------
162   -- csr_per_lck  -> locks all the datetracked rows for the specified person
163   --                 from the specified lock date. this enforces integrity.
164   --                 if the datetrack operation is for an ATTRIBUTE_UPDATE
165   --                 then only the current and future rows will be locked. if
166   --                 the datetrack operation is a ATTRIBUTE_CORRECTION then
167   --                 all person rows are locked as we cannot guarantee how
168   --                 many rows will be changed.
169   -- csr_per1     -> selects person details for the current and future rows
170   -- csr_per2     -> selects person details in the past in a descending order
171   --                 not including the current row as of the effective date.
172   --
173   -- note: the cursors csr_per1 nd csr_per2 are specifically not merged
174   --       because of the of the order by clause
175   --
176   -- cursor to lock all rows for which the datetrack operation could
177   -- operate over
178   cursor csr_per_lck(c_lck_start_date date) is
179     select 1
180     from   per_people_f per
181     where  per.person_id = p_person_id
182     and    per.effective_end_date >= c_lck_start_date
183     for    update nowait;
184   -- select current and future rows
185   cursor csr_per1 is
186     select per.object_version_number
187           ,per.person_type_id
188           ,per.employee_number
189           ,per.last_name
190           ,per.applicant_number
191           ,per.date_employee_data_verified
192           ,per.date_of_birth
193           ,per.email_address
194           ,per.expense_check_send_to_address
195           ,per.first_name
196           ,per.known_as
197           ,per.marital_status
198           ,per.middle_names
199           ,per.nationality
200           ,per.national_identifier
201           ,per.previous_last_name
202           ,per.registered_disabled_flag
203           ,per.sex
204           ,per.title
205           ,per.vendor_id
206           ,per.work_telephone
207           ,per.suffix
208           ,per.attribute_category
209           ,per.attribute1
210           ,per.attribute2
211           ,per.attribute3
212           ,per.attribute4
213           ,per.attribute5
214           ,per.attribute6
215           ,per.attribute7
216           ,per.attribute8
217           ,per.attribute9
218           ,per.attribute10
219           ,per.attribute11
220           ,per.attribute12
221           ,per.attribute13
222           ,per.attribute14
223           ,per.attribute15
224           ,per.attribute16
225           ,per.attribute17
226           ,per.attribute18
227           ,per.attribute19
228           ,per.attribute20
229           ,per.attribute21
230           ,per.attribute22
231           ,per.attribute23
232           ,per.attribute24
233           ,per.attribute25
234           ,per.attribute26
235           ,per.attribute27
236           ,per.attribute28
237           ,per.attribute29
238           ,per.attribute30
239           ,per.per_information_category
240           ,per.per_information1
241           ,per.per_information2
242           ,per.per_information3
243           ,per.per_information4
244           ,per.per_information5
245           ,per.per_information6
246           ,per.per_information7
247           ,per.per_information8
248           ,per.per_information9
249           ,per.per_information10
250           ,per.per_information11
251           ,per.per_information12
252           ,per.per_information13
253           ,per.per_information14
254           ,per.per_information15
255           ,per.per_information16
256           ,per.per_information17
257           ,per.per_information18
258           ,per.per_information19
259           ,per.per_information20
260           ,per.per_information21
261           ,per.per_information22
262           ,per.per_information23
263           ,per.per_information24
264           ,per.per_information25
265           ,per.per_information26
266           ,per.per_information27
267           ,per.per_information28
268           ,per.per_information29
269           ,per.per_information30
270           ,per.date_of_death
271           ,per.background_check_status
272           ,per.background_date_check
273           ,per.blood_type
274           ,per.correspondence_language
275           ,per.fast_path_employee
276           ,per.fte_capacity
277           ,per.hold_applicant_date_until
278           ,per.honors
279           ,per.internal_location
280           ,per.last_medical_test_by
281           ,per.last_medical_test_date
282           ,per.mailstop
283           ,per.office_number
284           ,per.on_military_service
285           ,per.pre_name_adjunct
286           ,per.projected_start_date
287           ,per.rehire_authorizor
288           ,per.rehire_recommendation
289           ,per.resume_exists
290           ,per.resume_last_updated
291           ,per.second_passport_exists
292           ,per.student_status
293           ,per.work_schedule
294           ,per.rehire_reason
295           ,per.benefit_group_id
296           ,per.receipt_of_death_cert_date
297           ,per.coord_ben_med_pln_no
298           ,per.coord_ben_no_cvg_flag
299           ,per.uses_tobacco_flag
300           ,per.dpdnt_adoption_date
301           ,per.dpdnt_vlntry_svce_flag
302           ,per.original_date_of_hire
303           ,per.town_of_birth
304           ,per.region_of_birth
305           ,per.country_of_birth
306           ,per.global_person_id
307           ,per.effective_start_date
308           ,per.effective_end_date
309           ,hc.comment_text
310     from    hr_comments             hc
311            ,per_all_people_f        per
312     where   per.person_id           = p_person_id
313     and     per.effective_end_date >= l_constant_effective_date
314     and     hc.comment_id (+)       = per.comment_id
315     order by per.effective_end_date asc;
316     -- select past rows not including the current rows
317     cursor csr_per2 is
318     select per.object_version_number
319           ,per.person_type_id
320           ,per.employee_number
321           ,per.last_name
322           ,per.applicant_number
323           ,per.date_employee_data_verified
324           ,per.date_of_birth
325           ,per.email_address
326           ,per.expense_check_send_to_address
327           ,per.first_name
328           ,per.known_as
329           ,per.marital_status
330           ,per.middle_names
331           ,per.nationality
332           ,per.national_identifier
333           ,per.previous_last_name
334           ,per.registered_disabled_flag
335           ,per.sex
336           ,per.title
337           ,per.vendor_id
338           ,per.work_telephone
339           ,per.suffix
340           ,per.attribute_category
341           ,per.attribute1
342           ,per.attribute2
343           ,per.attribute3
344           ,per.attribute4
345           ,per.attribute5
346           ,per.attribute6
347           ,per.attribute7
348           ,per.attribute8
349           ,per.attribute9
350           ,per.attribute10
351           ,per.attribute11
352           ,per.attribute12
353           ,per.attribute13
354           ,per.attribute14
355           ,per.attribute15
356           ,per.attribute16
357           ,per.attribute17
358           ,per.attribute18
359           ,per.attribute19
360           ,per.attribute20
361           ,per.attribute21
362           ,per.attribute22
363           ,per.attribute23
364           ,per.attribute24
365           ,per.attribute25
366           ,per.attribute26
367           ,per.attribute27
368           ,per.attribute28
369           ,per.attribute29
370           ,per.attribute30
371           ,per.per_information_category
372           ,per.per_information1
373           ,per.per_information2
374           ,per.per_information3
375           ,per.per_information4
376           ,per.per_information5
377           ,per.per_information6
378           ,per.per_information7
379           ,per.per_information8
380           ,per.per_information9
381           ,per.per_information10
382           ,per.per_information11
383           ,per.per_information12
384           ,per.per_information13
385           ,per.per_information14
386           ,per.per_information15
387           ,per.per_information16
388           ,per.per_information17
389           ,per.per_information18
390           ,per.per_information19
391           ,per.per_information20
392           ,per.per_information21
393           ,per.per_information22
394           ,per.per_information23
395           ,per.per_information24
396           ,per.per_information25
397           ,per.per_information26
398           ,per.per_information27
399           ,per.per_information28
400           ,per.per_information29
401           ,per.per_information30
402           ,per.date_of_death
403           ,per.background_check_status
404           ,per.background_date_check
405           ,per.blood_type
406           ,per.correspondence_language
407           ,per.fast_path_employee
408           ,per.fte_capacity
409           ,per.hold_applicant_date_until
410           ,per.honors
411           ,per.internal_location
412           ,per.last_medical_test_by
413           ,per.last_medical_test_date
414           ,per.mailstop
415           ,per.office_number
416           ,per.on_military_service
417           ,per.pre_name_adjunct
418           ,per.projected_start_date
419           ,per.rehire_authorizor
420           ,per.rehire_recommendation
421           ,per.resume_exists
422           ,per.resume_last_updated
423           ,per.second_passport_exists
424           ,per.student_status
425           ,per.work_schedule
426           ,per.rehire_reason
427           ,per.benefit_group_id
428           ,per.receipt_of_death_cert_date
429           ,per.coord_ben_med_pln_no
430           ,per.coord_ben_no_cvg_flag
431           ,per.uses_tobacco_flag
432           ,per.dpdnt_adoption_date
433           ,per.dpdnt_vlntry_svce_flag
434           ,per.original_date_of_hire
435           ,per.town_of_birth
436           ,per.region_of_birth
437           ,per.country_of_birth
438           ,per.global_person_id
439           ,per.effective_start_date
440           ,per.effective_end_date
441           ,hc.comment_text
442     from    hr_comments            hc
443            ,per_all_people_f       per
444     where   per.person_id          = p_person_id
445     and     per.effective_end_date < l_constant_effective_date
446     and     hc.comment_id (+)      = per.comment_id
447     order by per.effective_end_date desc;
448   -- IN parameters for BP API
449   l_last_name           per_people_f.last_name%type;
450   l_date_of_birth       per_people_f.date_of_birth%type;
451   l_email_address       per_people_f.email_address%type;
452   l_first_name          per_people_f.first_name%type;
453   l_known_as            per_people_f.known_as%type;
454   l_marital_status      per_people_f.marital_status%type;
455   l_middle_names        per_people_f.middle_names%type;
456   l_nationality         per_people_f.nationality%type;
457   l_previous_last_name  per_people_f.previous_last_name%type;
458   l_sex                 per_people_f.sex%type;
459   l_title               per_people_f.title%type;
460   l_work_telephone      per_people_f.work_telephone%type;
461   l_suffix              per_people_f.suffix%type;
462   l_person_type_id      per_people_f.person_type_id%type;
463   l_applicant_number    per_people_f.applicant_number%type;
464   l_comments            hr_comments.comment_text%type;
465   l_date_employee_data_verified  per_people_f.date_employee_data_verified%type;
466   l_expense_check_send_to_addres per_people_f.expense_check_send_to_address%type;
467   l_national_identifier per_people_f.national_identifier%type;
468   l_registered_disabled_flag per_people_f.registered_disabled_flag%type;
469   l_vendor_id           per_people_f.vendor_id%type;
470   l_attribute_category  per_people_f.attribute_category%type;
471   l_attribute1          per_people_f.attribute1%type;
472   l_attribute2          per_people_f.attribute2%type;
473   l_attribute3          per_people_f.attribute3%type;
474   l_attribute4          per_people_f.attribute4%type;
475   l_attribute5          per_people_f.attribute5%type;
476   l_attribute6          per_people_f.attribute6%type;
477   l_attribute7          per_people_f.attribute7%type;
478   l_attribute8          per_people_f.attribute8%type;
479   l_attribute9          per_people_f.attribute9%type;
480   l_attribute10         per_people_f.attribute10%type;
481   l_attribute11         per_people_f.attribute11%type;
482   l_attribute12         per_people_f.attribute12%type;
483   l_attribute13         per_people_f.attribute13%type;
484   l_attribute14         per_people_f.attribute14%type;
485   l_attribute15         per_people_f.attribute15%type;
486   l_attribute16         per_people_f.attribute16%type;
487   l_attribute17         per_people_f.attribute17%type;
488   l_attribute18         per_people_f.attribute18%type;
489   l_attribute19         per_people_f.attribute19%type;
490   l_attribute20         per_people_f.attribute20%type;
491   l_attribute21         per_people_f.attribute21%type;
492   l_attribute22         per_people_f.attribute22%type;
493   l_attribute23         per_people_f.attribute23%type;
494   l_attribute24         per_people_f.attribute24%type;
495   l_attribute25         per_people_f.attribute25%type;
496   l_attribute26         per_people_f.attribute26%type;
497   l_attribute27         per_people_f.attribute27%type;
498   l_attribute28         per_people_f.attribute28%type;
499   l_attribute29         per_people_f.attribute29%type;
500   l_attribute30         per_people_f.attribute30%type;
501   l_per_information_category per_people_f.per_information_category%type;
502   l_per_information1    per_people_f.per_information1%type;
503   l_per_information2    per_people_f.per_information2%type;
504   l_per_information3    per_people_f.per_information3%type;
505   l_per_information4    per_people_f.per_information4%type;
506   l_per_information5    per_people_f.per_information5%type;
507   l_per_information6    per_people_f.per_information6%type;
508   l_per_information7    per_people_f.per_information7%type;
509   l_per_information8    per_people_f.per_information8%type;
510   l_per_information9    per_people_f.per_information9%type;
511   l_per_information10   per_people_f.per_information10%type;
512   l_per_information11   per_people_f.per_information11%type;
513   l_per_information12   per_people_f.per_information12%type;
514   l_per_information13   per_people_f.per_information13%type;
515   l_per_information14   per_people_f.per_information14%type;
516   l_per_information15   per_people_f.per_information15%type;
517   l_per_information16   per_people_f.per_information16%type;
518   l_per_information17   per_people_f.per_information17%type;
519   l_per_information18   per_people_f.per_information18%type;
520   l_per_information19   per_people_f.per_information19%type;
521   l_per_information20   per_people_f.per_information20%type;
522 
523   l_per_information21   per_people_f.per_information21%type;
524   l_per_information22   per_people_f.per_information22%type;
525   l_per_information23   per_people_f.per_information23%type;
526   l_per_information24   per_people_f.per_information24%type;
527   l_per_information25   per_people_f.per_information25%type;
528   l_per_information26   per_people_f.per_information26%type;
529   l_per_information27   per_people_f.per_information27%type;
530   l_per_information28   per_people_f.per_information28%type;
531   l_per_information29   per_people_f.per_information29%type;
532   l_per_information30   per_people_f.per_information30%type;
533   l_date_of_death                  per_people_f.date_of_death%type;
534   l_background_check_status        per_people_f.background_check_status%type;
535   l_background_date_check          per_people_f.background_date_check%type;
536   l_blood_type                     per_people_f.blood_type%type;
537   l_correspondence_language        per_people_f.correspondence_language%type;
538   l_fast_path_employee             per_people_f.fast_path_employee%type;
539   l_fte_capacity                   per_people_f.fte_capacity%type;
540   l_hold_applicant_date_until      per_people_f.hold_applicant_date_until%type;
541   l_honors                         per_people_f.honors%type;
542   l_internal_location              per_people_f.internal_location%type;
543   l_last_medical_test_by           per_people_f.last_medical_test_by%type;
544   l_last_medical_test_date         per_people_f.last_medical_test_date%type;
545   l_mailstop                       per_people_f.mailstop%type;
546   l_office_number                  per_people_f.office_number%type;
547   l_on_military_service            per_people_f.on_military_service%type;
548   l_pre_name_adjunct               per_people_f.pre_name_adjunct%type;
549   l_projected_start_date           per_people_f.projected_start_date%type;
550   l_rehire_authorizor              per_people_f.rehire_authorizor%type;
551   l_rehire_recommendation          per_people_f.rehire_recommendation%type;
552   l_resume_exists                  per_people_f.resume_exists%type;
553   l_resume_last_updated            per_people_f.resume_last_updated%type;
554   l_second_passport_exists         per_people_f.second_passport_exists%type;
555   l_student_status                 per_people_f.student_status%type;
556   l_work_schedule                  per_people_f.work_schedule%type;
557   l_rehire_reason                  per_people_f.rehire_reason%type;
558   l_benefit_group_id               per_people_f.benefit_group_id%type;
559   l_receipt_of_death_cert_date     per_people_f.receipt_of_death_cert_date%type;
560   l_coord_ben_med_pln_no           per_people_f.coord_ben_med_pln_no%type;
561   l_coord_ben_no_cvg_flag          per_people_f.coord_ben_no_cvg_flag%type;
562   l_uses_tobacco_flag              per_people_f.uses_tobacco_flag%type;
563   l_dpdnt_adoption_date            per_people_f.dpdnt_adoption_date%type;
564   l_dpdnt_vlntry_svce_flag         per_people_f.dpdnt_vlntry_svce_flag%type;
565   l_original_date_of_hire          per_people_f.original_date_of_hire%type;
566   l_town_of_birth                  per_people_f.town_of_birth%type;
567   l_region_of_birth                per_people_f.region_of_birth%type;
568   l_country_of_birth               per_people_f.country_of_birth%type;
569   l_global_person_id               per_people_f.global_person_id%type;
570   -- IN/OUT parameters for BP API and API
571   l_employee_number                per_people_f.employee_number%type;
572   l_object_version_number          per_people_f.object_version_number%type;
573   -- OUT parameters for BP API
574   l_full_name                per_people_f.full_name%type;
575   l_comment_id               per_people_f.comment_id%type;
576   l_name_combination_warning boolean;
577   l_assign_payroll_warning   boolean;
578   l_orig_hire_warning        boolean;
579   l_effective_start_date     per_people_f.effective_start_date%type;
580   l_effective_end_date       per_people_f.effective_end_date%type;
581   -- OUT parameters for API
582   l_api_name_combination_warning boolean := false;
583   l_api_assign_payroll_warning   boolean := false;
584   l_api_orig_hire_warning        boolean := false;
585   -- --------------------------------------------------------------------------
586   -- |---------------------------< process_row >------------------------------|
587   -- --------------------------------------------------------------------------
588   -- {Start Of Comments}
589   --
590   -- Description:
591   --   This private function is used to determine the correct attribute values
592   --   to pass to the BP API.
593   --
594   --   1. Determine the parameter value to be passed to the BP API
595   --   2. If at least one parameter value is changing then call the BP API
596   --      else exit function
597   --   3. Set any parameters which have been supplied by the resulting call
598   --      to the BP API
599   --
600   -- Pre Conditions:
601   --   A row must be active from the cursor csr_per1 or csr_per2
602   --
603   -- In Arguments:
604   --   All the IN arguments hold the current selected cursor row values.
605   --
606   -- Post Success:
607   --   Ths function will return either TRUE or FALSE.
608   --   If TRUE is returned, the row has been processed succesfully and
609   --   attributes could possibly still be processed.
610   --   If FALSE is returned, the row has been processed succesfully
611   --   and all the attributes have been updated as far as possible.
612   --
613   -- Post Failure:
614   --   Exceptions are not handled, just raised.
615   --
616   -- Developer Implementation Notes:
617   --   None
618   --
619   -- Access Status:
620   --   Internal to owning procedure.
621   --
622   -- {End Of Comments}
623   -- --------------------------------------------------------------------------
624   function process_row
625     (c_effective_start_date         in      date
626     ,c_object_version_number        in      number
627     ,c_person_type_id               in      number   default hr_api.g_number
628     ,c_last_name                    in      varchar2 default hr_api.g_varchar2
629     ,c_applicant_number             in      varchar2 default hr_api.g_varchar2
630     ,c_comments                     in      varchar2 default hr_api.g_varchar2
631     ,c_date_employee_data_verified  in      date     default hr_api.g_date
632     ,c_date_of_birth                in      date     default hr_api.g_date
633     ,c_email_address                in      varchar2 default hr_api.g_varchar2
634     ,c_employee_number              in      varchar2
635     ,c_expense_check_send_to_addres in      varchar2 default hr_api.g_varchar2
636     ,c_first_name                   in      varchar2 default hr_api.g_varchar2
637     ,c_known_as                     in      varchar2 default hr_api.g_varchar2
638     ,c_marital_status               in      varchar2 default hr_api.g_varchar2
639     ,c_middle_names                 in      varchar2 default hr_api.g_varchar2
640     ,c_nationality                  in      varchar2 default hr_api.g_varchar2
641     ,c_national_identifier          in      varchar2 default hr_api.g_varchar2
642     ,c_previous_last_name           in      varchar2 default hr_api.g_varchar2
643     ,c_registered_disabled_flag     in      varchar2 default hr_api.g_varchar2
644     ,c_sex                          in      varchar2 default hr_api.g_varchar2
645     ,c_title                        in      varchar2 default hr_api.g_varchar2
646     ,c_vendor_id                    in      number   default hr_api.g_number
647     ,c_work_telephone               in      varchar2 default hr_api.g_varchar2
648     ,c_suffix                       in      varchar2 default hr_api.g_varchar2
649     ,c_attribute_category           in      varchar2 default hr_api.g_varchar2
650     ,c_attribute1                   in      varchar2 default hr_api.g_varchar2
651     ,c_attribute2                   in      varchar2 default hr_api.g_varchar2
652     ,c_attribute3                   in      varchar2 default hr_api.g_varchar2
653     ,c_attribute4                   in      varchar2 default hr_api.g_varchar2
654     ,c_attribute5                   in      varchar2 default hr_api.g_varchar2
655     ,c_attribute6                   in      varchar2 default hr_api.g_varchar2
656     ,c_attribute7                   in      varchar2 default hr_api.g_varchar2
657     ,c_attribute8                   in      varchar2 default hr_api.g_varchar2
658     ,c_attribute9                   in      varchar2 default hr_api.g_varchar2
659     ,c_attribute10                  in      varchar2 default hr_api.g_varchar2
660     ,c_attribute11                  in      varchar2 default hr_api.g_varchar2
661     ,c_attribute12                  in      varchar2 default hr_api.g_varchar2
662     ,c_attribute13                  in      varchar2 default hr_api.g_varchar2
663     ,c_attribute14                  in      varchar2 default hr_api.g_varchar2
664     ,c_attribute15                  in      varchar2 default hr_api.g_varchar2
665     ,c_attribute16                  in      varchar2 default hr_api.g_varchar2
666     ,c_attribute17                  in      varchar2 default hr_api.g_varchar2
667     ,c_attribute18                  in      varchar2 default hr_api.g_varchar2
668     ,c_attribute19                  in      varchar2 default hr_api.g_varchar2
669     ,c_attribute20                  in      varchar2 default hr_api.g_varchar2
670     ,c_attribute21                  in      varchar2 default hr_api.g_varchar2
671     ,c_attribute22                  in      varchar2 default hr_api.g_varchar2
672     ,c_attribute23                  in      varchar2 default hr_api.g_varchar2
673     ,c_attribute24                  in      varchar2 default hr_api.g_varchar2
674     ,c_attribute25                  in      varchar2 default hr_api.g_varchar2
675     ,c_attribute26                  in      varchar2 default hr_api.g_varchar2
676     ,c_attribute27                  in      varchar2 default hr_api.g_varchar2
677     ,c_attribute28                  in      varchar2 default hr_api.g_varchar2
678     ,c_attribute29                  in      varchar2 default hr_api.g_varchar2
679     ,c_attribute30                  in      varchar2 default hr_api.g_varchar2
680     ,c_per_information_category     in      varchar2 default hr_api.g_varchar2
681     ,c_per_information1             in      varchar2 default hr_api.g_varchar2
682     ,c_per_information2             in      varchar2 default hr_api.g_varchar2
683     ,c_per_information3             in      varchar2 default hr_api.g_varchar2
684     ,c_per_information4             in      varchar2 default hr_api.g_varchar2
685     ,c_per_information5             in      varchar2 default hr_api.g_varchar2
686     ,c_per_information6             in      varchar2 default hr_api.g_varchar2
687     ,c_per_information7             in      varchar2 default hr_api.g_varchar2
688     ,c_per_information8             in      varchar2 default hr_api.g_varchar2
689     ,c_per_information9             in      varchar2 default hr_api.g_varchar2
690     ,c_per_information10            in      varchar2 default hr_api.g_varchar2
691     ,c_per_information11            in      varchar2 default hr_api.g_varchar2
692     ,c_per_information12            in      varchar2 default hr_api.g_varchar2
693     ,c_per_information13            in      varchar2 default hr_api.g_varchar2
694     ,c_per_information14            in      varchar2 default hr_api.g_varchar2
695     ,c_per_information15            in      varchar2 default hr_api.g_varchar2
696     ,c_per_information16            in      varchar2 default hr_api.g_varchar2
697     ,c_per_information17            in      varchar2 default hr_api.g_varchar2
698     ,c_per_information18            in      varchar2 default hr_api.g_varchar2
699     ,c_per_information19            in      varchar2 default hr_api.g_varchar2
700     ,c_per_information20            in      varchar2 default hr_api.g_varchar2
701     ,c_per_information21            in      varchar2 default hr_api.g_varchar2
702     ,c_per_information22            in      varchar2 default hr_api.g_varchar2
703     ,c_per_information23            in      varchar2 default hr_api.g_varchar2
704     ,c_per_information24            in      varchar2 default hr_api.g_varchar2
705     ,c_per_information25            in      varchar2 default hr_api.g_varchar2
706     ,c_per_information26            in      varchar2 default hr_api.g_varchar2
707     ,c_per_information27            in      varchar2 default hr_api.g_varchar2
708     ,c_per_information28            in      varchar2 default hr_api.g_varchar2
709     ,c_per_information29            in      varchar2 default hr_api.g_varchar2
710     ,c_per_information30            in      varchar2 default hr_api.g_varchar2
711     ,c_date_of_death                in      date     default hr_api.g_date
712     ,c_background_check_status      in      varchar2 default hr_api.g_varchar2
713     ,c_background_date_check        in      date     default hr_api.g_date
714     ,c_blood_type                   in      varchar2 default hr_api.g_varchar2
715     ,c_correspondence_language      in      varchar2 default hr_api.g_varchar2
716     ,c_fast_path_employee           in      varchar2 default hr_api.g_varchar2
717     ,c_fte_capacity                 in      number   default hr_api.g_number
718     ,c_hold_applicant_date_until    in      date     default hr_api.g_date
719     ,c_honors                       in      varchar2 default hr_api.g_varchar2
720     ,c_internal_location            in      varchar2 default hr_api.g_varchar2
721     ,c_last_medical_test_by         in      varchar2 default hr_api.g_varchar2
722     ,c_last_medical_test_date       in      date     default hr_api.g_date
723     ,c_mailstop                     in      varchar2 default hr_api.g_varchar2
724     ,c_office_number                in      varchar2 default hr_api.g_varchar2
725     ,c_on_military_service          in      varchar2 default hr_api.g_varchar2
726     ,c_pre_name_adjunct             in      varchar2 default hr_api.g_varchar2
727     ,c_projected_start_date         in      date     default hr_api.g_date
728     ,c_rehire_authorizor            in      varchar2 default hr_api.g_varchar2
729     ,c_rehire_recommendation        in      varchar2 default hr_api.g_varchar2
730     ,c_resume_exists                in      varchar2 default hr_api.g_varchar2
731     ,c_resume_last_updated          in      date     default hr_api.g_date
732     ,c_second_passport_exists       in      varchar2 default hr_api.g_varchar2
733     ,c_student_status               in      varchar2 default hr_api.g_varchar2
734     ,c_work_schedule                in      varchar2 default hr_api.g_varchar2
735     ,c_rehire_reason                in      varchar2 default hr_api.g_varchar2
736     ,c_benefit_group_id             in      number   default hr_api.g_number
737     ,c_receipt_of_death_cert_date   in      date     default hr_api.g_date
738     ,c_coord_ben_med_pln_no         in      varchar2 default hr_api.g_varchar2
739     ,c_coord_ben_no_cvg_flag        in      varchar2 default hr_api.g_varchar2
740     ,c_uses_tobacco_flag            in      varchar2 default hr_api.g_varchar2
741     ,c_dpdnt_adoption_date          in      date     default hr_api.g_date
742     ,c_dpdnt_vlntry_svce_flag       in      varchar2 default hr_api.g_varchar2
743     ,c_original_date_of_hire        in      date     default hr_api.g_date
744     ,c_town_of_birth                in      varchar2 default hr_api.g_varchar2
745     ,c_region_of_birth              in      varchar2 default hr_api.g_varchar2
746     ,c_country_of_birth             in      varchar2 default hr_api.g_varchar2
747     ,c_global_person_id             in      varchar2 default hr_api.g_varchar2 )
748   return boolean is
749     l_proc          varchar2(72)   := g_package||'process_row';
750   begin
751     hr_utility.set_location('Entering:'|| l_proc, 5);
752     -- get the parameter values to pass to the BP API
753     l_title              := hr_dt_attribute_support.get_parameter_char
754                               (p_effective_date_row => l_effective_date_row
755                               ,p_parameter_name  => 'P_TITLE'
756                               ,p_new_value       => p_title
757                               ,p_current_value   => c_title);
758     l_marital_status     := hr_dt_attribute_support.get_parameter_char
759                               (p_effective_date_row => l_effective_date_row
760                               ,p_parameter_name  => 'P_MARITAL_STATUS'
761                               ,p_new_value       => p_marital_status
762                               ,p_current_value   => c_marital_status);
763     l_first_name         := hr_dt_attribute_support.get_parameter_char
764                               (p_effective_date_row => l_effective_date_row
765                               ,p_parameter_name  => 'P_FIRST_NAME'
766                               ,p_new_value       => p_first_name
767                               ,p_current_value   => c_first_name);
768     l_middle_names       := hr_dt_attribute_support.get_parameter_char
769                               (p_effective_date_row => l_effective_date_row
770                               ,p_parameter_name  => 'P_MIDDLE_NAMES'
771                               ,p_new_value       => p_middle_names
772                               ,p_current_value   => c_middle_names);
773     l_last_name          := hr_dt_attribute_support.get_parameter_char
774                               (p_effective_date_row => l_effective_date_row
775                               ,p_parameter_name  => 'P_LAST_NAME'
776                               ,p_new_value       => p_last_name
777                               ,p_current_value   => c_last_name);
778     l_known_as           := hr_dt_attribute_support.get_parameter_char
779                               (p_effective_date_row => l_effective_date_row
780                               ,p_parameter_name  => 'P_KNOWN_AS'
781                               ,p_new_value       => p_known_as
782                               ,p_current_value   => c_known_as);
783     l_previous_last_name := hr_dt_attribute_support.get_parameter_char
784                               (p_effective_date_row => l_effective_date_row
785                               ,p_parameter_name  => 'P_PREVIOUS_LAST_NAME'
786                               ,p_new_value       => p_previous_last_name
787                               ,p_current_value   => c_previous_last_name);
788     l_date_of_birth      := hr_dt_attribute_support.get_parameter_date
789                               (p_effective_date_row => l_effective_date_row
790                               ,p_parameter_name  => 'P_DATE_OF_BIRTH'
791                               ,p_new_value       => p_date_of_birth
792                               ,p_current_value   => c_date_of_birth);
793     l_email_address      := hr_dt_attribute_support.get_parameter_char
794                               (p_effective_date_row => l_effective_date_row
795                               ,p_parameter_name  => 'P_EMAIL_ADDRESS'
796                               ,p_new_value       => p_email_address
797                               ,p_current_value   => c_email_address);
798     l_nationality        := hr_dt_attribute_support.get_parameter_char
799                               (p_effective_date_row => l_effective_date_row
800                               ,p_parameter_name  => 'P_NATIONALITY'
801                               ,p_new_value       => p_nationality
802                               ,p_current_value   => c_nationality);
803     l_sex                := hr_dt_attribute_support.get_parameter_char
804                               (p_effective_date_row => l_effective_date_row
805                               ,p_parameter_name  => 'P_SEX'
806                               ,p_new_value       => p_sex
807                               ,p_current_value   => c_sex);
808     l_work_telephone     := hr_dt_attribute_support.get_parameter_char
809                               (p_effective_date_row => l_effective_date_row
810                               ,p_parameter_name  => 'P_WORK_TELEPHONE'
811                               ,p_new_value       => p_work_telephone
812                               ,p_current_value   => c_work_telephone);
813     l_suffix             := hr_dt_attribute_support.get_parameter_char
814                               (p_effective_date_row => l_effective_date_row
815                               ,p_parameter_name  => 'P_SUFFIX'
816                               ,p_new_value       => p_suffix
817                               ,p_current_value   => c_suffix);
818     l_person_type_id     := hr_dt_attribute_support.get_parameter_number
819                               (p_effective_date_row => l_effective_date_row
820                               ,p_parameter_name  => 'P_PERSON_TYPE_ID'
821                               ,p_new_value       => p_person_type_id
822                               ,p_current_value   => c_person_type_id);
823     l_applicant_number   := hr_dt_attribute_support.get_parameter_char
824                               (p_effective_date_row => l_effective_date_row
825                               ,p_parameter_name  => 'P_APPLICANT_NUMBER'
826                               ,p_new_value       => p_applicant_number
827                               ,p_current_value   => c_applicant_number);
828     l_comments           := hr_dt_attribute_support.get_parameter_char
829                               (p_effective_date_row => l_effective_date_row
830                               ,p_parameter_name  => 'P_COMMENTS'
831                               ,p_new_value       => p_comments
832                               ,p_current_value   => c_comments);
833     l_date_employee_data_verified
834                          := hr_dt_attribute_support.get_parameter_date
835                               (p_effective_date_row => l_effective_date_row
836                               ,p_parameter_name  => 'P_DATE_EMPLOYEE_DATA_VERIFIED'
837                               ,p_new_value       => p_date_employee_data_verified
838                               ,p_current_value   => c_date_employee_data_verified);
839     l_employee_number    := hr_dt_attribute_support.get_parameter_char
840                               (p_effective_date_row => l_effective_date_row
841                               ,p_parameter_name  => 'P_EMPLOYEE_NUMBER'
842                               ,p_new_value       => p_employee_number
843                               ,p_current_value   => c_employee_number);
844     l_expense_check_send_to_addres :=
845                             hr_dt_attribute_support.get_parameter_char
846                               (p_effective_date_row => l_effective_date_row
847                               ,p_parameter_name  => 'P_EXPENSE_CHECK_SEND_TO_ADDRES'
848                               ,p_new_value       => p_expense_check_send_to_addres
849                               ,p_current_value   => c_expense_check_send_to_addres);
850     l_national_identifier := hr_dt_attribute_support.get_parameter_char
851                               (p_effective_date_row => l_effective_date_row
852                               ,p_parameter_name  => 'P_NATIONAL_IDENTIFIER'
853                               ,p_new_value       => p_national_identifier
854                               ,p_current_value   => c_national_identifier);
855     l_registered_disabled_flag := hr_dt_attribute_support.get_parameter_char
856                               (p_effective_date_row => l_effective_date_row
857                               ,p_parameter_name  => 'P_REGISTERED_DISABLED_FLAG'
858                               ,p_new_value       => p_registered_disabled_flag
859                               ,p_current_value   => c_registered_disabled_flag);
860     l_vendor_id           := hr_dt_attribute_support.get_parameter_number
861                               (p_effective_date_row => l_effective_date_row
862                               ,p_parameter_name  => 'P_VENDOR_ID'
863                               ,p_new_value       => p_vendor_id
864                               ,p_current_value   => c_vendor_id);
865     l_attribute_category  := hr_dt_attribute_support.get_parameter_char
866                               (p_effective_date_row => l_effective_date_row
867                               ,p_parameter_name  => 'P_ATTRIBUTE_CATEGORY'
868                               ,p_new_value       => p_attribute_category
869                               ,p_current_value   => c_attribute_category);
870     l_attribute1          := hr_dt_attribute_support.get_parameter_char
871                               (p_effective_date_row => l_effective_date_row
872                               ,p_parameter_name  => 'P_ATTRIBUTE1'
873                               ,p_new_value       => p_attribute1
874                               ,p_current_value   => c_attribute1);
875     l_attribute2          := hr_dt_attribute_support.get_parameter_char
876                               (p_effective_date_row => l_effective_date_row
877                               ,p_parameter_name  => 'P_ATTRIBUTE2'
878                               ,p_new_value       => p_attribute2
879                               ,p_current_value   => c_attribute2);
880     l_attribute3          := hr_dt_attribute_support.get_parameter_char
881                               (p_effective_date_row => l_effective_date_row
882                               ,p_parameter_name  => 'P_ATTRIBUTE3'
883                               ,p_new_value       => p_attribute3
884                               ,p_current_value   => c_attribute3);
885     l_attribute4          := hr_dt_attribute_support.get_parameter_char
886                               (p_effective_date_row => l_effective_date_row
887                               ,p_parameter_name  => 'P_ATTRIBUTE4'
888                               ,p_new_value       => p_attribute4
889                               ,p_current_value   => c_attribute4);
890     l_attribute5          := hr_dt_attribute_support.get_parameter_char
891                               (p_effective_date_row => l_effective_date_row
892                               ,p_parameter_name  => 'P_ATTRIBUTE5'
893                               ,p_new_value       => p_attribute5
894                               ,p_current_value   => c_attribute5);
895     l_attribute6          := hr_dt_attribute_support.get_parameter_char
896                               (p_effective_date_row => l_effective_date_row
897                               ,p_parameter_name  => 'P_ATTRIBUTE6'
898                               ,p_new_value       => p_attribute6
899                               ,p_current_value   => c_attribute6);
900     l_attribute7          := hr_dt_attribute_support.get_parameter_char
901                               (p_effective_date_row => l_effective_date_row
902                               ,p_parameter_name  => 'P_ATTRIBUTE7'
903                               ,p_new_value       => p_attribute7
904                               ,p_current_value   => c_attribute7);
905     l_attribute8          := hr_dt_attribute_support.get_parameter_char
906                               (p_effective_date_row => l_effective_date_row
907                               ,p_parameter_name  => 'P_ATTRIBUTE8'
908                               ,p_new_value       => p_attribute8
909                               ,p_current_value   => c_attribute8);
910     l_attribute9          := hr_dt_attribute_support.get_parameter_char
911                               (p_effective_date_row => l_effective_date_row
912                               ,p_parameter_name  => 'P_ATTRIBUTE9'
913                               ,p_new_value       => p_attribute9
914                               ,p_current_value   => c_attribute9);
915     l_attribute10         := hr_dt_attribute_support.get_parameter_char
916                               (p_effective_date_row => l_effective_date_row
917                               ,p_parameter_name  => 'P_ATTRIBUTE10'
918                               ,p_new_value       => p_attribute10
919                               ,p_current_value   => c_attribute10);
920     l_attribute11         := hr_dt_attribute_support.get_parameter_char
921                               (p_effective_date_row => l_effective_date_row
922                               ,p_parameter_name  => 'P_ATTRIBUTE11'
923                               ,p_new_value       => p_attribute11
924                               ,p_current_value   => c_attribute11);
925     l_attribute12         := hr_dt_attribute_support.get_parameter_char
926                               (p_effective_date_row => l_effective_date_row
927                               ,p_parameter_name  => 'P_ATTRIBUTE12'
928                               ,p_new_value       => p_attribute12
929                               ,p_current_value   => c_attribute12);
930     l_attribute13         := hr_dt_attribute_support.get_parameter_char
931                               (p_effective_date_row => l_effective_date_row
932                               ,p_parameter_name  => 'P_ATTRIBUTE13'
933                               ,p_new_value       => p_attribute13
934                               ,p_current_value   => c_attribute13);
935     l_attribute14         := hr_dt_attribute_support.get_parameter_char
936                               (p_effective_date_row => l_effective_date_row
937                               ,p_parameter_name  => 'P_ATTRIBUTE14'
938                               ,p_new_value       => p_attribute14
939                               ,p_current_value   => c_attribute14);
940     l_attribute15         := hr_dt_attribute_support.get_parameter_char
941                               (p_effective_date_row => l_effective_date_row
942                               ,p_parameter_name  => 'P_ATTRIBUTE15'
943                               ,p_new_value       => p_attribute15
944                               ,p_current_value   => c_attribute15);
945     l_attribute16         := hr_dt_attribute_support.get_parameter_char
946                               (p_effective_date_row => l_effective_date_row
947                               ,p_parameter_name  => 'P_ATTRIBUTE16'
948                               ,p_new_value       => p_attribute16
949                               ,p_current_value   => c_attribute16);
950     l_attribute17         := hr_dt_attribute_support.get_parameter_char
951                               (p_effective_date_row => l_effective_date_row
952                               ,p_parameter_name  => 'P_ATTRIBUTE17'
953                               ,p_new_value       => p_attribute17
954                               ,p_current_value   => c_attribute17);
955     l_attribute18         := hr_dt_attribute_support.get_parameter_char
956                               (p_effective_date_row => l_effective_date_row
957                               ,p_parameter_name  => 'P_ATTRIBUTE18'
958                               ,p_new_value       => p_attribute18
959                               ,p_current_value   => c_attribute18);
960     l_attribute19         := hr_dt_attribute_support.get_parameter_char
961                               (p_effective_date_row => l_effective_date_row
962                               ,p_parameter_name  => 'P_ATTRIBUTE19'
963                               ,p_new_value       => p_attribute19
964                               ,p_current_value   => c_attribute19);
965     l_attribute20         := hr_dt_attribute_support.get_parameter_char
966                               (p_effective_date_row => l_effective_date_row
967                               ,p_parameter_name  => 'P_ATTRIBUTE20'
968                               ,p_new_value       => p_attribute20
969                               ,p_current_value   => c_attribute20);
970     l_attribute21         := hr_dt_attribute_support.get_parameter_char
971                               (p_effective_date_row => l_effective_date_row
972                               ,p_parameter_name  => 'P_ATTRIBUTE21'
973                               ,p_new_value       => p_attribute21
974                               ,p_current_value   => c_attribute21);
975     l_attribute22         := hr_dt_attribute_support.get_parameter_char
976                               (p_effective_date_row => l_effective_date_row
977                               ,p_parameter_name  => 'P_ATTRIBUTE22'
978                               ,p_new_value       => p_attribute22
979                               ,p_current_value   => c_attribute22);
980     l_attribute23         := hr_dt_attribute_support.get_parameter_char
981                               (p_effective_date_row => l_effective_date_row
982                               ,p_parameter_name  => 'P_ATTRIBUTE23'
983                               ,p_new_value       => p_attribute23
984                               ,p_current_value   => c_attribute23);
985     l_attribute24         := hr_dt_attribute_support.get_parameter_char
986                               (p_effective_date_row => l_effective_date_row
987                               ,p_parameter_name  => 'P_ATTRIBUTE24'
988                               ,p_new_value       => p_attribute24
989                               ,p_current_value   => c_attribute24);
990     l_attribute25         := hr_dt_attribute_support.get_parameter_char
991                               (p_effective_date_row => l_effective_date_row
992                               ,p_parameter_name  => 'P_ATTRIBUTE5'
993                               ,p_new_value       => p_attribute25
994                               ,p_current_value   => c_attribute25);
995     l_attribute26         := hr_dt_attribute_support.get_parameter_char
996                               (p_effective_date_row => l_effective_date_row
997                               ,p_parameter_name  => 'P_ATTRIBUTE26'
998                               ,p_new_value       => p_attribute26
999                               ,p_current_value   => c_attribute26);
1000     l_attribute27         := hr_dt_attribute_support.get_parameter_char
1001                               (p_effective_date_row => l_effective_date_row
1002                               ,p_parameter_name  => 'P_ATTRIBUTE27'
1003                               ,p_new_value       => p_attribute27
1004                               ,p_current_value   => c_attribute27);
1005     l_attribute28         := hr_dt_attribute_support.get_parameter_char
1006                               (p_effective_date_row => l_effective_date_row
1007                               ,p_parameter_name  => 'P_ATTRIBUTE28'
1008                               ,p_new_value       => p_attribute28
1009                               ,p_current_value   => c_attribute28);
1010     l_attribute29         := hr_dt_attribute_support.get_parameter_char
1011                               (p_effective_date_row => l_effective_date_row
1012                               ,p_parameter_name  => 'P_ATTRIBUTE29'
1013                               ,p_new_value       => p_attribute29
1014                               ,p_current_value   => c_attribute29);
1015     l_attribute30         := hr_dt_attribute_support.get_parameter_char
1016                               (p_effective_date_row => l_effective_date_row
1017                               ,p_parameter_name  => 'P_ATTRIBUTE30'
1018                               ,p_new_value       => p_attribute30
1019                               ,p_current_value   => c_attribute30);
1020     l_per_information_category  := hr_dt_attribute_support.get_parameter_char
1021                               (p_effective_date_row => l_effective_date_row
1022                               ,p_parameter_name  => 'P_PER_INFORMATION_CATEGORY'
1023                               ,p_new_value       => p_per_information_category
1024                               ,p_current_value   => c_per_information_category);
1025     l_per_information1     := hr_dt_attribute_support.get_parameter_char
1026                               (p_effective_date_row => l_effective_date_row
1027                               ,p_parameter_name  => 'P_PER_INFORMATION1'
1028                               ,p_new_value       => p_per_information1
1029                               ,p_current_value   => c_per_information1);
1030     l_per_information2     := hr_dt_attribute_support.get_parameter_char
1031                               (p_effective_date_row => l_effective_date_row
1032                               ,p_parameter_name  => 'P_PER_INFORMATION2'
1033                               ,p_new_value       => p_per_information2
1034                               ,p_current_value   => c_per_information2);
1035     l_per_information3     := hr_dt_attribute_support.get_parameter_char
1036                               (p_effective_date_row => l_effective_date_row
1037                               ,p_parameter_name  => 'P_PER_INFORMATION3'
1038                               ,p_new_value       => p_per_information3
1039                               ,p_current_value   => c_per_information3);
1040     l_per_information4     := hr_dt_attribute_support.get_parameter_char
1041                               (p_effective_date_row => l_effective_date_row
1042                               ,p_parameter_name  => 'P_PER_INFORMATION4'
1043                               ,p_new_value       => p_per_information4
1044                               ,p_current_value   => c_per_information4);
1045     l_per_information5     := hr_dt_attribute_support.get_parameter_char
1046                               (p_effective_date_row => l_effective_date_row
1047                               ,p_parameter_name  => 'P_PER_INFORMATION5'
1048                               ,p_new_value       => p_per_information5
1049                               ,p_current_value   => c_per_information5);
1050     l_per_information6     := hr_dt_attribute_support.get_parameter_char
1051                               (p_effective_date_row => l_effective_date_row
1052                               ,p_parameter_name  => 'P_PER_INFORMATION6'
1053                               ,p_new_value       => p_per_information6
1054                               ,p_current_value   => c_per_information6);
1055     l_per_information7     := hr_dt_attribute_support.get_parameter_char
1056                               (p_effective_date_row => l_effective_date_row
1057                               ,p_parameter_name  => 'P_PER_INFORMATION7'
1058                               ,p_new_value       => p_per_information7
1059                               ,p_current_value   => c_per_information7);
1060     l_per_information8     := hr_dt_attribute_support.get_parameter_char
1061                               (p_effective_date_row => l_effective_date_row
1062                               ,p_parameter_name  => 'P_PER_INFORMATION8'
1063                               ,p_new_value       => p_per_information8
1064                               ,p_current_value   => c_per_information8);
1065     l_per_information9     := hr_dt_attribute_support.get_parameter_char
1066                               (p_effective_date_row => l_effective_date_row
1067                               ,p_parameter_name  => 'P_PER_INFORMATION9'
1068                               ,p_new_value       => p_per_information9
1069                               ,p_current_value   => c_per_information9);
1070     l_per_information10    := hr_dt_attribute_support.get_parameter_char
1071                               (p_effective_date_row => l_effective_date_row
1072                               ,p_parameter_name  => 'P_PER_INFORMATION10'
1073                               ,p_new_value       => p_per_information10
1074                               ,p_current_value   => c_per_information10);
1075     l_per_information11    := hr_dt_attribute_support.get_parameter_char
1076                               (p_effective_date_row => l_effective_date_row
1077                               ,p_parameter_name  => 'P_PER_INFORMATION11'
1078                               ,p_new_value       => p_per_information11
1079                               ,p_current_value   => c_per_information11);
1080     l_per_information12    := hr_dt_attribute_support.get_parameter_char
1081                               (p_effective_date_row => l_effective_date_row
1082                               ,p_parameter_name  => 'P_PER_INFORMATION12'
1083                               ,p_new_value       => p_per_information12
1084                               ,p_current_value   => c_per_information12);
1085     l_per_information13    := hr_dt_attribute_support.get_parameter_char
1086                               (p_effective_date_row => l_effective_date_row
1087                               ,p_parameter_name  => 'P_PER_INFORMATION13'
1088                               ,p_new_value       => p_per_information13
1089                               ,p_current_value   => c_per_information13);
1090     l_per_information14    := hr_dt_attribute_support.get_parameter_char
1091                               (p_effective_date_row => l_effective_date_row
1092                               ,p_parameter_name  => 'P_PER_INFORMATION14'
1093                               ,p_new_value       => p_per_information14
1094                               ,p_current_value   => c_per_information14);
1095     l_per_information15    := hr_dt_attribute_support.get_parameter_char
1096                               (p_effective_date_row => l_effective_date_row
1097                               ,p_parameter_name  => 'P_PER_INFORMATION15'
1098                               ,p_new_value       => p_per_information15
1099                               ,p_current_value   => c_per_information15);
1100     l_per_information16    := hr_dt_attribute_support.get_parameter_char
1101                               (p_effective_date_row => l_effective_date_row
1102                               ,p_parameter_name  => 'P_PER_INFORMATION16'
1103                               ,p_new_value       => p_per_information16
1104                               ,p_current_value   => c_per_information16);
1105     l_per_information17    := hr_dt_attribute_support.get_parameter_char
1106                               (p_effective_date_row => l_effective_date_row
1107                               ,p_parameter_name  => 'P_PER_INFORMATION17'
1108                               ,p_new_value       => p_per_information17
1109                               ,p_current_value   => c_per_information17);
1110     l_per_information18    := hr_dt_attribute_support.get_parameter_char
1111                               (p_effective_date_row => l_effective_date_row
1112                               ,p_parameter_name  => 'P_PER_INFORMATION18'
1113                               ,p_new_value       => p_per_information18
1114                               ,p_current_value   => c_per_information18);
1115     l_per_information19    := hr_dt_attribute_support.get_parameter_char
1116                               (p_effective_date_row => l_effective_date_row
1117                               ,p_parameter_name  => 'P_PER_INFORMATION19'
1118                               ,p_new_value       => p_per_information19
1119                               ,p_current_value   => c_per_information19);
1120     l_per_information20    := hr_dt_attribute_support.get_parameter_char
1121                               (p_effective_date_row => l_effective_date_row
1122                               ,p_parameter_name  => 'P_PER_INFORMATION20'
1123                               ,p_new_value       => p_per_information20
1124                               ,p_current_value   => c_per_information20);
1125     l_per_information21    := hr_dt_attribute_support.get_parameter_char
1126                               (p_effective_date_row => l_effective_date_row
1127                               ,p_parameter_name  => 'P_PER_INFORMATION21'
1128                               ,p_new_value       => p_per_information21
1129                               ,p_current_value   => c_per_information21);
1130     l_per_information22    := hr_dt_attribute_support.get_parameter_char
1131                               (p_effective_date_row => l_effective_date_row
1132                               ,p_parameter_name  => 'P_PER_INFORMATION22'
1133                               ,p_new_value       => p_per_information22
1134                               ,p_current_value   => c_per_information22);
1135     l_per_information23    := hr_dt_attribute_support.get_parameter_char
1136                               (p_effective_date_row => l_effective_date_row
1137                               ,p_parameter_name  => 'P_PER_INFORMATION23'
1138                               ,p_new_value       => p_per_information23
1139                               ,p_current_value   => c_per_information23);
1140     l_per_information24    := hr_dt_attribute_support.get_parameter_char
1141                               (p_effective_date_row => l_effective_date_row
1142                               ,p_parameter_name  => 'P_PER_INFORMATION24'
1143                               ,p_new_value       => p_per_information24
1144                               ,p_current_value   => c_per_information24);
1145     l_per_information25    := hr_dt_attribute_support.get_parameter_char
1146                               (p_effective_date_row => l_effective_date_row
1147                               ,p_parameter_name  => 'P_PER_INFORMATION25'
1148                               ,p_new_value       => p_per_information25
1149                               ,p_current_value   => c_per_information25);
1150     l_per_information26    := hr_dt_attribute_support.get_parameter_char
1151                               (p_effective_date_row => l_effective_date_row
1152                               ,p_parameter_name  => 'P_PER_INFORMATION26'
1153                               ,p_new_value       => p_per_information26
1154                               ,p_current_value   => c_per_information26);
1155     l_per_information27    := hr_dt_attribute_support.get_parameter_char
1156                               (p_effective_date_row => l_effective_date_row
1157                               ,p_parameter_name  => 'P_PER_INFORMATION27'
1158                               ,p_new_value       => p_per_information27
1159                               ,p_current_value   => c_per_information27);
1160     l_per_information28    := hr_dt_attribute_support.get_parameter_char
1161                               (p_effective_date_row => l_effective_date_row
1162                               ,p_parameter_name  => 'P_PER_INFORMATION28'
1163                               ,p_new_value       => p_per_information28
1164                               ,p_current_value   => c_per_information28);
1165     l_per_information29    := hr_dt_attribute_support.get_parameter_char
1166                               (p_effective_date_row => l_effective_date_row
1167                               ,p_parameter_name  => 'P_PER_INFORMATION29'
1168                               ,p_new_value       => p_per_information29
1169                               ,p_current_value   => c_per_information29);
1170     l_per_information30    := hr_dt_attribute_support.get_parameter_char
1171                               (p_effective_date_row => l_effective_date_row
1172                               ,p_parameter_name  => 'P_PER_INFORMATION30'
1173                               ,p_new_value       => p_per_information30
1174                               ,p_current_value   => c_per_information30);
1175     l_date_of_death        := hr_dt_attribute_support.get_parameter_date
1176                               (p_effective_date_row => l_effective_date_row
1177                               ,p_parameter_name  => 'P_DATE_OF_DEATH'
1178                               ,p_new_value       => p_date_of_death
1179                               ,p_current_value   => c_date_of_death);
1180   l_background_check_status := hr_dt_attribute_support.get_parameter_char
1181                               (p_effective_date_row => l_effective_date_row
1182                               ,p_parameter_name  => 'P_BACKGROUND_CHECK_STATUS'
1183                               ,p_new_value       => p_background_check_status
1184                               ,p_current_value   => c_background_check_status);
1185   l_background_date_check   := hr_dt_attribute_support.get_parameter_date
1186                               (p_effective_date_row => l_effective_date_row
1187                               ,p_parameter_name  => 'P_BACKGROUND_DATE_CHECK'
1188                               ,p_new_value       => p_background_date_check
1189                               ,p_current_value   => c_background_date_check);
1190   l_blood_type              := hr_dt_attribute_support.get_parameter_char
1191                               (p_effective_date_row => l_effective_date_row
1192                               ,p_parameter_name  => 'P_BLOOD_TYPE'
1193                               ,p_new_value       => p_blood_type
1194                               ,p_current_value   => c_blood_type);
1195   l_correspondence_language := hr_dt_attribute_support.get_parameter_char
1196                               (p_effective_date_row => l_effective_date_row
1197                               ,p_parameter_name  => 'P_CORRESPONDENCE_LANGUAGE'
1198                               ,p_new_value       => p_correspondence_language
1199                               ,p_current_value   => c_correspondence_language);
1200   l_fast_path_employee      := hr_dt_attribute_support.get_parameter_char
1201                               (p_effective_date_row => l_effective_date_row
1202                               ,p_parameter_name  => 'P_FAST_PATH_EMPLOYEE'
1203                               ,p_new_value       => p_fast_path_employee
1204                               ,p_current_value   => c_fast_path_employee);
1205   l_fte_capacity            := hr_dt_attribute_support.get_parameter_number
1206                               (p_effective_date_row => l_effective_date_row
1207                               ,p_parameter_name  => 'P_FTE_CAPACITY'
1208                               ,p_new_value       => p_fte_capacity
1209                               ,p_current_value   => c_fte_capacity);
1210   l_hold_applicant_date_until
1211                             := hr_dt_attribute_support.get_parameter_date
1212                               (p_effective_date_row => l_effective_date_row
1213                               ,p_parameter_name  => 'P_HOLD_APPLICANT_DATE_UNTIL'
1214                               ,p_new_value       => p_hold_applicant_date_until
1215                               ,p_current_value   => c_hold_applicant_date_until);
1216   l_honors                  := hr_dt_attribute_support.get_parameter_char
1217                               (p_effective_date_row => l_effective_date_row
1218                               ,p_parameter_name  => 'P_HONORS'
1219                               ,p_new_value       => p_honors
1220                               ,p_current_value   => c_honors);
1221   l_internal_location       := hr_dt_attribute_support.get_parameter_char
1222                               (p_effective_date_row => l_effective_date_row
1223                               ,p_parameter_name  => 'P_INTERNAL_LOCATION'
1224                               ,p_new_value       => p_internal_location
1225                               ,p_current_value   => c_internal_location);
1226   l_last_medical_test_by    := hr_dt_attribute_support.get_parameter_char
1227                               (p_effective_date_row => l_effective_date_row
1228                               ,p_parameter_name  => 'P_LAST_MEDICAL_TEST_BY'
1229                               ,p_new_value       => p_last_medical_test_by
1230                               ,p_current_value   => c_last_medical_test_by);
1231   l_last_medical_test_date := hr_dt_attribute_support.get_parameter_date
1232                               (p_effective_date_row => l_effective_date_row
1233                               ,p_parameter_name  => 'P_LAST_MEDICAL_TEST_DATE'
1234                               ,p_new_value       => p_last_medical_test_date
1235                               ,p_current_value   => c_last_medical_test_date);
1236   l_mailstop                := hr_dt_attribute_support.get_parameter_char
1237                               (p_effective_date_row => l_effective_date_row
1238                               ,p_parameter_name  => 'P_MAILSTOP'
1239                               ,p_new_value       => p_mailstop
1240                               ,p_current_value   => c_mailstop);
1241   l_office_number           := hr_dt_attribute_support.get_parameter_char
1242                               (p_effective_date_row => l_effective_date_row
1243                               ,p_parameter_name  => 'P_OFFICE_NUMBER'
1244                               ,p_new_value       => p_office_number
1245                               ,p_current_value   => c_office_number);
1246   l_on_military_service     := hr_dt_attribute_support.get_parameter_char
1247                               (p_effective_date_row => l_effective_date_row
1248                               ,p_parameter_name  => 'P_ON_MILITARY_SERVICE'
1249                               ,p_new_value       => p_on_military_service
1250                               ,p_current_value   => c_on_military_service);
1251   l_pre_name_adjunct        := hr_dt_attribute_support.get_parameter_char
1252                               (p_effective_date_row => l_effective_date_row
1253                               ,p_parameter_name  => 'P_PRE_NAME_ADJUNCT'
1254                               ,p_new_value       => p_pre_name_adjunct
1255                               ,p_current_value   => c_pre_name_adjunct);
1256   l_projected_start_date    := hr_dt_attribute_support.get_parameter_date
1257                               (p_effective_date_row => l_effective_date_row
1258                               ,p_parameter_name  => 'P_PROJECTED_START_DATE'
1259                               ,p_new_value       => p_projected_start_date
1260                               ,p_current_value   => c_projected_start_date);
1261   l_rehire_authorizor       := hr_dt_attribute_support.get_parameter_char
1262                               (p_effective_date_row => l_effective_date_row
1263                               ,p_parameter_name  => 'P_REHIRE_AUTHORIZOR'
1264                               ,p_new_value       => p_rehire_authorizor
1265                               ,p_current_value   => c_rehire_authorizor);
1266   l_rehire_recommendation   := hr_dt_attribute_support.get_parameter_char
1267                               (p_effective_date_row => l_effective_date_row
1268                               ,p_parameter_name  => 'P_REHIRE_RECOMMENDATION'
1269                               ,p_new_value       => p_rehire_recommendation
1270                               ,p_current_value   => c_rehire_recommendation);
1271   l_resume_exists           := hr_dt_attribute_support.get_parameter_char
1272                               (p_effective_date_row => l_effective_date_row
1273                               ,p_parameter_name  => 'P_RESUME_EXISTS'
1274                               ,p_new_value       => p_resume_exists
1275                               ,p_current_value   => c_resume_exists);
1276   l_resume_last_updated     := hr_dt_attribute_support.get_parameter_date
1277                               (p_effective_date_row => l_effective_date_row
1278                               ,p_parameter_name  => 'P_RESUME_LAST_UPDATED'
1279                               ,p_new_value       => p_resume_last_updated
1280                               ,p_current_value   => c_resume_last_updated);
1281   l_second_passport_exists  := hr_dt_attribute_support.get_parameter_char
1282                               (p_effective_date_row => l_effective_date_row
1283                               ,p_parameter_name  => 'P_SECOND_PASSPORT_EXISTS'
1284                               ,p_new_value       => p_second_passport_exists
1285                               ,p_current_value   => c_second_passport_exists);
1286   l_student_status          := hr_dt_attribute_support.get_parameter_char
1287                               (p_effective_date_row => l_effective_date_row
1288                               ,p_parameter_name  => 'P_STUDENT_STATUS'
1289                               ,p_new_value       => p_student_status
1290                               ,p_current_value   => c_student_status);
1291   l_work_schedule           := hr_dt_attribute_support.get_parameter_char
1292                               (p_effective_date_row => l_effective_date_row
1293                               ,p_parameter_name  => 'P_WORK_SCHEDULE'
1294                               ,p_new_value       => p_work_schedule
1295                               ,p_current_value   => c_work_schedule);
1296   l_rehire_reason           := hr_dt_attribute_support.get_parameter_char
1297                               (p_effective_date_row => l_effective_date_row
1298                               ,p_parameter_name  => 'P_REHIRE_REASON'
1299                               ,p_new_value       => p_rehire_reason
1300                               ,p_current_value   => c_rehire_reason);
1301   l_benefit_group_id        := hr_dt_attribute_support.get_parameter_number
1302                               (p_effective_date_row => l_effective_date_row
1303                               ,p_parameter_name  => 'P_BENEFIT_GROUP_ID'
1304                               ,p_new_value       => p_benefit_group_id
1305                               ,p_current_value   => c_benefit_group_id);
1306   l_receipt_of_death_cert_date    := hr_dt_attribute_support.get_parameter_date
1307                               (p_effective_date_row => l_effective_date_row
1308                               ,p_parameter_name  => 'P_RECEIPT_OF_DEATH_CERT_DATE'
1309                               ,p_new_value       => p_receipt_of_death_cert_date
1310                               ,p_current_value   => c_receipt_of_death_cert_date);
1311   l_coord_ben_med_pln_no    := hr_dt_attribute_support.get_parameter_char
1312                               (p_effective_date_row => l_effective_date_row
1313                               ,p_parameter_name  => 'P_COORD_BEN_MED_PLN_NO'
1314                               ,p_new_value       => p_coord_ben_med_pln_no
1315                               ,p_current_value   => c_coord_ben_med_pln_no);
1316   l_coord_ben_no_cvg_flag   := hr_dt_attribute_support.get_parameter_char
1317                               (p_effective_date_row => l_effective_date_row
1318                               ,p_parameter_name  => 'P_COORD_BEN_NO_CVG_FLAG'
1319                               ,p_new_value       => p_coord_ben_no_cvg_flag
1320                               ,p_current_value   => c_coord_ben_no_cvg_flag);
1321   l_uses_tobacco_flag       := hr_dt_attribute_support.get_parameter_char
1322                               (p_effective_date_row => l_effective_date_row
1323                               ,p_parameter_name  => 'P_USES_TOBACCO_FLAG'
1324                               ,p_new_value       => p_uses_tobacco_flag
1325                               ,p_current_value   => c_uses_tobacco_flag);
1326   l_dpdnt_adoption_date     := hr_dt_attribute_support.get_parameter_date
1327                               (p_effective_date_row => l_effective_date_row
1328                               ,p_parameter_name  => 'P_DPDNT_ADOPTION_DATE'
1329                               ,p_new_value       => p_dpdnt_adoption_date
1330                               ,p_current_value   => c_dpdnt_adoption_date);
1331   l_dpdnt_vlntry_svce_flag  := hr_dt_attribute_support.get_parameter_char
1332                               (p_effective_date_row => l_effective_date_row
1333                               ,p_parameter_name  => 'P_DPDNT_VLNTRY_SVCE_FLAG'
1334                               ,p_new_value       => p_dpdnt_vlntry_svce_flag
1335                               ,p_current_value   => c_dpdnt_vlntry_svce_flag);
1336   l_original_date_of_hire   := hr_dt_attribute_support.get_parameter_date
1337                               (p_effective_date_row => l_effective_date_row
1338                               ,p_parameter_name  => 'P_ORIGINAL_DATE_OF_HIRE'
1339                               ,p_new_value       => p_original_date_of_hire
1340                               ,p_current_value   => c_original_date_of_hire);
1341   l_town_of_birth           := hr_dt_attribute_support.get_parameter_char
1342                               (p_effective_date_row => l_effective_date_row
1343                               ,p_parameter_name  => 'P_TOWN_OF_BIRTH'
1344                               ,p_new_value       => p_town_of_birth
1345                               ,p_current_value   => c_town_of_birth);
1346   l_region_of_birth         := hr_dt_attribute_support.get_parameter_char
1347                               (p_effective_date_row => l_effective_date_row
1348                               ,p_parameter_name  => 'P_REGION_OF_BIRTH'
1349                               ,p_new_value       => p_region_of_birth
1350                               ,p_current_value   => c_region_of_birth);
1351   l_country_of_birth        := hr_dt_attribute_support.get_parameter_char
1352                               (p_effective_date_row => l_effective_date_row
1353                               ,p_parameter_name  => 'P_COUNTRY_OF_BIRTH'
1354                               ,p_new_value       => p_country_of_birth
1355                               ,p_current_value   => c_country_of_birth);
1356   l_global_person_id        := hr_dt_attribute_support.get_parameter_char
1357                               (p_effective_date_row => l_effective_date_row
1358                               ,p_parameter_name  => 'P_GLOBAL_PERSON_ID'
1359                               ,p_new_value       => p_global_person_id
1360                               ,p_current_value   => c_global_person_id);
1361     -- call the business process API if at least one attribute can be changed
1362     if hr_dt_attribute_support.is_current_row_changing then
1363       -- set the object version number and effective date
1364       if l_effective_date_row then
1365         -- as we are on the first row, the ovn and effective date should be
1366         -- set to the parameter specified by the caller
1367         l_object_version_number := p_object_version_number;
1368         l_effective_date        := l_constant_effective_date;
1369       else
1370         -- as we are not on the first row, set the ovn and effective date
1371         -- to the ovn and effective date for the row
1372         l_object_version_number := c_object_version_number;
1373         l_effective_date        := c_effective_start_date;
1374       end if;
1375       -- call BP API
1376       hr_person_api.update_person
1377         (p_effective_date           => l_effective_date
1378         ,p_datetrack_update_mode    => l_datetrack_update_mode
1379         ,p_person_id                => p_person_id
1380         ,p_object_version_number    => l_object_version_number
1381         ,p_person_type_id           => l_person_type_id
1382         ,p_applicant_number         => l_applicant_number
1383         ,p_comments                 => l_comments
1384         ,p_date_employee_data_verified => l_date_employee_data_verified
1385         ,p_expense_check_send_to_addres => l_expense_check_send_to_addres
1386         ,p_national_identifier      => l_national_identifier
1387         ,p_registered_disabled_flag => l_registered_disabled_flag
1388         ,p_vendor_id                => l_vendor_id
1389         ,p_employee_number          => l_employee_number
1390         ,p_title                    => l_title
1391         ,p_marital_status           => l_marital_status
1392         ,p_first_name               => l_first_name
1393         ,p_middle_names             => l_middle_names
1394         ,p_last_name                => l_last_name
1395         ,p_known_as                 => l_known_as
1396         ,p_previous_last_name       => l_previous_last_name
1397         ,p_date_of_birth            => l_date_of_birth
1398         ,p_email_address            => l_email_address
1399         ,p_nationality              => l_nationality
1400         ,p_sex                      => l_sex
1401         ,p_work_telephone           => l_work_telephone
1402         ,p_suffix                   => l_suffix
1403         ,p_attribute_category       => l_attribute_category
1404         ,p_attribute1               => l_attribute1
1405         ,p_attribute2               => l_attribute2
1406         ,p_attribute3               => l_attribute3
1407         ,p_attribute4               => l_attribute4
1408         ,p_attribute5               => l_attribute5
1409         ,p_attribute6               => l_attribute6
1410         ,p_attribute7               => l_attribute7
1411         ,p_attribute8               => l_attribute8
1412         ,p_attribute9               => l_attribute9
1413         ,p_attribute10              => l_attribute10
1414         ,p_attribute11              => l_attribute11
1415         ,p_attribute12              => l_attribute12
1416         ,p_attribute13              => l_attribute13
1417         ,p_attribute14              => l_attribute14
1418         ,p_attribute15              => l_attribute15
1419         ,p_attribute16              => l_attribute16
1420         ,p_attribute17              => l_attribute17
1421         ,p_attribute18              => l_attribute18
1422         ,p_attribute19              => l_attribute19
1423         ,p_attribute20              => l_attribute20
1424         ,p_attribute21              => l_attribute21
1425         ,p_attribute22              => l_attribute22
1426         ,p_attribute23              => l_attribute23
1427         ,p_attribute24              => l_attribute24
1428         ,p_attribute25              => l_attribute25
1429         ,p_attribute26              => l_attribute26
1430         ,p_attribute27              => l_attribute27
1431         ,p_attribute28              => l_attribute28
1432         ,p_attribute29              => l_attribute29
1433         ,p_attribute30              => l_attribute30
1434         ,p_per_information_category => l_per_information_category
1435         ,p_per_information1         => l_per_information1
1436         ,p_per_information2         => l_per_information2
1437         ,p_per_information3         => l_per_information3
1438         ,p_per_information4         => l_per_information4
1439         ,p_per_information5         => l_per_information5
1440         ,p_per_information6         => l_per_information6
1441         ,p_per_information7         => l_per_information7
1442         ,p_per_information8         => l_per_information8
1443         ,p_per_information9         => l_per_information9
1444         ,p_per_information10        => l_per_information10
1445         ,p_per_information11        => l_per_information11
1446         ,p_per_information12        => l_per_information12
1447         ,p_per_information13        => l_per_information13
1448         ,p_per_information14        => l_per_information14
1449         ,p_per_information15        => l_per_information15
1450         ,p_per_information16        => l_per_information16
1451         ,p_per_information17        => l_per_information17
1452         ,p_per_information18        => l_per_information18
1453         ,p_per_information19        => l_per_information19
1454         ,p_per_information20        => l_per_information20
1455         ,p_per_information21        => l_per_information21
1456         ,p_per_information22        => l_per_information22
1457         ,p_per_information23        => l_per_information23
1458         ,p_per_information24        => l_per_information24
1459         ,p_per_information25        => l_per_information25
1460         ,p_per_information26        => l_per_information26
1461         ,p_per_information27        => l_per_information27
1462         ,p_per_information28        => l_per_information28
1463         ,p_per_information29        => l_per_information29
1464         ,p_per_information30        => l_per_information30
1465         ,p_date_of_death            => l_date_of_death
1466         ,p_background_check_status  => l_background_check_status
1467         ,p_background_date_check    => l_background_date_check
1468         ,p_blood_type               => l_blood_type
1469         ,p_correspondence_language  => l_correspondence_language
1470         ,p_fast_path_employee       => l_fast_path_employee
1471         ,p_fte_capacity             => l_fte_capacity
1472         ,p_hold_applicant_date_until => l_hold_applicant_date_until
1473         ,p_honors                   => l_honors
1474         ,p_internal_location        => l_internal_location
1475         ,p_last_medical_test_by     => l_last_medical_test_by
1476         ,p_last_medical_test_date   => l_last_medical_test_date
1477         ,p_mailstop                 => l_mailstop
1478         ,p_office_number            => l_office_number
1479         ,p_on_military_service      => l_on_military_service
1480         ,p_pre_name_adjunct         => l_pre_name_adjunct
1481         ,p_projected_start_date     => l_projected_start_date
1482         ,p_rehire_authorizor        => l_rehire_authorizor
1483         ,p_rehire_recommendation    => l_rehire_recommendation
1484         ,p_resume_exists            => l_resume_exists
1485         ,p_resume_last_updated      => l_resume_last_updated
1486         ,p_second_passport_exists   => l_second_passport_exists
1487         ,p_student_status           => l_student_status
1488         ,p_work_schedule            => l_work_schedule
1489         ,p_rehire_reason            => l_rehire_reason
1490         ,p_benefit_group_id         => l_benefit_group_id
1491         ,p_receipt_of_death_cert_date   => l_receipt_of_death_cert_date
1492         ,p_coord_ben_med_pln_no     => l_coord_ben_med_pln_no
1493         ,p_coord_ben_no_cvg_flag    => l_coord_ben_no_cvg_flag
1494         ,p_uses_tobacco_flag        => l_uses_tobacco_flag
1495         ,p_dpdnt_adoption_date      => l_dpdnt_adoption_date
1496         ,p_dpdnt_vlntry_svce_flag   => l_dpdnt_vlntry_svce_flag
1497         ,p_original_date_of_hire    => l_original_date_of_hire
1498         ,p_town_of_birth            => l_town_of_birth
1499         ,p_region_of_birth          => l_region_of_birth
1500         ,p_country_of_birth         => l_country_of_birth
1501         ,p_global_person_id         => l_global_person_id
1502         ,p_effective_start_date     => l_effective_start_date
1503         ,p_effective_end_date       => l_effective_end_date
1504         ,p_full_name                => l_full_name
1505         ,p_comment_id               => l_comment_id
1506         ,p_name_combination_warning => l_name_combination_warning
1507         ,p_assign_payroll_warning   => l_assign_payroll_warning
1508         ,p_orig_hire_warning        => l_orig_hire_warning);
1509       --
1510       if l_effective_date_row then
1511         -- reset the first row flag
1512         l_effective_date_row := false;
1513         -- set all future row operations to a CORRECTION
1514         l_datetrack_update_mode := hr_api.g_correction;
1515         -- set the API out parameters for the first transaction
1516         p_object_version_number := l_object_version_number;
1517         p_full_name             := l_full_name;
1518         p_effective_start_date  := l_effective_start_date;
1519         p_effective_end_date    := l_effective_end_date;
1520         p_comment_id            := l_comment_id;
1521         p_employee_number       := l_employee_number;
1522       end if;
1523       -- determine if the warnings have been set at all
1524       if l_name_combination_warning and not l_api_name_combination_warning then
1525         l_api_name_combination_warning := l_name_combination_warning;
1526       end if;
1527       if l_assign_payroll_warning and not l_api_assign_payroll_warning then
1528         l_api_assign_payroll_warning := l_assign_payroll_warning;
1529       end if;
1530       if l_orig_hire_warning and not l_api_orig_hire_warning then
1531         l_api_orig_hire_warning := l_orig_hire_warning;
1532       end if;
1533       hr_utility.set_location(' Leaving:'|| l_proc, 10);
1534       -- we need to process the next row so return true
1535       return(true);
1536     else
1537       hr_utility.set_location(' Leaving:'|| l_proc, 15);
1538       -- processing has finished return false
1539       return(false);
1540     end if;
1541   end process_row;
1542 begin
1543   hr_utility.set_location('Entering:'|| l_proc, 5);
1544   --
1545   -- issue a savepoint if operating in validation only mode.
1546   --
1547   if p_validate then
1548     savepoint update_person;
1549   end if;
1550   -- lock the current row for the following two reasons:
1551   -- a) ensure that the current row exists for the person as of the
1552   --    specified effective date. we only lock the current row so the
1553   --    CORRECTION datetrack mode is used
1554   -- b) to populate the l_validation_start_date which is used
1555   --    in determining the correct datetrack mode on an update operation
1556   per_per_shd.lck
1557     (p_effective_date        => l_constant_effective_date
1558     ,p_datetrack_mode        => hr_api.g_correction
1559     ,p_person_id             => p_person_id
1560     ,p_object_version_number => p_object_version_number
1561     ,p_validation_start_date => l_validation_start_date
1562     ,p_validation_end_date   => l_validation_end_date);
1563   -- determine the datetrack mode to use
1564   if p_attribute_update_mode = 'ATTRIBUTE_UPDATE' then
1565     -- ------------------------------------------------------------------------
1566     -- step 1: as we are performing an ATTRIBUTE_UPDATE we must determine
1567     --         the initial datetrack mode to use (UPDATE, CORRECTION or
1568     --         UPDATE_CHANGE_INSERT)
1569     --
1570     --    1.1 - call the person datetrack find_dt_upd_modes to determine
1571     --          all possible allowed datetrack update modes
1572     --    1.2 - determine the actual datetrack mode to use
1573     --          the logic is as follows;
1574     --          if update allowed then select UPDATE as mode
1575     --          if change insert allowed then select UPDATE_CHANGE_INSERT as
1576     --          mode
1577     --          otherwise, select CORRECTION as the mode
1578     -- ------------------------------------------------------------------------
1579     -- step 1.1
1580     per_per_shd.find_dt_upd_modes
1581       (p_effective_date       => l_constant_effective_date
1582       ,p_base_key_value       => p_person_id
1583       ,p_correction           => l_correction
1584       ,p_update               => l_update
1585       ,p_update_override      => l_update_override
1586       ,p_update_change_insert => l_update_change_insert);
1587     -- step 1.2
1588     if l_update then
1589       -- we can do an update
1590       l_datetrack_update_mode := hr_api.g_update;
1591     elsif l_update_change_insert then
1592       -- we can do an update change insert
1593       l_datetrack_update_mode := hr_api.g_update_change_insert;
1594     elsif (l_validation_start_date = l_constant_effective_date) and
1595            l_correction then
1596       -- we can only perform a correction
1597       l_datetrack_update_mode := hr_api.g_correction;
1598     else
1599       -- we cannot perform an update due to a restriction within the APIs
1600       hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1601       hr_utility.set_message_token('PROCEDURE', l_proc);
1602       hr_utility.set_message_token('STEP','10');
1603       hr_utility.raise_error;
1604     end if;
1605     -- set lock start date to the effective date
1606     l_lck_start_date := l_constant_effective_date;
1607   elsif p_attribute_update_mode = 'ATTRIBUTE_CORRECTION' then
1608     -- set lock start date to start of time and the datetrack mode
1609     -- to CORRECTION
1610     l_lck_start_date := hr_api.g_sot;
1611     l_datetrack_update_mode := hr_api.g_correction;
1612   else
1613     -- the datetrack mode is not an ATTRIBUTE_UPDATE or ATTRIBUTE_CORRECTION
1614     -- so raise DT invalid mode error
1615     hr_utility.set_message(801, 'HR_7203_DT_UPD_MODE_INVALID');
1616     hr_utility.raise_error;
1617   end if;
1618   -- lock all person rows to ensure integrity. note: this will never fail.
1619   -- if the person doesn't exist (i.e. the person_id is invalid) then the
1620   -- business process will error with the correct error
1621   open csr_per_lck(l_lck_start_date);
1622   close csr_per_lck;
1623   -- ------------------------------------------------------------------------
1624   -- process the current and future row(s)
1625   -- ------------------------------------------------------------------------
1626   for csr_cur_fut in csr_per1 loop
1627     if not process_row
1628       (c_effective_start_date         => csr_cur_fut.effective_start_date
1629       ,c_object_version_number        => csr_cur_fut.object_version_number
1630       ,c_person_type_id               => csr_cur_fut.person_type_id
1631       ,c_last_name                    => csr_cur_fut.last_name
1632       ,c_applicant_number             => csr_cur_fut.applicant_number
1633       ,c_comments                     => csr_cur_fut.comment_text
1634       ,c_date_employee_data_verified  => csr_cur_fut.date_employee_data_verified
1635       ,c_date_of_birth                => csr_cur_fut.date_of_birth
1636       ,c_email_address                => csr_cur_fut.email_address
1637       ,c_employee_number              => csr_cur_fut.employee_number
1638       ,c_expense_check_send_to_addres => csr_cur_fut.expense_check_send_to_address
1639       ,c_first_name                   => csr_cur_fut.first_name
1640       ,c_known_as                     => csr_cur_fut.known_as
1641       ,c_marital_status               => csr_cur_fut.marital_status
1642       ,c_middle_names                 => csr_cur_fut.middle_names
1643       ,c_nationality                  => csr_cur_fut.nationality
1644       ,c_national_identifier          => csr_cur_fut.national_identifier
1645       ,c_previous_last_name           => csr_cur_fut.previous_last_name
1646       ,c_registered_disabled_flag     => csr_cur_fut.registered_disabled_flag
1647       ,c_sex                          => csr_cur_fut.sex
1648       ,c_title                        => csr_cur_fut.title
1649       ,c_vendor_id                    => csr_cur_fut.vendor_id
1650       ,c_work_telephone               => csr_cur_fut.work_telephone
1651       ,c_suffix                       => csr_cur_fut.suffix
1652       ,c_attribute_category           => csr_cur_fut.attribute_category
1653       ,c_attribute1                   => csr_cur_fut.attribute1
1654       ,c_attribute2                   => csr_cur_fut.attribute2
1655       ,c_attribute3                   => csr_cur_fut.attribute3
1656       ,c_attribute4                   => csr_cur_fut.attribute4
1657       ,c_attribute5                   => csr_cur_fut.attribute5
1658       ,c_attribute6                   => csr_cur_fut.attribute6
1659       ,c_attribute7                   => csr_cur_fut.attribute7
1660       ,c_attribute8                   => csr_cur_fut.attribute8
1661       ,c_attribute9                   => csr_cur_fut.attribute9
1662       ,c_attribute10                  => csr_cur_fut.attribute10
1663       ,c_attribute11                  => csr_cur_fut.attribute11
1664       ,c_attribute12                  => csr_cur_fut.attribute12
1665       ,c_attribute13                  => csr_cur_fut.attribute13
1666       ,c_attribute14                  => csr_cur_fut.attribute14
1667       ,c_attribute15                  => csr_cur_fut.attribute15
1668       ,c_attribute16                  => csr_cur_fut.attribute16
1669       ,c_attribute17                  => csr_cur_fut.attribute17
1670       ,c_attribute18                  => csr_cur_fut.attribute18
1671       ,c_attribute19                  => csr_cur_fut.attribute19
1672       ,c_attribute20                  => csr_cur_fut.attribute20
1673       ,c_attribute21                  => csr_cur_fut.attribute21
1674       ,c_attribute22                  => csr_cur_fut.attribute22
1675       ,c_attribute23                  => csr_cur_fut.attribute23
1676       ,c_attribute24                  => csr_cur_fut.attribute24
1677       ,c_attribute25                  => csr_cur_fut.attribute25
1678       ,c_attribute26                  => csr_cur_fut.attribute26
1679       ,c_attribute27                  => csr_cur_fut.attribute27
1680       ,c_attribute28                  => csr_cur_fut.attribute28
1681       ,c_attribute29                  => csr_cur_fut.attribute29
1682       ,c_attribute30                  => csr_cur_fut.attribute30
1683       ,c_per_information_category     => csr_cur_fut.per_information_category
1684       ,c_per_information1             => csr_cur_fut.per_information1
1685       ,c_per_information2             => csr_cur_fut.per_information2
1686       ,c_per_information3             => csr_cur_fut.per_information3
1687       ,c_per_information4             => csr_cur_fut.per_information4
1688       ,c_per_information5             => csr_cur_fut.per_information5
1689       ,c_per_information6             => csr_cur_fut.per_information6
1690       ,c_per_information7             => csr_cur_fut.per_information7
1691       ,c_per_information8             => csr_cur_fut.per_information8
1692       ,c_per_information9             => csr_cur_fut.per_information9
1693       ,c_per_information10            => csr_cur_fut.per_information10
1694       ,c_per_information11            => csr_cur_fut.per_information11
1695       ,c_per_information12            => csr_cur_fut.per_information12
1696       ,c_per_information13            => csr_cur_fut.per_information13
1697       ,c_per_information14            => csr_cur_fut.per_information14
1698       ,c_per_information15            => csr_cur_fut.per_information15
1699       ,c_per_information16            => csr_cur_fut.per_information16
1700       ,c_per_information17            => csr_cur_fut.per_information17
1701       ,c_per_information18            => csr_cur_fut.per_information18
1702       ,c_per_information19            => csr_cur_fut.per_information19
1703       ,c_per_information20            => csr_cur_fut.per_information20
1704       ,c_per_information21            => csr_cur_fut.per_information21
1705       ,c_per_information22            => csr_cur_fut.per_information22
1706       ,c_per_information23            => csr_cur_fut.per_information23
1707       ,c_per_information24            => csr_cur_fut.per_information24
1708       ,c_per_information25            => csr_cur_fut.per_information25
1709       ,c_per_information26            => csr_cur_fut.per_information26
1710       ,c_per_information27            => csr_cur_fut.per_information27
1711       ,c_per_information28            => csr_cur_fut.per_information28
1712       ,c_per_information29            => csr_cur_fut.per_information29
1713       ,c_per_information30            => csr_cur_fut.per_information30
1714       ,c_date_of_death                => csr_cur_fut.date_of_death
1715       ,c_background_check_status      => csr_cur_fut.background_check_status
1716       ,c_background_date_check        => csr_cur_fut.background_date_check
1717       ,c_blood_type                   => csr_cur_fut.blood_type
1718       ,c_correspondence_language      => csr_cur_fut.correspondence_language
1719       ,c_fast_path_employee           => csr_cur_fut.fast_path_employee
1720       ,c_fte_capacity                 => csr_cur_fut.fte_capacity
1721       ,c_hold_applicant_date_until    => csr_cur_fut.hold_applicant_date_until
1722       ,c_honors                       => csr_cur_fut.honors
1723       ,c_internal_location            => csr_cur_fut.internal_location
1724       ,c_last_medical_test_by         => csr_cur_fut.last_medical_test_by
1725       ,c_last_medical_test_date       => csr_cur_fut.last_medical_test_date
1726       ,c_mailstop                     => csr_cur_fut.mailstop
1727       ,c_office_number                => csr_cur_fut.office_number
1728       ,c_on_military_service          => csr_cur_fut.on_military_service
1729       ,c_pre_name_adjunct             => csr_cur_fut.pre_name_adjunct
1730       ,c_projected_start_date         => csr_cur_fut.projected_start_date
1731       ,c_rehire_authorizor            => csr_cur_fut.rehire_authorizor
1732       ,c_rehire_recommendation        => csr_cur_fut.rehire_recommendation
1733       ,c_resume_exists                => csr_cur_fut.resume_exists
1734       ,c_resume_last_updated          => csr_cur_fut.resume_last_updated
1735       ,c_second_passport_exists       => csr_cur_fut.second_passport_exists
1736       ,c_student_status               => csr_cur_fut.student_status
1737       ,c_work_schedule                => csr_cur_fut.work_schedule
1738       ,c_rehire_reason                => csr_cur_fut.rehire_reason
1739       ,c_benefit_group_id             => csr_cur_fut.benefit_group_id
1740       ,c_receipt_of_death_cert_date   => csr_cur_fut.receipt_of_death_cert_date
1741       ,c_coord_ben_med_pln_no         => csr_cur_fut.coord_ben_med_pln_no
1742       ,c_coord_ben_no_cvg_flag        => csr_cur_fut.coord_ben_no_cvg_flag
1743       ,c_uses_tobacco_flag            => csr_cur_fut.uses_tobacco_flag
1744       ,c_dpdnt_adoption_date          => csr_cur_fut.dpdnt_adoption_date
1745       ,c_dpdnt_vlntry_svce_flag       => csr_cur_fut.dpdnt_vlntry_svce_flag
1746       ,c_original_date_of_hire        => csr_cur_fut.original_date_of_hire
1747       ,c_town_of_birth                => csr_cur_fut.town_of_birth
1748       ,c_region_of_birth              => csr_cur_fut.region_of_birth
1749       ,c_country_of_birth             => csr_cur_fut.country_of_birth
1750       ,c_global_person_id             => csr_cur_fut.global_person_id
1751        ) then
1752       -- all the attributes have been processed, exit the loop
1753       exit;
1754     end if;
1755   end loop;
1756   -- ------------------------------------------------------------------------
1757   -- process any past row(s)
1758   if p_attribute_update_mode = 'ATTRIBUTE_CORRECTION' then
1759     -- reset the parameter statuses
1760     hr_dt_attribute_support.reset_parameter_statuses;
1761     for csr_past in csr_per2 loop
1762       if not process_row
1763         (c_effective_start_date         => csr_past.effective_start_date
1764         ,c_object_version_number        => csr_past.object_version_number
1765         ,c_person_type_id               => csr_past.person_type_id
1766         ,c_last_name                    => csr_past.last_name
1767         ,c_applicant_number             => csr_past.applicant_number
1768         ,c_comments                     => csr_past.comment_text
1769         ,c_date_employee_data_verified  => csr_past.date_employee_data_verified
1770         ,c_date_of_birth                => csr_past.date_of_birth
1771         ,c_email_address                => csr_past.email_address
1772         ,c_employee_number              => csr_past.employee_number
1773         ,c_expense_check_send_to_addres => csr_past.expense_check_send_to_address
1774         ,c_first_name                   => csr_past.first_name
1775         ,c_known_as                     => csr_past.known_as
1776         ,c_marital_status               => csr_past.marital_status
1777         ,c_middle_names                 => csr_past.middle_names
1778         ,c_nationality                  => csr_past.nationality
1779         ,c_national_identifier          => csr_past.national_identifier
1780         ,c_previous_last_name           => csr_past.previous_last_name
1781         ,c_registered_disabled_flag     => csr_past.registered_disabled_flag
1782         ,c_sex                          => csr_past.sex
1783         ,c_title                        => csr_past.title
1784         ,c_vendor_id                    => csr_past.vendor_id
1785         ,c_work_telephone               => csr_past.work_telephone
1786         ,c_suffix                       => csr_past.suffix
1787         ,c_attribute_category           => csr_past.attribute_category
1788         ,c_attribute1                   => csr_past.attribute1
1789         ,c_attribute2                   => csr_past.attribute2
1790         ,c_attribute3                   => csr_past.attribute3
1791         ,c_attribute4                   => csr_past.attribute4
1792         ,c_attribute5                   => csr_past.attribute5
1793         ,c_attribute6                   => csr_past.attribute6
1794         ,c_attribute7                   => csr_past.attribute7
1795         ,c_attribute8                   => csr_past.attribute8
1796         ,c_attribute9                   => csr_past.attribute9
1797         ,c_attribute10                  => csr_past.attribute10
1798         ,c_attribute11                  => csr_past.attribute11
1799         ,c_attribute12                  => csr_past.attribute12
1800         ,c_attribute13                  => csr_past.attribute13
1801         ,c_attribute14                  => csr_past.attribute14
1802         ,c_attribute15                  => csr_past.attribute15
1803         ,c_attribute16                  => csr_past.attribute16
1804         ,c_attribute17                  => csr_past.attribute17
1805         ,c_attribute18                  => csr_past.attribute18
1806         ,c_attribute19                  => csr_past.attribute19
1807         ,c_attribute20                  => csr_past.attribute20
1808         ,c_attribute21                  => csr_past.attribute21
1809         ,c_attribute22                  => csr_past.attribute22
1810         ,c_attribute23                  => csr_past.attribute23
1811         ,c_attribute24                  => csr_past.attribute24
1812         ,c_attribute25                  => csr_past.attribute25
1813         ,c_attribute26                  => csr_past.attribute26
1814         ,c_attribute27                  => csr_past.attribute27
1815         ,c_attribute28                  => csr_past.attribute28
1816         ,c_attribute29                  => csr_past.attribute29
1817         ,c_attribute30                  => csr_past.attribute30
1818         ,c_per_information_category     => csr_past.per_information_category
1819         ,c_per_information1             => csr_past.per_information1
1820         ,c_per_information2             => csr_past.per_information2
1821         ,c_per_information3             => csr_past.per_information3
1822         ,c_per_information4             => csr_past.per_information4
1823         ,c_per_information5             => csr_past.per_information5
1824         ,c_per_information6             => csr_past.per_information6
1825         ,c_per_information7             => csr_past.per_information7
1826         ,c_per_information8             => csr_past.per_information8
1827         ,c_per_information9             => csr_past.per_information9
1828         ,c_per_information10            => csr_past.per_information10
1829         ,c_per_information11            => csr_past.per_information11
1830         ,c_per_information12            => csr_past.per_information12
1831         ,c_per_information13            => csr_past.per_information13
1832         ,c_per_information14            => csr_past.per_information14
1833         ,c_per_information15            => csr_past.per_information15
1834         ,c_per_information16            => csr_past.per_information16
1835         ,c_per_information17            => csr_past.per_information17
1836         ,c_per_information18            => csr_past.per_information18
1837         ,c_per_information19            => csr_past.per_information19
1838         ,c_per_information20            => csr_past.per_information20
1839         ,c_per_information21            => csr_past.per_information21
1840         ,c_per_information22            => csr_past.per_information22
1841         ,c_per_information23            => csr_past.per_information23
1842         ,c_per_information24            => csr_past.per_information24
1843         ,c_per_information25            => csr_past.per_information25
1844         ,c_per_information26            => csr_past.per_information26
1845         ,c_per_information27            => csr_past.per_information27
1846         ,c_per_information28            => csr_past.per_information28
1847         ,c_per_information29            => csr_past.per_information29
1848         ,c_per_information30            => csr_past.per_information30
1849         ,c_date_of_death                => csr_past.date_of_death
1850         ,c_background_check_status      => csr_past.background_check_status
1851         ,c_background_date_check        => csr_past.background_date_check
1852         ,c_blood_type                   => csr_past.blood_type
1853         ,c_correspondence_language      => csr_past.correspondence_language
1854         ,c_fast_path_employee           => csr_past.fast_path_employee
1855         ,c_fte_capacity                 => csr_past.fte_capacity
1856         ,c_hold_applicant_date_until    => csr_past.hold_applicant_date_until
1857         ,c_honors                       => csr_past.honors
1858         ,c_internal_location            => csr_past.internal_location
1859         ,c_last_medical_test_by         => csr_past.last_medical_test_by
1860         ,c_last_medical_test_date       => csr_past.last_medical_test_date
1861         ,c_mailstop                     => csr_past.mailstop
1862         ,c_office_number                => csr_past.office_number
1863         ,c_on_military_service          => csr_past.on_military_service
1864         ,c_pre_name_adjunct             => csr_past.pre_name_adjunct
1865         ,c_projected_start_date         => csr_past.projected_start_date
1866         ,c_rehire_authorizor            => csr_past.rehire_authorizor
1867         ,c_rehire_recommendation        => csr_past.rehire_recommendation
1868         ,c_resume_exists                => csr_past.resume_exists
1869         ,c_resume_last_updated          => csr_past.resume_last_updated
1870         ,c_second_passport_exists       => csr_past.second_passport_exists
1871         ,c_student_status               => csr_past.student_status
1872         ,c_work_schedule                => csr_past.work_schedule
1873         ,c_rehire_reason                => csr_past.rehire_reason
1874         ,c_benefit_group_id             => csr_past.benefit_group_id
1875         ,c_receipt_of_death_cert_date   => csr_past.receipt_of_death_cert_date
1876         ,c_coord_ben_med_pln_no         => csr_past.coord_ben_med_pln_no
1877         ,c_coord_ben_no_cvg_flag        => csr_past.coord_ben_no_cvg_flag
1878         ,c_uses_tobacco_flag            => csr_past.uses_tobacco_flag
1879         ,c_dpdnt_adoption_date          => csr_past.dpdnt_adoption_date
1880         ,c_dpdnt_vlntry_svce_flag       => csr_past.dpdnt_vlntry_svce_flag
1881         ,c_original_date_of_hire        => csr_past.original_date_of_hire
1882         ,c_town_of_birth                => csr_past.town_of_birth
1883         ,c_region_of_birth              => csr_past.region_of_birth
1884         ,c_country_of_birth             => csr_past.country_of_birth
1885         ,c_global_person_id             => csr_past.global_person_id
1886       ) then
1887         -- all the attributes have been processed, exit the loop
1888         exit;
1889       end if;
1890     end loop;
1891   end if;
1892   --
1893   -- When in validation only mode raise the Validate_Enabled exception
1894   --
1895   if p_validate then
1896     raise hr_api.validate_enabled;
1897   end if;
1898   -- set the warning OUT parameters
1899   p_name_combination_warning := l_api_name_combination_warning;
1900   p_assign_payroll_warning := l_api_assign_payroll_warning;
1901   p_orig_hire_warning  := l_api_orig_hire_warning;
1902   --
1903   hr_utility.set_location(' Leaving:'||l_proc, 10);
1904 exception
1905   when hr_api.validate_enabled then
1906     --
1907     -- As the Validate_Enabled exception has been raised
1908     -- we must rollback to the savepoint
1909     --
1910     rollback to update_person;
1911     -- reset IN OUT parameters to original IN value
1912     p_object_version_number    := p_object_version_number;
1913     p_employee_number          := p_employee_number;
1914     -- reset non-warning OUT parameters to NULL
1915     p_effective_start_date     := null;
1916     p_effective_end_date       := null;
1917     p_full_name                := null;
1918     p_comment_id               := null;
1919     -- set warning OUT parameters to REAL value
1920     p_name_combination_warning := l_api_name_combination_warning;
1921     p_assign_payroll_warning   := l_api_assign_payroll_warning;
1922     p_orig_hire_warning        := l_orig_hire_warning;
1923 end update_person;
1924 --
1925 end hr_person_att;