DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_PEM_UPD

Source


1 Package Body per_pem_upd as
2 /* $Header: pepemrhi.pkb 120.1.12010000.2 2008/08/06 09:21:48 ubhat ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  per_pem_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_pem_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   --
67   --
68   -- Update the per_previous_employers Row
69   --
70   update per_previous_employers
71     set
72      previous_employer_id            = p_rec.previous_employer_id
73     ,business_group_id               = p_rec.business_group_id
74     ,person_id                       = p_rec.person_id
75     ,party_id                        = p_rec.party_id
76     ,start_date                      = p_rec.start_date
77     ,end_date                        = p_rec.end_date
78     ,period_years                    = p_rec.period_years
79     ,period_days                     = p_rec.period_days
80     ,employer_name                   = p_rec.employer_name
81     ,employer_country                = p_rec.employer_country
82     ,employer_address                = p_rec.employer_address
83     ,employer_type                   = p_rec.employer_type
84     ,employer_subtype                = p_rec.employer_subtype
85     ,description                     = p_rec.description
86     ,pem_attribute_category          = p_rec.pem_attribute_category
87     ,pem_attribute1                  = p_rec.pem_attribute1
88     ,pem_attribute2                  = p_rec.pem_attribute2
89     ,pem_attribute3                  = p_rec.pem_attribute3
90     ,pem_attribute4                  = p_rec.pem_attribute4
91     ,pem_attribute5                  = p_rec.pem_attribute5
92     ,pem_attribute6                  = p_rec.pem_attribute6
93     ,pem_attribute7                  = p_rec.pem_attribute7
94     ,pem_attribute8                  = p_rec.pem_attribute8
95     ,pem_attribute9                  = p_rec.pem_attribute9
96     ,pem_attribute10                 = p_rec.pem_attribute10
97     ,pem_attribute11                 = p_rec.pem_attribute11
98     ,pem_attribute12                 = p_rec.pem_attribute12
99     ,pem_attribute13                 = p_rec.pem_attribute13
100     ,pem_attribute14                 = p_rec.pem_attribute14
101     ,pem_attribute15                 = p_rec.pem_attribute15
102     ,pem_attribute16                 = p_rec.pem_attribute16
103     ,pem_attribute17                 = p_rec.pem_attribute17
104     ,pem_attribute18                 = p_rec.pem_attribute18
105     ,pem_attribute19                 = p_rec.pem_attribute19
106     ,pem_attribute20                 = p_rec.pem_attribute20
107     ,pem_attribute21                 = p_rec.pem_attribute21
108     ,pem_attribute22                 = p_rec.pem_attribute22
109     ,pem_attribute23                 = p_rec.pem_attribute23
110     ,pem_attribute24                 = p_rec.pem_attribute24
111     ,pem_attribute25                 = p_rec.pem_attribute25
112     ,pem_attribute26                 = p_rec.pem_attribute26
113     ,pem_attribute27                 = p_rec.pem_attribute27
114     ,pem_attribute28                 = p_rec.pem_attribute28
115     ,pem_attribute29                 = p_rec.pem_attribute29
116     ,pem_attribute30                 = p_rec.pem_attribute30
117     ,pem_information_category        = p_rec.pem_information_category
118     ,pem_information1                = p_rec.pem_information1
119     ,pem_information2                = p_rec.pem_information2
120     ,pem_information3                = p_rec.pem_information3
121     ,pem_information4                = p_rec.pem_information4
122     ,pem_information5                = p_rec.pem_information5
123     ,pem_information6                = p_rec.pem_information6
124     ,pem_information7                = p_rec.pem_information7
125     ,pem_information8                = p_rec.pem_information8
126     ,pem_information9                = p_rec.pem_information9
127     ,pem_information10               = p_rec.pem_information10
128     ,pem_information11               = p_rec.pem_information11
129     ,pem_information12               = p_rec.pem_information12
130     ,pem_information13               = p_rec.pem_information13
131     ,pem_information14               = p_rec.pem_information14
132     ,pem_information15               = p_rec.pem_information15
133     ,pem_information16               = p_rec.pem_information16
134     ,pem_information17               = p_rec.pem_information17
135     ,pem_information18               = p_rec.pem_information18
136     ,pem_information19               = p_rec.pem_information19
137     ,pem_information20               = p_rec.pem_information20
138     ,pem_information21               = p_rec.pem_information21
139     ,pem_information22               = p_rec.pem_information22
140     ,pem_information23               = p_rec.pem_information23
141     ,pem_information24               = p_rec.pem_information24
142     ,pem_information25               = p_rec.pem_information25
143     ,pem_information26               = p_rec.pem_information26
144     ,pem_information27               = p_rec.pem_information27
145     ,pem_information28               = p_rec.pem_information28
146     ,pem_information29               = p_rec.pem_information29
147     ,pem_information30               = p_rec.pem_information30
148     ,object_version_number           = p_rec.object_version_number
149     ,all_assignments                 = p_rec.all_assignments
150     ,period_months                   = p_rec.period_months
151     where previous_employer_id = p_rec.previous_employer_id;
152   --
153   --
154   --
155   hr_utility.set_location(' Leaving:'||l_proc, 10);
156 --
157 Exception
158   When hr_api.check_integrity_violated Then
159     -- A check constraint has been violated
160     --
161     per_pem_shd.constraint_error
162       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
163   When hr_api.parent_integrity_violated Then
164     -- Parent integrity has been violated
165     --
166     per_pem_shd.constraint_error
167       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
168   When hr_api.unique_integrity_violated Then
169     -- Unique integrity has been violated
170     --
171     per_pem_shd.constraint_error
172       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
173   When Others Then
174     --
175     Raise;
176 End update_dml;
177 --
178 -- ----------------------------------------------------------------------------
179 -- |------------------------------< pre_update >------------------------------|
180 -- ----------------------------------------------------------------------------
181 -- {Start Of Comments}
182 --
183 -- Description:
184 --   This private procedure contains any processing which is required before
185 --   the update dml.
186 --
187 -- Prerequisites:
188 --   This is an internal procedure which is called from the upd procedure.
189 --
190 -- In Parameters:
191 --   A Pl/Sql record structure.
192 --
193 -- Post Success:
194 --   Processing continues.
195 --
196 -- Post Failure:
197 --   If an error has occurred, an error message and exception wil be raised
198 --   but not handled.
199 --
200 -- Developer Implementation Notes:
201 --   Any pre-processing required before the update dml is issued should be
202 --   coded within this procedure. It is important to note that any 3rd party
203 --   maintenance should be reviewed before placing in this procedure.
204 --
205 -- Access Status:
206 --   Internal Row Handler Use Only.
207 --
208 -- {End Of Comments}
209 -- ----------------------------------------------------------------------------
210 Procedure pre_update
211   (p_rec in per_pem_shd.g_rec_type
212   ) is
213 --
214   l_proc  varchar2(72) := g_package||'pre_update';
215 --
216 Begin
217   hr_utility.set_location('Entering:'||l_proc, 5);
218   --
219   hr_utility.set_location(' Leaving:'||l_proc, 10);
220 End pre_update;
221 --
222 -- ----------------------------------------------------------------------------
223 -- |-----------------------------< post_update >------------------------------|
224 -- ----------------------------------------------------------------------------
225 -- {Start Of Comments}
226 --
227 -- Description:
228 --   This private procedure contains any processing which is required after
229 --   the update dml.
230 --
231 -- Prerequisites:
232 --   This is an internal procedure which is called from the upd procedure.
233 --
234 -- In Parameters:
235 --   A Pl/Sql record structure.
236 --
237 -- Post Success:
238 --   Processing continues.
239 --
240 -- Post Failure:
241 --   If an error has occurred, an error message and exception will be raised
242 --   but not handled.
243 --
244 -- Developer Implementation Notes:
245 --   Any post-processing required after the update dml is issued should be
246 --   coded within this procedure. It is important to note that any 3rd party
247 --   maintenance should be reviewed before placing in this procedure.
248 --
249 -- Access Status:
250 --   Internal Row Handler Use Only.
251 --
252 -- {End Of Comments}
253 -- ----------------------------------------------------------------------------
254 Procedure post_update
255   (p_effective_date               in date
256   ,p_rec                          in per_pem_shd.g_rec_type
257   ) is
258 --
259   l_proc  varchar2(72) := g_package||'post_update';
260 --
261 Begin
262   hr_utility.set_location('Entering:'||l_proc, 5);
263   begin
264     --
265     per_pem_rku.after_update
266       (p_effective_date              => p_effective_date
267       ,p_previous_employer_id
268       => p_rec.previous_employer_id
269       ,p_business_group_id
270       => p_rec.business_group_id
271       ,p_person_id
272       => p_rec.person_id
273       ,p_party_id
274       => p_rec.party_id
275       ,p_start_date
276       => p_rec.start_date
277       ,p_end_date
278       => p_rec.end_date
279       ,p_period_years
280       => p_rec.period_years
281       ,p_period_days
282       => p_rec.period_days
283       ,p_employer_name
284       => p_rec.employer_name
285       ,p_employer_country
286       => p_rec.employer_country
287       ,p_employer_address
288       => p_rec.employer_address
289       ,p_employer_type
290       => p_rec.employer_type
291       ,p_employer_subtype
292       => p_rec.employer_subtype
293       ,p_description
294       => p_rec.description
295       ,p_pem_attribute_category
296       => p_rec.pem_attribute_category
297       ,p_pem_attribute1
298       => p_rec.pem_attribute1
299       ,p_pem_attribute2
300       => p_rec.pem_attribute2
301       ,p_pem_attribute3
302       => p_rec.pem_attribute3
303       ,p_pem_attribute4
304       => p_rec.pem_attribute4
305       ,p_pem_attribute5
306       => p_rec.pem_attribute5
307       ,p_pem_attribute6
308       => p_rec.pem_attribute6
309       ,p_pem_attribute7
310       => p_rec.pem_attribute7
311       ,p_pem_attribute8
312       => p_rec.pem_attribute8
313       ,p_pem_attribute9
314       => p_rec.pem_attribute9
315       ,p_pem_attribute10
316       => p_rec.pem_attribute10
317       ,p_pem_attribute11
318       => p_rec.pem_attribute11
319       ,p_pem_attribute12
320       => p_rec.pem_attribute12
321       ,p_pem_attribute13
322       => p_rec.pem_attribute13
323       ,p_pem_attribute14
324       => p_rec.pem_attribute14
325       ,p_pem_attribute15
326       => p_rec.pem_attribute15
327       ,p_pem_attribute16
328       => p_rec.pem_attribute16
329       ,p_pem_attribute17
330       => p_rec.pem_attribute17
331       ,p_pem_attribute18
332       => p_rec.pem_attribute18
333       ,p_pem_attribute19
334       => p_rec.pem_attribute19
335       ,p_pem_attribute20
336       => p_rec.pem_attribute20
337       ,p_pem_attribute21
338       => p_rec.pem_attribute21
339       ,p_pem_attribute22
340       => p_rec.pem_attribute22
341       ,p_pem_attribute23
342       => p_rec.pem_attribute23
343       ,p_pem_attribute24
344       => p_rec.pem_attribute24
345       ,p_pem_attribute25
346       => p_rec.pem_attribute25
347       ,p_pem_attribute26
348       => p_rec.pem_attribute26
349       ,p_pem_attribute27
350       => p_rec.pem_attribute27
351       ,p_pem_attribute28
352       => p_rec.pem_attribute28
353       ,p_pem_attribute29
354       => p_rec.pem_attribute29
355       ,p_pem_attribute30
356       => p_rec.pem_attribute30
357       ,p_pem_information_category
358       => p_rec.pem_information_category
359       ,p_pem_information1
360       => p_rec.pem_information1
361       ,p_pem_information2
362       => p_rec.pem_information2
363       ,p_pem_information3
364       => p_rec.pem_information3
365       ,p_pem_information4
366       => p_rec.pem_information4
367       ,p_pem_information5
368       => p_rec.pem_information5
369       ,p_pem_information6
370       => p_rec.pem_information6
371       ,p_pem_information7
372       => p_rec.pem_information7
373       ,p_pem_information8
374       => p_rec.pem_information8
375       ,p_pem_information9
376       => p_rec.pem_information9
377       ,p_pem_information10
378       => p_rec.pem_information10
379       ,p_pem_information11
380       => p_rec.pem_information11
381       ,p_pem_information12
382       => p_rec.pem_information12
383       ,p_pem_information13
384       => p_rec.pem_information13
385       ,p_pem_information14
386       => p_rec.pem_information14
387       ,p_pem_information15
388       => p_rec.pem_information15
389       ,p_pem_information16
390       => p_rec.pem_information16
391       ,p_pem_information17
392       => p_rec.pem_information17
393       ,p_pem_information18
394       => p_rec.pem_information18
395       ,p_pem_information19
396       => p_rec.pem_information19
397       ,p_pem_information20
398       => p_rec.pem_information20
399       ,p_pem_information21
400       => p_rec.pem_information21
401       ,p_pem_information22
402       => p_rec.pem_information22
403       ,p_pem_information23
404       => p_rec.pem_information23
405       ,p_pem_information24
406       => p_rec.pem_information24
407       ,p_pem_information25
408       => p_rec.pem_information25
409       ,p_pem_information26
410       => p_rec.pem_information26
411       ,p_pem_information27
412       => p_rec.pem_information27
413       ,p_pem_information28
414       => p_rec.pem_information28
415       ,p_pem_information29
416       => p_rec.pem_information29
417       ,p_pem_information30
418       => p_rec.pem_information30
419       ,p_object_version_number
420       => p_rec.object_version_number
421       ,p_all_assignments
422       => p_rec.all_assignments
423       ,p_period_months
424       => p_rec.period_months
425       ,p_business_group_id_o
426       => per_pem_shd.g_old_rec.business_group_id
427       ,p_person_id_o
428       => per_pem_shd.g_old_rec.person_id
429       ,p_party_id_o
430       => per_pem_shd.g_old_rec.party_id
431       ,p_start_date_o
432       => per_pem_shd.g_old_rec.start_date
433       ,p_end_date_o
434       => per_pem_shd.g_old_rec.end_date
435       ,p_period_years_o
436       => per_pem_shd.g_old_rec.period_years
437       ,p_period_days_o
438       => per_pem_shd.g_old_rec.period_days
439       ,p_employer_name_o
440       => per_pem_shd.g_old_rec.employer_name
441       ,p_employer_country_o
442       => per_pem_shd.g_old_rec.employer_country
443       ,p_employer_address_o
444       => per_pem_shd.g_old_rec.employer_address
445       ,p_employer_type_o
446       => per_pem_shd.g_old_rec.employer_type
447       ,p_employer_subtype_o
448       => per_pem_shd.g_old_rec.employer_subtype
449       ,p_description_o
450       => per_pem_shd.g_old_rec.description
451       ,p_pem_attribute_category_o
452       => per_pem_shd.g_old_rec.pem_attribute_category
453       ,p_pem_attribute1_o
454       => per_pem_shd.g_old_rec.pem_attribute1
455       ,p_pem_attribute2_o
456       => per_pem_shd.g_old_rec.pem_attribute2
457       ,p_pem_attribute3_o
458       => per_pem_shd.g_old_rec.pem_attribute3
459       ,p_pem_attribute4_o
460       => per_pem_shd.g_old_rec.pem_attribute4
461       ,p_pem_attribute5_o
462       => per_pem_shd.g_old_rec.pem_attribute5
463       ,p_pem_attribute6_o
464       => per_pem_shd.g_old_rec.pem_attribute6
465       ,p_pem_attribute7_o
466       => per_pem_shd.g_old_rec.pem_attribute7
467       ,p_pem_attribute8_o
468       => per_pem_shd.g_old_rec.pem_attribute8
469       ,p_pem_attribute9_o
470       => per_pem_shd.g_old_rec.pem_attribute9
471       ,p_pem_attribute10_o
472       => per_pem_shd.g_old_rec.pem_attribute10
473       ,p_pem_attribute11_o
474       => per_pem_shd.g_old_rec.pem_attribute11
475       ,p_pem_attribute12_o
476       => per_pem_shd.g_old_rec.pem_attribute12
477       ,p_pem_attribute13_o
478       => per_pem_shd.g_old_rec.pem_attribute13
479       ,p_pem_attribute14_o
480       => per_pem_shd.g_old_rec.pem_attribute14
481       ,p_pem_attribute15_o
482       => per_pem_shd.g_old_rec.pem_attribute15
483       ,p_pem_attribute16_o
484       => per_pem_shd.g_old_rec.pem_attribute16
485       ,p_pem_attribute17_o
486       => per_pem_shd.g_old_rec.pem_attribute17
487       ,p_pem_attribute18_o
488       => per_pem_shd.g_old_rec.pem_attribute18
489       ,p_pem_attribute19_o
490       => per_pem_shd.g_old_rec.pem_attribute19
491       ,p_pem_attribute20_o
492       => per_pem_shd.g_old_rec.pem_attribute20
493       ,p_pem_attribute21_o
494       => per_pem_shd.g_old_rec.pem_attribute21
495       ,p_pem_attribute22_o
496       => per_pem_shd.g_old_rec.pem_attribute22
497       ,p_pem_attribute23_o
498       => per_pem_shd.g_old_rec.pem_attribute23
499       ,p_pem_attribute24_o
500       => per_pem_shd.g_old_rec.pem_attribute24
501       ,p_pem_attribute25_o
502       => per_pem_shd.g_old_rec.pem_attribute25
503       ,p_pem_attribute26_o
504       => per_pem_shd.g_old_rec.pem_attribute26
505       ,p_pem_attribute27_o
506       => per_pem_shd.g_old_rec.pem_attribute27
507       ,p_pem_attribute28_o
508       => per_pem_shd.g_old_rec.pem_attribute28
509       ,p_pem_attribute29_o
510       => per_pem_shd.g_old_rec.pem_attribute29
511       ,p_pem_attribute30_o
512       => per_pem_shd.g_old_rec.pem_attribute30
513       ,p_pem_information_category_o
514       => per_pem_shd.g_old_rec.pem_information_category
515       ,p_pem_information1_o
516       => per_pem_shd.g_old_rec.pem_information1
517       ,p_pem_information2_o
518       => per_pem_shd.g_old_rec.pem_information2
519       ,p_pem_information3_o
520       => per_pem_shd.g_old_rec.pem_information3
521       ,p_pem_information4_o
522       => per_pem_shd.g_old_rec.pem_information4
523       ,p_pem_information5_o
524       => per_pem_shd.g_old_rec.pem_information5
525       ,p_pem_information6_o
526       => per_pem_shd.g_old_rec.pem_information6
527       ,p_pem_information7_o
528       => per_pem_shd.g_old_rec.pem_information7
529       ,p_pem_information8_o
530       => per_pem_shd.g_old_rec.pem_information8
531       ,p_pem_information9_o
532       => per_pem_shd.g_old_rec.pem_information9
533       ,p_pem_information10_o
534       => per_pem_shd.g_old_rec.pem_information10
535       ,p_pem_information11_o
536       => per_pem_shd.g_old_rec.pem_information11
537       ,p_pem_information12_o
538       => per_pem_shd.g_old_rec.pem_information12
539       ,p_pem_information13_o
540       => per_pem_shd.g_old_rec.pem_information13
541       ,p_pem_information14_o
542       => per_pem_shd.g_old_rec.pem_information14
543       ,p_pem_information15_o
544       => per_pem_shd.g_old_rec.pem_information15
545       ,p_pem_information16_o
546       => per_pem_shd.g_old_rec.pem_information16
547       ,p_pem_information17_o
548       => per_pem_shd.g_old_rec.pem_information17
549       ,p_pem_information18_o
550       => per_pem_shd.g_old_rec.pem_information18
551       ,p_pem_information19_o
552       => per_pem_shd.g_old_rec.pem_information19
553       ,p_pem_information20_o
554       => per_pem_shd.g_old_rec.pem_information20
555       ,p_pem_information21_o
556       => per_pem_shd.g_old_rec.pem_information21
557       ,p_pem_information22_o
558       => per_pem_shd.g_old_rec.pem_information22
559       ,p_pem_information23_o
560       => per_pem_shd.g_old_rec.pem_information23
561       ,p_pem_information24_o
562       => per_pem_shd.g_old_rec.pem_information24
563       ,p_pem_information25_o
564       => per_pem_shd.g_old_rec.pem_information25
565       ,p_pem_information26_o
566       => per_pem_shd.g_old_rec.pem_information26
567       ,p_pem_information27_o
568       => per_pem_shd.g_old_rec.pem_information27
569       ,p_pem_information28_o
570       => per_pem_shd.g_old_rec.pem_information28
571       ,p_pem_information29_o
572       => per_pem_shd.g_old_rec.pem_information29
573       ,p_pem_information30_o
574       => per_pem_shd.g_old_rec.pem_information30
575       ,p_object_version_number_o
576       => per_pem_shd.g_old_rec.object_version_number
577       ,p_all_assignments_o
578       => per_pem_shd.g_old_rec.all_assignments
579       ,p_period_months_o
580       => per_pem_shd.g_old_rec.period_months
581       );
582     --
583   exception
584     --
585     when hr_api.cannot_find_prog_unit then
586       --
587       hr_api.cannot_find_prog_unit_error
588         (p_module_name => 'PER_PREVIOUS_EMPLOYERS'
589         ,p_hook_type   => 'AU');
590       --
591   end;
592   --
593   hr_utility.set_location(' Leaving:'||l_proc, 10);
594 End post_update;
595 --
596 -- ----------------------------------------------------------------------------
597 -- |-----------------------------< convert_defs >-----------------------------|
598 -- ----------------------------------------------------------------------------
599 -- {Start Of Comments}
600 --
601 -- Description:
602 --   The Convert_Defs procedure has one very important function:
603 --   It must return the record structure for the row with all system defaulted
604 --   values converted into its corresponding parameter value for update. When
605 --   we attempt to update a row through the Upd process , certain
606 --   parameters can be defaulted which enables flexibility in the calling of
607 --   the upd process (e.g. only attributes which need to be updated need to be
608 --   specified). For the upd process to determine which attributes
609 --   have NOT been specified we need to check if the parameter has a reserved
610 --   system default value. Therefore, for all parameters which have a
611 --   corresponding reserved system default mechanism specified we need to
612 --   check if a system default is being used. If a system default is being
613 --   used then we convert the defaulted value into its corresponding attribute
614 --   value held in the g_old_rec data structure.
615 --
616 -- Prerequisites:
617 --   This private function can only be called from the upd process.
618 --
619 -- In Parameters:
620 --   A Pl/Sql record structure.
621 --
622 -- Post Success:
623 --   The record structure will be returned with all system defaulted parameter
624 --   values converted into its current row attribute value.
625 --
626 -- Post Failure:
627 --   No direct error handling is required within this function. Any possible
628 --   errors within this procedure will be a PL/SQL value error due to
629 --   conversion of datatypes or data lengths.
630 --
631 -- Developer Implementation Notes:
632 --   None.
633 --
634 -- Access Status:
635 --   Internal Row Handler Use Only.
636 --
637 -- {End Of Comments}
638 -- ----------------------------------------------------------------------------
639 Procedure convert_defs
640   (p_rec in out nocopy per_pem_shd.g_rec_type
641   ) is
642 --
643 Begin
644   --
645   -- We must now examine each argument value in the
646   -- p_rec plsql record structure
647   -- to see if a system default is being used. If a system default
648   -- is being used then we must set to the 'current' argument value.
649   --
650   If (p_rec.business_group_id = hr_api.g_number) then
651     p_rec.business_group_id :=
652     per_pem_shd.g_old_rec.business_group_id;
653   End If;
654   If (p_rec.person_id = hr_api.g_number) then
655     p_rec.person_id :=
656     per_pem_shd.g_old_rec.person_id;
657   End If;
658   If (p_rec.party_id = hr_api.g_number) then
659     p_rec.party_id :=
660     per_pem_shd.g_old_rec.party_id;
661   End If;
662   If (p_rec.start_date = hr_api.g_date) then
663     p_rec.start_date :=
664     per_pem_shd.g_old_rec.start_date;
665   End If;
666   If (p_rec.end_date = hr_api.g_date) then
667     p_rec.end_date :=
668     per_pem_shd.g_old_rec.end_date;
669   End If;
670   If (p_rec.period_years = hr_api.g_number) then
671     p_rec.period_years :=
672     per_pem_shd.g_old_rec.period_years;
673   End If;
674   If (p_rec.period_days = hr_api.g_number) then
675     p_rec.period_days :=
676     per_pem_shd.g_old_rec.period_days;
677   End If;
678   If (p_rec.employer_name = hr_api.g_varchar2) then
679     p_rec.employer_name :=
680     per_pem_shd.g_old_rec.employer_name;
681   End If;
682   If (p_rec.employer_country = hr_api.g_varchar2) then
683     p_rec.employer_country :=
684     per_pem_shd.g_old_rec.employer_country;
685   End If;
686   If (p_rec.employer_address = hr_api.g_varchar2) then
687     p_rec.employer_address :=
688     per_pem_shd.g_old_rec.employer_address;
689   End If;
690   If (p_rec.employer_type = hr_api.g_varchar2) then
691     p_rec.employer_type :=
692     per_pem_shd.g_old_rec.employer_type;
693   End If;
694   If (p_rec.employer_subtype = hr_api.g_varchar2) then
695     p_rec.employer_subtype :=
696     per_pem_shd.g_old_rec.employer_subtype;
697   End If;
698   If (p_rec.description = hr_api.g_varchar2) then
699     p_rec.description :=
700     per_pem_shd.g_old_rec.description;
701   End If;
702   If (p_rec.pem_attribute_category = hr_api.g_varchar2) then
703     p_rec.pem_attribute_category :=
704     per_pem_shd.g_old_rec.pem_attribute_category;
705   End If;
706   If (p_rec.pem_attribute1 = hr_api.g_varchar2) then
707     p_rec.pem_attribute1 :=
708     per_pem_shd.g_old_rec.pem_attribute1;
709   End If;
710   If (p_rec.pem_attribute2 = hr_api.g_varchar2) then
711     p_rec.pem_attribute2 :=
712     per_pem_shd.g_old_rec.pem_attribute2;
713   End If;
714   If (p_rec.pem_attribute3 = hr_api.g_varchar2) then
715     p_rec.pem_attribute3 :=
716     per_pem_shd.g_old_rec.pem_attribute3;
717   End If;
718   If (p_rec.pem_attribute4 = hr_api.g_varchar2) then
719     p_rec.pem_attribute4 :=
720     per_pem_shd.g_old_rec.pem_attribute4;
721   End If;
722   If (p_rec.pem_attribute5 = hr_api.g_varchar2) then
723     p_rec.pem_attribute5 :=
724     per_pem_shd.g_old_rec.pem_attribute5;
725   End If;
726   If (p_rec.pem_attribute6 = hr_api.g_varchar2) then
727     p_rec.pem_attribute6 :=
728     per_pem_shd.g_old_rec.pem_attribute6;
729   End If;
730   If (p_rec.pem_attribute7 = hr_api.g_varchar2) then
731     p_rec.pem_attribute7 :=
732     per_pem_shd.g_old_rec.pem_attribute7;
733   End If;
734   If (p_rec.pem_attribute8 = hr_api.g_varchar2) then
735     p_rec.pem_attribute8 :=
736     per_pem_shd.g_old_rec.pem_attribute8;
737   End If;
738   If (p_rec.pem_attribute9 = hr_api.g_varchar2) then
739     p_rec.pem_attribute9 :=
740     per_pem_shd.g_old_rec.pem_attribute9;
741   End If;
742   If (p_rec.pem_attribute10 = hr_api.g_varchar2) then
743     p_rec.pem_attribute10 :=
744     per_pem_shd.g_old_rec.pem_attribute10;
745   End If;
746   If (p_rec.pem_attribute11 = hr_api.g_varchar2) then
747     p_rec.pem_attribute11 :=
748     per_pem_shd.g_old_rec.pem_attribute11;
749   End If;
750   If (p_rec.pem_attribute12 = hr_api.g_varchar2) then
751     p_rec.pem_attribute12 :=
752     per_pem_shd.g_old_rec.pem_attribute12;
753   End If;
754   If (p_rec.pem_attribute13 = hr_api.g_varchar2) then
755     p_rec.pem_attribute13 :=
756     per_pem_shd.g_old_rec.pem_attribute13;
757   End If;
758   If (p_rec.pem_attribute14 = hr_api.g_varchar2) then
759     p_rec.pem_attribute14 :=
760     per_pem_shd.g_old_rec.pem_attribute14;
761   End If;
762   If (p_rec.pem_attribute15 = hr_api.g_varchar2) then
763     p_rec.pem_attribute15 :=
764     per_pem_shd.g_old_rec.pem_attribute15;
765   End If;
766   If (p_rec.pem_attribute16 = hr_api.g_varchar2) then
767     p_rec.pem_attribute16 :=
768     per_pem_shd.g_old_rec.pem_attribute16;
769   End If;
770   If (p_rec.pem_attribute17 = hr_api.g_varchar2) then
771     p_rec.pem_attribute17 :=
772     per_pem_shd.g_old_rec.pem_attribute17;
773   End If;
774   If (p_rec.pem_attribute18 = hr_api.g_varchar2) then
775     p_rec.pem_attribute18 :=
776     per_pem_shd.g_old_rec.pem_attribute18;
777   End If;
778   If (p_rec.pem_attribute19 = hr_api.g_varchar2) then
779     p_rec.pem_attribute19 :=
780     per_pem_shd.g_old_rec.pem_attribute19;
781   End If;
782   If (p_rec.pem_attribute20 = hr_api.g_varchar2) then
783     p_rec.pem_attribute20 :=
784     per_pem_shd.g_old_rec.pem_attribute20;
785   End If;
786   If (p_rec.pem_attribute21 = hr_api.g_varchar2) then
787     p_rec.pem_attribute21 :=
788     per_pem_shd.g_old_rec.pem_attribute21;
789   End If;
790   If (p_rec.pem_attribute22 = hr_api.g_varchar2) then
791     p_rec.pem_attribute22 :=
792     per_pem_shd.g_old_rec.pem_attribute22;
793   End If;
794   If (p_rec.pem_attribute23 = hr_api.g_varchar2) then
795     p_rec.pem_attribute23 :=
796     per_pem_shd.g_old_rec.pem_attribute23;
797   End If;
798   If (p_rec.pem_attribute24 = hr_api.g_varchar2) then
799     p_rec.pem_attribute24 :=
800     per_pem_shd.g_old_rec.pem_attribute24;
801   End If;
802   If (p_rec.pem_attribute25 = hr_api.g_varchar2) then
803     p_rec.pem_attribute25 :=
804     per_pem_shd.g_old_rec.pem_attribute25;
805   End If;
806   If (p_rec.pem_attribute26 = hr_api.g_varchar2) then
807     p_rec.pem_attribute26 :=
808     per_pem_shd.g_old_rec.pem_attribute26;
809   End If;
810   If (p_rec.pem_attribute27 = hr_api.g_varchar2) then
811     p_rec.pem_attribute27 :=
812     per_pem_shd.g_old_rec.pem_attribute27;
813   End If;
814   If (p_rec.pem_attribute28 = hr_api.g_varchar2) then
815     p_rec.pem_attribute28 :=
816     per_pem_shd.g_old_rec.pem_attribute28;
817   End If;
818   If (p_rec.pem_attribute29 = hr_api.g_varchar2) then
819     p_rec.pem_attribute29 :=
820     per_pem_shd.g_old_rec.pem_attribute29;
821   End If;
822   If (p_rec.pem_attribute30 = hr_api.g_varchar2) then
823     p_rec.pem_attribute30 :=
824     per_pem_shd.g_old_rec.pem_attribute30;
825   End If;
826   If (p_rec.pem_information_category = hr_api.g_varchar2) then
827     p_rec.pem_information_category :=
828     per_pem_shd.g_old_rec.pem_information_category;
829   End If;
830   If (p_rec.pem_information1 = hr_api.g_varchar2) then
831     p_rec.pem_information1 :=
832     per_pem_shd.g_old_rec.pem_information1;
833   End If;
834   If (p_rec.pem_information2 = hr_api.g_varchar2) then
835     p_rec.pem_information2 :=
836     per_pem_shd.g_old_rec.pem_information2;
837   End If;
838   If (p_rec.pem_information3 = hr_api.g_varchar2) then
839     p_rec.pem_information3 :=
840     per_pem_shd.g_old_rec.pem_information3;
841   End If;
842   If (p_rec.pem_information4 = hr_api.g_varchar2) then
843     p_rec.pem_information4 :=
844     per_pem_shd.g_old_rec.pem_information4;
845   End If;
846   If (p_rec.pem_information5 = hr_api.g_varchar2) then
847     p_rec.pem_information5 :=
848     per_pem_shd.g_old_rec.pem_information5;
849   End If;
850   If (p_rec.pem_information6 = hr_api.g_varchar2) then
851     p_rec.pem_information6 :=
852     per_pem_shd.g_old_rec.pem_information6;
853   End If;
854   If (p_rec.pem_information7 = hr_api.g_varchar2) then
855     p_rec.pem_information7 :=
856     per_pem_shd.g_old_rec.pem_information7;
857   End If;
858   If (p_rec.pem_information8 = hr_api.g_varchar2) then
859     p_rec.pem_information8 :=
860     per_pem_shd.g_old_rec.pem_information8;
861   End If;
862   If (p_rec.pem_information9 = hr_api.g_varchar2) then
863     p_rec.pem_information9 :=
864     per_pem_shd.g_old_rec.pem_information9;
865   End If;
866   If (p_rec.pem_information10 = hr_api.g_varchar2) then
867     p_rec.pem_information10 :=
868     per_pem_shd.g_old_rec.pem_information10;
869   End If;
870   If (p_rec.pem_information11 = hr_api.g_varchar2) then
871     p_rec.pem_information11 :=
872     per_pem_shd.g_old_rec.pem_information11;
873   End If;
874   If (p_rec.pem_information12 = hr_api.g_varchar2) then
875     p_rec.pem_information12 :=
876     per_pem_shd.g_old_rec.pem_information12;
877   End If;
878   If (p_rec.pem_information13 = hr_api.g_varchar2) then
879     p_rec.pem_information13 :=
880     per_pem_shd.g_old_rec.pem_information13;
881   End If;
882   If (p_rec.pem_information14 = hr_api.g_varchar2) then
883     p_rec.pem_information14 :=
884     per_pem_shd.g_old_rec.pem_information14;
885   End If;
886   If (p_rec.pem_information15 = hr_api.g_varchar2) then
887     p_rec.pem_information15 :=
888     per_pem_shd.g_old_rec.pem_information15;
889   End If;
890   If (p_rec.pem_information16 = hr_api.g_varchar2) then
891     p_rec.pem_information16 :=
892     per_pem_shd.g_old_rec.pem_information16;
893   End If;
894   If (p_rec.pem_information17 = hr_api.g_varchar2) then
895     p_rec.pem_information17 :=
896     per_pem_shd.g_old_rec.pem_information17;
897   End If;
898   If (p_rec.pem_information18 = hr_api.g_varchar2) then
899     p_rec.pem_information18 :=
900     per_pem_shd.g_old_rec.pem_information18;
901   End If;
902   If (p_rec.pem_information19 = hr_api.g_varchar2) then
903     p_rec.pem_information19 :=
904     per_pem_shd.g_old_rec.pem_information19;
905   End If;
906   If (p_rec.pem_information20 = hr_api.g_varchar2) then
907     p_rec.pem_information20 :=
908     per_pem_shd.g_old_rec.pem_information20;
909   End If;
910   If (p_rec.pem_information21 = hr_api.g_varchar2) then
911     p_rec.pem_information21 :=
912     per_pem_shd.g_old_rec.pem_information21;
913   End If;
914   If (p_rec.pem_information22 = hr_api.g_varchar2) then
915     p_rec.pem_information22 :=
916     per_pem_shd.g_old_rec.pem_information22;
917   End If;
918   If (p_rec.pem_information23 = hr_api.g_varchar2) then
919     p_rec.pem_information23 :=
920     per_pem_shd.g_old_rec.pem_information23;
921   End If;
922   If (p_rec.pem_information24 = hr_api.g_varchar2) then
923     p_rec.pem_information24 :=
924     per_pem_shd.g_old_rec.pem_information24;
925   End If;
926   If (p_rec.pem_information25 = hr_api.g_varchar2) then
927     p_rec.pem_information25 :=
928     per_pem_shd.g_old_rec.pem_information25;
929   End If;
930   If (p_rec.pem_information26 = hr_api.g_varchar2) then
931     p_rec.pem_information26 :=
932     per_pem_shd.g_old_rec.pem_information26;
933   End If;
934   If (p_rec.pem_information27 = hr_api.g_varchar2) then
935     p_rec.pem_information27 :=
936     per_pem_shd.g_old_rec.pem_information27;
937   End If;
938   If (p_rec.pem_information28 = hr_api.g_varchar2) then
939     p_rec.pem_information28 :=
940     per_pem_shd.g_old_rec.pem_information28;
941   End If;
942   If (p_rec.pem_information29 = hr_api.g_varchar2) then
943     p_rec.pem_information29 :=
944     per_pem_shd.g_old_rec.pem_information29;
945   End If;
946   If (p_rec.pem_information30 = hr_api.g_varchar2) then
947     p_rec.pem_information30 :=
948     per_pem_shd.g_old_rec.pem_information30;
949   End If;
950   If (p_rec.all_assignments = hr_api.g_varchar2) then
951     p_rec.all_assignments :=
952     per_pem_shd.g_old_rec.all_assignments;
953   End If;
954   If (p_rec.period_months = hr_api.g_number) then
955     p_rec.period_months :=
956     per_pem_shd.g_old_rec.period_months;
957   End If;
958   --
959 End convert_defs;
960 --
961 -- ----------------------------------------------------------------------------
962 -- |---------------------------------< upd >----------------------------------|
963 -- ----------------------------------------------------------------------------
964 Procedure upd
965   (p_effective_date               in date
966   ,p_rec                          in out nocopy per_pem_shd.g_rec_type
967   ) is
968 --
969   l_proc  varchar2(72) := g_package||'upd';
970 --
971 Begin
972   hr_utility.set_location('Entering:'||l_proc, 5);
973   --
974   -- We must lock the row which we need to update.
975   --
976   per_pem_shd.lck
977     (p_rec.previous_employer_id
978     ,p_rec.object_version_number
979     );
980   --
981   -- 1. During an update system defaults are used to determine if
982   --    arguments have been defaulted or not. We must therefore
983   --    derive the full record structure values to be updated.
984   --
985   -- 2. Call the supporting update validate operations.
986   --
987   convert_defs(p_rec);
988   per_pem_bus.update_validate
989      (p_effective_date
990      ,p_rec
991      );
992   -- Call to raise any errors on multi-message list
993   hr_multi_message.end_validation_set;
994   --
995   -- Call the supporting pre-update operation
996   --
997   per_pem_upd.pre_update(p_rec);
998   --
999   -- Update the row.
1000   --
1001   per_pem_upd.update_dml(p_rec);
1002   --
1003   -- Call the supporting post-update operation
1004   --
1005   per_pem_upd.post_update
1006      (p_effective_date
1007      ,p_rec
1008      );
1009   -- Call to raise any errors on multi-message list
1010   hr_multi_message.end_validation_set;
1011   --
1012 End upd;
1013 --
1014 -- ----------------------------------------------------------------------------
1015 -- |---------------------------------< upd >----------------------------------|
1016 -- ----------------------------------------------------------------------------
1017 Procedure upd
1018   (p_effective_date               in     date
1019   ,p_previous_employer_id         in     number
1020   ,p_object_version_number        in out nocopy number
1021   ,p_business_group_id            in     number    default hr_api.g_number
1022   ,p_person_id                    in     number    default hr_api.g_number
1023   ,p_party_id                     in     number    default hr_api.g_number
1024   ,p_start_date                   in     date      default hr_api.g_date
1025   ,p_end_date                     in     date      default hr_api.g_date
1026   ,p_period_years                 in     number    default hr_api.g_number
1027   ,p_period_days                  in     number    default hr_api.g_number
1028   ,p_employer_name                in     varchar2  default hr_api.g_varchar2
1029   ,p_employer_country             in     varchar2  default hr_api.g_varchar2
1030   ,p_employer_address             in     varchar2  default hr_api.g_varchar2
1031   ,p_employer_type                in     varchar2  default hr_api.g_varchar2
1032   ,p_employer_subtype             in     varchar2  default hr_api.g_varchar2
1033   ,p_description                  in     varchar2  default hr_api.g_varchar2
1034   ,p_pem_attribute_category       in     varchar2  default hr_api.g_varchar2
1035   ,p_pem_attribute1               in     varchar2  default hr_api.g_varchar2
1036   ,p_pem_attribute2               in     varchar2  default hr_api.g_varchar2
1037   ,p_pem_attribute3               in     varchar2  default hr_api.g_varchar2
1038   ,p_pem_attribute4               in     varchar2  default hr_api.g_varchar2
1039   ,p_pem_attribute5               in     varchar2  default hr_api.g_varchar2
1040   ,p_pem_attribute6               in     varchar2  default hr_api.g_varchar2
1041   ,p_pem_attribute7               in     varchar2  default hr_api.g_varchar2
1042   ,p_pem_attribute8               in     varchar2  default hr_api.g_varchar2
1043   ,p_pem_attribute9               in     varchar2  default hr_api.g_varchar2
1044   ,p_pem_attribute10              in     varchar2  default hr_api.g_varchar2
1045   ,p_pem_attribute11              in     varchar2  default hr_api.g_varchar2
1046   ,p_pem_attribute12              in     varchar2  default hr_api.g_varchar2
1047   ,p_pem_attribute13              in     varchar2  default hr_api.g_varchar2
1048   ,p_pem_attribute14              in     varchar2  default hr_api.g_varchar2
1049   ,p_pem_attribute15              in     varchar2  default hr_api.g_varchar2
1050   ,p_pem_attribute16              in     varchar2  default hr_api.g_varchar2
1051   ,p_pem_attribute17              in     varchar2  default hr_api.g_varchar2
1052   ,p_pem_attribute18              in     varchar2  default hr_api.g_varchar2
1053   ,p_pem_attribute19              in     varchar2  default hr_api.g_varchar2
1054   ,p_pem_attribute20              in     varchar2  default hr_api.g_varchar2
1055   ,p_pem_attribute21              in     varchar2  default hr_api.g_varchar2
1056   ,p_pem_attribute22              in     varchar2  default hr_api.g_varchar2
1057   ,p_pem_attribute23              in     varchar2  default hr_api.g_varchar2
1058   ,p_pem_attribute24              in     varchar2  default hr_api.g_varchar2
1059   ,p_pem_attribute25              in     varchar2  default hr_api.g_varchar2
1060   ,p_pem_attribute26              in     varchar2  default hr_api.g_varchar2
1061   ,p_pem_attribute27              in     varchar2  default hr_api.g_varchar2
1062   ,p_pem_attribute28              in     varchar2  default hr_api.g_varchar2
1063   ,p_pem_attribute29              in     varchar2  default hr_api.g_varchar2
1064   ,p_pem_attribute30              in     varchar2  default hr_api.g_varchar2
1065   ,p_pem_information_category     in     varchar2  default hr_api.g_varchar2
1066   ,p_pem_information1             in     varchar2  default hr_api.g_varchar2
1067   ,p_pem_information2             in     varchar2  default hr_api.g_varchar2
1068   ,p_pem_information3             in     varchar2  default hr_api.g_varchar2
1069   ,p_pem_information4             in     varchar2  default hr_api.g_varchar2
1070   ,p_pem_information5             in     varchar2  default hr_api.g_varchar2
1071   ,p_pem_information6             in     varchar2  default hr_api.g_varchar2
1072   ,p_pem_information7             in     varchar2  default hr_api.g_varchar2
1073   ,p_pem_information8             in     varchar2  default hr_api.g_varchar2
1074   ,p_pem_information9             in     varchar2  default hr_api.g_varchar2
1075   ,p_pem_information10            in     varchar2  default hr_api.g_varchar2
1076   ,p_pem_information11            in     varchar2  default hr_api.g_varchar2
1077   ,p_pem_information12            in     varchar2  default hr_api.g_varchar2
1078   ,p_pem_information13            in     varchar2  default hr_api.g_varchar2
1079   ,p_pem_information14            in     varchar2  default hr_api.g_varchar2
1080   ,p_pem_information15            in     varchar2  default hr_api.g_varchar2
1081   ,p_pem_information16            in     varchar2  default hr_api.g_varchar2
1082   ,p_pem_information17            in     varchar2  default hr_api.g_varchar2
1083   ,p_pem_information18            in     varchar2  default hr_api.g_varchar2
1084   ,p_pem_information19            in     varchar2  default hr_api.g_varchar2
1085   ,p_pem_information20            in     varchar2  default hr_api.g_varchar2
1086   ,p_pem_information21            in     varchar2  default hr_api.g_varchar2
1087   ,p_pem_information22            in     varchar2  default hr_api.g_varchar2
1088   ,p_pem_information23            in     varchar2  default hr_api.g_varchar2
1089   ,p_pem_information24            in     varchar2  default hr_api.g_varchar2
1090   ,p_pem_information25            in     varchar2  default hr_api.g_varchar2
1091   ,p_pem_information26            in     varchar2  default hr_api.g_varchar2
1092   ,p_pem_information27            in     varchar2  default hr_api.g_varchar2
1093   ,p_pem_information28            in     varchar2  default hr_api.g_varchar2
1094   ,p_pem_information29            in     varchar2  default hr_api.g_varchar2
1095   ,p_pem_information30            in     varchar2  default hr_api.g_varchar2
1096   ,p_all_assignments              in     varchar2  default hr_api.g_varchar2
1097   ,p_period_months                in     number    default hr_api.g_number
1098   ) is
1099 --
1100   l_rec   per_pem_shd.g_rec_type;
1101   l_proc  varchar2(72) := g_package||'upd';
1102 --
1103 Begin
1104   hr_utility.set_location('Entering:'||l_proc, 5);
1105   --
1106   -- Call conversion function to turn arguments into the
1107   -- l_rec structure.
1108   --
1109   l_rec :=
1110   per_pem_shd.convert_args
1111   (p_previous_employer_id
1112   ,p_business_group_id
1113   ,p_person_id
1114   ,p_party_id
1115   ,p_start_date
1116   ,p_end_date
1117   ,p_period_years
1118   ,p_period_days
1119   ,p_employer_name
1120   ,p_employer_country
1121   ,p_employer_address
1122   ,p_employer_type
1123   ,p_employer_subtype
1124   ,p_description
1125   ,p_pem_attribute_category
1126   ,p_pem_attribute1
1127   ,p_pem_attribute2
1128   ,p_pem_attribute3
1129   ,p_pem_attribute4
1130   ,p_pem_attribute5
1131   ,p_pem_attribute6
1132   ,p_pem_attribute7
1133   ,p_pem_attribute8
1134   ,p_pem_attribute9
1135   ,p_pem_attribute10
1136   ,p_pem_attribute11
1137   ,p_pem_attribute12
1138   ,p_pem_attribute13
1139   ,p_pem_attribute14
1140   ,p_pem_attribute15
1141   ,p_pem_attribute16
1142   ,p_pem_attribute17
1143   ,p_pem_attribute18
1144   ,p_pem_attribute19
1145   ,p_pem_attribute20
1146   ,p_pem_attribute21
1147   ,p_pem_attribute22
1148   ,p_pem_attribute23
1149   ,p_pem_attribute24
1150   ,p_pem_attribute25
1151   ,p_pem_attribute26
1152   ,p_pem_attribute27
1153   ,p_pem_attribute28
1154   ,p_pem_attribute29
1155   ,p_pem_attribute30
1156   ,p_pem_information_category
1157   ,p_pem_information1
1158   ,p_pem_information2
1159   ,p_pem_information3
1160   ,p_pem_information4
1161   ,p_pem_information5
1162   ,p_pem_information6
1163   ,p_pem_information7
1164   ,p_pem_information8
1165   ,p_pem_information9
1166   ,p_pem_information10
1167   ,p_pem_information11
1168   ,p_pem_information12
1169   ,p_pem_information13
1170   ,p_pem_information14
1171   ,p_pem_information15
1172   ,p_pem_information16
1173   ,p_pem_information17
1174   ,p_pem_information18
1175   ,p_pem_information19
1176   ,p_pem_information20
1177   ,p_pem_information21
1178   ,p_pem_information22
1179   ,p_pem_information23
1180   ,p_pem_information24
1181   ,p_pem_information25
1182   ,p_pem_information26
1183   ,p_pem_information27
1184   ,p_pem_information28
1185   ,p_pem_information29
1186   ,p_pem_information30
1187   ,p_object_version_number
1188   ,p_all_assignments
1189   ,p_period_months
1190   );
1191   --
1192   -- Having converted the arguments into the
1193   -- plsql record structure we call the corresponding record
1194   -- business process.
1195   --
1196   per_pem_upd.upd
1197      (p_effective_date
1198      ,l_rec
1199      );
1200   p_object_version_number := l_rec.object_version_number;
1201   --
1202   hr_utility.set_location(' Leaving:'||l_proc, 10);
1203 End upd;
1204 --
1205 end per_pem_upd;