DBA Data[Home] [Help]

PACKAGE BODY: APPS.OTA_CPE_UPD

Source


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