DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_PCP_UPD

Source


1 Package Body ben_pcp_upd as
2 /* $Header: bepcprhi.pkb 115.13 2002/12/16 12:00:12 vsethi noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  ben_pcp_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 ben_pcp_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   ben_pcp_shd.g_api_dml := true;  -- Set the api dml status
67   --
68   -- Update the ben_pl_pcp Row
69   --
70   update ben_pl_pcp
71     set
72      pl_pcp_id                       = p_rec.pl_pcp_id
73     ,pl_id                           = p_rec.pl_id
74     ,business_group_id               = p_rec.business_group_id
75     ,pcp_strt_dt_cd                  = p_rec.pcp_strt_dt_cd
76     ,pcp_dsgn_cd                     = p_rec.pcp_dsgn_cd
77     ,pcp_dpnt_dsgn_cd                = p_rec.pcp_dpnt_dsgn_cd
78     ,pcp_rpstry_flag                 = p_rec.pcp_rpstry_flag
79     ,pcp_can_keep_flag               = p_rec.pcp_can_keep_flag
80     ,pcp_radius                      = p_rec.pcp_radius
81     ,pcp_radius_uom                  = p_rec.pcp_radius_uom
82     ,pcp_radius_warn_flag            = p_rec.pcp_radius_warn_flag
83     ,pcp_num_chgs                    = p_rec.pcp_num_chgs
84     ,pcp_num_chgs_uom                = p_rec.pcp_num_chgs_uom
85     ,pcp_attribute_category          = p_rec.pcp_attribute_category
86     ,pcp_attribute1                  = p_rec.pcp_attribute1
87     ,pcp_attribute2                  = p_rec.pcp_attribute2
88     ,pcp_attribute3                  = p_rec.pcp_attribute3
89     ,pcp_attribute4                  = p_rec.pcp_attribute4
90     ,pcp_attribute5                  = p_rec.pcp_attribute5
91     ,pcp_attribute6                  = p_rec.pcp_attribute6
92     ,pcp_attribute7                  = p_rec.pcp_attribute7
93     ,pcp_attribute8                  = p_rec.pcp_attribute8
94     ,pcp_attribute9                  = p_rec.pcp_attribute9
95     ,pcp_attribute10                 = p_rec.pcp_attribute10
96     ,pcp_attribute11                 = p_rec.pcp_attribute11
97     ,pcp_attribute12                 = p_rec.pcp_attribute12
98     ,pcp_attribute13                 = p_rec.pcp_attribute13
99     ,pcp_attribute14                 = p_rec.pcp_attribute14
100     ,pcp_attribute15                 = p_rec.pcp_attribute15
101     ,pcp_attribute16                 = p_rec.pcp_attribute16
102     ,pcp_attribute17                 = p_rec.pcp_attribute17
103     ,pcp_attribute18                 = p_rec.pcp_attribute18
104     ,pcp_attribute19                 = p_rec.pcp_attribute19
105     ,pcp_attribute20                 = p_rec.pcp_attribute20
106     ,pcp_attribute21                 = p_rec.pcp_attribute21
107     ,pcp_attribute22                 = p_rec.pcp_attribute22
108     ,pcp_attribute23                 = p_rec.pcp_attribute23
109     ,pcp_attribute24                 = p_rec.pcp_attribute24
110     ,pcp_attribute25                 = p_rec.pcp_attribute25
111     ,pcp_attribute26                 = p_rec.pcp_attribute26
112     ,pcp_attribute27                 = p_rec.pcp_attribute27
113     ,pcp_attribute28                 = p_rec.pcp_attribute28
114     ,pcp_attribute29                 = p_rec.pcp_attribute29
115     ,pcp_attribute30                 = p_rec.pcp_attribute30
116     ,object_version_number           = p_rec.object_version_number
117     where pl_pcp_id = p_rec.pl_pcp_id;
118   --
119   ben_pcp_shd.g_api_dml := false;   -- Unset the api dml status
120   --
121   hr_utility.set_location(' Leaving:'||l_proc, 10);
122 --
123 Exception
124   When hr_api.check_integrity_violated Then
125     -- A check constraint has been violated
126     ben_pcp_shd.g_api_dml := false;   -- Unset the api dml status
127     ben_pcp_shd.constraint_error
128       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
129   When hr_api.parent_integrity_violated Then
130     -- Parent integrity has been violated
131     ben_pcp_shd.g_api_dml := false;   -- Unset the api dml status
132     ben_pcp_shd.constraint_error
133       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
134   When hr_api.unique_integrity_violated Then
135     -- Unique integrity has been violated
136     ben_pcp_shd.g_api_dml := false;   -- Unset the api dml status
137     ben_pcp_shd.constraint_error
138       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
139   When Others Then
140     ben_pcp_shd.g_api_dml := false;   -- Unset the api dml status
141     Raise;
142 End update_dml;
143 --
144 -- ----------------------------------------------------------------------------
145 -- |------------------------------< pre_update >------------------------------|
146 -- ----------------------------------------------------------------------------
147 -- {Start Of Comments}
148 --
149 -- Description:
150 --   This private procedure contains any processing which is required before
151 --   the update dml.
152 --
153 -- Prerequisites:
154 --   This is an internal procedure which is called from the upd procedure.
155 --
156 -- In Parameters:
157 --   A Pl/Sql record structure.
158 --
159 -- Post Success:
160 --   Processing continues.
161 --
162 -- Post Failure:
163 --   If an error has occurred, an error message and exception wil be raised
164 --   but not handled.
165 --
166 -- Developer Implementation Notes:
167 --   Any pre-processing required before the update dml is issued should be
168 --   coded within this procedure. It is important to note that any 3rd party
169 --   maintenance should be reviewed before placing in this procedure.
170 --
171 -- Access Status:
172 --   Internal Row Handler Use Only.
173 --
174 -- {End Of Comments}
175 -- ----------------------------------------------------------------------------
176 Procedure pre_update
177   (p_rec in ben_pcp_shd.g_rec_type
178   ) is
179 --
180   l_proc  varchar2(72) := g_package||'pre_update';
181 --
182 Begin
183   hr_utility.set_location('Entering:'||l_proc, 5);
184   --
185   hr_utility.set_location(' Leaving:'||l_proc, 10);
186 End pre_update;
187 --
188 -- ----------------------------------------------------------------------------
189 -- |-----------------------------< post_update >------------------------------|
190 -- ----------------------------------------------------------------------------
191 -- {Start Of Comments}
192 --
193 -- Description:
194 --   This private procedure contains any processing which is required after the
195 --   update dml.
196 --
197 -- Prerequisites:
198 --   This is an internal procedure which is called from the upd procedure.
199 --
200 -- In Parameters:
201 --   A Pl/Sql record structure.
202 --
203 -- Post Success:
204 --   Processing continues.
205 --
206 -- Post Failure:
207 --   If an error has occurred, an error message and exception will be raised
208 --   but not handled.
209 --
210 -- Developer Implementation Notes:
211 --   Any post-processing required after the update dml is issued should be
212 --   coded within this procedure. It is important to note that any 3rd party
213 --   maintenance should be reviewed before placing in this procedure.
214 --
215 -- Access Status:
216 --   Internal Row Handler Use Only.
217 --
218 -- {End Of Comments}
219 -- ----------------------------------------------------------------------------
220 Procedure post_update
221   (p_rec                          in ben_pcp_shd.g_rec_type
222   ) is
223 --
224   l_proc  varchar2(72) := g_package||'post_update';
225 --
226 Begin
227   hr_utility.set_location('Entering:'||l_proc, 5);
228   begin
229     --
230     ben_pcp_rku.after_update
231       (p_pl_pcp_id
232       => p_rec.pl_pcp_id
233       ,p_pl_id
234       => p_rec.pl_id
235       ,p_business_group_id
236       => p_rec.business_group_id
237       ,p_pcp_strt_dt_cd
238       => p_rec.pcp_strt_dt_cd
239       ,p_pcp_dsgn_cd
240       => p_rec.pcp_dsgn_cd
241       ,p_pcp_dpnt_dsgn_cd
242       => p_rec.pcp_dpnt_dsgn_cd
243       ,p_pcp_rpstry_flag
244       => p_rec.pcp_rpstry_flag
245       ,p_pcp_can_keep_flag
246       => p_rec.pcp_can_keep_flag
247       ,p_pcp_radius
248       => p_rec.pcp_radius
249       ,p_pcp_radius_uom
250       => p_rec.pcp_radius_uom
251       ,p_pcp_radius_warn_flag
252       => p_rec.pcp_radius_warn_flag
253       ,p_pcp_num_chgs
254       => p_rec.pcp_num_chgs
255       ,p_pcp_num_chgs_uom
256       => p_rec.pcp_num_chgs_uom
257       ,p_pcp_attribute_category
258       => p_rec.pcp_attribute_category
259       ,p_pcp_attribute1
260       => p_rec.pcp_attribute1
261       ,p_pcp_attribute2
262       => p_rec.pcp_attribute2
263       ,p_pcp_attribute3
264       => p_rec.pcp_attribute3
265       ,p_pcp_attribute4
266       => p_rec.pcp_attribute4
267       ,p_pcp_attribute5
268       => p_rec.pcp_attribute5
269       ,p_pcp_attribute6
270       => p_rec.pcp_attribute6
271       ,p_pcp_attribute7
272       => p_rec.pcp_attribute7
273       ,p_pcp_attribute8
274       => p_rec.pcp_attribute8
275       ,p_pcp_attribute9
276       => p_rec.pcp_attribute9
277       ,p_pcp_attribute10
278       => p_rec.pcp_attribute10
279       ,p_pcp_attribute11
280       => p_rec.pcp_attribute11
281       ,p_pcp_attribute12
282       => p_rec.pcp_attribute12
283       ,p_pcp_attribute13
284       => p_rec.pcp_attribute13
285       ,p_pcp_attribute14
286       => p_rec.pcp_attribute14
287       ,p_pcp_attribute15
288       => p_rec.pcp_attribute15
289       ,p_pcp_attribute16
290       => p_rec.pcp_attribute16
291       ,p_pcp_attribute17
292       => p_rec.pcp_attribute17
293       ,p_pcp_attribute18
294       => p_rec.pcp_attribute18
295       ,p_pcp_attribute19
296       => p_rec.pcp_attribute19
297       ,p_pcp_attribute20
298       => p_rec.pcp_attribute20
299       ,p_pcp_attribute21
300       => p_rec.pcp_attribute21
301       ,p_pcp_attribute22
302       => p_rec.pcp_attribute22
303       ,p_pcp_attribute23
304       => p_rec.pcp_attribute23
305       ,p_pcp_attribute24
306       => p_rec.pcp_attribute24
307       ,p_pcp_attribute25
308       => p_rec.pcp_attribute25
309       ,p_pcp_attribute26
310       => p_rec.pcp_attribute26
311       ,p_pcp_attribute27
312       => p_rec.pcp_attribute27
313       ,p_pcp_attribute28
314       => p_rec.pcp_attribute28
315       ,p_pcp_attribute29
316       => p_rec.pcp_attribute29
317       ,p_pcp_attribute30
318       => p_rec.pcp_attribute30
319       ,p_object_version_number
320       => p_rec.object_version_number
321       ,p_pl_id_o
322       => ben_pcp_shd.g_old_rec.pl_id
323       ,p_business_group_id_o
324       => ben_pcp_shd.g_old_rec.business_group_id
325       ,p_pcp_strt_dt_cd_o
326       => ben_pcp_shd.g_old_rec.pcp_strt_dt_cd
327       ,p_pcp_dsgn_cd_o
328       => ben_pcp_shd.g_old_rec.pcp_dsgn_cd
329       ,p_pcp_dpnt_dsgn_cd_o
330       => ben_pcp_shd.g_old_rec.pcp_dpnt_dsgn_cd
331       ,p_pcp_rpstry_flag_o
332       => ben_pcp_shd.g_old_rec.pcp_rpstry_flag
333       ,p_pcp_can_keep_flag_o
334       => ben_pcp_shd.g_old_rec.pcp_can_keep_flag
335       ,p_pcp_radius_o
336       => ben_pcp_shd.g_old_rec.pcp_radius
337       ,p_pcp_radius_uom_o
338       => ben_pcp_shd.g_old_rec.pcp_radius_uom
339       ,p_pcp_radius_warn_flag_o
340       => ben_pcp_shd.g_old_rec.pcp_radius_warn_flag
341       ,p_pcp_num_chgs_o
342       => ben_pcp_shd.g_old_rec.pcp_num_chgs
343       ,p_pcp_num_chgs_uom_o
344       => ben_pcp_shd.g_old_rec.pcp_num_chgs_uom
345       ,p_pcp_attribute_category_o
346       => ben_pcp_shd.g_old_rec.pcp_attribute_category
347       ,p_pcp_attribute1_o
348       => ben_pcp_shd.g_old_rec.pcp_attribute1
349       ,p_pcp_attribute2_o
350       => ben_pcp_shd.g_old_rec.pcp_attribute2
351       ,p_pcp_attribute3_o
352       => ben_pcp_shd.g_old_rec.pcp_attribute3
353       ,p_pcp_attribute4_o
354       => ben_pcp_shd.g_old_rec.pcp_attribute4
355       ,p_pcp_attribute5_o
356       => ben_pcp_shd.g_old_rec.pcp_attribute5
357       ,p_pcp_attribute6_o
358       => ben_pcp_shd.g_old_rec.pcp_attribute6
359       ,p_pcp_attribute7_o
360       => ben_pcp_shd.g_old_rec.pcp_attribute7
361       ,p_pcp_attribute8_o
362       => ben_pcp_shd.g_old_rec.pcp_attribute8
363       ,p_pcp_attribute9_o
364       => ben_pcp_shd.g_old_rec.pcp_attribute9
365       ,p_pcp_attribute10_o
366       => ben_pcp_shd.g_old_rec.pcp_attribute10
367       ,p_pcp_attribute11_o
368       => ben_pcp_shd.g_old_rec.pcp_attribute11
369       ,p_pcp_attribute12_o
370       => ben_pcp_shd.g_old_rec.pcp_attribute12
371       ,p_pcp_attribute13_o
372       => ben_pcp_shd.g_old_rec.pcp_attribute13
373       ,p_pcp_attribute14_o
374       => ben_pcp_shd.g_old_rec.pcp_attribute14
375       ,p_pcp_attribute15_o
376       => ben_pcp_shd.g_old_rec.pcp_attribute15
377       ,p_pcp_attribute16_o
378       => ben_pcp_shd.g_old_rec.pcp_attribute16
379       ,p_pcp_attribute17_o
380       => ben_pcp_shd.g_old_rec.pcp_attribute17
381       ,p_pcp_attribute18_o
382       => ben_pcp_shd.g_old_rec.pcp_attribute18
383       ,p_pcp_attribute19_o
384       => ben_pcp_shd.g_old_rec.pcp_attribute19
385       ,p_pcp_attribute20_o
386       => ben_pcp_shd.g_old_rec.pcp_attribute20
387       ,p_pcp_attribute21_o
388       => ben_pcp_shd.g_old_rec.pcp_attribute21
389       ,p_pcp_attribute22_o
390       => ben_pcp_shd.g_old_rec.pcp_attribute22
391       ,p_pcp_attribute23_o
392       => ben_pcp_shd.g_old_rec.pcp_attribute23
393       ,p_pcp_attribute24_o
394       => ben_pcp_shd.g_old_rec.pcp_attribute24
395       ,p_pcp_attribute25_o
396       => ben_pcp_shd.g_old_rec.pcp_attribute25
397       ,p_pcp_attribute26_o
398       => ben_pcp_shd.g_old_rec.pcp_attribute26
399       ,p_pcp_attribute27_o
400       => ben_pcp_shd.g_old_rec.pcp_attribute27
401       ,p_pcp_attribute28_o
402       => ben_pcp_shd.g_old_rec.pcp_attribute28
403       ,p_pcp_attribute29_o
404       => ben_pcp_shd.g_old_rec.pcp_attribute29
405       ,p_pcp_attribute30_o
406       => ben_pcp_shd.g_old_rec.pcp_attribute30
407       ,p_object_version_number_o
408       => ben_pcp_shd.g_old_rec.object_version_number
409       );
410     --
411   exception
412     --
413     when hr_api.cannot_find_prog_unit then
414       --
415       hr_api.cannot_find_prog_unit_error
416         (p_module_name => 'BEN_PL_PCP'
417         ,p_hook_type   => 'AU');
418       --
419   end;
420   --
421   hr_utility.set_location(' Leaving:'||l_proc, 10);
422 End post_update;
423 --
424 -- ----------------------------------------------------------------------------
425 -- |-----------------------------< convert_defs >-----------------------------|
426 -- ----------------------------------------------------------------------------
427 -- {Start Of Comments}
428 --
429 -- Description:
430 --   The Convert_Defs procedure has one very important function:
431 --   It must return the record structure for the row with all system defaulted
432 --   values converted into its corresponding parameter value for update. When
433 --   we attempt to update a row through the Upd process , certain
434 --   parameters can be defaulted which enables flexibility in the calling of
435 --   the upd process (e.g. only attributes which need to be updated need to be
436 --   specified). For the upd process to determine which attributes
437 --   have NOT been specified we need to check if the parameter has a reserved
438 --   system default value. Therefore, for all parameters which have a
439 --   corresponding reserved system default mechanism specified we need to
440 --   check if a system default is being used. If a system default is being
441 --   used then we convert the defaulted value into its corresponding attribute
442 --   value held in the g_old_rec data structure.
443 --
444 -- Prerequisites:
445 --   This private function can only be called from the upd process.
446 --
447 -- In Parameters:
448 --   A Pl/Sql record structure.
449 --
450 -- Post Success:
451 --   The record structure will be returned with all system defaulted parameter
452 --   values converted into its current row attribute value.
453 --
454 -- Post Failure:
455 --   No direct error handling is required within this function. Any possible
456 --   errors within this procedure will be a PL/SQL value error due to
457 --   conversion of datatypes or data lengths.
458 --
459 -- Developer Implementation Notes:
460 --   None.
461 --
462 -- Access Status:
463 --   Internal Row Handler Use Only.
464 --
465 -- {End Of Comments}
466 -- ----------------------------------------------------------------------------
467 Procedure convert_defs
468   (p_rec in out nocopy ben_pcp_shd.g_rec_type
469   ) is
470 --
471 Begin
472   --
473   -- We must now examine each argument value in the
474   -- p_rec plsql record structure
475   -- to see if a system default is being used. If a system default
476   -- is being used then we must set to the 'current' argument value.
477   --
478   If (p_rec.pl_id = hr_api.g_number) then
479     p_rec.pl_id :=
480     ben_pcp_shd.g_old_rec.pl_id;
481   End If;
482   If (p_rec.business_group_id = hr_api.g_number) then
483     p_rec.business_group_id :=
484     ben_pcp_shd.g_old_rec.business_group_id;
485   End If;
486   If (p_rec.pcp_strt_dt_cd = hr_api.g_varchar2) then
487     p_rec.pcp_strt_dt_cd :=
488     ben_pcp_shd.g_old_rec.pcp_strt_dt_cd;
489   End If;
490   If (p_rec.pcp_dsgn_cd = hr_api.g_varchar2) then
491     p_rec.pcp_dsgn_cd :=
492     ben_pcp_shd.g_old_rec.pcp_dsgn_cd;
493   End If;
494   If (p_rec.pcp_dpnt_dsgn_cd = hr_api.g_varchar2) then
495     p_rec.pcp_dpnt_dsgn_cd :=
496     ben_pcp_shd.g_old_rec.pcp_dpnt_dsgn_cd;
497   End If;
498   If (p_rec.pcp_rpstry_flag = hr_api.g_varchar2) then
499     p_rec.pcp_rpstry_flag :=
500     ben_pcp_shd.g_old_rec.pcp_rpstry_flag;
501   End If;
502   If (p_rec.pcp_can_keep_flag = hr_api.g_varchar2) then
503     p_rec.pcp_can_keep_flag :=
504     ben_pcp_shd.g_old_rec.pcp_can_keep_flag;
505   End If;
506   If (p_rec.pcp_radius = hr_api.g_number) then
507     p_rec.pcp_radius :=
508     ben_pcp_shd.g_old_rec.pcp_radius;
509   End If;
510   If (p_rec.pcp_radius_uom = hr_api.g_varchar2) then
511     p_rec.pcp_radius_uom :=
512     ben_pcp_shd.g_old_rec.pcp_radius_uom;
513   End If;
514   If (p_rec.pcp_radius_warn_flag = hr_api.g_varchar2) then
515     p_rec.pcp_radius_warn_flag :=
516     ben_pcp_shd.g_old_rec.pcp_radius_warn_flag;
517   End If;
518   If (p_rec.pcp_num_chgs = hr_api.g_number) then
519     p_rec.pcp_num_chgs :=
520     ben_pcp_shd.g_old_rec.pcp_num_chgs;
521   End If;
522   If (p_rec.pcp_num_chgs_uom = hr_api.g_varchar2) then
523     p_rec.pcp_num_chgs_uom :=
524     ben_pcp_shd.g_old_rec.pcp_num_chgs_uom;
525   End If;
526   If (p_rec.pcp_attribute_category = hr_api.g_varchar2) then
527     p_rec.pcp_attribute_category :=
528     ben_pcp_shd.g_old_rec.pcp_attribute_category;
529   End If;
530   If (p_rec.pcp_attribute1 = hr_api.g_varchar2) then
531     p_rec.pcp_attribute1 :=
532     ben_pcp_shd.g_old_rec.pcp_attribute1;
533   End If;
534   If (p_rec.pcp_attribute2 = hr_api.g_varchar2) then
535     p_rec.pcp_attribute2 :=
536     ben_pcp_shd.g_old_rec.pcp_attribute2;
537   End If;
538   If (p_rec.pcp_attribute3 = hr_api.g_varchar2) then
539     p_rec.pcp_attribute3 :=
540     ben_pcp_shd.g_old_rec.pcp_attribute3;
541   End If;
542   If (p_rec.pcp_attribute4 = hr_api.g_varchar2) then
543     p_rec.pcp_attribute4 :=
544     ben_pcp_shd.g_old_rec.pcp_attribute4;
545   End If;
546   If (p_rec.pcp_attribute5 = hr_api.g_varchar2) then
547     p_rec.pcp_attribute5 :=
548     ben_pcp_shd.g_old_rec.pcp_attribute5;
549   End If;
550   If (p_rec.pcp_attribute6 = hr_api.g_varchar2) then
551     p_rec.pcp_attribute6 :=
552     ben_pcp_shd.g_old_rec.pcp_attribute6;
553   End If;
554   If (p_rec.pcp_attribute7 = hr_api.g_varchar2) then
555     p_rec.pcp_attribute7 :=
556     ben_pcp_shd.g_old_rec.pcp_attribute7;
557   End If;
558   If (p_rec.pcp_attribute8 = hr_api.g_varchar2) then
559     p_rec.pcp_attribute8 :=
560     ben_pcp_shd.g_old_rec.pcp_attribute8;
561   End If;
562   If (p_rec.pcp_attribute9 = hr_api.g_varchar2) then
563     p_rec.pcp_attribute9 :=
564     ben_pcp_shd.g_old_rec.pcp_attribute9;
565   End If;
566   If (p_rec.pcp_attribute10 = hr_api.g_varchar2) then
567     p_rec.pcp_attribute10 :=
568     ben_pcp_shd.g_old_rec.pcp_attribute10;
569   End If;
570   If (p_rec.pcp_attribute11 = hr_api.g_varchar2) then
571     p_rec.pcp_attribute11 :=
572     ben_pcp_shd.g_old_rec.pcp_attribute11;
573   End If;
574   If (p_rec.pcp_attribute12 = hr_api.g_varchar2) then
575     p_rec.pcp_attribute12 :=
576     ben_pcp_shd.g_old_rec.pcp_attribute12;
577   End If;
578   If (p_rec.pcp_attribute13 = hr_api.g_varchar2) then
579     p_rec.pcp_attribute13 :=
580     ben_pcp_shd.g_old_rec.pcp_attribute13;
581   End If;
582   If (p_rec.pcp_attribute14 = hr_api.g_varchar2) then
583     p_rec.pcp_attribute14 :=
584     ben_pcp_shd.g_old_rec.pcp_attribute14;
585   End If;
586   If (p_rec.pcp_attribute15 = hr_api.g_varchar2) then
587     p_rec.pcp_attribute15 :=
588     ben_pcp_shd.g_old_rec.pcp_attribute15;
589   End If;
590   If (p_rec.pcp_attribute16 = hr_api.g_varchar2) then
591     p_rec.pcp_attribute16 :=
592     ben_pcp_shd.g_old_rec.pcp_attribute16;
593   End If;
594   If (p_rec.pcp_attribute17 = hr_api.g_varchar2) then
595     p_rec.pcp_attribute17 :=
596     ben_pcp_shd.g_old_rec.pcp_attribute17;
597   End If;
598   If (p_rec.pcp_attribute18 = hr_api.g_varchar2) then
599     p_rec.pcp_attribute18 :=
600     ben_pcp_shd.g_old_rec.pcp_attribute18;
601   End If;
602   If (p_rec.pcp_attribute19 = hr_api.g_varchar2) then
603     p_rec.pcp_attribute19 :=
604     ben_pcp_shd.g_old_rec.pcp_attribute19;
605   End If;
606   If (p_rec.pcp_attribute20 = hr_api.g_varchar2) then
607     p_rec.pcp_attribute20 :=
608     ben_pcp_shd.g_old_rec.pcp_attribute20;
609   End If;
610   If (p_rec.pcp_attribute21 = hr_api.g_varchar2) then
611     p_rec.pcp_attribute21 :=
612     ben_pcp_shd.g_old_rec.pcp_attribute21;
613   End If;
614   If (p_rec.pcp_attribute22 = hr_api.g_varchar2) then
615     p_rec.pcp_attribute22 :=
616     ben_pcp_shd.g_old_rec.pcp_attribute22;
617   End If;
618   If (p_rec.pcp_attribute23 = hr_api.g_varchar2) then
619     p_rec.pcp_attribute23 :=
620     ben_pcp_shd.g_old_rec.pcp_attribute23;
621   End If;
622   If (p_rec.pcp_attribute24 = hr_api.g_varchar2) then
623     p_rec.pcp_attribute24 :=
624     ben_pcp_shd.g_old_rec.pcp_attribute24;
625   End If;
626   If (p_rec.pcp_attribute25 = hr_api.g_varchar2) then
627     p_rec.pcp_attribute25 :=
628     ben_pcp_shd.g_old_rec.pcp_attribute25;
629   End If;
630   If (p_rec.pcp_attribute26 = hr_api.g_varchar2) then
631     p_rec.pcp_attribute26 :=
632     ben_pcp_shd.g_old_rec.pcp_attribute26;
633   End If;
634   If (p_rec.pcp_attribute27 = hr_api.g_varchar2) then
635     p_rec.pcp_attribute27 :=
636     ben_pcp_shd.g_old_rec.pcp_attribute27;
637   End If;
638   If (p_rec.pcp_attribute28 = hr_api.g_varchar2) then
639     p_rec.pcp_attribute28 :=
640     ben_pcp_shd.g_old_rec.pcp_attribute28;
641   End If;
642   If (p_rec.pcp_attribute29 = hr_api.g_varchar2) then
643     p_rec.pcp_attribute29 :=
644     ben_pcp_shd.g_old_rec.pcp_attribute29;
645   End If;
646   If (p_rec.pcp_attribute30 = hr_api.g_varchar2) then
647     p_rec.pcp_attribute30 :=
648     ben_pcp_shd.g_old_rec.pcp_attribute30;
649   End If;
650   --
651 End convert_defs;
652 --
653 -- ----------------------------------------------------------------------------
654 -- |---------------------------------< upd >----------------------------------|
655 -- ----------------------------------------------------------------------------
656 Procedure upd
657   (p_effective_date in date,
658    p_rec                          in out nocopy ben_pcp_shd.g_rec_type )
659    is
660 --
661   l_proc  varchar2(72) := g_package||'upd';
662 --
663 Begin
664   hr_utility.set_location('Entering:'||l_proc, 5);
665   --
666   -- We must lock the row which we need to update.
667   --
668   ben_pcp_shd.lck
669     (p_rec.pl_pcp_id
670     ,p_rec.object_version_number
671     );
672   --
673   -- 1. During an update system defaults are used to determine if
674   --    arguments have been defaulted or not. We must therefore
675   --    derive the full record structure values to be updated.
676   --
677   -- 2. Call the supporting update validate operations.
678   --
679   convert_defs(p_rec);
680   ben_pcp_bus.update_validate
681      (p_rec
682      ,p_effective_date);
683   --
684   -- Call the supporting pre-update operation
685   --
686   ben_pcp_upd.pre_update(p_rec);
687   --
688   -- Update the row.
689   --
690   ben_pcp_upd.update_dml(p_rec);
691   --
692   -- Call the supporting post-update operation
693   --
694   ben_pcp_upd.post_update
695      (p_rec
696      );
697 End upd;
698 --
699 -- ----------------------------------------------------------------------------
700 -- |---------------------------------< upd >----------------------------------|
701 -- ----------------------------------------------------------------------------
702 Procedure upd
703   (p_effective_date in date
704   ,p_pl_pcp_id                    in     number
705   ,p_object_version_number        in out nocopy number
706   ,p_pl_id                        in     number    default hr_api.g_number
707   ,p_business_group_id            in     number    default hr_api.g_number
708   ,p_pcp_rpstry_flag              in     varchar2  default hr_api.g_varchar2
709   ,p_pcp_can_keep_flag            in     varchar2  default hr_api.g_varchar2
710   ,p_pcp_radius_warn_flag         in     varchar2  default hr_api.g_varchar2
711   ,p_pcp_strt_dt_cd               in     varchar2  default hr_api.g_varchar2
712   ,p_pcp_dsgn_cd                  in     varchar2  default hr_api.g_varchar2
713   ,p_pcp_dpnt_dsgn_cd             in     varchar2  default hr_api.g_varchar2
714   ,p_pcp_radius                   in     number    default hr_api.g_number
715   ,p_pcp_radius_uom               in     varchar2  default hr_api.g_varchar2
716   ,p_pcp_num_chgs                 in     number    default hr_api.g_number
717   ,p_pcp_num_chgs_uom             in     varchar2  default hr_api.g_varchar2
718   ,p_pcp_attribute_category       in     varchar2  default hr_api.g_varchar2
719   ,p_pcp_attribute1               in     varchar2  default hr_api.g_varchar2
720   ,p_pcp_attribute2               in     varchar2  default hr_api.g_varchar2
721   ,p_pcp_attribute3               in     varchar2  default hr_api.g_varchar2
722   ,p_pcp_attribute4               in     varchar2  default hr_api.g_varchar2
723   ,p_pcp_attribute5               in     varchar2  default hr_api.g_varchar2
724   ,p_pcp_attribute6               in     varchar2  default hr_api.g_varchar2
725   ,p_pcp_attribute7               in     varchar2  default hr_api.g_varchar2
726   ,p_pcp_attribute8               in     varchar2  default hr_api.g_varchar2
727   ,p_pcp_attribute9               in     varchar2  default hr_api.g_varchar2
728   ,p_pcp_attribute10              in     varchar2  default hr_api.g_varchar2
729   ,p_pcp_attribute11              in     varchar2  default hr_api.g_varchar2
730   ,p_pcp_attribute12              in     varchar2  default hr_api.g_varchar2
731   ,p_pcp_attribute13              in     varchar2  default hr_api.g_varchar2
732   ,p_pcp_attribute14              in     varchar2  default hr_api.g_varchar2
733   ,p_pcp_attribute15              in     varchar2  default hr_api.g_varchar2
734   ,p_pcp_attribute16              in     varchar2  default hr_api.g_varchar2
735   ,p_pcp_attribute17              in     varchar2  default hr_api.g_varchar2
736   ,p_pcp_attribute18              in     varchar2  default hr_api.g_varchar2
737   ,p_pcp_attribute19              in     varchar2  default hr_api.g_varchar2
738   ,p_pcp_attribute20              in     varchar2  default hr_api.g_varchar2
739   ,p_pcp_attribute21              in     varchar2  default hr_api.g_varchar2
740   ,p_pcp_attribute22              in     varchar2  default hr_api.g_varchar2
741   ,p_pcp_attribute23              in     varchar2  default hr_api.g_varchar2
742   ,p_pcp_attribute24              in     varchar2  default hr_api.g_varchar2
743   ,p_pcp_attribute25              in     varchar2  default hr_api.g_varchar2
744   ,p_pcp_attribute26              in     varchar2  default hr_api.g_varchar2
745   ,p_pcp_attribute27              in     varchar2  default hr_api.g_varchar2
746   ,p_pcp_attribute28              in     varchar2  default hr_api.g_varchar2
747   ,p_pcp_attribute29              in     varchar2  default hr_api.g_varchar2
748   ,p_pcp_attribute30              in     varchar2  default hr_api.g_varchar2
749   ) is
750 --
751   l_rec	  ben_pcp_shd.g_rec_type;
752   l_proc  varchar2(72) := g_package||'upd';
753 --
754 Begin
755   hr_utility.set_location('Entering:'||l_proc, 5);
756   --
757   -- Call conversion function to turn arguments into the
758   -- l_rec structure.
759   --
760   l_rec :=
761   ben_pcp_shd.convert_args
762   (p_pl_pcp_id
763   ,p_pl_id
764   ,p_business_group_id
765   ,p_pcp_strt_dt_cd
766   ,p_pcp_dsgn_cd
767   ,p_pcp_dpnt_dsgn_cd
768   ,p_pcp_rpstry_flag
769   ,p_pcp_can_keep_flag
770   ,p_pcp_radius
771   ,p_pcp_radius_uom
772   ,p_pcp_radius_warn_flag
773   ,p_pcp_num_chgs
774   ,p_pcp_num_chgs_uom
775   ,p_pcp_attribute_category
776   ,p_pcp_attribute1
777   ,p_pcp_attribute2
778   ,p_pcp_attribute3
779   ,p_pcp_attribute4
780   ,p_pcp_attribute5
781   ,p_pcp_attribute6
782   ,p_pcp_attribute7
783   ,p_pcp_attribute8
784   ,p_pcp_attribute9
785   ,p_pcp_attribute10
786   ,p_pcp_attribute11
787   ,p_pcp_attribute12
788   ,p_pcp_attribute13
789   ,p_pcp_attribute14
790   ,p_pcp_attribute15
791   ,p_pcp_attribute16
792   ,p_pcp_attribute17
793   ,p_pcp_attribute18
794   ,p_pcp_attribute19
795   ,p_pcp_attribute20
796   ,p_pcp_attribute21
797   ,p_pcp_attribute22
798   ,p_pcp_attribute23
799   ,p_pcp_attribute24
800   ,p_pcp_attribute25
801   ,p_pcp_attribute26
802   ,p_pcp_attribute27
803   ,p_pcp_attribute28
804   ,p_pcp_attribute29
805   ,p_pcp_attribute30
806   ,p_object_version_number
807   );
808   --
809   -- Having converted the arguments into the
810   -- plsql record structure we call the corresponding record
811   -- business process.
812   --
813   ben_pcp_upd.upd
814      (p_effective_date, l_rec
815      );
816   p_object_version_number := l_rec.object_version_number;
817   --
818   hr_utility.set_location(' Leaving:'||l_proc, 10);
819 End upd;
820 --
821 end ben_pcp_upd;