DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_BPP_UPD

Source


1 Package Body ben_bpp_upd as
2 /* $Header: bebpprhi.pkb 115.13 2002/12/22 20:25:09 pabodla ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  ben_bpp_upd.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |----------------------------< dt_update_dml >-----------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 --   This procedure controls the execution of dml from the datetrack mode
17 --   of CORRECTION only. It is important to note that the object version
18 --   number is only increment by 1 because the datetrack correction is
19 --   soley for one datetracked row.
20 --   This procedure controls the actual dml update logic. The functions of this
21 --   procedure are as follows:
22 --   1) Get the next object_version_number.
23 --   2) To set and unset the g_api_dml status as required (as we are about to
24 --      perform dml).
25 --   3) To update the specified row in the schema using the primary key in
26 --      the predicates.
27 --   4) To trap any constraint violations that may have occurred.
28 --   5) To raise any other errors.
29 --
30 -- Prerequisites:
31 --   This is an internal private procedure which must be called from the
32 --   update_dml procedure.
33 --
34 -- In Parameters:
35 --   A Pl/Sql record structre.
36 --
37 -- Post Success:
38 --   The specified row will be updated in the schema.
39 --
40 -- Post Failure:
41 --   On the update dml failure it is important to note that we always reset the
42 --   g_api_dml status to false.
43 --   If a check or unique integrity constraint violation is raised the
44 --   constraint_error procedure will be called.
45 --   If any other error is reported, the error will be raised after the
46 --   g_api_dml status is reset.
47 --
48 -- Developer Implementation Notes:
49 --   The update 'set' arguments list should be modified if any of your
50 --   attributes are not updateable.
51 --
52 -- Access Status:
53 --   Internal Row Handler Use Only.
54 --
55 -- {End Of Comments}
56 -- ----------------------------------------------------------------------------
57 Procedure dt_update_dml
58 	(p_rec 			 in out nocopy ben_bpp_shd.g_rec_type,
59 	 p_effective_date	 in	date,
60 	 p_datetrack_mode	 in	varchar2,
61 	 p_validation_start_date in	date,
62 	 p_validation_end_date	 in	date) is
63 --
64   l_proc	varchar2(72) := g_package||'dt_update_dml';
65 --
66 Begin
67   hr_utility.set_location('Entering:'||l_proc, 5);
68   --
69   If (p_datetrack_mode = 'CORRECTION') then
70     hr_utility.set_location(l_proc, 10);
71     --
72     -- Because we are updating a row we must get the next object
73     -- version number.
74     --
75     p_rec.object_version_number :=
76       dt_api.get_object_version_number
77 	  (p_base_table_name	=> 'ben_bnft_prvdr_pool_f',
78 	   p_base_key_column	=> 'bnft_prvdr_pool_id',
79 	   p_base_key_value	=> p_rec.bnft_prvdr_pool_id);
80     --
81     ben_bpp_shd.g_api_dml := true;  -- Set the api dml status
82     --
83     -- Update the ben_bnft_prvdr_pool_f Row
84     --
85     update  ben_bnft_prvdr_pool_f
86     set
87         bnft_prvdr_pool_id              = p_rec.bnft_prvdr_pool_id,
88     name                            = p_rec.name,
89     pgm_pool_flag                   = p_rec.pgm_pool_flag,
90     excs_alwys_fftd_flag            = p_rec.excs_alwys_fftd_flag,
91     use_for_pgm_pool_flag           = p_rec.use_for_pgm_pool_flag,
92     pct_rndg_cd                     = p_rec.pct_rndg_cd,
93     pct_rndg_rl                     = p_rec.pct_rndg_rl,
94     val_rndg_cd                     = p_rec.val_rndg_cd,
95     val_rndg_rl                     = p_rec.val_rndg_rl,
96     dflt_excs_trtmt_cd              = p_rec.dflt_excs_trtmt_cd,
97     dflt_excs_trtmt_rl              = p_rec.dflt_excs_trtmt_rl,
98     rlovr_rstrcn_cd                 = p_rec.rlovr_rstrcn_cd,
99     no_mn_dstrbl_pct_flag           = p_rec.no_mn_dstrbl_pct_flag,
100     no_mn_dstrbl_val_flag           = p_rec.no_mn_dstrbl_val_flag,
101     no_mx_dstrbl_pct_flag           = p_rec.no_mx_dstrbl_pct_flag,
102     no_mx_dstrbl_val_flag           = p_rec.no_mx_dstrbl_val_flag,
103     auto_alct_excs_flag             = p_rec.auto_alct_excs_flag,
104     alws_ngtv_crs_flag              = p_rec.alws_ngtv_crs_flag ,
105     uses_net_crs_mthd_flag          = p_rec.uses_net_crs_mthd_flag,
106     mx_dfcit_pct_pool_crs_num       = p_rec.mx_dfcit_pct_pool_crs_num ,
107     mx_dfcit_pct_comp_num            = p_rec.mx_dfcit_pct_comp_num,
108     comp_lvl_fctr_id                = p_rec.comp_lvl_fctr_id,
109     mn_dstrbl_pct_num               = p_rec.mn_dstrbl_pct_num,
110     mn_dstrbl_val                   = p_rec.mn_dstrbl_val,
111     mx_dstrbl_pct_num               = p_rec.mx_dstrbl_pct_num,
112     mx_dstrbl_val                   = p_rec.mx_dstrbl_val,
113     excs_trtmt_cd                   = p_rec.excs_trtmt_cd,
114     ptip_id                         = p_rec.ptip_id,
115     plip_id                         = p_rec.plip_id,
116     pgm_id                          = p_rec.pgm_id,
117     oiplip_id                       = p_rec.oiplip_id,
118     cmbn_plip_id                    = p_rec.cmbn_plip_id,
119     cmbn_ptip_id                    = p_rec.cmbn_ptip_id,
120     cmbn_ptip_opt_id                = p_rec.cmbn_ptip_opt_id,
121     business_group_id               = p_rec.business_group_id,
122     bpp_attribute_category          = p_rec.bpp_attribute_category,
123     bpp_attribute1                  = p_rec.bpp_attribute1,
124     bpp_attribute2                  = p_rec.bpp_attribute2,
125     bpp_attribute3                  = p_rec.bpp_attribute3,
126     bpp_attribute4                  = p_rec.bpp_attribute4,
127     bpp_attribute5                  = p_rec.bpp_attribute5,
128     bpp_attribute6                  = p_rec.bpp_attribute6,
129     bpp_attribute7                  = p_rec.bpp_attribute7,
130     bpp_attribute8                  = p_rec.bpp_attribute8,
131     bpp_attribute9                  = p_rec.bpp_attribute9,
132     bpp_attribute10                 = p_rec.bpp_attribute10,
133     bpp_attribute11                 = p_rec.bpp_attribute11,
134     bpp_attribute12                 = p_rec.bpp_attribute12,
135     bpp_attribute13                 = p_rec.bpp_attribute13,
136     bpp_attribute14                 = p_rec.bpp_attribute14,
137     bpp_attribute15                 = p_rec.bpp_attribute15,
138     bpp_attribute16                 = p_rec.bpp_attribute16,
139     bpp_attribute17                 = p_rec.bpp_attribute17,
140     bpp_attribute18                 = p_rec.bpp_attribute18,
141     bpp_attribute19                 = p_rec.bpp_attribute19,
142     bpp_attribute20                 = p_rec.bpp_attribute20,
143     bpp_attribute21                 = p_rec.bpp_attribute21,
144     bpp_attribute22                 = p_rec.bpp_attribute22,
145     bpp_attribute23                 = p_rec.bpp_attribute23,
146     bpp_attribute24                 = p_rec.bpp_attribute24,
147     bpp_attribute25                 = p_rec.bpp_attribute25,
148     bpp_attribute26                 = p_rec.bpp_attribute26,
149     bpp_attribute27                 = p_rec.bpp_attribute27,
150     bpp_attribute28                 = p_rec.bpp_attribute28,
151     bpp_attribute29                 = p_rec.bpp_attribute29,
152     bpp_attribute30                 = p_rec.bpp_attribute30,
153     object_version_number           = p_rec.object_version_number
154     where   bnft_prvdr_pool_id = p_rec.bnft_prvdr_pool_id
155     and     effective_start_date = p_validation_start_date
156     and     effective_end_date   = p_validation_end_date;
157     --
158     ben_bpp_shd.g_api_dml := false;   -- Unset the api dml status
159     --
160     -- Set the effective start and end dates
161     --
162     p_rec.effective_start_date := p_validation_start_date;
163     p_rec.effective_end_date   := p_validation_end_date;
164   End If;
165 --
166 hr_utility.set_location(' Leaving:'||l_proc, 15);
167 Exception
168   When hr_api.check_integrity_violated Then
169     -- A check constraint has been violated
170     ben_bpp_shd.g_api_dml := false;   -- Unset the api dml status
171     ben_bpp_shd.constraint_error
172       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
173   When hr_api.unique_integrity_violated Then
174     -- Unique integrity has been violated
175     ben_bpp_shd.g_api_dml := false;   -- Unset the api dml status
176     ben_bpp_shd.constraint_error
177       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
178   When Others Then
179     ben_bpp_shd.g_api_dml := false;   -- Unset the api dml status
180     Raise;
181 End dt_update_dml;
182 --
183 -- ----------------------------------------------------------------------------
184 -- |------------------------------< update_dml >------------------------------|
185 -- ----------------------------------------------------------------------------
186 -- {Start Of Comments}
187 --
188 -- Description:
189 --   This procedure calls the dt_update_dml control logic which handles
190 --   the actual datetrack dml.
191 --
192 -- Prerequisites:
193 --   This is an internal private procedure which must be called from the upd
194 --   procedure.
195 --
196 -- In Parameters:
197 --   A Pl/Sql record structre.
198 --
199 -- Post Success:
200 --   Processing contines.
201 --
202 -- Post Failure:
203 --   No specific error handling is required within this procedure.
204 --
205 -- Developer Implementation Notes:
206 --   The update 'set' arguments list should be modified if any of your
207 --   attributes are not updateable.
208 --
209 -- Access Status:
210 --   Internal Row Handler Use Only.
211 --
212 -- {End Of Comments}
213 -- ----------------------------------------------------------------------------
214 Procedure update_dml
215 	(p_rec 			 in out nocopy ben_bpp_shd.g_rec_type,
216 	 p_effective_date	 in	date,
217 	 p_datetrack_mode	 in	varchar2,
218 	 p_validation_start_date in	date,
219 	 p_validation_end_date	 in	date) is
220 --
221   l_proc	varchar2(72) := g_package||'update_dml';
222 --
223 Begin
224   hr_utility.set_location('Entering:'||l_proc, 5);
225   --
226   dt_update_dml(p_rec			=> p_rec,
227 		p_effective_date	=> p_effective_date,
228 		p_datetrack_mode	=> p_datetrack_mode,
229        		p_validation_start_date	=> p_validation_start_date,
230 		p_validation_end_date	=> p_validation_end_date);
231   --
232   hr_utility.set_location(' Leaving:'||l_proc, 10);
233 End update_dml;
234 --
235 -- ----------------------------------------------------------------------------
236 -- |----------------------------< dt_pre_update >-----------------------------|
237 -- ----------------------------------------------------------------------------
238 -- {Start Of Comments}
239 --
240 -- Description:
241 --   The dt_pre_update procedure controls the execution
242 --   of dml for the datetrack modes of: UPDATE, UPDATE_OVERRIDE
243 --   and UPDATE_CHANGE_INSERT only. The execution required is as
244 --   follows:
245 --
246 --   1) Providing the datetrack update mode is not 'CORRECTION'
247 --      then set the effective end date of the current row (this
248 --      will be the validation_start_date - 1).
249 --   2) If the datetrack mode is 'UPDATE_OVERRIDE' then call the
250 --      corresponding delete_dml process to delete any future rows
251 --      where the effective_start_date is greater than or equal to
252 --	the validation_start_date.
253 --   3) Call the insert_dml process to insert the new updated row
254 --      details..
255 --
256 -- Prerequisites:
257 --   This is an internal procedure which is called from the
258 --   pre_update procedure.
259 --
260 -- In Parameters:
261 --
262 -- Post Success:
263 --   Processing continues.
264 --
265 -- Post Failure:
266 --   If an error has occurred, an error message and exception will be raised
267 --   but not handled.
268 --
269 -- Developer Implementation Notes:
270 --   This is an internal procedure which is required by Datetrack. Don't
271 --   remove or modify.
272 --
273 -- Access Status:
274 --   Internal Row Handler Use Only.
275 --
276 -- {End Of Comments}
277 -- ----------------------------------------------------------------------------
278 Procedure dt_pre_update
279 	(p_rec 			 in out nocopy ben_bpp_shd.g_rec_type,
280 	 p_effective_date	 in	date,
281 	 p_datetrack_mode	 in	varchar2,
282 	 p_validation_start_date in	date,
283 	 p_validation_end_date	 in	date) is
284 --
285   l_proc	         varchar2(72) := g_package||'dt_pre_update';
286   l_dummy_version_number number;
287 --
288 Begin
289   hr_utility.set_location('Entering:'||l_proc, 5);
290   If (p_datetrack_mode <> 'CORRECTION') then
291     hr_utility.set_location(l_proc, 10);
292     --
293     -- Update the current effective end date
294     --
295     ben_bpp_shd.upd_effective_end_date
296      (p_effective_date	       => p_effective_date,
297       p_base_key_value	       => p_rec.bnft_prvdr_pool_id,
298       p_new_effective_end_date => (p_validation_start_date - 1),
299       p_validation_start_date  => p_validation_start_date,
300       p_validation_end_date    => p_validation_end_date,
301       p_object_version_number  => l_dummy_version_number);
302     --
303     If (p_datetrack_mode = 'UPDATE_OVERRIDE') then
304       hr_utility.set_location(l_proc, 15);
305       --
306       -- As the datetrack mode is 'UPDATE_OVERRIDE' then we must
307       -- delete any future rows
308       --
309       ben_bpp_del.delete_dml
310         (p_rec			 => p_rec,
311 	 p_effective_date	 => p_effective_date,
312 	 p_datetrack_mode	 => p_datetrack_mode,
313 	 p_validation_start_date => p_validation_start_date,
314 	 p_validation_end_date   => p_validation_end_date);
315     End If;
316     hr_utility.set_location(l_proc, 20);
317     --
318     -- We must now insert the updated row
319     --
320     ben_bpp_ins.insert_dml
321       (p_rec			=> p_rec,
322        p_effective_date		=> p_effective_date,
323        p_datetrack_mode		=> p_datetrack_mode,
324        p_validation_start_date	=> p_validation_start_date,
325        p_validation_end_date	=> p_validation_end_date);
326   End If;
327   hr_utility.set_location(' Leaving:'||l_proc, 20);
328 End dt_pre_update;
329 --
330 -- ----------------------------------------------------------------------------
331 -- |------------------------------< pre_update >------------------------------|
332 -- ----------------------------------------------------------------------------
333 -- {Start Of Comments}
334 --
335 -- Description:
336 --   This private procedure contains any processing which is required before
337 --   the update dml.
338 --
339 -- Prerequisites:
340 --   This is an internal procedure which is called from the upd procedure.
341 --
342 -- In Parameters:
343 --   A Pl/Sql record structre.
344 --
345 -- Post Success:
346 --   Processing continues.
347 --
348 -- Post Failure:
349 --   If an error has occurred, an error message and exception will be raised
350 --   but not handled.
351 --
352 -- Developer Implementation Notes:
353 --   Any pre-processing required before the update dml is issued should be
354 --   coded within this procedure. It is important to note that any 3rd party
355 --   maintenance should be reviewed before placing in this procedure. The call
356 --   to the dt_update_dml procedure should NOT be removed.
357 --
358 -- Access Status:
359 --   Internal Row Handler Use Only.
360 --
361 -- {End Of Comments}
362 -- ----------------------------------------------------------------------------
363 Procedure pre_update
364 	(p_rec 			 in out nocopy ben_bpp_shd.g_rec_type,
365 	 p_effective_date	 in	date,
366 	 p_datetrack_mode	 in	varchar2,
367 	 p_validation_start_date in	date,
368 	 p_validation_end_date	 in	date) is
369 --
370   l_proc	varchar2(72) := g_package||'pre_update';
371 --
372 Begin
373   hr_utility.set_location('Entering:'||l_proc, 5);
374   --
375   --
376   --
377   dt_pre_update
378     (p_rec 		     => p_rec,
379      p_effective_date	     => p_effective_date,
380      p_datetrack_mode	     => p_datetrack_mode,
381      p_validation_start_date => p_validation_start_date,
382      p_validation_end_date   => p_validation_end_date);
383   --
384   hr_utility.set_location(' Leaving:'||l_proc, 10);
385 End pre_update;
386 --
387 -- ----------------------------------------------------------------------------
388 -- |-----------------------------< post_update >------------------------------|
389 -- ----------------------------------------------------------------------------
390 -- {Start Of Comments}
391 --
392 -- Description:
393 --   This private procedure contains any processing which is required after the
394 --   update dml.
395 --
396 -- Prerequisites:
397 --   This is an internal procedure which is called from the upd procedure.
398 --
399 -- In Parameters:
400 --   A Pl/Sql record structre.
401 --
402 -- Post Success:
403 --   Processing continues.
404 --
405 -- Post Failure:
406 --   If an error has occurred, an error message and exception will be raised
407 --   but not handled.
408 --
409 -- Developer Implementation Notes:
410 --   Any post-processing required after the update dml is issued should be
411 --   coded within this procedure. It is important to note that any 3rd party
412 --   maintenance should be reviewed before placing in this procedure.
413 --
414 -- Access Status:
415 --   Internal Row Handler Use Only.
416 --
417 -- {End Of Comments}
418 -- ----------------------------------------------------------------------------
419 Procedure post_update
420 	(p_rec 			 in ben_bpp_shd.g_rec_type,
421 	 p_effective_date	 in date,
422 	 p_datetrack_mode	 in varchar2,
423 	 p_validation_start_date in date,
424 	 p_validation_end_date	 in date) is
425 --
426   l_proc	varchar2(72) := g_package||'post_update';
427 --
428 Begin
429   hr_utility.set_location('Entering:'||l_proc, 5);
430   --
431   -- Start of API User Hook for post_update.
432   --
433   begin
434     --
435     ben_bpp_rku.after_update
436       (
437   p_bnft_prvdr_pool_id             => p_rec.bnft_prvdr_pool_id
438  ,p_effective_start_date           => p_rec.effective_start_date
439  ,p_effective_end_date             => p_rec.effective_end_date
440  ,p_name                           => p_rec.name
441  ,p_pgm_pool_flag                  => p_rec.pgm_pool_flag
442  ,p_excs_alwys_fftd_flag           => p_rec.excs_alwys_fftd_flag
443  ,p_use_for_pgm_pool_flag          => p_rec.use_for_pgm_pool_flag
444  ,p_pct_rndg_cd                    => p_rec.pct_rndg_cd
445  ,p_pct_rndg_rl                    => p_rec.pct_rndg_rl
446  ,p_val_rndg_cd                    => p_rec.val_rndg_cd
447  ,p_val_rndg_rl                    => p_rec.val_rndg_rl
448  ,p_dflt_excs_trtmt_cd             => p_rec.dflt_excs_trtmt_cd
449  ,p_dflt_excs_trtmt_rl             => p_rec.dflt_excs_trtmt_rl
450  ,p_rlovr_rstrcn_cd                => p_rec.rlovr_rstrcn_cd
451  ,p_no_mn_dstrbl_pct_flag          => p_rec.no_mn_dstrbl_pct_flag
452  ,p_no_mn_dstrbl_val_flag          => p_rec.no_mn_dstrbl_val_flag
453  ,p_no_mx_dstrbl_pct_flag          => p_rec.no_mx_dstrbl_pct_flag
454  ,p_no_mx_dstrbl_val_flag          => p_rec.no_mx_dstrbl_val_flag
455  ,p_auto_alct_excs_flag            => p_rec.auto_alct_excs_flag
456  ,p_alws_ngtv_crs_flag             => p_rec.alws_ngtv_crs_flag
457  ,p_uses_net_crs_mthd_flag         => p_rec.uses_net_crs_mthd_flag
458  ,p_mx_dfcit_pct_pool_crs_num      => p_rec.mx_dfcit_pct_pool_crs_num
459  ,p_mx_dfcit_pct_comp_num           => p_rec.mx_dfcit_pct_comp_num
460  ,p_comp_lvl_fctr_id               => p_rec.comp_lvl_fctr_id
461  ,p_mn_dstrbl_pct_num              => p_rec.mn_dstrbl_pct_num
462  ,p_mn_dstrbl_val                  => p_rec.mn_dstrbl_val
463  ,p_mx_dstrbl_pct_num              => p_rec.mx_dstrbl_pct_num
464  ,p_mx_dstrbl_val                  => p_rec.mx_dstrbl_val
465  ,p_excs_trtmt_cd                  => p_rec.excs_trtmt_cd
466  ,p_ptip_id                        => p_rec.ptip_id
467  ,p_plip_id                        => p_rec.plip_id
468  ,p_pgm_id                         => p_rec.pgm_id
469  ,p_oiplip_id                      => p_rec.oiplip_id
470  ,p_cmbn_plip_id                   => p_rec.cmbn_plip_id
471  ,p_cmbn_ptip_id                   => p_rec.cmbn_ptip_id
472  ,p_cmbn_ptip_opt_id               => p_rec.cmbn_ptip_opt_id
473  ,p_business_group_id              => p_rec.business_group_id
474  ,p_bpp_attribute_category         => p_rec.bpp_attribute_category
475  ,p_bpp_attribute1                 => p_rec.bpp_attribute1
476  ,p_bpp_attribute2                 => p_rec.bpp_attribute2
477  ,p_bpp_attribute3                 => p_rec.bpp_attribute3
478  ,p_bpp_attribute4                 => p_rec.bpp_attribute4
479  ,p_bpp_attribute5                 => p_rec.bpp_attribute5
480  ,p_bpp_attribute6                 => p_rec.bpp_attribute6
481  ,p_bpp_attribute7                 => p_rec.bpp_attribute7
482  ,p_bpp_attribute8                 => p_rec.bpp_attribute8
483  ,p_bpp_attribute9                 => p_rec.bpp_attribute9
484  ,p_bpp_attribute10                => p_rec.bpp_attribute10
485  ,p_bpp_attribute11                => p_rec.bpp_attribute11
486  ,p_bpp_attribute12                => p_rec.bpp_attribute12
487  ,p_bpp_attribute13                => p_rec.bpp_attribute13
488  ,p_bpp_attribute14                => p_rec.bpp_attribute14
489  ,p_bpp_attribute15                => p_rec.bpp_attribute15
490  ,p_bpp_attribute16                => p_rec.bpp_attribute16
491  ,p_bpp_attribute17                => p_rec.bpp_attribute17
492  ,p_bpp_attribute18                => p_rec.bpp_attribute18
493  ,p_bpp_attribute19                => p_rec.bpp_attribute19
494  ,p_bpp_attribute20                => p_rec.bpp_attribute20
495  ,p_bpp_attribute21                => p_rec.bpp_attribute21
496  ,p_bpp_attribute22                => p_rec.bpp_attribute22
497  ,p_bpp_attribute23                => p_rec.bpp_attribute23
498  ,p_bpp_attribute24                => p_rec.bpp_attribute24
499  ,p_bpp_attribute25                => p_rec.bpp_attribute25
500  ,p_bpp_attribute26                => p_rec.bpp_attribute26
501  ,p_bpp_attribute27                => p_rec.bpp_attribute27
502  ,p_bpp_attribute28                => p_rec.bpp_attribute28
503  ,p_bpp_attribute29                => p_rec.bpp_attribute29
504  ,p_bpp_attribute30                => p_rec.bpp_attribute30
505  ,p_object_version_number          => p_rec.object_version_number
506  ,p_effective_date                 => p_effective_date
507  ,p_datetrack_mode                 => p_datetrack_mode
508  ,p_validation_start_date          => p_validation_start_date
509  ,p_validation_end_date            => p_validation_end_date
510  ,p_effective_start_date_o         => ben_bpp_shd.g_old_rec.effective_start_date
511  ,p_effective_end_date_o           => ben_bpp_shd.g_old_rec.effective_end_date
512  ,p_name_o                         => ben_bpp_shd.g_old_rec.name
513  ,p_pgm_pool_flag_o                => ben_bpp_shd.g_old_rec.pgm_pool_flag
514  ,p_excs_alwys_fftd_flag_o         => ben_bpp_shd.g_old_rec.excs_alwys_fftd_flag
515  ,p_use_for_pgm_pool_flag_o        => ben_bpp_shd.g_old_rec.use_for_pgm_pool_flag
516  ,p_pct_rndg_cd_o                  => ben_bpp_shd.g_old_rec.pct_rndg_cd
517  ,p_pct_rndg_rl_o                  => ben_bpp_shd.g_old_rec.pct_rndg_rl
518  ,p_val_rndg_cd_o                  => ben_bpp_shd.g_old_rec.val_rndg_cd
519  ,p_val_rndg_rl_o                  => ben_bpp_shd.g_old_rec.val_rndg_rl
520  ,p_dflt_excs_trtmt_cd_o           => ben_bpp_shd.g_old_rec.dflt_excs_trtmt_cd
521  ,p_dflt_excs_trtmt_rl_o           => ben_bpp_shd.g_old_rec.dflt_excs_trtmt_rl
522  ,p_rlovr_rstrcn_cd_o              => ben_bpp_shd.g_old_rec.rlovr_rstrcn_cd
523  ,p_no_mn_dstrbl_pct_flag_o        => ben_bpp_shd.g_old_rec.no_mn_dstrbl_pct_flag
524  ,p_no_mn_dstrbl_val_flag_o        => ben_bpp_shd.g_old_rec.no_mn_dstrbl_val_flag
525  ,p_no_mx_dstrbl_pct_flag_o        => ben_bpp_shd.g_old_rec.no_mx_dstrbl_pct_flag
526  ,p_no_mx_dstrbl_val_flag_o        => ben_bpp_shd.g_old_rec.no_mx_dstrbl_val_flag
527  ,p_auto_alct_excs_flag_o          => ben_bpp_shd.g_old_rec.auto_alct_excs_flag
528  ,p_alws_ngtv_crs_flag_o           => ben_bpp_shd.g_old_rec.alws_ngtv_crs_flag
529  ,p_uses_net_crs_mthd_flag_o       => ben_bpp_shd.g_old_rec.uses_net_crs_mthd_flag
530  ,p_mx_dfcit_pct_pool_crs_num_o    => ben_bpp_shd.g_old_rec.mx_dfcit_pct_pool_crs_num
531  ,p_mx_dfcit_pct_comp_num_o         => ben_bpp_shd.g_old_rec.mx_dfcit_pct_comp_num
532  ,p_comp_lvl_fctr_id_o             => ben_bpp_shd.g_old_rec.comp_lvl_fctr_id
533  ,p_mn_dstrbl_pct_num_o            => ben_bpp_shd.g_old_rec.mn_dstrbl_pct_num
534  ,p_mn_dstrbl_val_o                => ben_bpp_shd.g_old_rec.mn_dstrbl_val
535  ,p_mx_dstrbl_pct_num_o            => ben_bpp_shd.g_old_rec.mx_dstrbl_pct_num
536  ,p_mx_dstrbl_val_o                => ben_bpp_shd.g_old_rec.mx_dstrbl_val
537  ,p_excs_trtmt_cd_o                => ben_bpp_shd.g_old_rec.excs_trtmt_cd
538  ,p_ptip_id_o                      => ben_bpp_shd.g_old_rec.ptip_id
539  ,p_plip_id_o                      => ben_bpp_shd.g_old_rec.plip_id
540  ,p_pgm_id_o                       => ben_bpp_shd.g_old_rec.pgm_id
541  ,p_oiplip_id_o                    => ben_bpp_shd.g_old_rec.oiplip_id
542  ,p_cmbn_plip_id_o                 => ben_bpp_shd.g_old_rec.cmbn_plip_id
543  ,p_cmbn_ptip_id_o                 => ben_bpp_shd.g_old_rec.cmbn_ptip_id
544  ,p_cmbn_ptip_opt_id_o             => ben_bpp_shd.g_old_rec.cmbn_ptip_opt_id
545  ,p_business_group_id_o            => ben_bpp_shd.g_old_rec.business_group_id
546  ,p_bpp_attribute_category_o       => ben_bpp_shd.g_old_rec.bpp_attribute_category
547  ,p_bpp_attribute1_o               => ben_bpp_shd.g_old_rec.bpp_attribute1
548  ,p_bpp_attribute2_o               => ben_bpp_shd.g_old_rec.bpp_attribute2
549  ,p_bpp_attribute3_o               => ben_bpp_shd.g_old_rec.bpp_attribute3
550  ,p_bpp_attribute4_o               => ben_bpp_shd.g_old_rec.bpp_attribute4
551  ,p_bpp_attribute5_o               => ben_bpp_shd.g_old_rec.bpp_attribute5
552  ,p_bpp_attribute6_o               => ben_bpp_shd.g_old_rec.bpp_attribute6
553  ,p_bpp_attribute7_o               => ben_bpp_shd.g_old_rec.bpp_attribute7
554  ,p_bpp_attribute8_o               => ben_bpp_shd.g_old_rec.bpp_attribute8
555  ,p_bpp_attribute9_o               => ben_bpp_shd.g_old_rec.bpp_attribute9
556  ,p_bpp_attribute10_o              => ben_bpp_shd.g_old_rec.bpp_attribute10
557  ,p_bpp_attribute11_o              => ben_bpp_shd.g_old_rec.bpp_attribute11
558  ,p_bpp_attribute12_o              => ben_bpp_shd.g_old_rec.bpp_attribute12
559  ,p_bpp_attribute13_o              => ben_bpp_shd.g_old_rec.bpp_attribute13
560  ,p_bpp_attribute14_o              => ben_bpp_shd.g_old_rec.bpp_attribute14
561  ,p_bpp_attribute15_o              => ben_bpp_shd.g_old_rec.bpp_attribute15
562  ,p_bpp_attribute16_o              => ben_bpp_shd.g_old_rec.bpp_attribute16
563  ,p_bpp_attribute17_o              => ben_bpp_shd.g_old_rec.bpp_attribute17
564  ,p_bpp_attribute18_o              => ben_bpp_shd.g_old_rec.bpp_attribute18
565  ,p_bpp_attribute19_o              => ben_bpp_shd.g_old_rec.bpp_attribute19
566  ,p_bpp_attribute20_o              => ben_bpp_shd.g_old_rec.bpp_attribute20
567  ,p_bpp_attribute21_o              => ben_bpp_shd.g_old_rec.bpp_attribute21
568  ,p_bpp_attribute22_o              => ben_bpp_shd.g_old_rec.bpp_attribute22
569  ,p_bpp_attribute23_o              => ben_bpp_shd.g_old_rec.bpp_attribute23
570  ,p_bpp_attribute24_o              => ben_bpp_shd.g_old_rec.bpp_attribute24
571  ,p_bpp_attribute25_o              => ben_bpp_shd.g_old_rec.bpp_attribute25
572  ,p_bpp_attribute26_o              => ben_bpp_shd.g_old_rec.bpp_attribute26
573  ,p_bpp_attribute27_o              => ben_bpp_shd.g_old_rec.bpp_attribute27
574  ,p_bpp_attribute28_o              => ben_bpp_shd.g_old_rec.bpp_attribute28
575  ,p_bpp_attribute29_o              => ben_bpp_shd.g_old_rec.bpp_attribute29
576  ,p_bpp_attribute30_o              => ben_bpp_shd.g_old_rec.bpp_attribute30
577  ,p_object_version_number_o        => ben_bpp_shd.g_old_rec.object_version_number
578   );
579     --
580   exception
581     --
582     when hr_api.cannot_find_prog_unit then
583       --
584       hr_api.cannot_find_prog_unit_error
585         (p_module_name => 'ben_bnft_prvdr_pool_f'
586         ,p_hook_type   => 'AI');
587       --
588   end;
589   --
590   -- End of API User Hook for post_update.
591   --
592   hr_utility.set_location(' Leaving:'||l_proc, 10);
593 End post_update;
594 --
595 -- ----------------------------------------------------------------------------
596 -- |-----------------------------< convert_defs >-----------------------------|
597 -- ----------------------------------------------------------------------------
598 -- {Start Of Comments}
599 --
600 -- Description:
601 --   The Convert_Defs procedure has one very important function:
602 --   It must return the record structure for the row with all system defaulted
603 --   values converted into its corresponding parameter value for update. When
604 --   we attempt to update a row through the Upd process , certain
605 --   parameters can be defaulted which enables flexibility in the calling of
606 --   the upd process (e.g. only attributes which need to be updated need to be
607 --   specified). For the upd process to determine which attributes
608 --   have NOT been specified we need to check if the parameter has a reserved
609 --   system default value. Therefore, for all parameters which have a
610 --   corresponding reserved system default mechanism specified we need to
611 --   check if a system default is being used. If a system default is being
612 --   used then we convert the defaulted value into its corresponding attribute
613 --   value held in the g_old_rec data structure.
614 --
615 -- Prerequisites:
616 --   This private function can only be called from the upd process.
617 --
618 -- In Parameters:
619 --   A Pl/Sql record structre.
620 --
621 -- Post Success:
622 --   The record structure will be returned with all system defaulted parameter
623 --   values converted into its current row attribute value.
624 --
625 -- Post Failure:
626 --   No direct error handling is required within this function. Any possible
627 --   errors within this procedure will be a PL/SQL value error due to conversion
628 
629 --   of datatypes or data lengths.
630 --
631 -- Developer Implementation Notes:
632 --   None.
633 --
634 -- Access Status:
635 --   Internal Row Handler Use Only.
636 --
637 -- {End Of Comments}
638 -- ----------------------------------------------------------------------------
639 Procedure convert_defs(p_rec in out nocopy ben_bpp_shd.g_rec_type) is
640 --
641   l_proc  varchar2(72) := g_package||'convert_defs';
642 --
643 Begin
644   --
645   hr_utility.set_location('Entering:'||l_proc, 5);
646   --
647   -- We must now examine each argument value in the
648   -- p_rec plsql record structure
649   -- to see if a system default is being used. If a system default
650   -- is being used then we must set to the 'current' argument value.
651   --
652   If (p_rec.name = hr_api.g_varchar2) then
653     p_rec.name :=
654     ben_bpp_shd.g_old_rec.name;
655   End If;
656   If (p_rec.pgm_pool_flag = hr_api.g_varchar2) then
657     p_rec.pgm_pool_flag :=
658     ben_bpp_shd.g_old_rec.pgm_pool_flag;
659   End If;
660   If (p_rec.excs_alwys_fftd_flag = hr_api.g_varchar2) then
661     p_rec.excs_alwys_fftd_flag :=
662     ben_bpp_shd.g_old_rec.excs_alwys_fftd_flag;
663   End If;
664   If (p_rec.use_for_pgm_pool_flag = hr_api.g_varchar2) then
665     p_rec.use_for_pgm_pool_flag :=
666     ben_bpp_shd.g_old_rec.use_for_pgm_pool_flag;
667   End If;
668   If (p_rec.pct_rndg_cd = hr_api.g_varchar2) then
669     p_rec.pct_rndg_cd :=
670     ben_bpp_shd.g_old_rec.pct_rndg_cd;
671   End If;
672   If (p_rec.pct_rndg_rl = hr_api.g_number) then
673     p_rec.pct_rndg_rl :=
674     ben_bpp_shd.g_old_rec.pct_rndg_rl;
675   End If;
676   If (p_rec.val_rndg_cd = hr_api.g_varchar2) then
677     p_rec.val_rndg_cd :=
678     ben_bpp_shd.g_old_rec.val_rndg_cd;
679   End If;
680   If (p_rec.val_rndg_rl = hr_api.g_number) then
681     p_rec.val_rndg_rl :=
682     ben_bpp_shd.g_old_rec.val_rndg_rl;
683   End If;
684   If (p_rec.dflt_excs_trtmt_cd = hr_api.g_varchar2) then
685     p_rec.dflt_excs_trtmt_cd :=
686     ben_bpp_shd.g_old_rec.dflt_excs_trtmt_cd;
687   End If;
688   If (p_rec.dflt_excs_trtmt_rl = hr_api.g_number) then
689     p_rec.dflt_excs_trtmt_rl :=
690     ben_bpp_shd.g_old_rec.dflt_excs_trtmt_rl;
691   End If;
692   If (p_rec.rlovr_rstrcn_cd = hr_api.g_varchar2) then
693     p_rec.rlovr_rstrcn_cd :=
694     ben_bpp_shd.g_old_rec.rlovr_rstrcn_cd;
695   End If;
696   If (p_rec.no_mn_dstrbl_pct_flag = hr_api.g_varchar2) then
697     p_rec.no_mn_dstrbl_pct_flag :=
698     ben_bpp_shd.g_old_rec.no_mn_dstrbl_pct_flag;
699   End If;
700   If (p_rec.no_mn_dstrbl_val_flag = hr_api.g_varchar2) then
701     p_rec.no_mn_dstrbl_val_flag :=
702     ben_bpp_shd.g_old_rec.no_mn_dstrbl_val_flag;
703   End If;
704   If (p_rec.no_mx_dstrbl_pct_flag = hr_api.g_varchar2) then
705     p_rec.no_mx_dstrbl_pct_flag :=
706     ben_bpp_shd.g_old_rec.no_mx_dstrbl_pct_flag;
707   End If;
708   If (p_rec.no_mx_dstrbl_val_flag = hr_api.g_varchar2) then
709     p_rec.no_mx_dstrbl_val_flag :=
710     ben_bpp_shd.g_old_rec.no_mx_dstrbl_val_flag;
711   End If;
712   If (p_rec.auto_alct_excs_flag = hr_api.g_varchar2) then
713     p_rec.auto_alct_excs_flag :=
714     ben_bpp_shd.g_old_rec.auto_alct_excs_flag;
715   End If;
716   If (p_rec.alws_ngtv_crs_flag = hr_api.g_varchar2) then
717     p_rec.alws_ngtv_crs_flag :=
718     ben_bpp_shd.g_old_rec.alws_ngtv_crs_flag;
719   End If;
720   If (p_rec.uses_net_crs_mthd_flag = hr_api.g_varchar2) then
721     p_rec.uses_net_crs_mthd_flag :=
722     ben_bpp_shd.g_old_rec.uses_net_crs_mthd_flag;
723   End If;
724   If (p_rec.mx_dfcit_pct_pool_crs_num = hr_api.g_number) then
725     p_rec.mx_dfcit_pct_pool_crs_num :=
726     ben_bpp_shd.g_old_rec.mx_dfcit_pct_pool_crs_num;
727   End If;
728   If (p_rec.mx_dfcit_pct_comp_num = hr_api.g_number) then
729     p_rec.mx_dfcit_pct_comp_num :=
730     ben_bpp_shd.g_old_rec.mx_dfcit_pct_comp_num;
731   End If;
732    If (p_rec.comp_lvl_fctr_id = hr_api.g_number) then
733     p_rec.comp_lvl_fctr_id :=
734     ben_bpp_shd.g_old_rec.comp_lvl_fctr_id;
735   End If;
736   If (p_rec.mn_dstrbl_pct_num = hr_api.g_number) then
737     p_rec.mn_dstrbl_pct_num :=
738     ben_bpp_shd.g_old_rec.mn_dstrbl_pct_num;
739   End If;
740   If (p_rec.mn_dstrbl_val = hr_api.g_number) then
741     p_rec.mn_dstrbl_val :=
742     ben_bpp_shd.g_old_rec.mn_dstrbl_val;
743   End If;
744   If (p_rec.mx_dstrbl_pct_num = hr_api.g_number) then
745     p_rec.mx_dstrbl_pct_num :=
746     ben_bpp_shd.g_old_rec.mx_dstrbl_pct_num;
747   End If;
748   If (p_rec.mx_dstrbl_val = hr_api.g_number) then
749     p_rec.mx_dstrbl_val :=
750     ben_bpp_shd.g_old_rec.mx_dstrbl_val;
751   End If;
752   If (p_rec.excs_trtmt_cd = hr_api.g_varchar2) then
753     p_rec.excs_trtmt_cd :=
754     ben_bpp_shd.g_old_rec.excs_trtmt_cd;
755   End If;
756   If (p_rec.ptip_id = hr_api.g_number) then
757     p_rec.ptip_id :=
758     ben_bpp_shd.g_old_rec.ptip_id;
759   End If;
760   If (p_rec.plip_id = hr_api.g_number) then
761     p_rec.plip_id :=
762     ben_bpp_shd.g_old_rec.plip_id;
763   End If;
764   If (p_rec.pgm_id = hr_api.g_number) then
765     p_rec.pgm_id :=
766     ben_bpp_shd.g_old_rec.pgm_id;
767   End If;
768   If (p_rec.oiplip_id = hr_api.g_number) then
769     p_rec.oiplip_id :=
770     ben_bpp_shd.g_old_rec.oiplip_id;
771   End If;
772   If (p_rec.cmbn_plip_id = hr_api.g_number) then
773     p_rec.cmbn_plip_id :=
774     ben_bpp_shd.g_old_rec.cmbn_plip_id;
775   End If;
776   If (p_rec.cmbn_ptip_id = hr_api.g_number) then
777     p_rec.cmbn_ptip_id :=
778     ben_bpp_shd.g_old_rec.cmbn_ptip_id;
779   End If;
780   If (p_rec.cmbn_ptip_opt_id = hr_api.g_number) then
781     p_rec.cmbn_ptip_opt_id :=
782     ben_bpp_shd.g_old_rec.cmbn_ptip_opt_id;
783   End If;
784   If (p_rec.business_group_id = hr_api.g_number) then
785     p_rec.business_group_id :=
786     ben_bpp_shd.g_old_rec.business_group_id;
787   End If;
788   If (p_rec.bpp_attribute_category = hr_api.g_varchar2) then
789     p_rec.bpp_attribute_category :=
790     ben_bpp_shd.g_old_rec.bpp_attribute_category;
791   End If;
792   If (p_rec.bpp_attribute1 = hr_api.g_varchar2) then
793     p_rec.bpp_attribute1 :=
794     ben_bpp_shd.g_old_rec.bpp_attribute1;
795   End If;
796   If (p_rec.bpp_attribute2 = hr_api.g_varchar2) then
797     p_rec.bpp_attribute2 :=
798     ben_bpp_shd.g_old_rec.bpp_attribute2;
799   End If;
800   If (p_rec.bpp_attribute3 = hr_api.g_varchar2) then
801     p_rec.bpp_attribute3 :=
802     ben_bpp_shd.g_old_rec.bpp_attribute3;
803   End If;
804   If (p_rec.bpp_attribute4 = hr_api.g_varchar2) then
805     p_rec.bpp_attribute4 :=
806     ben_bpp_shd.g_old_rec.bpp_attribute4;
807   End If;
808   If (p_rec.bpp_attribute5 = hr_api.g_varchar2) then
809     p_rec.bpp_attribute5 :=
810     ben_bpp_shd.g_old_rec.bpp_attribute5;
811   End If;
812   If (p_rec.bpp_attribute6 = hr_api.g_varchar2) then
813     p_rec.bpp_attribute6 :=
814     ben_bpp_shd.g_old_rec.bpp_attribute6;
815   End If;
816   If (p_rec.bpp_attribute7 = hr_api.g_varchar2) then
817     p_rec.bpp_attribute7 :=
818     ben_bpp_shd.g_old_rec.bpp_attribute7;
819   End If;
820   If (p_rec.bpp_attribute8 = hr_api.g_varchar2) then
821     p_rec.bpp_attribute8 :=
822     ben_bpp_shd.g_old_rec.bpp_attribute8;
823   End If;
824   If (p_rec.bpp_attribute9 = hr_api.g_varchar2) then
825     p_rec.bpp_attribute9 :=
826     ben_bpp_shd.g_old_rec.bpp_attribute9;
827   End If;
828   If (p_rec.bpp_attribute10 = hr_api.g_varchar2) then
829     p_rec.bpp_attribute10 :=
830     ben_bpp_shd.g_old_rec.bpp_attribute10;
831   End If;
832   If (p_rec.bpp_attribute11 = hr_api.g_varchar2) then
833     p_rec.bpp_attribute11 :=
834     ben_bpp_shd.g_old_rec.bpp_attribute11;
835   End If;
836   If (p_rec.bpp_attribute12 = hr_api.g_varchar2) then
837     p_rec.bpp_attribute12 :=
838     ben_bpp_shd.g_old_rec.bpp_attribute12;
839   End If;
840   If (p_rec.bpp_attribute13 = hr_api.g_varchar2) then
841     p_rec.bpp_attribute13 :=
842     ben_bpp_shd.g_old_rec.bpp_attribute13;
843   End If;
844   If (p_rec.bpp_attribute14 = hr_api.g_varchar2) then
845     p_rec.bpp_attribute14 :=
846     ben_bpp_shd.g_old_rec.bpp_attribute14;
847   End If;
848   If (p_rec.bpp_attribute15 = hr_api.g_varchar2) then
849     p_rec.bpp_attribute15 :=
850     ben_bpp_shd.g_old_rec.bpp_attribute15;
851   End If;
852   If (p_rec.bpp_attribute16 = hr_api.g_varchar2) then
853     p_rec.bpp_attribute16 :=
854     ben_bpp_shd.g_old_rec.bpp_attribute16;
855   End If;
856   If (p_rec.bpp_attribute17 = hr_api.g_varchar2) then
857     p_rec.bpp_attribute17 :=
858     ben_bpp_shd.g_old_rec.bpp_attribute17;
859   End If;
860   If (p_rec.bpp_attribute18 = hr_api.g_varchar2) then
861     p_rec.bpp_attribute18 :=
862     ben_bpp_shd.g_old_rec.bpp_attribute18;
863   End If;
864   If (p_rec.bpp_attribute19 = hr_api.g_varchar2) then
865     p_rec.bpp_attribute19 :=
866     ben_bpp_shd.g_old_rec.bpp_attribute19;
867   End If;
868   If (p_rec.bpp_attribute20 = hr_api.g_varchar2) then
869     p_rec.bpp_attribute20 :=
870     ben_bpp_shd.g_old_rec.bpp_attribute20;
871   End If;
872   If (p_rec.bpp_attribute21 = hr_api.g_varchar2) then
873     p_rec.bpp_attribute21 :=
874     ben_bpp_shd.g_old_rec.bpp_attribute21;
875   End If;
876   If (p_rec.bpp_attribute22 = hr_api.g_varchar2) then
877     p_rec.bpp_attribute22 :=
878     ben_bpp_shd.g_old_rec.bpp_attribute22;
879   End If;
880   If (p_rec.bpp_attribute23 = hr_api.g_varchar2) then
881     p_rec.bpp_attribute23 :=
882     ben_bpp_shd.g_old_rec.bpp_attribute23;
883   End If;
884   If (p_rec.bpp_attribute24 = hr_api.g_varchar2) then
885     p_rec.bpp_attribute24 :=
886     ben_bpp_shd.g_old_rec.bpp_attribute24;
887   End If;
888   If (p_rec.bpp_attribute25 = hr_api.g_varchar2) then
889     p_rec.bpp_attribute25 :=
890     ben_bpp_shd.g_old_rec.bpp_attribute25;
891   End If;
892   If (p_rec.bpp_attribute26 = hr_api.g_varchar2) then
893     p_rec.bpp_attribute26 :=
894     ben_bpp_shd.g_old_rec.bpp_attribute26;
895   End If;
896   If (p_rec.bpp_attribute27 = hr_api.g_varchar2) then
897     p_rec.bpp_attribute27 :=
898     ben_bpp_shd.g_old_rec.bpp_attribute27;
899   End If;
900   If (p_rec.bpp_attribute28 = hr_api.g_varchar2) then
901     p_rec.bpp_attribute28 :=
902     ben_bpp_shd.g_old_rec.bpp_attribute28;
903   End If;
904   If (p_rec.bpp_attribute29 = hr_api.g_varchar2) then
905     p_rec.bpp_attribute29 :=
906     ben_bpp_shd.g_old_rec.bpp_attribute29;
907   End If;
908   If (p_rec.bpp_attribute30 = hr_api.g_varchar2) then
909     p_rec.bpp_attribute30 :=
910     ben_bpp_shd.g_old_rec.bpp_attribute30;
911   End If;
912 
913   --
914   hr_utility.set_location(' Leaving:'||l_proc, 10);
915 --
916 End convert_defs;
917 --
918 -- ----------------------------------------------------------------------------
919 -- |---------------------------------< upd >----------------------------------|
920 -- ----------------------------------------------------------------------------
921 Procedure upd
922   (
923   p_rec			in out nocopy 	ben_bpp_shd.g_rec_type,
924   p_effective_date	in 	date,
925   p_datetrack_mode	in 	varchar2
926   ) is
927 --
928   l_proc			varchar2(72) := g_package||'upd';
929   l_validation_start_date	date;
930   l_validation_end_date		date;
931 --
932 Begin
933   hr_utility.set_location('Entering:'||l_proc, 5);
934   --
935   -- Ensure that the DateTrack update mode is valid
936   --
937   dt_api.validate_dt_upd_mode(p_datetrack_mode => p_datetrack_mode);
938   --
939   -- We must lock the row which we need to update.
940   --
941   ben_bpp_shd.lck
942 	(p_effective_date	 => p_effective_date,
943       	 p_datetrack_mode	 => p_datetrack_mode,
944       	 p_bnft_prvdr_pool_id	 => p_rec.bnft_prvdr_pool_id,
945       	 p_object_version_number => p_rec.object_version_number,
946       	 p_validation_start_date => l_validation_start_date,
947       	 p_validation_end_date	 => l_validation_end_date);
948   --
949   -- 1. During an update system defaults are used to determine if
950   --    arguments have been defaulted or not. We must therefore
951   --    derive the full record structure values to be updated.
952   --
953   -- 2. Call the supporting update validate operations.
954   --
955   convert_defs(p_rec);
956   ben_bpp_bus.update_validate
957 	(p_rec			 => p_rec,
958 	 p_effective_date	 => p_effective_date,
959 	 p_datetrack_mode  	 => p_datetrack_mode,
960 	 p_validation_start_date => l_validation_start_date,
961 	 p_validation_end_date	 => l_validation_end_date);
962   --
963   -- Call the supporting pre-update operation
964   --
965   pre_update
966 	(p_rec			 => p_rec,
967 	 p_effective_date	 => p_effective_date,
968 	 p_datetrack_mode	 => p_datetrack_mode,
969 	 p_validation_start_date => l_validation_start_date,
970 	 p_validation_end_date	 => l_validation_end_date);
971   --
972   -- Update the row.
973   --
974   update_dml
975 	(p_rec			 => p_rec,
976 	 p_effective_date	 => p_effective_date,
977 	 p_datetrack_mode	 => p_datetrack_mode,
978 	 p_validation_start_date => l_validation_start_date,
979 	 p_validation_end_date	 => l_validation_end_date);
980   --
981   -- Call the supporting post-update operation
982   --
983   post_update
984 	(p_rec			 => p_rec,
985 	 p_effective_date	 => p_effective_date,
986 	 p_datetrack_mode	 => p_datetrack_mode,
987 	 p_validation_start_date => l_validation_start_date,
988 	 p_validation_end_date	 => l_validation_end_date);
989 End upd;
990 --
991 -- ----------------------------------------------------------------------------
992 -- |---------------------------------< upd >----------------------------------|
993 -- ----------------------------------------------------------------------------
994 Procedure upd
995   (
996   p_bnft_prvdr_pool_id           in number,
997   p_effective_start_date         out nocopy date,
998   p_effective_end_date           out nocopy date,
999   p_name                         in varchar2         default hr_api.g_varchar2,
1000   p_pgm_pool_flag                in varchar2         default hr_api.g_varchar2,
1001   p_excs_alwys_fftd_flag         in varchar2         default hr_api.g_varchar2,
1002   p_use_for_pgm_pool_flag        in varchar2         default hr_api.g_varchar2,
1003   p_pct_rndg_cd                  in varchar2         default hr_api.g_varchar2,
1004   p_pct_rndg_rl                  in number           default hr_api.g_number,
1005   p_val_rndg_cd                  in varchar2         default hr_api.g_varchar2,
1006   p_val_rndg_rl                  in number           default hr_api.g_number,
1007   p_dflt_excs_trtmt_cd           in varchar2         default hr_api.g_varchar2,
1008   p_dflt_excs_trtmt_rl           in number           default hr_api.g_number,
1009   p_rlovr_rstrcn_cd              in varchar2         default hr_api.g_varchar2,
1010   p_no_mn_dstrbl_pct_flag        in varchar2         default hr_api.g_varchar2,
1011   p_no_mn_dstrbl_val_flag        in varchar2         default hr_api.g_varchar2,
1012   p_no_mx_dstrbl_pct_flag        in varchar2         default hr_api.g_varchar2,
1013   p_no_mx_dstrbl_val_flag        in varchar2         default hr_api.g_varchar2,
1014   p_auto_alct_excs_flag          in varchar2         default hr_api.g_varchar2,
1015   p_alws_ngtv_crs_flag           in  varchar2        default hr_api.g_varchar2,
1016   p_uses_net_crs_mthd_flag       in  varchar2        default hr_api.g_varchar2,
1017   p_mx_dfcit_pct_pool_crs_num    in  number          default hr_api.g_number,
1018   p_mx_dfcit_pct_comp_num         in  number          default hr_api.g_number,
1019   p_comp_lvl_fctr_id             in  number          default hr_api.g_number,
1020   p_mn_dstrbl_pct_num            in number           default hr_api.g_number,
1021   p_mn_dstrbl_val                in number           default hr_api.g_number,
1022   p_mx_dstrbl_pct_num            in number           default hr_api.g_number,
1023   p_mx_dstrbl_val                in number           default hr_api.g_number,
1024   p_excs_trtmt_cd                in varchar2         default hr_api.g_varchar2,
1025   p_ptip_id                      in number           default hr_api.g_number,
1026   p_plip_id                      in number           default hr_api.g_number,
1027   p_pgm_id                       in number           default hr_api.g_number,
1028   p_oiplip_id                    in number           default hr_api.g_number,
1029   p_cmbn_plip_id                 in number           default hr_api.g_number,
1030   p_cmbn_ptip_id                 in number           default hr_api.g_number,
1031   p_cmbn_ptip_opt_id             in number           default hr_api.g_number,
1032   p_business_group_id            in number           default hr_api.g_number,
1033   p_bpp_attribute_category       in varchar2         default hr_api.g_varchar2,
1034   p_bpp_attribute1               in varchar2         default hr_api.g_varchar2,
1035   p_bpp_attribute2               in varchar2         default hr_api.g_varchar2,
1036   p_bpp_attribute3               in varchar2         default hr_api.g_varchar2,
1037   p_bpp_attribute4               in varchar2         default hr_api.g_varchar2,
1038   p_bpp_attribute5               in varchar2         default hr_api.g_varchar2,
1039   p_bpp_attribute6               in varchar2         default hr_api.g_varchar2,
1040   p_bpp_attribute7               in varchar2         default hr_api.g_varchar2,
1041   p_bpp_attribute8               in varchar2         default hr_api.g_varchar2,
1042   p_bpp_attribute9               in varchar2         default hr_api.g_varchar2,
1043   p_bpp_attribute10              in varchar2         default hr_api.g_varchar2,
1044   p_bpp_attribute11              in varchar2         default hr_api.g_varchar2,
1045   p_bpp_attribute12              in varchar2         default hr_api.g_varchar2,
1046   p_bpp_attribute13              in varchar2         default hr_api.g_varchar2,
1047   p_bpp_attribute14              in varchar2         default hr_api.g_varchar2,
1048   p_bpp_attribute15              in varchar2         default hr_api.g_varchar2,
1049   p_bpp_attribute16              in varchar2         default hr_api.g_varchar2,
1050   p_bpp_attribute17              in varchar2         default hr_api.g_varchar2,
1051   p_bpp_attribute18              in varchar2         default hr_api.g_varchar2,
1052   p_bpp_attribute19              in varchar2         default hr_api.g_varchar2,
1053   p_bpp_attribute20              in varchar2         default hr_api.g_varchar2,
1054   p_bpp_attribute21              in varchar2         default hr_api.g_varchar2,
1055   p_bpp_attribute22              in varchar2         default hr_api.g_varchar2,
1056   p_bpp_attribute23              in varchar2         default hr_api.g_varchar2,
1057   p_bpp_attribute24              in varchar2         default hr_api.g_varchar2,
1058   p_bpp_attribute25              in varchar2         default hr_api.g_varchar2,
1059   p_bpp_attribute26              in varchar2         default hr_api.g_varchar2,
1060   p_bpp_attribute27              in varchar2         default hr_api.g_varchar2,
1061   p_bpp_attribute28              in varchar2         default hr_api.g_varchar2,
1062   p_bpp_attribute29              in varchar2         default hr_api.g_varchar2,
1063   p_bpp_attribute30              in varchar2         default hr_api.g_varchar2,
1064   p_object_version_number        in out nocopy number,
1065   p_effective_date		 in date,
1066   p_datetrack_mode		 in varchar2
1067   ) is
1068 --
1069   l_rec		ben_bpp_shd.g_rec_type;
1070   l_proc	varchar2(72) := g_package||'upd';
1071 --
1072 Begin
1073   hr_utility.set_location('Entering:'||l_proc, 5);
1074   --
1075   -- Call conversion function to turn arguments into the
1076   -- l_rec structure.
1077   --
1078   l_rec :=
1079   ben_bpp_shd.convert_args
1080   (
1081   p_bnft_prvdr_pool_id,
1082   null,
1083   null,
1084   p_name,
1085   p_pgm_pool_flag,
1086   p_excs_alwys_fftd_flag,
1087   p_use_for_pgm_pool_flag,
1088   p_pct_rndg_cd,
1089   p_pct_rndg_rl,
1090   p_val_rndg_cd,
1091   p_val_rndg_rl,
1092   p_dflt_excs_trtmt_cd,
1093   p_dflt_excs_trtmt_rl,
1094   p_rlovr_rstrcn_cd,
1095   p_no_mn_dstrbl_pct_flag,
1096   p_no_mn_dstrbl_val_flag,
1097   p_no_mx_dstrbl_pct_flag,
1098   p_no_mx_dstrbl_val_flag,
1099   p_auto_alct_excs_flag,
1100   p_alws_ngtv_crs_flag ,
1101   p_uses_net_crs_mthd_flag,
1102   p_mx_dfcit_pct_pool_crs_num ,
1103   p_mx_dfcit_pct_comp_num ,
1104   p_comp_lvl_fctr_id,
1105   p_mn_dstrbl_pct_num,
1106   p_mn_dstrbl_val,
1107   p_mx_dstrbl_pct_num,
1108   p_mx_dstrbl_val,
1109   p_excs_trtmt_cd,
1110   p_ptip_id,
1111   p_plip_id,
1112   p_pgm_id,
1113   p_oiplip_id,
1114   p_cmbn_plip_id,
1115   p_cmbn_ptip_id,
1116   p_cmbn_ptip_opt_id,
1117   p_business_group_id,
1118   p_bpp_attribute_category,
1119   p_bpp_attribute1,
1120   p_bpp_attribute2,
1121   p_bpp_attribute3,
1122   p_bpp_attribute4,
1123   p_bpp_attribute5,
1124   p_bpp_attribute6,
1125   p_bpp_attribute7,
1126   p_bpp_attribute8,
1127   p_bpp_attribute9,
1128   p_bpp_attribute10,
1129   p_bpp_attribute11,
1130   p_bpp_attribute12,
1131   p_bpp_attribute13,
1132   p_bpp_attribute14,
1133   p_bpp_attribute15,
1134   p_bpp_attribute16,
1135   p_bpp_attribute17,
1136   p_bpp_attribute18,
1137   p_bpp_attribute19,
1138   p_bpp_attribute20,
1139   p_bpp_attribute21,
1140   p_bpp_attribute22,
1141   p_bpp_attribute23,
1142   p_bpp_attribute24,
1143   p_bpp_attribute25,
1144   p_bpp_attribute26,
1145   p_bpp_attribute27,
1146   p_bpp_attribute28,
1147   p_bpp_attribute29,
1148   p_bpp_attribute30,
1149   p_object_version_number
1150   );
1151   --
1152   -- Having converted the arguments into the
1153   -- plsql record structure we call the corresponding record
1154   -- business process.
1155   --
1156   upd(l_rec, p_effective_date, p_datetrack_mode);
1157   p_object_version_number       := l_rec.object_version_number;
1158   p_effective_start_date        := l_rec.effective_start_date;
1159   p_effective_end_date          := l_rec.effective_end_date;
1160   --
1161   --
1162   hr_utility.set_location(' Leaving:'||l_proc, 10);
1163 End upd;
1164 --
1165 end ben_bpp_upd;