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;