DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_PPC_UPD

Source


1 Package Body per_ppc_upd as
2 /* $Header: peppcrhi.pkb 120.4 2006/08/16 14:04:23 abhshriv noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  per_ppc_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 -- Pre Conditions:
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 Table Handler Use Only.
51 --
52 -- {End Of Comments}
53 -- ----------------------------------------------------------------------------
54 Procedure update_dml(p_rec in out nocopy per_ppc_shd.g_rec_type) is
55 --
56   l_proc  varchar2(72) := g_package||'update_dml';
57 --
58 Begin
59   hr_utility.set_location('Entering:'||l_proc, 5);
60   --
61   -- Increment the object version
62   --
63   p_rec.object_version_number := p_rec.object_version_number + 1;
64   --
65   per_ppc_shd.g_api_dml := true;  -- Set the api dml status
66   --
67   -- Update the per_pay_proposal_components Row
68   --
69   update per_pay_proposal_components
70   set
71   component_id                      = p_rec.component_id,
72   approved                          = p_rec.approved,
73   component_reason                  = p_rec.component_reason,
74   change_amount_n                   = p_rec.change_amount_n,
75   change_percentage                 = p_rec.change_percentage,
76   comments                          = p_rec.comments,
77   attribute_category                = p_rec.attribute_category,
78   attribute1                        = p_rec.attribute1,
79   attribute2                        = p_rec.attribute2,
80   attribute3                        = p_rec.attribute3,
81   attribute4                        = p_rec.attribute4,
82   attribute5                        = p_rec.attribute5,
83   attribute6                        = p_rec.attribute6,
84   attribute7                        = p_rec.attribute7,
85   attribute8                        = p_rec.attribute8,
86   attribute9                        = p_rec.attribute9,
87   attribute10                       = p_rec.attribute10,
88   attribute11                       = p_rec.attribute11,
89   attribute12                       = p_rec.attribute12,
90   attribute13                       = p_rec.attribute13,
91   attribute14                       = p_rec.attribute14,
92   attribute15                       = p_rec.attribute15,
93   attribute16                       = p_rec.attribute16,
94   attribute17                       = p_rec.attribute17,
95   attribute18                       = p_rec.attribute18,
96   attribute19                       = p_rec.attribute19,
97   attribute20                       = p_rec.attribute20,
98   object_version_number             = p_rec.object_version_number
99   where component_id = p_rec.component_id;
100   --
101   per_ppc_shd.g_api_dml := false;   -- Unset the api dml status
102   --
103   hr_utility.set_location(' Leaving:'||l_proc, 10);
104 --
105 Exception
106   When hr_api.check_integrity_violated Then
107     -- A check constraint has been violated
108     per_ppc_shd.g_api_dml := false;   -- Unset the api dml status
109     per_ppc_shd.constraint_error
110       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
111   When hr_api.parent_integrity_violated Then
112     -- Parent integrity has been violated
113     per_ppc_shd.g_api_dml := false;   -- Unset the api dml status
114     per_ppc_shd.constraint_error
115       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
116   When hr_api.unique_integrity_violated Then
117     -- Unique integrity has been violated
118     per_ppc_shd.g_api_dml := false;   -- Unset the api dml status
119     per_ppc_shd.constraint_error
120       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
121   When Others Then
122     per_ppc_shd.g_api_dml := false;   -- Unset the api dml status
123     Raise;
124 End update_dml;
125 --
126 -- ----------------------------------------------------------------------------
127 -- |------------------------------< pre_update >------------------------------|
128 -- ----------------------------------------------------------------------------
129 -- {Start Of Comments}
130 --
131 -- Description:
132 --   This private procedure contains any processing which is required before
133 --   the update dml.
134 --
135 -- Pre Conditions:
136 --   This is an internal procedure which is called from the upd procedure.
137 --
138 -- In Parameters:
139 --   A Pl/Sql record structre.
140 --
141 -- Post Success:
142 --   Processing continues.
143 --
144 -- Post Failure:
145 --   If an error has occurred, an error message and exception will be raised
146 --   but not handled.
147 --
148 -- Developer Implementation Notes:
149 --   Any pre-processing required before the update dml is issued should be
150 --   coded within this procedure. It is important to note that any 3rd party
151 --   maintenance should be reviewed before placing in this procedure.
152 --
153 -- Access Status:
154 --   Internal Table Handler Use Only.
155 --
156 -- {End Of Comments}
157 -- ----------------------------------------------------------------------------
158 Procedure pre_update(p_rec in per_ppc_shd.g_rec_type) is
159 --
160   l_proc  varchar2(72) := g_package||'pre_update';
161 --
162 Begin
163   hr_utility.set_location('Entering:'||l_proc, 5);
164   --
165   hr_utility.set_location(' Leaving:'||l_proc, 10);
166 End pre_update;
167 --
168 -- ----------------------------------------------------------------------------
169 -- |-----------------------------< post_update >------------------------------|
170 -- ----------------------------------------------------------------------------
171 -- {Start Of Comments}
172 --
173 -- Description:
174 --   This private procedure contains any processing which is required after the
175 --   update dml.
176 --
177 -- Pre Conditions:
178 --   This is an internal procedure which is called from the upd procedure.
179 --
180 -- In Parameters:
181 --   A Pl/Sql record structre.
182 --
183 -- Post Success:
184 --   Processing continues.
185 --
186 -- Post Failure:
187 --   If an error has occurred, an error message and exception will be raised
188 --   but not handled.
189 --
190 -- Developer Implementation Notes:
191 --   Any post-processing required after the update dml is issued should be
192 --   coded within this procedure. It is important to note that any 3rd party
193 --   maintenance should be reviewed before placing in this procedure.
194 --
195 -- Access Status:
196 --   Internal Table Handler Use Only.
197 --
198 -- {End Of Comments}
199 -- ----------------------------------------------------------------------------
200 Procedure post_update
201   (p_rec                 in per_ppc_shd.g_rec_type
202   ,p_validation_strength in varchar2
203   )
204 is
205 --
206   l_proc  varchar2(72) := g_package||'post_update';
207 --
208 Begin
209   hr_utility.set_location('Entering:'||l_proc, 5);
210   --
211   -- Call to the user hook for post_update.
212 
213   begin
214     per_ppc_rku.after_update
215       (
216       p_component_id                 => p_rec.component_id,
217       p_approved                     => p_rec.approved,
218       p_component_reason             => p_rec.component_reason,
219       p_change_amount_n              => p_rec.change_amount_n,
220       p_change_percentage            => p_rec.change_percentage,
221       p_comments                     => p_rec.comments,
222       p_attribute_category           => p_rec.attribute_category,
223       p_attribute1                   => p_rec.attribute1,
224       p_attribute2                   => p_rec.attribute2,
225       p_attribute3                   => p_rec.attribute3,
226       p_attribute4                   => p_rec.attribute4,
227       p_attribute5                   => p_rec.attribute5,
228       p_attribute6                   => p_rec.attribute6,
229       p_attribute7                   => p_rec.attribute7,
230       p_attribute8                   => p_rec.attribute8,
231       p_attribute9                   => p_rec.attribute9,
232       p_attribute10                  => p_rec.attribute10,
233       p_attribute11                  => p_rec.attribute11,
234       p_attribute12                  => p_rec.attribute12,
235       p_attribute13                  => p_rec.attribute13,
236       p_attribute14                  => p_rec.attribute14,
237       p_attribute15                  => p_rec.attribute15,
238       p_attribute16                  => p_rec.attribute16,
239       p_attribute17                  => p_rec.attribute17,
240       p_attribute18                  => p_rec.attribute18,
241       p_attribute19                  => p_rec.attribute19,
242       p_attribute20                  => p_rec.attribute20,
243       p_object_version_number        => p_rec.object_version_number,
244       p_validation_strength          => p_validation_strength,
245       p_pay_proposal_id_o            => per_ppc_shd.g_old_rec.pay_proposal_id,
246       p_business_group_id_o          => per_ppc_shd.g_old_rec.business_group_id,
247       p_approved_o                   => per_ppc_shd.g_old_rec.approved,
248       p_component_reason_o           => per_ppc_shd.g_old_rec.component_reason,
249       p_change_amount_n_o            => per_ppc_shd.g_old_rec.change_amount_n,
250       p_change_percentage_o          => per_ppc_shd.g_old_rec.change_percentage,
251       p_comments_o                   => per_ppc_shd.g_old_rec.comments,
252       p_attribute_category_o         => per_ppc_shd.g_old_rec.attribute_category,
253       p_attribute1_o                 => per_ppc_shd.g_old_rec.attribute1,
254       p_attribute2_o                 => per_ppc_shd.g_old_rec.attribute2,
255       p_attribute3_o                 => per_ppc_shd.g_old_rec.attribute3,
256       p_attribute4_o                 => per_ppc_shd.g_old_rec.attribute4,
257       p_attribute5_o                 => per_ppc_shd.g_old_rec.attribute5,
258       p_attribute6_o                 => per_ppc_shd.g_old_rec.attribute6,
259       p_attribute7_o                 => per_ppc_shd.g_old_rec.attribute7,
260       p_attribute8_o                 => per_ppc_shd.g_old_rec.attribute8,
261       p_attribute9_o                 => per_ppc_shd.g_old_rec.attribute9,
262       p_attribute10_o                => per_ppc_shd.g_old_rec.attribute10,
263       p_attribute11_o                => per_ppc_shd.g_old_rec.attribute11,
264       p_attribute12_o                => per_ppc_shd.g_old_rec.attribute12,
265       p_attribute13_o                => per_ppc_shd.g_old_rec.attribute13,
266       p_attribute14_o                => per_ppc_shd.g_old_rec.attribute14,
267       p_attribute15_o                => per_ppc_shd.g_old_rec.attribute15,
268       p_attribute16_o                => per_ppc_shd.g_old_rec.attribute16,
269       p_attribute17_o                => per_ppc_shd.g_old_rec.attribute17,
270       p_attribute18_o                => per_ppc_shd.g_old_rec.attribute18,
271       p_attribute19_o                => per_ppc_shd.g_old_rec.attribute19,
272       p_attribute20_o                => per_ppc_shd.g_old_rec.attribute20,
273       p_object_version_number_o      => per_ppc_shd.g_old_rec.object_version_number
274       );
275 exception
276     when hr_api.cannot_find_prog_unit then
277         hr_api.cannot_find_prog_unit_error
278        (p_module_name => 'PER_PAY_PROPOSAL_COMPONENTS'
279        ,p_hook_type  => 'AU'
280        );
281   end;
282   -- End of API User Hook for post_update.
283 
284   hr_utility.set_location(' Leaving:'||l_proc, 10);
285 End post_update;
286 --
287 -- ----------------------------------------------------------------------------
288 -- |-----------------------------< convert_defs >-----------------------------|
289 -- ----------------------------------------------------------------------------
290 -- {Start Of Comments}
291 --
292 -- Description:
293 --   The Convert_Defs procedure has one very important function:
294 --   It must return the record structure for the row with all system defaulted
295 --   values converted into its corresponding parameter value for update. When
296 --   we attempt to update a row through the Upd process , certain
297 --   parameters can be defaulted which enables flexibility in the calling of
298 --   the upd process (e.g. only attributes which need to be updated need to be
299 --   specified). For the upd process to determine which attributes
300 --   have NOT been specified we need to check if the parameter has a reserved
301 --   system default value. Therefore, for all parameters which have a
302 --   corresponding reserved system default mechanism specified we need to
303 --   check if a system default is being used. If a system default is being
304 --   used then we convert the defaulted value into its corresponding attribute
305 --   value held in the g_old_rec data structure.
306 --
307 -- Pre Conditions:
308 --   This private function can only be called from the upd process.
309 --
310 -- In Parameters:
311 --   A Pl/Sql record structre.
312 --
313 -- Post Success:
314 --   The record structure will be returned with all system defaulted parameter
315 --   values converted into its current row attribute value.
316 --
317 -- Post Failure:
318 --   No direct error handling is required within this function. Any possible
319 --   errors within this procedure will be a PL/SQL value error due to conversion
320 
321 --   of datatypes or data lengths.
322 --
323 -- Developer Implementation Notes:
324 --   None.
325 --
326 -- Access Status:
327 --   Internal Table Handler Use Only.
328 --
329 -- {End Of Comments}
330 -- ----------------------------------------------------------------------------
331 Procedure convert_defs(p_rec in out nocopy per_ppc_shd.g_rec_type) is
332 --
333   l_proc  varchar2(72) := g_package||'convert_defs';
334 --
335 Begin
336   --
337   hr_utility.set_location('Entering:'||l_proc, 5);
338   --
339   -- We must now examine each argument value in the
340   -- p_rec plsql record structure
341   -- to see if a system default is being used. If a system default
342   -- is being used then we must set to the 'current' argument value.
343   --
344   If (p_rec.pay_proposal_id = hr_api.g_number) then
345     p_rec.pay_proposal_id :=
346     per_ppc_shd.g_old_rec.pay_proposal_id;
347   End If;
348   If (p_rec.business_group_id = hr_api.g_number) then
349     p_rec.business_group_id :=
350     per_ppc_shd.g_old_rec.business_group_id;
351   End If;
352   If (p_rec.approved = hr_api.g_varchar2) then
353     p_rec.approved :=
354     per_ppc_shd.g_old_rec.approved;
355   End If;
356   If (p_rec.component_reason = hr_api.g_varchar2) then
357     p_rec.component_reason :=
358     per_ppc_shd.g_old_rec.component_reason;
359   End If;
360   If (p_rec.change_amount_n = hr_api.g_number) then
361     p_rec.change_amount_n :=
362     per_ppc_shd.g_old_rec.change_amount_n;
363   End If;
364   If (p_rec.change_percentage = hr_api.g_number) then
365     p_rec.change_percentage :=
366     per_ppc_shd.g_old_rec.change_percentage;
367   End If;
368   If (p_rec.comments = hr_api.g_varchar2) then
369     p_rec.comments :=
370     per_ppc_shd.g_old_rec.comments;
371   End If;
372   If (p_rec.attribute_category = hr_api.g_varchar2) then
373     p_rec.attribute_category :=
374     per_ppc_shd.g_old_rec.attribute_category;
375   End If;
376   If (p_rec.attribute1 = hr_api.g_varchar2) then
377     p_rec.attribute1 :=
378     per_ppc_shd.g_old_rec.attribute1;
379   End If;
380   If (p_rec.attribute2 = hr_api.g_varchar2) then
381     p_rec.attribute2 :=
382     per_ppc_shd.g_old_rec.attribute2;
383   End If;
384   If (p_rec.attribute3 = hr_api.g_varchar2) then
385     p_rec.attribute3 :=
386     per_ppc_shd.g_old_rec.attribute3;
387   End If;
388   If (p_rec.attribute4 = hr_api.g_varchar2) then
389     p_rec.attribute4 :=
390     per_ppc_shd.g_old_rec.attribute4;
391   End If;
392   If (p_rec.attribute5 = hr_api.g_varchar2) then
393     p_rec.attribute5 :=
394     per_ppc_shd.g_old_rec.attribute5;
395   End If;
396   If (p_rec.attribute6 = hr_api.g_varchar2) then
397     p_rec.attribute6 :=
398     per_ppc_shd.g_old_rec.attribute6;
399   End If;
400   If (p_rec.attribute7 = hr_api.g_varchar2) then
401     p_rec.attribute7 :=
402     per_ppc_shd.g_old_rec.attribute7;
403   End If;
404   If (p_rec.attribute8 = hr_api.g_varchar2) then
405     p_rec.attribute8 :=
406     per_ppc_shd.g_old_rec.attribute8;
407   End If;
408   If (p_rec.attribute9 = hr_api.g_varchar2) then
409     p_rec.attribute9 :=
410     per_ppc_shd.g_old_rec.attribute9;
411   End If;
412   If (p_rec.attribute10 = hr_api.g_varchar2) then
413     p_rec.attribute10 :=
414     per_ppc_shd.g_old_rec.attribute10;
415   End If;
416   If (p_rec.attribute11 = hr_api.g_varchar2) then
417     p_rec.attribute11 :=
418     per_ppc_shd.g_old_rec.attribute11;
419   End If;
420   If (p_rec.attribute12 = hr_api.g_varchar2) then
421     p_rec.attribute12 :=
422     per_ppc_shd.g_old_rec.attribute12;
423   End If;
424   If (p_rec.attribute13 = hr_api.g_varchar2) then
425     p_rec.attribute13 :=
426     per_ppc_shd.g_old_rec.attribute13;
427   End If;
428   If (p_rec.attribute14 = hr_api.g_varchar2) then
429     p_rec.attribute14 :=
430     per_ppc_shd.g_old_rec.attribute14;
431   End If;
432   If (p_rec.attribute15 = hr_api.g_varchar2) then
433     p_rec.attribute15 :=
434     per_ppc_shd.g_old_rec.attribute15;
435   End If;
436   If (p_rec.attribute16 = hr_api.g_varchar2) then
437     p_rec.attribute16 :=
438     per_ppc_shd.g_old_rec.attribute16;
439   End If;
440   If (p_rec.attribute17 = hr_api.g_varchar2) then
441     p_rec.attribute17 :=
442     per_ppc_shd.g_old_rec.attribute17;
443   End If;
444   If (p_rec.attribute18 = hr_api.g_varchar2) then
445     p_rec.attribute18 :=
446     per_ppc_shd.g_old_rec.attribute18;
447   End If;
448   If (p_rec.attribute19 = hr_api.g_varchar2) then
449     p_rec.attribute19 :=
450     per_ppc_shd.g_old_rec.attribute19;
451   End If;
452   If (p_rec.attribute20 = hr_api.g_varchar2) then
453     p_rec.attribute20 :=
454     per_ppc_shd.g_old_rec.attribute20;
455   End If;
456 
457   --
458   hr_utility.set_location(' Leaving:'||l_proc, 10);
459 --
460 End convert_defs;
461 --
462 -- ----------------------------------------------------------------------------
463 -- |---------------------------------< upd >----------------------------------|
464 -- ----------------------------------------------------------------------------
465 Procedure upd
466   (
467   p_rec        in out nocopy per_ppc_shd.g_rec_type,
468   p_validation_strength                in varchar2 default 'STRONG',
469   p_validate   in     boolean default false
470   ) is
471 --
472   l_proc  varchar2(72) := g_package||'upd';
473 --
474 Begin
475   hr_utility.set_location('Entering:'||l_proc, 5);
476   --
477   -- Determine if the business process is to be validated.
478   --
479   If p_validate then
480     --
481     -- Issue the savepoint.
482     --
483     SAVEPOINT upd_per_ppc;
484   End If;
485   --
486   -- We must lock the row which we need to update.
487   --
488   per_ppc_shd.lck
489 	(
490 	p_rec.component_id,
491 	p_rec.object_version_number
492 	);
493  --
494   -- 1. During an update system defaults are used to determine if
495   --    arguments have been defaulted or not. We must therefore
496   --    derive the full record structure values to be updated.
497   --
498   -- 2. Call the supporting update validate operations.
499   --
500   convert_defs(p_rec);
501   per_ppc_bus.update_validate(p_rec,p_validation_strength);
502   --
503   -- Call the supporting pre-update operation
504   --
505   pre_update(p_rec);
506   --
507   -- Update the row.
508   --
509   update_dml(p_rec);
510   --
511   -- Call the supporting post-update operation
512   --
513   post_update(p_rec,p_validation_strength);
514   --
515   -- If we are validating then raise the Validate_Enabled exception
516   --
517   If p_validate then
518     Raise HR_Api.Validate_Enabled;
519   End If;
520   --
521   hr_utility.set_location(' Leaving:'||l_proc, 10);
522 Exception
523   When HR_Api.Validate_Enabled Then
524     --
525     -- As the Validate_Enabled exception has been raised
526     -- we must rollback to the savepoint
527     --
528     ROLLBACK TO upd_per_ppc;
529 End upd;
530 --
531 -- ----------------------------------------------------------------------------
532 -- |---------------------------------< upd >----------------------------------|
533 -- ----------------------------------------------------------------------------
534 Procedure upd
535   (
536   p_component_id                 in number,
537   p_approved                     in varchar2         default hr_api.g_varchar2,
538   p_component_reason             in varchar2         default hr_api.g_varchar2,
539   p_change_amount_n              in number           default hr_api.g_number,
540   p_change_percentage            in number           default hr_api.g_number,
541   p_comments                     in varchar2         default hr_api.g_varchar2,
542   p_attribute_category           in varchar2         default hr_api.g_varchar2,
543   p_attribute1                   in varchar2         default hr_api.g_varchar2,
544   p_attribute2                   in varchar2         default hr_api.g_varchar2,
545   p_attribute3                   in varchar2         default hr_api.g_varchar2,
546   p_attribute4                   in varchar2         default hr_api.g_varchar2,
547   p_attribute5                   in varchar2         default hr_api.g_varchar2,
548   p_attribute6                   in varchar2         default hr_api.g_varchar2,
549   p_attribute7                   in varchar2         default hr_api.g_varchar2,
550   p_attribute8                   in varchar2         default hr_api.g_varchar2,
551   p_attribute9                   in varchar2         default hr_api.g_varchar2,
552   p_attribute10                  in varchar2         default hr_api.g_varchar2,
553   p_attribute11                  in varchar2         default hr_api.g_varchar2,
554   p_attribute12                  in varchar2         default hr_api.g_varchar2,
555   p_attribute13                  in varchar2         default hr_api.g_varchar2,
556   p_attribute14                  in varchar2         default hr_api.g_varchar2,
557   p_attribute15                  in varchar2         default hr_api.g_varchar2,
558   p_attribute16                  in varchar2         default hr_api.g_varchar2,
559   p_attribute17                  in varchar2         default hr_api.g_varchar2,
560   p_attribute18                  in varchar2         default hr_api.g_varchar2,
561   p_attribute19                  in varchar2         default hr_api.g_varchar2,
562   p_attribute20                  in varchar2         default hr_api.g_varchar2,
563   p_object_version_number        in out nocopy number,
564   p_validation_strength          in varchar2 default 'STRONG',
565   p_validate                     in boolean      default false
566   ) is
567 --
568   l_rec	  per_ppc_shd.g_rec_type;
569   l_proc  varchar2(72) := g_package||'upd';
570 --
571 Begin
572   hr_utility.set_location('Entering:'||l_proc, 5);
573   --
574   -- Call conversion function to turn arguments into the
575   -- l_rec structure.
576   --
577   l_rec :=
578   per_ppc_shd.convert_args
579   (
580   p_component_id,
581   hr_api.g_number,
582   hr_api.g_number,
583   p_approved,
584   p_component_reason,
585   p_change_amount_n,
586   p_change_percentage,
587   p_comments,
588   p_attribute_category,
589   p_attribute1,
590   p_attribute2,
591   p_attribute3,
592   p_attribute4,
593   p_attribute5,
594   p_attribute6,
595   p_attribute7,
596   p_attribute8,
597   p_attribute9,
598   p_attribute10,
599   p_attribute11,
600   p_attribute12,
601   p_attribute13,
602   p_attribute14,
603   p_attribute15,
604   p_attribute16,
605   p_attribute17,
606   p_attribute18,
607   p_attribute19,
608   p_attribute20,
609   p_object_version_number
610   );
611   --
612   -- Having converted the arguments into the
613   -- plsql record structure we call the corresponding record
614   -- business process.
615   --
616   upd(l_rec, p_validation_strength, p_validate);
617   p_object_version_number := l_rec.object_version_number;
618   --
619   hr_utility.set_location(' Leaving:'||l_proc, 10);
620 End upd;
621 --
622 end per_ppc_upd;