DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_ABS_UPD

Source


1 Package Body per_abs_upd as
2 /* $Header: peabsrhi.pkb 120.17.12010000.3 2008/09/12 11:33:01 pvelugul ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  per_abs_upd.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |------------------------------< update_dml >------------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 --   This procedure controls the actual dml update logic. The processing of
17 --   this procedure is:
18 --   1) Increment the object_version_number by 1 if the object_version_number
19 --      is defined as an attribute for this entity.
20 --   2) To set and unset the g_api_dml status as required (as we are about to
21 --      perform dml).
22 --   3) To update the specified row in the schema using the primary key in
23 --      the predicates.
24 --   4) To trap any constraint violations that may have occurred.
25 --   5) To raise any other errors.
26 --
27 -- Prerequisites:
28 --   This is an internal private procedure which must be called from the upd
29 --   procedure.
30 --
31 -- In Parameters:
32 --   A Pl/Sql record structre.
33 --
34 -- Post Success:
35 --   The specified row will be updated in the schema.
36 --
37 -- Post Failure:
38 --   On the update dml failure it is important to note that we always reset the
39 --   g_api_dml status to false.
40 --   If a check, unique or parent integrity constraint violation is raised the
41 --   constraint_error procedure will be called.
42 --   If any other error is reported, the error will be raised after the
43 --   g_api_dml status is reset.
44 --
45 -- Developer Implementation Notes:
46 --   The update 'set' attribute list should be modified if any of your
47 --   attributes are not updateable.
48 --
49 -- Access Status:
50 --   Internal Row Handler Use Only.
51 --
52 -- {End Of Comments}
53 -- ----------------------------------------------------------------------------
54 Procedure update_dml
55   (p_rec in out nocopy per_abs_shd.g_rec_type
56   ) is
57 --
58   l_proc  varchar2(72) := g_package||'update_dml';
59 --
60 Begin
61   hr_utility.set_location('Entering:'||l_proc, 5);
62   --
63   -- Increment the object version
64   p_rec.object_version_number := p_rec.object_version_number + 1;
65   --
66   per_abs_shd.g_api_dml := true;  -- Set the api dml status
67   --
68   -- Update the per_absence_attendances Row
69   --
70   update per_absence_attendances
71     set
72      absence_attendance_id           = p_rec.absence_attendance_id
73     ,business_group_id               = p_rec.business_group_id
74     ,absence_attendance_type_id      = p_rec.absence_attendance_type_id
75     ,abs_attendance_reason_id        = p_rec.abs_attendance_reason_id
76     ,person_id                       = p_rec.person_id
77     ,authorising_person_id           = p_rec.authorising_person_id
78     ,replacement_person_id           = p_rec.replacement_person_id
79     ,period_of_incapacity_id         = p_rec.period_of_incapacity_id
80     ,absence_days                    = p_rec.absence_days
81     ,absence_hours                   = p_rec.absence_hours
82     ,comments                        = p_rec.comments
83     ,date_end                        = p_rec.date_end
84     ,date_notification               = p_rec.date_notification
85     ,date_projected_end              = p_rec.date_projected_end
86     ,date_projected_start            = p_rec.date_projected_start
87     ,date_start                      = p_rec.date_start
88     ,occurrence                      = p_rec.occurrence
89     ,ssp1_issued                     = p_rec.ssp1_issued
90     ,time_end                        = p_rec.time_end
91     ,time_projected_end              = p_rec.time_projected_end
92     ,time_projected_start            = p_rec.time_projected_start
93     ,time_start                      = p_rec.time_start
94     ,request_id                      = p_rec.request_id
95     ,program_application_id          = p_rec.program_application_id
96     ,program_id                      = p_rec.program_id
97     ,program_update_date             = p_rec.program_update_date
98     ,attribute_category              = p_rec.attribute_category
99     ,attribute1                      = p_rec.attribute1
100     ,attribute2                      = p_rec.attribute2
101     ,attribute3                      = p_rec.attribute3
102     ,attribute4                      = p_rec.attribute4
103     ,attribute5                      = p_rec.attribute5
104     ,attribute6                      = p_rec.attribute6
105     ,attribute7                      = p_rec.attribute7
106     ,attribute8                      = p_rec.attribute8
107     ,attribute9                      = p_rec.attribute9
108     ,attribute10                     = p_rec.attribute10
109     ,attribute11                     = p_rec.attribute11
110     ,attribute12                     = p_rec.attribute12
111     ,attribute13                     = p_rec.attribute13
112     ,attribute14                     = p_rec.attribute14
113     ,attribute15                     = p_rec.attribute15
114     ,attribute16                     = p_rec.attribute16
115     ,attribute17                     = p_rec.attribute17
116     ,attribute18                     = p_rec.attribute18
117     ,attribute19                     = p_rec.attribute19
118     ,attribute20                     = p_rec.attribute20
119     ,maternity_id                    = p_rec.maternity_id
120     ,sickness_start_date             = p_rec.sickness_start_date
121     ,sickness_end_date               = p_rec.sickness_end_date
122     ,pregnancy_related_illness       = p_rec.pregnancy_related_illness
123     ,reason_for_notification_delay   = p_rec.reason_for_notification_delay
124     ,accept_late_notification_flag   = p_rec.accept_late_notification_flag
125     ,linked_absence_id               = p_rec.linked_absence_id
126     ,abs_information_category        = p_rec.abs_information_category
127     ,abs_information1                = p_rec.abs_information1
128     ,abs_information2                = p_rec.abs_information2
129     ,abs_information3                = p_rec.abs_information3
130     ,abs_information4                = p_rec.abs_information4
131     ,abs_information5                = p_rec.abs_information5
132     ,abs_information6                = p_rec.abs_information6
133     ,abs_information7                = p_rec.abs_information7
134     ,abs_information8                = p_rec.abs_information8
135     ,abs_information9                = p_rec.abs_information9
136     ,abs_information10               = p_rec.abs_information10
137     ,abs_information11               = p_rec.abs_information11
138     ,abs_information12               = p_rec.abs_information12
139     ,abs_information13               = p_rec.abs_information13
140     ,abs_information14               = p_rec.abs_information14
141     ,abs_information15               = p_rec.abs_information15
142     ,abs_information16               = p_rec.abs_information16
143     ,abs_information17               = p_rec.abs_information17
144     ,abs_information18               = p_rec.abs_information18
145     ,abs_information19               = p_rec.abs_information19
146     ,abs_information20               = p_rec.abs_information20
147     ,abs_information21               = p_rec.abs_information21
148     ,abs_information22               = p_rec.abs_information22
149     ,abs_information23               = p_rec.abs_information23
150     ,abs_information24               = p_rec.abs_information24
151     ,abs_information25               = p_rec.abs_information25
152     ,abs_information26               = p_rec.abs_information26
153     ,abs_information27               = p_rec.abs_information27
154     ,abs_information28               = p_rec.abs_information28
155     ,abs_information29               = p_rec.abs_information29
156     ,abs_information30               = p_rec.abs_information30
157     ,batch_id                        = p_rec.batch_id
158     ,object_version_number           = p_rec.object_version_number
159     ,absence_case_id                 = p_rec.absence_case_id
160     where absence_attendance_id = p_rec.absence_attendance_id;
161   --
162   per_abs_shd.g_api_dml := false;   -- Unset the api dml status
163   --
164   hr_utility.set_location(' Leaving:'||l_proc, 10);
165 --
166 Exception
167   When hr_api.check_integrity_violated Then
168     -- A check constraint has been violated
169     per_abs_shd.g_api_dml := false;   -- Unset the api dml status
170     per_abs_shd.constraint_error
171       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
172   When hr_api.parent_integrity_violated Then
173     -- Parent integrity has been violated
174     per_abs_shd.g_api_dml := false;   -- Unset the api dml status
175     per_abs_shd.constraint_error
176       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
177   When hr_api.unique_integrity_violated Then
178     -- Unique integrity has been violated
179     per_abs_shd.g_api_dml := false;   -- Unset the api dml status
180     per_abs_shd.constraint_error
181       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
182   When Others Then
183     per_abs_shd.g_api_dml := false;   -- Unset the api dml status
184     Raise;
185 End update_dml;
186 --
187 -- ----------------------------------------------------------------------------
188 -- |------------------------------< pre_update >------------------------------|
189 -- ----------------------------------------------------------------------------
190 -- {Start Of Comments}
191 --
192 -- Description:
193 --   This private procedure contains any processing which is required before
194 --   the update dml.
195 --
196 -- Prerequisites:
197 --   This is an internal procedure which is called from the upd procedure.
198 --
199 -- In Parameters:
200 --   A Pl/Sql record structure.
201 --
202 -- Post Success:
203 --   Processing continues.
204 --
205 -- Post Failure:
206 --   If an error has occurred, an error message and exception wil be raised
207 --   but not handled.
208 --
209 -- Developer Implementation Notes:
210 --   Any pre-processing required before the update dml is issued should be
211 --   coded within this procedure. It is important to note that any 3rd party
212 --   maintenance should be reviewed before placing in this procedure.
213 --
214 -- Access Status:
215 --   Internal Row Handler Use Only.
216 --
217 -- {End Of Comments}
218 -- ----------------------------------------------------------------------------
219 Procedure pre_update
220   (p_rec            in out nocopy per_abs_shd.g_rec_type
221   ,p_effective_date in     date
222   ) is
223 --
224   l_proc  varchar2(72) := g_package||'pre_update';
225 --
226 Begin
227 
228   hr_utility.set_location('Entering:'||l_proc, 5);
229 
230 /*
231   per_abs_bus.chk_cal_duration
232      (p_absence_attendance_id      => p_rec.absence_attendance_id
233      ,p_absence_attendance_type_id => p_rec.absence_attendance_type_id
234      ,p_object_version_number      => p_rec.object_version_number
235      ,p_absence_days               => p_rec.absence_days
236      ,p_absence_hours              => p_rec.absence_hours
237      ,p_date_start                 => p_rec.date_start
238      ,p_date_end                   => p_rec.date_end
239      ,p_time_start                 => p_rec.time_start
240      ,p_time_end                   => p_rec.time_end
241      ,p_effective_date             => p_effective_date
242      ,p_person_id                  => p_rec.person_id
243      ,p_business_group_id          => p_rec.business_group_id
244      ,p_entitlement_warning        => l_entitlement_warning
245   );
246   p_entitlement_warning := l_entitlement_warning;
247   --
248 */
249 
250   --
251   -- Set the absence durations.  Note that the durations are set
252   -- to global variables because the values may have been over-
253   -- written by the system.
254   --
255   p_rec.absence_hours := per_abs_shd.g_absence_hours;
256   p_rec.absence_days  := per_abs_shd.g_absence_days;
257 
258   hr_utility.set_location(' Leaving:'||l_proc, 10);
259 
260 End pre_update;
261 --
262 -- ----------------------------------------------------------------------------
263 -- |-----------------------------< post_update >------------------------------|
264 -- ----------------------------------------------------------------------------
265 -- {Start Of Comments}
266 --
267 -- Description:
268 --   This private procedure contains any processing which is required after the
269 --   update dml.
270 --
271 -- Prerequisites:
272 --   This is an internal procedure which is called from the upd procedure.
273 --
274 -- In Parameters:
275 --   A Pl/Sql record structure.
276 --
277 -- Post Success:
278 --   Processing continues.
279 --
280 -- Post Failure:
281 --   If an error has occurred, an error message and exception will be raised
282 --   but not handled.
283 --
284 -- Developer Implementation Notes:
285 --   Any post-processing required after the update dml is issued should be
286 --   coded within this procedure. It is important to note that any 3rd party
287 --   maintenance should be reviewed before placing in this procedure.
288 --
289 -- Access Status:
290 --   Internal Row Handler Use Only.
291 --
292 -- {End Of Comments}
293 -- ----------------------------------------------------------------------------
294 Procedure post_update
295   (p_effective_date               in date
296   ,p_rec                          in per_abs_shd.g_rec_type
297   ) is
298 --
299   l_proc  varchar2(72) := g_package||'post_update';
300 --
301 Begin
302   hr_utility.set_location('Entering:'||l_proc, 5);
303   begin
304 
305     per_abs_rku.after_update
306       (p_effective_date              => p_effective_date
307       ,p_absence_attendance_id
308       => p_rec.absence_attendance_id
309       ,p_absence_attendance_type_id
310       => p_rec.absence_attendance_type_id
311       ,p_abs_attendance_reason_id
312       => p_rec.abs_attendance_reason_id
313       ,p_person_id
314       => p_rec.person_id
315       ,p_authorising_person_id
316       => p_rec.authorising_person_id
317       ,p_replacement_person_id
318       => p_rec.replacement_person_id
319       ,p_period_of_incapacity_id
320       => p_rec.period_of_incapacity_id
321       ,p_absence_days
322       => p_rec.absence_days
323       ,p_absence_hours
324       => p_rec.absence_hours
325       ,p_comments
326       => p_rec.comments
327       ,p_date_end
328       => p_rec.date_end
329       ,p_date_notification
330       => p_rec.date_notification
331       ,p_date_projected_end
332       => p_rec.date_projected_end
333       ,p_date_projected_start
334       => p_rec.date_projected_start
335       ,p_date_start
336       => p_rec.date_start
337       ,p_occurrence
338       => p_rec.occurrence
339       ,p_ssp1_issued
340       => p_rec.ssp1_issued
341       ,p_time_end
342       => p_rec.time_end
343       ,p_time_projected_end
344       => p_rec.time_projected_end
345       ,p_time_projected_start
346       => p_rec.time_projected_start
347       ,p_time_start
348       => p_rec.time_start
349       ,p_request_id
350       => p_rec.request_id
351       ,p_program_application_id
352       => p_rec.program_application_id
353       ,p_program_id
354       => p_rec.program_id
355       ,p_program_update_date
356       => p_rec.program_update_date
357       ,p_attribute_category
358       => p_rec.attribute_category
359       ,p_attribute1
360       => p_rec.attribute1
361       ,p_attribute2
362       => p_rec.attribute2
363       ,p_attribute3
364       => p_rec.attribute3
365       ,p_attribute4
366       => p_rec.attribute4
367       ,p_attribute5
368       => p_rec.attribute5
369       ,p_attribute6
370       => p_rec.attribute6
371       ,p_attribute7
372       => p_rec.attribute7
373       ,p_attribute8
374       => p_rec.attribute8
375       ,p_attribute9
376       => p_rec.attribute9
377       ,p_attribute10
378       => p_rec.attribute10
379       ,p_attribute11
380       => p_rec.attribute11
381       ,p_attribute12
382       => p_rec.attribute12
383       ,p_attribute13
384       => p_rec.attribute13
385       ,p_attribute14
386       => p_rec.attribute14
387       ,p_attribute15
388       => p_rec.attribute15
389       ,p_attribute16
390       => p_rec.attribute16
391       ,p_attribute17
392       => p_rec.attribute17
393       ,p_attribute18
394       => p_rec.attribute18
395       ,p_attribute19
396       => p_rec.attribute19
397       ,p_attribute20
398       => p_rec.attribute20
399       ,p_maternity_id
400       => p_rec.maternity_id
401       ,p_sickness_start_date
402       => p_rec.sickness_start_date
403       ,p_sickness_end_date
404       => p_rec.sickness_end_date
405       ,p_pregnancy_related_illness
406       => p_rec.pregnancy_related_illness
407       ,p_reason_for_notification_dela
408       => p_rec.reason_for_notification_delay
409       ,p_accept_late_notification_fla
410       => p_rec.accept_late_notification_flag
411       ,p_linked_absence_id
412       => p_rec.linked_absence_id
413       ,p_abs_information_category
414       => p_rec.abs_information_category
415       ,p_abs_information1
416       => p_rec.abs_information1
417       ,p_abs_information2
418       => p_rec.abs_information2
419       ,p_abs_information3
420       => p_rec.abs_information3
421       ,p_abs_information4
422       => p_rec.abs_information4
423       ,p_abs_information5
424       => p_rec.abs_information5
425       ,p_abs_information6
426       => p_rec.abs_information6
427       ,p_abs_information7
428       => p_rec.abs_information7
429       ,p_abs_information8
430       => p_rec.abs_information8
431       ,p_abs_information9
432       => p_rec.abs_information9
433       ,p_abs_information10
434       => p_rec.abs_information10
435       ,p_abs_information11
436       => p_rec.abs_information11
437       ,p_abs_information12
438       => p_rec.abs_information12
439       ,p_abs_information13
440       => p_rec.abs_information13
441       ,p_abs_information14
442       => p_rec.abs_information14
443       ,p_abs_information15
444       => p_rec.abs_information15
445       ,p_abs_information16
446       => p_rec.abs_information16
447       ,p_abs_information17
448       => p_rec.abs_information17
449       ,p_abs_information18
450       => p_rec.abs_information18
451       ,p_abs_information19
452       => p_rec.abs_information19
453       ,p_abs_information20
454       => p_rec.abs_information20
455       ,p_abs_information21
456       => p_rec.abs_information21
457       ,p_abs_information22
458       => p_rec.abs_information22
459       ,p_abs_information23
460       => p_rec.abs_information23
461       ,p_abs_information24
462       => p_rec.abs_information24
463       ,p_abs_information25
464       => p_rec.abs_information25
465       ,p_abs_information26
466       => p_rec.abs_information26
467       ,p_abs_information27
468       => p_rec.abs_information27
469       ,p_abs_information28
470       => p_rec.abs_information28
471       ,p_abs_information29
472       => p_rec.abs_information29
473       ,p_abs_information30
474       => p_rec.abs_information30
475       ,p_absence_case_id
476       => p_rec.absence_case_id
477       ,p_batch_id
478       => p_rec.batch_id
479       ,p_object_version_number
480       => p_rec.object_version_number
481       ,p_business_group_id_o
482       => per_abs_shd.g_old_rec.business_group_id
483       ,p_absence_attendance_type_id_o
484       => per_abs_shd.g_old_rec.absence_attendance_type_id
485       ,p_abs_attendance_reason_id_o
486       => per_abs_shd.g_old_rec.abs_attendance_reason_id
487       ,p_person_id_o
488       => per_abs_shd.g_old_rec.person_id
489       ,p_authorising_person_id_o
490       => per_abs_shd.g_old_rec.authorising_person_id
491       ,p_replacement_person_id_o
492       => per_abs_shd.g_old_rec.replacement_person_id
493       ,p_period_of_incapacity_id_o
494       => per_abs_shd.g_old_rec.period_of_incapacity_id
495       ,p_absence_days_o
496       => per_abs_shd.g_old_rec.absence_days
497       ,p_absence_hours_o
498       => per_abs_shd.g_old_rec.absence_hours
499       ,p_comments_o
500       => per_abs_shd.g_old_rec.comments
501       ,p_date_end_o
502       => per_abs_shd.g_old_rec.date_end
503       ,p_date_notification_o
504       => per_abs_shd.g_old_rec.date_notification
505       ,p_date_projected_end_o
506       => per_abs_shd.g_old_rec.date_projected_end
507       ,p_date_projected_start_o
508       => per_abs_shd.g_old_rec.date_projected_start
509       ,p_date_start_o
510       => per_abs_shd.g_old_rec.date_start
511       ,p_occurrence_o
512       => per_abs_shd.g_old_rec.occurrence
513       ,p_ssp1_issued_o
514       => per_abs_shd.g_old_rec.ssp1_issued
515       ,p_time_end_o
516       => per_abs_shd.g_old_rec.time_end
517       ,p_time_projected_end_o
518       => per_abs_shd.g_old_rec.time_projected_end
519       ,p_time_projected_start_o
520       => per_abs_shd.g_old_rec.time_projected_start
521       ,p_time_start_o
522       => per_abs_shd.g_old_rec.time_start
523       ,p_request_id_o
524       => per_abs_shd.g_old_rec.request_id
525       ,p_program_application_id_o
526       => per_abs_shd.g_old_rec.program_application_id
527       ,p_program_id_o
528       => per_abs_shd.g_old_rec.program_id
529       ,p_program_update_date_o
530       => per_abs_shd.g_old_rec.program_update_date
531       ,p_attribute_category_o
532       => per_abs_shd.g_old_rec.attribute_category
533       ,p_attribute1_o
534       => per_abs_shd.g_old_rec.attribute1
535       ,p_attribute2_o
536       => per_abs_shd.g_old_rec.attribute2
537       ,p_attribute3_o
538       => per_abs_shd.g_old_rec.attribute3
539       ,p_attribute4_o
540       => per_abs_shd.g_old_rec.attribute4
541       ,p_attribute5_o
542       => per_abs_shd.g_old_rec.attribute5
543       ,p_attribute6_o
544       => per_abs_shd.g_old_rec.attribute6
545       ,p_attribute7_o
546       => per_abs_shd.g_old_rec.attribute7
547       ,p_attribute8_o
548       => per_abs_shd.g_old_rec.attribute8
549       ,p_attribute9_o
550       => per_abs_shd.g_old_rec.attribute9
551       ,p_attribute10_o
552       => per_abs_shd.g_old_rec.attribute10
553       ,p_attribute11_o
554       => per_abs_shd.g_old_rec.attribute11
555       ,p_attribute12_o
556       => per_abs_shd.g_old_rec.attribute12
557       ,p_attribute13_o
558       => per_abs_shd.g_old_rec.attribute13
559       ,p_attribute14_o
560       => per_abs_shd.g_old_rec.attribute14
561       ,p_attribute15_o
562       => per_abs_shd.g_old_rec.attribute15
563       ,p_attribute16_o
564       => per_abs_shd.g_old_rec.attribute16
565       ,p_attribute17_o
566       => per_abs_shd.g_old_rec.attribute17
567       ,p_attribute18_o
568       => per_abs_shd.g_old_rec.attribute18
569       ,p_attribute19_o
570       => per_abs_shd.g_old_rec.attribute19
571       ,p_attribute20_o
572       => per_abs_shd.g_old_rec.attribute20
573       ,p_maternity_id_o
574       => per_abs_shd.g_old_rec.maternity_id
575       ,p_sickness_start_date_o
576       => per_abs_shd.g_old_rec.sickness_start_date
577       ,p_sickness_end_date_o
578       => per_abs_shd.g_old_rec.sickness_end_date
579       ,p_pregnancy_related_illness_o
580       => per_abs_shd.g_old_rec.pregnancy_related_illness
581       ,p_reason_for_notification_de_o
582       => per_abs_shd.g_old_rec.reason_for_notification_delay
583       ,p_accept_late_notification_f_o
584       => per_abs_shd.g_old_rec.accept_late_notification_flag
585       ,p_linked_absence_id_o
586       => per_abs_shd.g_old_rec.linked_absence_id
587       ,p_abs_information_category_o
588       => per_abs_shd.g_old_rec.abs_information_category
589       ,p_abs_information1_o
590       => per_abs_shd.g_old_rec.abs_information1
591       ,p_abs_information2_o
592       => per_abs_shd.g_old_rec.abs_information2
593       ,p_abs_information3_o
594       => per_abs_shd.g_old_rec.abs_information3
595       ,p_abs_information4_o
596       => per_abs_shd.g_old_rec.abs_information4
597       ,p_abs_information5_o
598       => per_abs_shd.g_old_rec.abs_information5
599       ,p_abs_information6_o
600       => per_abs_shd.g_old_rec.abs_information6
601       ,p_abs_information7_o
602       => per_abs_shd.g_old_rec.abs_information7
603       ,p_abs_information8_o
604       => per_abs_shd.g_old_rec.abs_information8
605       ,p_abs_information9_o
606       => per_abs_shd.g_old_rec.abs_information9
607       ,p_abs_information10_o
608       => per_abs_shd.g_old_rec.abs_information10
609       ,p_abs_information11_o
610       => per_abs_shd.g_old_rec.abs_information11
611       ,p_abs_information12_o
612       => per_abs_shd.g_old_rec.abs_information12
613       ,p_abs_information13_o
614       => per_abs_shd.g_old_rec.abs_information13
615       ,p_abs_information14_o
616       => per_abs_shd.g_old_rec.abs_information14
617       ,p_abs_information15_o
618       => per_abs_shd.g_old_rec.abs_information15
619       ,p_abs_information16_o
620       => per_abs_shd.g_old_rec.abs_information16
621       ,p_abs_information17_o
622       => per_abs_shd.g_old_rec.abs_information17
623       ,p_abs_information18_o
624       => per_abs_shd.g_old_rec.abs_information18
625       ,p_abs_information19_o
626       => per_abs_shd.g_old_rec.abs_information19
627       ,p_abs_information20_o
628       => per_abs_shd.g_old_rec.abs_information20
629       ,p_abs_information21_o
630       => per_abs_shd.g_old_rec.abs_information21
631       ,p_abs_information22_o
632       => per_abs_shd.g_old_rec.abs_information22
633       ,p_abs_information23_o
634       => per_abs_shd.g_old_rec.abs_information23
635       ,p_abs_information24_o
636       => per_abs_shd.g_old_rec.abs_information24
637       ,p_abs_information25_o
638       => per_abs_shd.g_old_rec.abs_information25
639       ,p_abs_information26_o
640       => per_abs_shd.g_old_rec.abs_information26
641       ,p_abs_information27_o
642       => per_abs_shd.g_old_rec.abs_information27
643       ,p_abs_information28_o
644       => per_abs_shd.g_old_rec.abs_information28
645       ,p_abs_information29_o
646       => per_abs_shd.g_old_rec.abs_information29
647       ,p_abs_information30_o
648       => per_abs_shd.g_old_rec.abs_information30
649       ,p_batch_id_o
650       => per_abs_shd.g_old_rec.batch_id
651       ,p_absence_case_id_o
652       => per_abs_shd.g_old_rec.absence_case_id
653       ,p_object_version_number_o
654       => per_abs_shd.g_old_rec.object_version_number
655       );
656     --
657   exception
658     --
659     when hr_api.cannot_find_prog_unit then
660       --
661       hr_api.cannot_find_prog_unit_error
662         (p_module_name => 'PER_ABSENCE_ATTENDANCES'
663         ,p_hook_type   => 'AU');
664       --
665   end;
666   --
667   hr_utility.set_location(' Leaving:'||l_proc, 10);
668 End post_update;
669 --
670 -- ----------------------------------------------------------------------------
671 -- |-----------------------------< convert_defs >-----------------------------|
672 -- ----------------------------------------------------------------------------
673 -- {Start Of Comments}
674 --
675 -- Description:
676 --   The Convert_Defs procedure has one very important function:
677 --   It must return the record structure for the row with all system defaulted
678 --   values converted into its corresponding parameter value for update. When
679 --   we attempt to update a row through the Upd process , certain
680 --   parameters can be defaulted which enables flexibility in the calling of
681 --   the upd process (e.g. only attributes which need to be updated need to be
682 --   specified). For the upd process to determine which attributes
683 --   have NOT been specified we need to check if the parameter has a reserved
684 --   system default value. Therefore, for all parameters which have a
685 --   corresponding reserved system default mechanism specified we need to
686 --   check if a system default is being used. If a system default is being
687 --   used then we convert the defaulted value into its corresponding attribute
688 --   value held in the g_old_rec data structure.
689 --
690 -- Prerequisites:
691 --   This private function can only be called from the upd process.
692 --
693 -- In Parameters:
694 --   A Pl/Sql record structure.
695 --
696 -- Post Success:
697 --   The record structure will be returned with all system defaulted parameter
698 --   values converted into its current row attribute value.
699 --
700 -- Post Failure:
701 --   No direct error handling is required within this function. Any possible
702 --   errors within this procedure will be a PL/SQL value error due to
703 --   conversion of datatypes or data lengths.
704 --
705 -- Developer Implementation Notes:
706 --   None.
707 --
708 -- Access Status:
709 --   Internal Row Handler Use Only.
710 --
711 -- {End Of Comments}
712 -- ----------------------------------------------------------------------------
713 Procedure convert_defs
714   (p_rec in out nocopy per_abs_shd.g_rec_type
715   ) is
716 --
717 Begin
718   --
719   -- We must now examine each argument value in the
720   -- p_rec plsql record structure
721   -- to see if a system default is being used. If a system default
722   -- is being used then we must set to the 'current' argument value.
723   --
724   If (p_rec.business_group_id = hr_api.g_number) then
725     p_rec.business_group_id :=
726     per_abs_shd.g_old_rec.business_group_id;
727   End If;
728   If (p_rec.absence_attendance_type_id = hr_api.g_number) then
729     p_rec.absence_attendance_type_id :=
730     per_abs_shd.g_old_rec.absence_attendance_type_id;
731   End If;
732   If (p_rec.abs_attendance_reason_id = hr_api.g_number) then
733     p_rec.abs_attendance_reason_id :=
734     per_abs_shd.g_old_rec.abs_attendance_reason_id;
735   End If;
736   If (p_rec.person_id = hr_api.g_number) then
737     p_rec.person_id :=
738     per_abs_shd.g_old_rec.person_id;
739   End If;
740   If (p_rec.authorising_person_id = hr_api.g_number) then
741     p_rec.authorising_person_id :=
742     per_abs_shd.g_old_rec.authorising_person_id;
743   End If;
744   If (p_rec.replacement_person_id = hr_api.g_number) then
745     p_rec.replacement_person_id :=
746     per_abs_shd.g_old_rec.replacement_person_id;
747   End If;
748   If (p_rec.period_of_incapacity_id = hr_api.g_number) then
749     p_rec.period_of_incapacity_id :=
750     per_abs_shd.g_old_rec.period_of_incapacity_id;
751   End If;
752   If (p_rec.absence_days = hr_api.g_number) then
753     p_rec.absence_days :=
754     per_abs_shd.g_old_rec.absence_days;
755   End If;
756   If (p_rec.absence_hours = hr_api.g_number) then
757     p_rec.absence_hours :=
758     per_abs_shd.g_old_rec.absence_hours;
759   End If;
760   If (p_rec.comments = hr_api.g_varchar2) then
761     p_rec.comments :=
762     per_abs_shd.g_old_rec.comments;
763   End If;
764   If (p_rec.date_end = hr_api.g_date) then
765     p_rec.date_end :=
766     per_abs_shd.g_old_rec.date_end;
767   End If;
768   If (p_rec.date_notification = hr_api.g_date) then
769     p_rec.date_notification :=
770     per_abs_shd.g_old_rec.date_notification;
771   End If;
772   If (p_rec.date_projected_end = hr_api.g_date) then
773     p_rec.date_projected_end :=
774     per_abs_shd.g_old_rec.date_projected_end;
775   End If;
776   If (p_rec.date_projected_start = hr_api.g_date) then
777     p_rec.date_projected_start :=
778     per_abs_shd.g_old_rec.date_projected_start;
779   End If;
780   If (p_rec.date_start = hr_api.g_date) then
781     p_rec.date_start :=
782     per_abs_shd.g_old_rec.date_start;
783   End If;
784   If (p_rec.occurrence = hr_api.g_number) then
785     p_rec.occurrence :=
786     per_abs_shd.g_old_rec.occurrence;
787   End If;
788   If (p_rec.ssp1_issued = hr_api.g_varchar2) then
789     p_rec.ssp1_issued :=
790     per_abs_shd.g_old_rec.ssp1_issued;
791   End If;
792   If (p_rec.time_end = hr_api.g_varchar2) then
793     p_rec.time_end :=
794     per_abs_shd.g_old_rec.time_end;
795   End If;
796   If (p_rec.time_projected_end = hr_api.g_varchar2) then
797     p_rec.time_projected_end :=
798     per_abs_shd.g_old_rec.time_projected_end;
799   End If;
800   If (p_rec.time_projected_start = hr_api.g_varchar2) then
801     p_rec.time_projected_start :=
802     per_abs_shd.g_old_rec.time_projected_start;
803   End If;
804   If (p_rec.time_start = hr_api.g_varchar2) then
805     p_rec.time_start :=
806     per_abs_shd.g_old_rec.time_start;
807   End If;
808   If (p_rec.request_id = hr_api.g_number) then
809     p_rec.request_id :=
810     per_abs_shd.g_old_rec.request_id;
811   End If;
812   If (p_rec.program_application_id = hr_api.g_number) then
813     p_rec.program_application_id :=
814     per_abs_shd.g_old_rec.program_application_id;
815   End If;
816   If (p_rec.program_id = hr_api.g_number) then
817     p_rec.program_id :=
818     per_abs_shd.g_old_rec.program_id;
819   End If;
820   If (p_rec.program_update_date = hr_api.g_date) then
821     p_rec.program_update_date :=
822     per_abs_shd.g_old_rec.program_update_date;
823   End If;
824   If (p_rec.attribute_category = hr_api.g_varchar2) then
825     p_rec.attribute_category :=
826     per_abs_shd.g_old_rec.attribute_category;
827   End If;
828   If (p_rec.attribute1 = hr_api.g_varchar2) then
829     p_rec.attribute1 :=
830     per_abs_shd.g_old_rec.attribute1;
831   End If;
832   If (p_rec.attribute2 = hr_api.g_varchar2) then
833     p_rec.attribute2 :=
834     per_abs_shd.g_old_rec.attribute2;
835   End If;
836   If (p_rec.attribute3 = hr_api.g_varchar2) then
837     p_rec.attribute3 :=
838     per_abs_shd.g_old_rec.attribute3;
839   End If;
840   If (p_rec.attribute4 = hr_api.g_varchar2) then
841     p_rec.attribute4 :=
842     per_abs_shd.g_old_rec.attribute4;
843   End If;
844   If (p_rec.attribute5 = hr_api.g_varchar2) then
845     p_rec.attribute5 :=
846     per_abs_shd.g_old_rec.attribute5;
847   End If;
848   If (p_rec.attribute6 = hr_api.g_varchar2) then
849     p_rec.attribute6 :=
850     per_abs_shd.g_old_rec.attribute6;
851   End If;
852   If (p_rec.attribute7 = hr_api.g_varchar2) then
853     p_rec.attribute7 :=
854     per_abs_shd.g_old_rec.attribute7;
855   End If;
856   If (p_rec.attribute8 = hr_api.g_varchar2) then
857     p_rec.attribute8 :=
858     per_abs_shd.g_old_rec.attribute8;
859   End If;
860   If (p_rec.attribute9 = hr_api.g_varchar2) then
861     p_rec.attribute9 :=
862     per_abs_shd.g_old_rec.attribute9;
863   End If;
864   If (p_rec.attribute10 = hr_api.g_varchar2) then
865     p_rec.attribute10 :=
866     per_abs_shd.g_old_rec.attribute10;
867   End If;
868   If (p_rec.attribute11 = hr_api.g_varchar2) then
869     p_rec.attribute11 :=
870     per_abs_shd.g_old_rec.attribute11;
871   End If;
872   If (p_rec.attribute12 = hr_api.g_varchar2) then
873     p_rec.attribute12 :=
874     per_abs_shd.g_old_rec.attribute12;
875   End If;
876   If (p_rec.attribute13 = hr_api.g_varchar2) then
877     p_rec.attribute13 :=
878     per_abs_shd.g_old_rec.attribute13;
879   End If;
880   If (p_rec.attribute14 = hr_api.g_varchar2) then
881     p_rec.attribute14 :=
882     per_abs_shd.g_old_rec.attribute14;
883   End If;
884   If (p_rec.attribute15 = hr_api.g_varchar2) then
885     p_rec.attribute15 :=
886     per_abs_shd.g_old_rec.attribute15;
887   End If;
888   If (p_rec.attribute16 = hr_api.g_varchar2) then
889     p_rec.attribute16 :=
890     per_abs_shd.g_old_rec.attribute16;
891   End If;
892   If (p_rec.attribute17 = hr_api.g_varchar2) then
893     p_rec.attribute17 :=
894     per_abs_shd.g_old_rec.attribute17;
895   End If;
896   If (p_rec.attribute18 = hr_api.g_varchar2) then
897     p_rec.attribute18 :=
898     per_abs_shd.g_old_rec.attribute18;
899   End If;
900   If (p_rec.attribute19 = hr_api.g_varchar2) then
901     p_rec.attribute19 :=
902     per_abs_shd.g_old_rec.attribute19;
903   End If;
904   If (p_rec.attribute20 = hr_api.g_varchar2) then
905     p_rec.attribute20 :=
906     per_abs_shd.g_old_rec.attribute20;
907   End If;
908   If (p_rec.maternity_id = hr_api.g_number) then
909     p_rec.maternity_id :=
910     per_abs_shd.g_old_rec.maternity_id;
911   End If;
912   If (p_rec.sickness_start_date = hr_api.g_date) then
913     p_rec.sickness_start_date :=
914     per_abs_shd.g_old_rec.sickness_start_date;
915   End If;
916   If (p_rec.sickness_end_date = hr_api.g_date) then
917     p_rec.sickness_end_date :=
918     per_abs_shd.g_old_rec.sickness_end_date;
919   End If;
920   If (p_rec.pregnancy_related_illness = hr_api.g_varchar2) then
921     p_rec.pregnancy_related_illness :=
922     per_abs_shd.g_old_rec.pregnancy_related_illness;
923   End If;
924   If (p_rec.reason_for_notification_delay = hr_api.g_varchar2) then
925     p_rec.reason_for_notification_delay :=
926     per_abs_shd.g_old_rec.reason_for_notification_delay;
927   End If;
928   If (p_rec.accept_late_notification_flag = hr_api.g_varchar2) then
929     p_rec.accept_late_notification_flag :=
930     per_abs_shd.g_old_rec.accept_late_notification_flag;
931   End If;
932   If (p_rec.linked_absence_id = hr_api.g_number) then
933     p_rec.linked_absence_id :=
934     per_abs_shd.g_old_rec.linked_absence_id;
935   End If;
936   If (p_rec.abs_information_category = hr_api.g_varchar2) then
937     p_rec.abs_information_category :=
938     per_abs_shd.g_old_rec.abs_information_category;
939   End If;
940   If (p_rec.abs_information1 = hr_api.g_varchar2) then
941     p_rec.abs_information1 :=
942     per_abs_shd.g_old_rec.abs_information1;
943   End If;
944   If (p_rec.abs_information2 = hr_api.g_varchar2) then
945     p_rec.abs_information2 :=
946     per_abs_shd.g_old_rec.abs_information2;
947   End If;
948   If (p_rec.abs_information3 = hr_api.g_varchar2) then
949     p_rec.abs_information3 :=
950     per_abs_shd.g_old_rec.abs_information3;
951   End If;
952   If (p_rec.abs_information4 = hr_api.g_varchar2) then
953     p_rec.abs_information4 :=
954     per_abs_shd.g_old_rec.abs_information4;
955   End If;
956   If (p_rec.abs_information5 = hr_api.g_varchar2) then
957     p_rec.abs_information5 :=
958     per_abs_shd.g_old_rec.abs_information5;
959   End If;
960   If (p_rec.abs_information6 = hr_api.g_varchar2) then
961     p_rec.abs_information6 :=
962     per_abs_shd.g_old_rec.abs_information6;
963   End If;
964   If (p_rec.abs_information7 = hr_api.g_varchar2) then
965     p_rec.abs_information7 :=
966     per_abs_shd.g_old_rec.abs_information7;
967   End If;
968   If (p_rec.abs_information8 = hr_api.g_varchar2) then
969     p_rec.abs_information8 :=
970     per_abs_shd.g_old_rec.abs_information8;
971   End If;
972   If (p_rec.abs_information9 = hr_api.g_varchar2) then
973     p_rec.abs_information9 :=
974     per_abs_shd.g_old_rec.abs_information9;
975   End If;
976   If (p_rec.abs_information10 = hr_api.g_varchar2) then
977     p_rec.abs_information10 :=
978     per_abs_shd.g_old_rec.abs_information10;
979   End If;
980   If (p_rec.abs_information11 = hr_api.g_varchar2) then
981     p_rec.abs_information11 :=
982     per_abs_shd.g_old_rec.abs_information11;
983   End If;
984   If (p_rec.abs_information12 = hr_api.g_varchar2) then
985     p_rec.abs_information12 :=
986     per_abs_shd.g_old_rec.abs_information12;
987   End If;
988   If (p_rec.abs_information13 = hr_api.g_varchar2) then
989     p_rec.abs_information13 :=
990     per_abs_shd.g_old_rec.abs_information13;
991   End If;
992   If (p_rec.abs_information14 = hr_api.g_varchar2) then
993     p_rec.abs_information14 :=
994     per_abs_shd.g_old_rec.abs_information14;
995   End If;
996   If (p_rec.abs_information15 = hr_api.g_varchar2) then
997     p_rec.abs_information15 :=
998     per_abs_shd.g_old_rec.abs_information15;
999   End If;
1000   If (p_rec.abs_information16 = hr_api.g_varchar2) then
1001     p_rec.abs_information16 :=
1002     per_abs_shd.g_old_rec.abs_information16;
1003   End If;
1004   If (p_rec.abs_information17 = hr_api.g_varchar2) then
1005     p_rec.abs_information17 :=
1006     per_abs_shd.g_old_rec.abs_information17;
1007   End If;
1008   If (p_rec.abs_information18 = hr_api.g_varchar2) then
1009     p_rec.abs_information18 :=
1010     per_abs_shd.g_old_rec.abs_information18;
1011   End If;
1012   If (p_rec.abs_information19 = hr_api.g_varchar2) then
1013     p_rec.abs_information19 :=
1014     per_abs_shd.g_old_rec.abs_information19;
1015   End If;
1016   If (p_rec.abs_information20 = hr_api.g_varchar2) then
1017     p_rec.abs_information20 :=
1018     per_abs_shd.g_old_rec.abs_information20;
1019   End If;
1020   If (p_rec.abs_information21 = hr_api.g_varchar2) then
1021     p_rec.abs_information21 :=
1022     per_abs_shd.g_old_rec.abs_information21;
1023   End If;
1024   If (p_rec.abs_information22 = hr_api.g_varchar2) then
1025     p_rec.abs_information22 :=
1026     per_abs_shd.g_old_rec.abs_information22;
1027   End If;
1028   If (p_rec.abs_information23 = hr_api.g_varchar2) then
1029     p_rec.abs_information23 :=
1030     per_abs_shd.g_old_rec.abs_information23;
1031   End If;
1032   If (p_rec.abs_information24 = hr_api.g_varchar2) then
1033     p_rec.abs_information24 :=
1034     per_abs_shd.g_old_rec.abs_information24;
1035   End If;
1036   If (p_rec.abs_information25 = hr_api.g_varchar2) then
1037     p_rec.abs_information25 :=
1038     per_abs_shd.g_old_rec.abs_information25;
1039   End If;
1040   If (p_rec.abs_information26 = hr_api.g_varchar2) then
1041     p_rec.abs_information26 :=
1042     per_abs_shd.g_old_rec.abs_information26;
1043   End If;
1044   If (p_rec.abs_information27 = hr_api.g_varchar2) then
1045     p_rec.abs_information27 :=
1046     per_abs_shd.g_old_rec.abs_information27;
1047   End If;
1048   If (p_rec.abs_information28 = hr_api.g_varchar2) then
1049     p_rec.abs_information28 :=
1050     per_abs_shd.g_old_rec.abs_information28;
1051   End If;
1052   If (p_rec.abs_information29 = hr_api.g_varchar2) then
1053     p_rec.abs_information29 :=
1054     per_abs_shd.g_old_rec.abs_information29;
1055   End If;
1056   If (p_rec.abs_information30 = hr_api.g_varchar2) then
1057     p_rec.abs_information30 :=
1058     per_abs_shd.g_old_rec.abs_information30;
1059   End If;
1060   If (p_rec.absence_case_id = hr_api.g_number) then
1061     p_rec.absence_case_id :=
1062     per_abs_shd.g_old_rec.absence_case_id;
1063   End If;
1064   If (p_rec.batch_id = hr_api.g_number) then
1065     p_rec.batch_id :=
1066     per_abs_shd.g_old_rec.batch_id;
1067   End If;
1068   --
1069 End convert_defs;
1070 --
1071 -- ----------------------------------------------------------------------------
1072 -- |---------------------------------< upd >----------------------------------|
1073 -- ----------------------------------------------------------------------------
1074 Procedure upd
1075   (p_effective_date               in     date
1076   ,p_rec                          in out nocopy per_abs_shd.g_rec_type
1077   ,p_dur_dys_less_warning         out nocopy    boolean
1078   ,p_dur_hrs_less_warning         out nocopy    boolean
1079   ,p_exceeds_pto_entit_warning    out nocopy    boolean
1080   ,p_exceeds_run_total_warning    out nocopy    boolean
1081   ,p_abs_overlap_warning          out nocopy    boolean
1082   ,p_abs_day_after_warning        out nocopy    boolean
1083   ,p_dur_overwritten_warning      out nocopy    boolean
1084   ) is
1085 --
1086   l_proc  varchar2(72) := g_package||'upd';
1087 --
1088 Begin
1089   hr_utility.set_location('Entering:'||l_proc, 5);
1090   --
1091   -- We must lock the row which we need to update.
1092   --
1093   per_abs_shd.lck
1094     (p_rec.absence_attendance_id
1095     ,p_rec.object_version_number
1096     );
1097   --
1098   -- 1. During an update system defaults are used to determine if
1099   --    arguments have been defaulted or not. We must therefore
1100   --    derive the full record structure values to be updated.
1101   --
1102   -- 2. Call the supporting update validate operations.
1103   --
1104   convert_defs(p_rec);
1105 
1106   per_abs_bus.update_validate
1107      (p_effective_date            => p_effective_date
1108      ,p_rec                       => p_rec
1109      ,p_dur_dys_less_warning      => p_dur_dys_less_warning
1110      ,p_dur_hrs_less_warning      => p_dur_hrs_less_warning
1111      ,p_exceeds_pto_entit_warning => p_exceeds_pto_entit_warning
1112      ,p_exceeds_run_total_warning => p_exceeds_run_total_warning
1113      ,p_abs_overlap_warning       => p_abs_overlap_warning
1114      ,p_abs_day_after_warning     => p_abs_day_after_warning
1115      ,p_dur_overwritten_warning   => p_dur_overwritten_warning
1116      );
1117 
1118   --
1119   -- Call the supporting pre-update operation
1120   --
1121   per_abs_upd.pre_update(p_rec, p_effective_date);
1122   --
1123   -- Update the row.
1124   --
1125   per_abs_upd.update_dml(p_rec);
1126   --
1127   -- Call the supporting post-update operation
1128   --
1129   per_abs_upd.post_update
1130      (p_effective_date
1131      ,p_rec
1132      );
1133 End upd;
1134 --
1135 -- ----------------------------------------------------------------------------
1136 -- |---------------------------------< upd >----------------------------------|
1137 -- ----------------------------------------------------------------------------
1138 Procedure upd
1139   (p_effective_date               in     date
1140   ,p_absence_attendance_id        in     number
1141   ,p_object_version_number        in out nocopy number
1142   ,p_abs_attendance_reason_id     in     number    default hr_api.g_number
1143   ,p_authorising_person_id        in     number    default hr_api.g_number
1144   ,p_replacement_person_id        in     number    default hr_api.g_number
1145   ,p_period_of_incapacity_id      in     number    default hr_api.g_number
1146   ,p_absence_days                 in out nocopy number
1147   ,p_absence_hours                in out nocopy number
1148   --start changes for bug 5987410
1149   --,p_comments                     in     varchar2  default hr_api.g_varchar2
1150   ,p_comments                     in     long  default NULL
1151   --end changes for bug 5987410
1152 	,p_date_notification            in     date      default hr_api.g_date
1153   ,p_date_start                   in     date      default hr_api.g_date
1154   ,p_date_end                     in     date      default hr_api.g_date
1155   ,p_date_projected_start         in     date      default hr_api.g_date
1156   ,p_date_projected_end           in     date      default hr_api.g_date
1157   ,p_time_start                   in     varchar2  default hr_api.g_varchar2
1158   ,p_time_end                     in     varchar2  default hr_api.g_varchar2
1159   ,p_time_projected_start         in     varchar2  default hr_api.g_varchar2
1160   ,p_time_projected_end           in     varchar2  default hr_api.g_varchar2
1161   ,p_occurrence                   in     number    default hr_api.g_number
1162   ,p_ssp1_issued                  in     varchar2  default hr_api.g_varchar2
1163   ,p_request_id                   in     number    default hr_api.g_number
1164   ,p_program_application_id       in     number    default hr_api.g_number
1165   ,p_program_id                   in     number    default hr_api.g_number
1166   ,p_program_update_date          in     date      default hr_api.g_date
1167   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
1168   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
1169   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
1170   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
1171   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
1172   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
1173   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
1174   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
1175   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
1176   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
1177   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
1178   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
1179   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
1180   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
1181   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
1182   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
1183   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
1184   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
1185   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
1186   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
1187   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
1188   ,p_maternity_id                 in     number    default hr_api.g_number
1189   ,p_sickness_start_date          in     date      default hr_api.g_date
1190   ,p_sickness_end_date            in     date      default hr_api.g_date
1191   ,p_pregnancy_related_illness    in     varchar2  default hr_api.g_varchar2
1192   ,p_reason_for_notification_dela in     varchar2  default hr_api.g_varchar2
1193   ,p_accept_late_notification_fla in     varchar2  default hr_api.g_varchar2
1194   ,p_linked_absence_id            in     number    default hr_api.g_number
1195   ,p_abs_information_category     in     varchar2  default hr_api.g_varchar2
1196   ,p_abs_information1             in     varchar2  default hr_api.g_varchar2
1197   ,p_abs_information2             in     varchar2  default hr_api.g_varchar2
1198   ,p_abs_information3             in     varchar2  default hr_api.g_varchar2
1199   ,p_abs_information4             in     varchar2  default hr_api.g_varchar2
1200   ,p_abs_information5             in     varchar2  default hr_api.g_varchar2
1201   ,p_abs_information6             in     varchar2  default hr_api.g_varchar2
1202   ,p_abs_information7             in     varchar2  default hr_api.g_varchar2
1203   ,p_abs_information8             in     varchar2  default hr_api.g_varchar2
1204   ,p_abs_information9             in     varchar2  default hr_api.g_varchar2
1205   ,p_abs_information10            in     varchar2  default hr_api.g_varchar2
1206   ,p_abs_information11            in     varchar2  default hr_api.g_varchar2
1207   ,p_abs_information12            in     varchar2  default hr_api.g_varchar2
1208   ,p_abs_information13            in     varchar2  default hr_api.g_varchar2
1209   ,p_abs_information14            in     varchar2  default hr_api.g_varchar2
1210   ,p_abs_information15            in     varchar2  default hr_api.g_varchar2
1211   ,p_abs_information16            in     varchar2  default hr_api.g_varchar2
1212   ,p_abs_information17            in     varchar2  default hr_api.g_varchar2
1213   ,p_abs_information18            in     varchar2  default hr_api.g_varchar2
1214   ,p_abs_information19            in     varchar2  default hr_api.g_varchar2
1215   ,p_abs_information20            in     varchar2  default hr_api.g_varchar2
1216   ,p_abs_information21            in     varchar2  default hr_api.g_varchar2
1217   ,p_abs_information22            in     varchar2  default hr_api.g_varchar2
1218   ,p_abs_information23            in     varchar2  default hr_api.g_varchar2
1219   ,p_abs_information24            in     varchar2  default hr_api.g_varchar2
1220   ,p_abs_information25            in     varchar2  default hr_api.g_varchar2
1221   ,p_abs_information26            in     varchar2  default hr_api.g_varchar2
1222   ,p_abs_information27            in     varchar2  default hr_api.g_varchar2
1223   ,p_abs_information28            in     varchar2  default hr_api.g_varchar2
1224   ,p_abs_information29            in     varchar2  default hr_api.g_varchar2
1225   ,p_abs_information30            in     varchar2  default hr_api.g_varchar2
1226   ,p_batch_id                     in     number    default hr_api.g_number
1227   ,p_absence_case_id              in     number    default hr_api.g_number
1228   ,p_dur_dys_less_warning         out nocopy    boolean
1229   ,p_dur_hrs_less_warning         out nocopy    boolean
1230   ,p_exceeds_pto_entit_warning    out nocopy    boolean
1231   ,p_exceeds_run_total_warning    out nocopy    boolean
1232   ,p_abs_overlap_warning          out nocopy    boolean
1233   ,p_abs_day_after_warning        out nocopy    boolean
1234   ,p_dur_overwritten_warning      out nocopy    boolean
1235   ) is
1236 --
1237   l_person_id                    number := hr_api.g_number;
1238   l_absence_attendance_type_id   number := hr_api.g_number;
1239   l_business_group_id            number := hr_api.g_number;
1240   l_rec                          per_abs_shd.g_rec_type;
1241   l_proc                         varchar2(72) := g_package||'upd';
1242 --
1243 --
1244 Begin
1245   hr_utility.set_location('Entering:'||l_proc, 5);
1246   --
1247   -- Call conversion function to turn arguments into the
1248   -- l_rec structure.
1249   --
1250   l_rec :=
1251   per_abs_shd.convert_args
1252   (p_absence_attendance_id
1253   ,l_business_group_id
1254   ,l_absence_attendance_type_id
1255   ,p_abs_attendance_reason_id
1256   ,l_person_id
1257   ,p_authorising_person_id
1258   ,p_replacement_person_id
1259   ,p_period_of_incapacity_id
1260   ,p_absence_days
1261   ,p_absence_hours
1262   ,p_comments
1263   ,p_date_end
1264   ,p_date_notification
1265   ,p_date_projected_end
1266   ,p_date_projected_start
1267   ,p_date_start
1268   ,hr_api.g_number   -- p_occurrence
1269   ,p_ssp1_issued
1270   ,p_time_end
1271   ,p_time_projected_end
1272   ,p_time_projected_start
1273   ,p_time_start
1274   ,p_request_id
1275   ,p_program_application_id
1276   ,p_program_id
1277   ,p_program_update_date
1278   ,p_attribute_category
1279   ,p_attribute1
1280   ,p_attribute2
1281   ,p_attribute3
1282   ,p_attribute4
1283   ,p_attribute5
1284   ,p_attribute6
1285   ,p_attribute7
1286   ,p_attribute8
1287   ,p_attribute9
1288   ,p_attribute10
1289   ,p_attribute11
1290   ,p_attribute12
1291   ,p_attribute13
1292   ,p_attribute14
1293   ,p_attribute15
1294   ,p_attribute16
1295   ,p_attribute17
1296   ,p_attribute18
1297   ,p_attribute19
1298   ,p_attribute20
1299   ,p_maternity_id
1300   ,p_sickness_start_date
1301   ,p_sickness_end_date
1302   ,p_pregnancy_related_illness
1303   ,p_reason_for_notification_dela
1304   ,p_accept_late_notification_fla
1305   ,p_linked_absence_id
1306   ,p_abs_information_category
1307   ,p_abs_information1
1308   ,p_abs_information2
1309   ,p_abs_information3
1310   ,p_abs_information4
1311   ,p_abs_information5
1312   ,p_abs_information6
1313   ,p_abs_information7
1314   ,p_abs_information8
1315   ,p_abs_information9
1316   ,p_abs_information10
1317   ,p_abs_information11
1318   ,p_abs_information12
1319   ,p_abs_information13
1320   ,p_abs_information14
1321   ,p_abs_information15
1322   ,p_abs_information16
1323   ,p_abs_information17
1324   ,p_abs_information18
1325   ,p_abs_information19
1326   ,p_abs_information20
1327   ,p_abs_information21
1328   ,p_abs_information22
1329   ,p_abs_information23
1330   ,p_abs_information24
1331   ,p_abs_information25
1332   ,p_abs_information26
1333   ,p_abs_information27
1334   ,p_abs_information28
1335   ,p_abs_information29
1336   ,p_abs_information30
1337   ,p_absence_case_id
1338   ,p_batch_id
1339   ,p_object_version_number
1340   );
1341   hr_utility.set_location(l_proc, 6);
1342   --
1343   -- Having converted the arguments into the
1344   -- plsql record structure we call the corresponding record
1345   -- business process.
1346   --
1347   per_abs_upd.upd
1348      (p_effective_date            => p_effective_date
1349      ,p_rec                       => l_rec
1350      ,p_dur_dys_less_warning      => p_dur_dys_less_warning
1351      ,p_dur_hrs_less_warning      => p_dur_hrs_less_warning
1352      ,p_exceeds_pto_entit_warning => p_exceeds_pto_entit_warning
1353      ,p_exceeds_run_total_warning => p_exceeds_run_total_warning
1354      ,p_abs_overlap_warning       => p_abs_overlap_warning
1355      ,p_abs_day_after_warning     => p_abs_day_after_warning
1356      ,p_dur_overwritten_warning   => p_dur_overwritten_warning
1357      );
1358 
1359   p_object_version_number := l_rec.object_version_number;
1360   p_absence_days          := l_rec.absence_days;
1361   p_absence_hours         := l_rec.absence_hours;
1362 
1363   --
1364   hr_utility.set_location(' Leaving:'||l_proc, 10);
1365 
1366 End upd;
1367 --
1368 end per_abs_upd;