DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_COP_UPD

Source


1 Package Body ben_cop_upd as
2 /* $Header: becoprhi.pkb 120.5.12020000.2 2012/07/03 12:02:13 amnaraya ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  ben_cop_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_cop_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_oipl_f',
78 	   p_base_key_column	=> 'oipl_id',
79 	   p_base_key_value	=> p_rec.oipl_id);
80     --
81     ben_cop_shd.g_api_dml := true;  -- Set the api dml status
82     --
83     -- Update the ben_oipl_f Row
84     --
85     update  ben_oipl_f
86     set
87     oipl_id                         = p_rec.oipl_id,
88     ivr_ident                       = p_rec.ivr_ident,
89     url_ref_name                    = p_rec.url_ref_name,
90     opt_id                          = p_rec.opt_id,
91     business_group_id               = p_rec.business_group_id,
92     pl_id                           = p_rec.pl_id,
93     ordr_num                        = p_rec.ordr_num,
94     rqd_perd_enrt_nenrt_val         = p_rec.rqd_perd_enrt_nenrt_val,
95     actl_prem_id                    = p_rec.actl_prem_id,
96     dflt_flag                       = p_rec.dflt_flag,
97     mndtry_flag                     = p_rec.mndtry_flag,
98     oipl_stat_cd                    = p_rec.oipl_stat_cd,
99     pcp_dsgn_cd                     = p_rec.pcp_dsgn_cd,
100     pcp_dpnt_dsgn_cd                = p_rec.pcp_dpnt_dsgn_cd,
101     rqd_perd_enrt_nenrt_uom         = p_rec.rqd_perd_enrt_nenrt_uom,
102     elig_apls_flag                  = p_rec.elig_apls_flag,
103     dflt_enrt_det_rl                = p_rec.dflt_enrt_det_rl,
104     trk_inelig_per_flag             = p_rec.trk_inelig_per_flag,
105     drvbl_fctr_prtn_elig_flag       = p_rec.drvbl_fctr_prtn_elig_flag,
106     mndtry_rl                       = p_rec.mndtry_rl,
107     rqd_perd_enrt_nenrt_rl          = p_rec.rqd_perd_enrt_nenrt_rl,
108     dflt_enrt_cd                    = p_rec.dflt_enrt_cd,
109     prtn_elig_ovrid_alwd_flag       = p_rec.prtn_elig_ovrid_alwd_flag,
110     drvbl_fctr_apls_rts_flag        = p_rec.drvbl_fctr_apls_rts_flag,
111     per_cvrd_cd                     = p_rec.per_cvrd_cd,
112     postelcn_edit_rl                = p_rec.postelcn_edit_rl,
113     vrfy_fmly_mmbr_cd               = p_rec.vrfy_fmly_mmbr_cd,
114     vrfy_fmly_mmbr_rl               = p_rec.vrfy_fmly_mmbr_rl,
115     enrt_cd                         = p_rec.enrt_cd,
116     enrt_rl                         = p_rec.enrt_rl,
117     auto_enrt_flag                  = p_rec.auto_enrt_flag,
118     auto_enrt_mthd_rl               = p_rec.auto_enrt_mthd_rl,
119     short_name			    = p_rec.short_name,			/*FHR*/
120     short_code			    = p_rec.short_code, 		/*FHR*/
121         legislation_code			    = p_rec.legislation_code, 		/*FHR*/
122         legislation_subgroup			    = p_rec.legislation_subgroup, 		/*FHR*/
123     hidden_flag			    = nvl(p_rec.hidden_flag,'N'),
124     susp_if_ctfn_not_prvd_flag      =  p_rec.susp_if_ctfn_not_prvd_flag,
125     ctfn_determine_cd               =  p_rec.ctfn_determine_cd,
126     cop_attribute_category          = p_rec.cop_attribute_category,
127     cop_attribute1                  = p_rec.cop_attribute1,
128     cop_attribute2                  = p_rec.cop_attribute2,
129     cop_attribute3                  = p_rec.cop_attribute3,
130     cop_attribute4                  = p_rec.cop_attribute4,
131     cop_attribute5                  = p_rec.cop_attribute5,
132     cop_attribute6                  = p_rec.cop_attribute6,
133     cop_attribute7                  = p_rec.cop_attribute7,
134     cop_attribute8                  = p_rec.cop_attribute8,
135     cop_attribute9                  = p_rec.cop_attribute9,
136     cop_attribute10                 = p_rec.cop_attribute10,
137     cop_attribute11                 = p_rec.cop_attribute11,
138     cop_attribute12                 = p_rec.cop_attribute12,
139     cop_attribute13                 = p_rec.cop_attribute13,
140     cop_attribute14                 = p_rec.cop_attribute14,
141     cop_attribute15                 = p_rec.cop_attribute15,
142     cop_attribute16                 = p_rec.cop_attribute16,
143     cop_attribute17                 = p_rec.cop_attribute17,
144     cop_attribute18                 = p_rec.cop_attribute18,
145     cop_attribute19                 = p_rec.cop_attribute19,
146     cop_attribute20                 = p_rec.cop_attribute20,
147     cop_attribute21                 = p_rec.cop_attribute21,
148     cop_attribute22                 = p_rec.cop_attribute22,
149     cop_attribute23                 = p_rec.cop_attribute23,
150     cop_attribute24                 = p_rec.cop_attribute24,
151     cop_attribute25                 = p_rec.cop_attribute25,
152     cop_attribute26                 = p_rec.cop_attribute26,
153     cop_attribute27                 = p_rec.cop_attribute27,
154     cop_attribute28                 = p_rec.cop_attribute28,
155     cop_attribute29                 = p_rec.cop_attribute29,
156     cop_attribute30                 = p_rec.cop_attribute30,
157     all_inelig                      = p_rec.all_inelig,
158     object_version_number           = p_rec.object_version_number
159     where   oipl_id = p_rec.oipl_id
160     and     effective_start_date = p_validation_start_date
161     and     effective_end_date   = p_validation_end_date;
162     --
163     ben_cop_shd.g_api_dml := false;   -- Unset the api dml status
164     --
165     -- Set the effective start and end dates
166     --
167     p_rec.effective_start_date := p_validation_start_date;
168     p_rec.effective_end_date   := p_validation_end_date;
169   End If;
170 --
171 hr_utility.set_location(' Leaving:'||l_proc, 15);
172 Exception
173   When hr_api.check_integrity_violated Then
174     -- A check constraint has been violated
175     ben_cop_shd.g_api_dml := false;   -- Unset the api dml status
176     ben_cop_shd.constraint_error
177       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
178   When hr_api.unique_integrity_violated Then
179     -- Unique integrity has been violated
180     ben_cop_shd.g_api_dml := false;   -- Unset the api dml status
181     ben_cop_shd.constraint_error
182       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
183   When Others Then
184     ben_cop_shd.g_api_dml := false;   -- Unset the api dml status
185     Raise;
186 End dt_update_dml;
187 --
188 -- ----------------------------------------------------------------------------
189 -- |------------------------------< update_dml >------------------------------|
190 -- ----------------------------------------------------------------------------
191 -- {Start Of Comments}
192 --
193 -- Description:
194 --   This procedure calls the dt_update_dml control logic which handles
195 --   the actual datetrack dml.
196 --
197 -- Prerequisites:
198 --   This is an internal private procedure which must be called from the upd
199 --   procedure.
200 --
201 -- In Parameters:
202 --   A Pl/Sql record structre.
203 --
204 -- Post Success:
205 --   Processing contines.
206 --
207 -- Post Failure:
208 --   No specific error handling is required within this procedure.
209 --
210 -- Developer Implementation Notes:
211 --   The update 'set' arguments list should be modified if any of your
212 --   attributes are not updateable.
213 --
214 -- Access Status:
215 --   Internal Row Handler Use Only.
216 --
217 -- {End Of Comments}
218 -- ----------------------------------------------------------------------------
219 Procedure update_dml
220 	(p_rec 			 in out nocopy ben_cop_shd.g_rec_type,
221 	 p_effective_date	 in	date,
222 	 p_datetrack_mode	 in	varchar2,
223 	 p_validation_start_date in	date,
224 	 p_validation_end_date	 in	date) is
225 --
226   l_proc	varchar2(72) := g_package||'update_dml';
227 --
228 Begin
229   hr_utility.set_location('Entering:'||l_proc, 5);
230   --
231   dt_update_dml(p_rec			=> p_rec,
232 		p_effective_date	=> p_effective_date,
233 		p_datetrack_mode	=> p_datetrack_mode,
234        		p_validation_start_date	=> p_validation_start_date,
235 		p_validation_end_date	=> p_validation_end_date);
236   --
237   hr_utility.set_location(' Leaving:'||l_proc, 10);
238 End update_dml;
239 --
240 -- ----------------------------------------------------------------------------
241 -- |----------------------------< dt_pre_update >-----------------------------|
242 -- ----------------------------------------------------------------------------
243 -- {Start Of Comments}
244 --
245 -- Description:
246 --   The dt_pre_update procedure controls the execution
247 --   of dml for the datetrack modes of: UPDATE, UPDATE_OVERRIDE
248 --   and UPDATE_CHANGE_INSERT only. The execution required is as
249 --   follows:
250 --
251 --   1) Providing the datetrack update mode is not 'CORRECTION'
252 --      then set the effective end date of the current row (this
253 --      will be the validation_start_date - 1).
254 --   2) If the datetrack mode is 'UPDATE_OVERRIDE' then call the
255 --      corresponding delete_dml process to delete any future rows
256 --      where the effective_start_date is greater than or equal to
257 --	the validation_start_date.
258 --   3) Call the insert_dml process to insert the new updated row
259 --      details..
260 --
261 -- Prerequisites:
262 --   This is an internal procedure which is called from the
263 --   pre_update procedure.
264 --
265 -- In Parameters:
266 --
267 -- Post Success:
268 --   Processing continues.
269 --
270 -- Post Failure:
271 --   If an error has occurred, an error message and exception will be raised
272 --   but not handled.
273 --
274 -- Developer Implementation Notes:
275 --   This is an internal procedure which is required by Datetrack. Don't
276 --   remove or modify.
277 --
278 -- Access Status:
279 --   Internal Row Handler Use Only.
280 --
281 -- {End Of Comments}
282 -- ----------------------------------------------------------------------------
283 Procedure dt_pre_update
284 	(p_rec 			 in out nocopy ben_cop_shd.g_rec_type,
285 	 p_effective_date	 in	date,
286 	 p_datetrack_mode	 in	varchar2,
287 	 p_validation_start_date in	date,
288 	 p_validation_end_date	 in	date) is
289 --
290   l_proc	         varchar2(72) := g_package||'dt_pre_update';
291   l_dummy_version_number number;
292 --
293 Begin
294   hr_utility.set_location('Entering:'||l_proc, 5);
295   If (p_datetrack_mode <> 'CORRECTION') then
296     hr_utility.set_location(l_proc, 10);
297     --
298     -- Update the current effective end date
299     --
300     ben_cop_shd.upd_effective_end_date
301      (p_effective_date	       => p_effective_date,
302       p_base_key_value	       => p_rec.oipl_id,
303       p_new_effective_end_date => (p_validation_start_date - 1),
304       p_validation_start_date  => p_validation_start_date,
305       p_validation_end_date    => p_validation_end_date,
306       p_object_version_number  => l_dummy_version_number);
307     --
308     If (p_datetrack_mode = 'UPDATE_OVERRIDE') then
309       hr_utility.set_location(l_proc, 15);
310       --
311       -- As the datetrack mode is 'UPDATE_OVERRIDE' then we must
312       -- delete any future rows
313       --
314       ben_cop_del.delete_dml
315         (p_rec			 => p_rec,
316 	 p_effective_date	 => p_effective_date,
317 	 p_datetrack_mode	 => p_datetrack_mode,
318 	 p_validation_start_date => p_validation_start_date,
319 	 p_validation_end_date   => p_validation_end_date);
320     End If;
321     hr_utility.set_location(l_proc, 20);
322     --
323     -- We must now insert the updated row
324     --
325     ben_cop_ins.insert_dml
326       (p_rec			=> p_rec,
327        p_effective_date		=> p_effective_date,
328        p_datetrack_mode		=> p_datetrack_mode,
329        p_validation_start_date	=> p_validation_start_date,
330        p_validation_end_date	=> p_validation_end_date);
331   End If;
332   hr_utility.set_location(' Leaving:'||l_proc, 20);
333 End dt_pre_update;
334 --
335 -- ----------------------------------------------------------------------------
336 -- |------------------------------< pre_update >------------------------------|
337 -- ----------------------------------------------------------------------------
338 -- {Start Of Comments}
339 --
340 -- Description:
341 --   This private procedure contains any processing which is required before
342 --   the update dml.
343 --
344 -- Prerequisites:
345 --   This is an internal procedure which is called from the upd procedure.
346 --
347 -- In Parameters:
348 --   A Pl/Sql record structre.
349 --
350 -- Post Success:
351 --   Processing continues.
352 --
353 -- Post Failure:
354 --   If an error has occurred, an error message and exception will be raised
355 --   but not handled.
356 --
357 -- Developer Implementation Notes:
358 --   Any pre-processing required before the update dml is issued should be
359 --   coded within this procedure. It is important to note that any 3rd party
360 --   maintenance should be reviewed before placing in this procedure. The call
361 --   to the dt_update_dml procedure should NOT be removed.
362 --
363 -- Access Status:
364 --   Internal Row Handler Use Only.
365 --
366 -- {End Of Comments}
367 -- ----------------------------------------------------------------------------
368 Procedure pre_update
369 	(p_rec 			 in out nocopy ben_cop_shd.g_rec_type,
370 	 p_effective_date	 in	date,
371 	 p_datetrack_mode	 in	varchar2,
372 	 p_validation_start_date in	date,
373 	 p_validation_end_date	 in	date) is
374 --
375   l_proc	varchar2(72) := g_package||'pre_update';
376 --
377 Begin
378   hr_utility.set_location('Entering:'||l_proc, 5);
379   --
380   --
381   --
382   dt_pre_update
383     (p_rec 		     => p_rec,
384      p_effective_date	     => p_effective_date,
385      p_datetrack_mode	     => p_datetrack_mode,
386      p_validation_start_date => p_validation_start_date,
387      p_validation_end_date   => p_validation_end_date);
388   --
389   hr_utility.set_location(' Leaving:'||l_proc, 10);
390 End pre_update;
391 --
392 -- ----------------------------------------------------------------------------
393 -- |-----------------------------< post_update >------------------------------|
394 -- ----------------------------------------------------------------------------
395 -- {Start Of Comments}
396 --
397 -- Description:
398 --   This private procedure contains any processing which is required after the
399 --   update dml.
400 --
401 -- Prerequisites:
402 --   This is an internal procedure which is called from the upd procedure.
403 --
404 -- In Parameters:
405 --   A Pl/Sql record structre.
406 --
407 -- Post Success:
408 --   Processing continues.
409 --
410 -- Post Failure:
411 --   If an error has occurred, an error message and exception will be raised
412 --   but not handled.
413 --
414 -- Developer Implementation Notes:
415 --   Any post-processing required after the update dml is issued should be
416 --   coded within this procedure. It is important to note that any 3rd party
417 --   maintenance should be reviewed before placing in this procedure.
418 --
419 -- Access Status:
420 --   Internal Row Handler Use Only.
421 --
422 -- {End Of Comments}
423 -- ----------------------------------------------------------------------------
424 Procedure post_update
425 	(p_rec 			 in ben_cop_shd.g_rec_type,
426 	 p_effective_date	 in date,
427 	 p_datetrack_mode	 in varchar2,
428 	 p_validation_start_date in date,
429 	 p_validation_end_date	 in date) is
430 --
431   l_proc	varchar2(72) := g_package||'post_update';
432 --
433 Begin
434   hr_utility.set_location('Entering:'||l_proc, 5);
435   --
436   -- Added for GSP validations
437   pqh_gsp_ben_validations.oipl_validations
438   	(  p_oipl_id			=> p_rec.oipl_id
439   	 , p_dml_operation 		=> 'U'
440   	 , p_effective_date 		=> p_effective_date
441   	 , p_business_group_id  	=> p_rec.business_group_id
442   	 , p_oipl_stat_cd		=> p_rec.oipl_stat_cd
443   	 );
444 
445   -- Start of API User Hook for post_update.
446   --
447   begin
448     --
449     ben_cop_rku.after_update
450     (
451      p_oipl_id                     => p_rec.oipl_id
452     ,p_effective_start_date        => p_rec.effective_start_date
453     ,p_effective_end_date          => p_rec.effective_end_date
454     ,p_ivr_ident                   => p_rec.ivr_ident
455     ,p_url_ref_name                => p_rec.url_ref_name
456     ,p_opt_id                      => p_rec.opt_id
457     ,p_business_group_id           => p_rec.business_group_id
458     ,p_pl_id                       => p_rec.pl_id
459     ,p_ordr_num                    => p_rec.ordr_num
460     ,p_rqd_perd_enrt_nenrt_val     => p_rec.rqd_perd_enrt_nenrt_val
461     ,p_actl_prem_id                => p_rec.actl_prem_id
462     ,p_dflt_flag                   => p_rec.dflt_flag
463     ,p_mndtry_flag                 => p_rec.mndtry_flag
464     ,p_oipl_stat_cd                => p_rec.oipl_stat_cd
465     ,p_pcp_dsgn_cd                 => p_rec.pcp_dsgn_cd
466     ,p_pcp_dpnt_dsgn_cd            => p_rec.pcp_dpnt_dsgn_cd
467     ,p_rqd_perd_enrt_nenrt_uom     => p_rec.rqd_perd_enrt_nenrt_uom
468     ,p_elig_apls_flag              => p_rec.elig_apls_flag
469     ,p_dflt_enrt_det_rl            => p_rec.dflt_enrt_det_rl
470     ,p_trk_inelig_per_flag         => p_rec.trk_inelig_per_flag
471     ,p_drvbl_fctr_prtn_elig_flag   => p_rec.drvbl_fctr_prtn_elig_flag
472     ,p_mndtry_rl                   => p_rec.mndtry_rl
473     ,p_rqd_perd_enrt_nenrt_rl                   => p_rec.rqd_perd_enrt_nenrt_rl
474     ,p_dflt_enrt_cd                => p_rec.dflt_enrt_cd
475     ,p_prtn_elig_ovrid_alwd_flag   => p_rec.prtn_elig_ovrid_alwd_flag
476     ,p_drvbl_fctr_apls_rts_flag    => p_rec.drvbl_fctr_apls_rts_flag
477     ,p_per_cvrd_cd                 => p_rec.per_cvrd_cd
478     ,p_postelcn_edit_rl            => p_rec.postelcn_edit_rl
479     ,p_vrfy_fmly_mmbr_cd           => p_rec.vrfy_fmly_mmbr_cd
480     ,p_vrfy_fmly_mmbr_rl           => p_rec.vrfy_fmly_mmbr_rl
481     ,p_enrt_cd                     => p_rec.enrt_cd
482     ,p_enrt_rl                     => p_rec.enrt_rl
483     ,p_auto_enrt_flag              => p_rec.auto_enrt_flag
484     ,p_auto_enrt_mthd_rl           => p_rec.auto_enrt_mthd_rl
485     ,p_short_name		   => p_rec.short_name 		/*FHR*/
486     ,p_short_code		   => p_rec.short_code		/*FHR*/
487         ,p_legislation_code		   => p_rec.legislation_code		/*FHR*/
488         ,p_legislation_subgroup		   => p_rec.legislation_subgroup		/*FHR*/
489     ,p_hidden_flag		   => p_rec.hidden_flag
490     ,p_susp_if_ctfn_not_prvd_flag  => p_rec.susp_if_ctfn_not_prvd_flag
491     ,p_ctfn_determine_cd           => p_rec.ctfn_determine_cd
492     ,p_cop_attribute_category      => p_rec.cop_attribute_category
493     ,p_cop_attribute1              => p_rec.cop_attribute1
494     ,p_cop_attribute2              => p_rec.cop_attribute2
495     ,p_cop_attribute3              => p_rec.cop_attribute3
496     ,p_cop_attribute4              => p_rec.cop_attribute4
497     ,p_cop_attribute5              => p_rec.cop_attribute5
498     ,p_cop_attribute6              => p_rec.cop_attribute6
499     ,p_cop_attribute7              => p_rec.cop_attribute7
500     ,p_cop_attribute8              => p_rec.cop_attribute8
501     ,p_cop_attribute9              => p_rec.cop_attribute9
502     ,p_cop_attribute10             => p_rec.cop_attribute10
503     ,p_cop_attribute11             => p_rec.cop_attribute11
504     ,p_cop_attribute12             => p_rec.cop_attribute12
505     ,p_cop_attribute13             => p_rec.cop_attribute13
506     ,p_cop_attribute14             => p_rec.cop_attribute14
507     ,p_cop_attribute15             => p_rec.cop_attribute15
508     ,p_cop_attribute16             => p_rec.cop_attribute16
509     ,p_cop_attribute17             => p_rec.cop_attribute17
510     ,p_cop_attribute18             => p_rec.cop_attribute18
511     ,p_cop_attribute19             => p_rec.cop_attribute19
512     ,p_cop_attribute20             => p_rec.cop_attribute20
513     ,p_cop_attribute21             => p_rec.cop_attribute21
514     ,p_cop_attribute22             => p_rec.cop_attribute22
515     ,p_cop_attribute23             => p_rec.cop_attribute23
516     ,p_cop_attribute24             => p_rec.cop_attribute24
517     ,p_cop_attribute25             => p_rec.cop_attribute25
518     ,p_cop_attribute26             => p_rec.cop_attribute26
519     ,p_cop_attribute27             => p_rec.cop_attribute27
520     ,p_cop_attribute28             => p_rec.cop_attribute28
521     ,p_cop_attribute29             => p_rec.cop_attribute29
522     ,p_cop_attribute30             => p_rec.cop_attribute30
523     ,p_all_inelig             => p_rec.all_inelig
524     ,p_object_version_number       => p_rec.object_version_number
525     ,p_effective_date              => p_effective_date
526     ,p_datetrack_mode              => p_datetrack_mode
527     ,p_validation_start_date       => p_validation_start_date
528     ,p_validation_end_date         => p_validation_end_date
529     ,p_effective_start_date_o      => ben_cop_shd.g_old_rec.effective_start_date
530     ,p_effective_end_date_o        => ben_cop_shd.g_old_rec.effective_end_date
531     ,p_ivr_ident_o                 => ben_cop_shd.g_old_rec.ivr_ident
532     ,p_url_ref_name_o              => ben_cop_shd.g_old_rec.url_ref_name
533     ,p_opt_id_o                    => ben_cop_shd.g_old_rec.opt_id
534     ,p_business_group_id_o         => ben_cop_shd.g_old_rec.business_group_id
535     ,p_pl_id_o                     => ben_cop_shd.g_old_rec.pl_id
536     ,p_ordr_num_o                  => ben_cop_shd.g_old_rec.ordr_num
537     ,p_rqd_perd_enrt_nenrt_val_o                  => ben_cop_shd.g_old_rec.rqd_perd_enrt_nenrt_val
538     ,p_actl_prem_id_o              => ben_cop_shd.g_old_rec.actl_prem_id
539     ,p_dflt_flag_o                 => ben_cop_shd.g_old_rec.dflt_flag
540     ,p_mndtry_flag_o               => ben_cop_shd.g_old_rec.mndtry_flag
541     ,p_oipl_stat_cd_o              => ben_cop_shd.g_old_rec.oipl_stat_cd
542     ,p_pcp_dsgn_cd_o               => ben_cop_shd.g_old_rec.pcp_dsgn_cd
543     ,p_pcp_dpnt_dsgn_cd_o          => ben_cop_shd.g_old_rec.pcp_dpnt_dsgn_cd
544     ,p_rqd_perd_enrt_nenrt_uom_o   => ben_cop_shd.g_old_rec.rqd_perd_enrt_nenrt_uom
545     ,p_elig_apls_flag_o            => ben_cop_shd.g_old_rec.elig_apls_flag
546     ,p_dflt_enrt_det_rl_o          => ben_cop_shd.g_old_rec.dflt_enrt_det_rl
547     ,p_trk_inelig_per_flag_o       => ben_cop_shd.g_old_rec.trk_inelig_per_flag
548     ,p_drvbl_fctr_prtn_elig_flag_o => ben_cop_shd.g_old_rec.drvbl_fctr_prtn_elig_flag
549     ,p_mndtry_rl_o                 => ben_cop_shd.g_old_rec.mndtry_rl
550     ,p_rqd_perd_enrt_nenrt_rl_o    => ben_cop_shd.g_old_rec.rqd_perd_enrt_nenrt_rl
551     ,p_dflt_enrt_cd_o              => ben_cop_shd.g_old_rec.dflt_enrt_cd
552     ,p_prtn_elig_ovrid_alwd_flag_o => ben_cop_shd.g_old_rec.prtn_elig_ovrid_alwd_flag
553     ,p_drvbl_fctr_apls_rts_flag_o  => ben_cop_shd.g_old_rec.drvbl_fctr_apls_rts_flag
554     ,p_per_cvrd_cd_o               => ben_cop_shd.g_old_rec.per_cvrd_cd
555     ,p_postelcn_edit_rl_o          => ben_cop_shd.g_old_rec.postelcn_edit_rl
556     ,p_vrfy_fmly_mmbr_cd_o         => ben_cop_shd.g_old_rec.vrfy_fmly_mmbr_cd
557     ,p_vrfy_fmly_mmbr_rl_o         => ben_cop_shd.g_old_rec.vrfy_fmly_mmbr_rl
558     ,p_enrt_cd_o                   => ben_cop_shd.g_old_rec.enrt_cd
559     ,p_enrt_rl_o                   => ben_cop_shd.g_old_rec.enrt_rl
560     ,p_auto_enrt_flag_o            => ben_cop_shd.g_old_rec.auto_enrt_flag
561     ,p_auto_enrt_mthd_rl_o         => ben_cop_shd.g_old_rec.auto_enrt_mthd_rl
562     ,p_short_name_o		   => ben_cop_shd.g_old_rec.short_name 		/*FHR*/
563     ,p_short_code_o		   => ben_cop_shd.g_old_rec.short_code		/*FHR*/
564         ,p_legislation_code_o		   => ben_cop_shd.g_old_rec.legislation_code		/*FHR*/
565         ,p_legislation_subgroup_o		   => ben_cop_shd.g_old_rec.legislation_subgroup		/*FHR*/
566     ,p_hidden_flag_o		   => ben_cop_shd.g_old_rec.hidden_flag
567      ,p_susp_if_ctfn_not_prvd_flag_o => ben_cop_shd.g_old_rec.susp_if_ctfn_not_prvd_flag
568      ,p_ctfn_determine_cd_o     => ben_cop_shd.g_old_rec.ctfn_determine_cd
569     ,p_cop_attribute_category_o    => ben_cop_shd.g_old_rec.cop_attribute_category
570     ,p_cop_attribute1_o            => ben_cop_shd.g_old_rec.cop_attribute1
571     ,p_cop_attribute2_o            => ben_cop_shd.g_old_rec.cop_attribute2
572     ,p_cop_attribute3_o            => ben_cop_shd.g_old_rec.cop_attribute3
573     ,p_cop_attribute4_o            => ben_cop_shd.g_old_rec.cop_attribute4
574     ,p_cop_attribute5_o            => ben_cop_shd.g_old_rec.cop_attribute5
575     ,p_cop_attribute6_o            => ben_cop_shd.g_old_rec.cop_attribute6
576     ,p_cop_attribute7_o            => ben_cop_shd.g_old_rec.cop_attribute7
577     ,p_cop_attribute8_o            => ben_cop_shd.g_old_rec.cop_attribute8
578     ,p_cop_attribute9_o            => ben_cop_shd.g_old_rec.cop_attribute9
579     ,p_cop_attribute10_o           => ben_cop_shd.g_old_rec.cop_attribute10
580     ,p_cop_attribute11_o           => ben_cop_shd.g_old_rec.cop_attribute11
581     ,p_cop_attribute12_o           => ben_cop_shd.g_old_rec.cop_attribute12
582     ,p_cop_attribute13_o           => ben_cop_shd.g_old_rec.cop_attribute13
583     ,p_cop_attribute14_o           => ben_cop_shd.g_old_rec.cop_attribute14
584     ,p_cop_attribute15_o           => ben_cop_shd.g_old_rec.cop_attribute15
585     ,p_cop_attribute16_o           => ben_cop_shd.g_old_rec.cop_attribute16
586     ,p_cop_attribute17_o           => ben_cop_shd.g_old_rec.cop_attribute17
587     ,p_cop_attribute18_o           => ben_cop_shd.g_old_rec.cop_attribute18
588     ,p_cop_attribute19_o           => ben_cop_shd.g_old_rec.cop_attribute19
589     ,p_cop_attribute20_o           => ben_cop_shd.g_old_rec.cop_attribute20
590     ,p_cop_attribute21_o           => ben_cop_shd.g_old_rec.cop_attribute21
591     ,p_cop_attribute22_o           => ben_cop_shd.g_old_rec.cop_attribute22
592     ,p_cop_attribute23_o           => ben_cop_shd.g_old_rec.cop_attribute23
593     ,p_cop_attribute24_o           => ben_cop_shd.g_old_rec.cop_attribute24
594     ,p_cop_attribute25_o           => ben_cop_shd.g_old_rec.cop_attribute25
595     ,p_cop_attribute26_o           => ben_cop_shd.g_old_rec.cop_attribute26
596     ,p_cop_attribute27_o           => ben_cop_shd.g_old_rec.cop_attribute27
597     ,p_cop_attribute28_o           => ben_cop_shd.g_old_rec.cop_attribute28
598     ,p_cop_attribute29_o           => ben_cop_shd.g_old_rec.cop_attribute29
599     ,p_cop_attribute30_o           => ben_cop_shd.g_old_rec.cop_attribute30
600     ,p_all_inelig_o             => ben_cop_shd.g_old_rec.all_inelig
601     ,p_object_version_number_o     => ben_cop_shd.g_old_rec.object_version_number
602     );
603     --
604   exception
605     --
606     when hr_api.cannot_find_prog_unit then
607       --
608       hr_api.cannot_find_prog_unit_error
609         (p_module_name => 'ben_oipl_f'
610         ,p_hook_type   => 'AU');
611       --
612   end;
613   --
614   -- End of API User Hook for post_update.
615   --
616   hr_utility.set_location(' Leaving:'||l_proc, 10);
617 End post_update;
618 --
619 -- ----------------------------------------------------------------------------
620 -- |-----------------------------< convert_defs >-----------------------------|
621 -- ----------------------------------------------------------------------------
622 -- {Start Of Comments}
623 --
624 -- Description:
625 --   The Convert_Defs procedure has one very important function:
626 --   It must return the record structure for the row with all system defaulted
627 --   values converted into its corresponding parameter value for update. When
628 --   we attempt to update a row through the Upd process , certain
629 --   parameters can be defaulted which enables flexibility in the calling of
630 --   the upd process (e.g. only attributes which need to be updated need to be
631 --   specified). For the upd process to determine which attributes
632 --   have NOT been specified we need to check if the parameter has a reserved
633 --   system default value. Therefore, for all parameters which have a
634 --   corresponding reserved system default mechanism specified we need to
635 --   check if a system default is being used. If a system default is being
636 --   used then we convert the defaulted value into its corresponding attribute
637 --   value held in the g_old_rec data structure.
638 --
639 -- Prerequisites:
640 --   This private function can only be called from the upd process.
641 --
642 -- In Parameters:
643 --   A Pl/Sql record structre.
644 --
645 -- Post Success:
646 --   The record structure will be returned with all system defaulted parameter
647 --   values converted into its current row attribute value.
648 --
649 -- Post Failure:
650 --   No direct error handling is required within this function. Any possible
651 --   errors within this procedure will be a PL/SQL value error due to conversion
652 
653 --   of datatypes or data lengths.
654 --
655 -- Developer Implementation Notes:
656 --   None.
657 --
658 -- Access Status:
659 --   Internal Row Handler Use Only.
660 --
661 -- {End Of Comments}
662 -- ----------------------------------------------------------------------------
663 Procedure convert_defs(p_rec in out nocopy ben_cop_shd.g_rec_type) is
664 --
665   l_proc  varchar2(72) := g_package||'convert_defs';
666 --
667 Begin
668   --
669   hr_utility.set_location('Entering:'||l_proc, 5);
670   --
671   -- We must now examine each argument value in the
672   -- p_rec plsql record structure
673   -- to see if a system default is being used. If a system default
674   -- is being used then we must set to the 'current' argument value.
675   --
676   If (p_rec.ivr_ident = hr_api.g_varchar2) then
677     p_rec.ivr_ident :=
678     ben_cop_shd.g_old_rec.ivr_ident;
679   End If;
680   If (p_rec.url_ref_name = hr_api.g_varchar2) then
681     p_rec.url_ref_name :=
682     ben_cop_shd.g_old_rec.url_ref_name;
683   End If;
684   If (p_rec.opt_id = hr_api.g_number) then
685     p_rec.opt_id :=
686     ben_cop_shd.g_old_rec.opt_id;
687   End If;
688   If (p_rec.business_group_id = hr_api.g_number) then
689     p_rec.business_group_id :=
690     ben_cop_shd.g_old_rec.business_group_id;
691   End If;
692   If (p_rec.pl_id = hr_api.g_number) then
693     p_rec.pl_id :=
694     ben_cop_shd.g_old_rec.pl_id;
695   End If;
696   If (p_rec.ordr_num = hr_api.g_number) then
697     p_rec.ordr_num :=
698     ben_cop_shd.g_old_rec.ordr_num;
699   End If;
700   If (p_rec.rqd_perd_enrt_nenrt_val = hr_api.g_number) then
701     p_rec.rqd_perd_enrt_nenrt_val :=
702     ben_cop_shd.g_old_rec.rqd_perd_enrt_nenrt_val;
703   End If;
704   If (p_rec.actl_prem_id = hr_api.g_number) then
705     p_rec.actl_prem_id :=
706     ben_cop_shd.g_old_rec.actl_prem_id;
707   End If;
708   If (p_rec.dflt_flag = hr_api.g_varchar2) then
709     p_rec.dflt_flag :=
710     ben_cop_shd.g_old_rec.dflt_flag;
711   End If;
712   If (p_rec.mndtry_flag = hr_api.g_varchar2) then
713     p_rec.mndtry_flag :=
714     ben_cop_shd.g_old_rec.mndtry_flag;
715   End If;
716   If (p_rec.oipl_stat_cd = hr_api.g_varchar2) then
717     p_rec.oipl_stat_cd :=
718     ben_cop_shd.g_old_rec.oipl_stat_cd;
719   End If;
720   If (p_rec.pcp_dsgn_cd = hr_api.g_varchar2) then
721     p_rec.pcp_dsgn_cd :=
722     ben_cop_shd.g_old_rec.pcp_dsgn_cd;
723   End If;
724   If (p_rec.pcp_dpnt_dsgn_cd = hr_api.g_varchar2) then
725     p_rec.pcp_dpnt_dsgn_cd :=
726     ben_cop_shd.g_old_rec.pcp_dpnt_dsgn_cd;
727   End If;
728   If (p_rec.rqd_perd_enrt_nenrt_uom = hr_api.g_varchar2) then
729     p_rec.rqd_perd_enrt_nenrt_uom :=
730     ben_cop_shd.g_old_rec.rqd_perd_enrt_nenrt_uom;
731   End If;
732   If (p_rec.elig_apls_flag = hr_api.g_varchar2) then
733     p_rec.elig_apls_flag :=
734     ben_cop_shd.g_old_rec.elig_apls_flag;
735   End If;
736   If (p_rec.dflt_enrt_det_rl = hr_api.g_number) then
737     p_rec.dflt_enrt_det_rl :=
738     ben_cop_shd.g_old_rec.dflt_enrt_det_rl;
739   End If;
740   If (p_rec.trk_inelig_per_flag = hr_api.g_varchar2) then
741     p_rec.trk_inelig_per_flag :=
742     ben_cop_shd.g_old_rec.trk_inelig_per_flag;
743   End If;
744   If (p_rec.drvbl_fctr_prtn_elig_flag = hr_api.g_varchar2) then
745     p_rec.drvbl_fctr_prtn_elig_flag :=
746     ben_cop_shd.g_old_rec.drvbl_fctr_prtn_elig_flag;
747   End If;
748   If (p_rec.mndtry_rl = hr_api.g_number) then
749     p_rec.mndtry_rl :=
750     ben_cop_shd.g_old_rec.mndtry_rl;
751   End If;
752   If (p_rec.rqd_perd_enrt_nenrt_rl = hr_api.g_number) then
753     p_rec.rqd_perd_enrt_nenrt_rl :=
754     ben_cop_shd.g_old_rec.rqd_perd_enrt_nenrt_rl;
755   End If;
756   If (p_rec.dflt_enrt_cd = hr_api.g_varchar2) then
757     p_rec.dflt_enrt_cd :=
758     ben_cop_shd.g_old_rec.dflt_enrt_cd;
759   End If;
760   If (p_rec.per_cvrd_cd = hr_api.g_varchar2) then
761     p_rec.per_cvrd_cd :=
762     ben_cop_shd.g_old_rec.per_cvrd_cd;
763   End If;
764   If (p_rec.postelcn_edit_rl = hr_api.g_number) then
765     p_rec.postelcn_edit_rl :=
766     ben_cop_shd.g_old_rec.postelcn_edit_rl;
767   End If;
768   If (p_rec.vrfy_fmly_mmbr_cd = hr_api.g_varchar2) then
769     p_rec.vrfy_fmly_mmbr_cd :=
770     ben_cop_shd.g_old_rec.vrfy_fmly_mmbr_cd;
771   End If;
772   If (p_rec.vrfy_fmly_mmbr_rl = hr_api.g_number) then
773     p_rec.vrfy_fmly_mmbr_rl :=
774     ben_cop_shd.g_old_rec.vrfy_fmly_mmbr_rl;
775   End If;
776   If (p_rec.enrt_cd = hr_api.g_varchar2) then
777     p_rec.enrt_cd :=
778     ben_cop_shd.g_old_rec.enrt_cd;
779   End If;
780   If (p_rec.enrt_rl = hr_api.g_number) then
781     p_rec.enrt_rl :=
782     ben_cop_shd.g_old_rec.enrt_rl;
783   End If;
784   If (p_rec.auto_enrt_flag = hr_api.g_varchar2) then
785     p_rec.auto_enrt_flag :=
786     ben_cop_shd.g_old_rec.auto_enrt_flag;
787   End If;
788   If (p_rec.auto_enrt_mthd_rl = hr_api.g_number) then
789     p_rec.auto_enrt_mthd_rl :=
790     ben_cop_shd.g_old_rec.auto_enrt_mthd_rl;
791   End If;
792   If (p_rec.prtn_elig_ovrid_alwd_flag = hr_api.g_varchar2) then
793     p_rec.prtn_elig_ovrid_alwd_flag :=
794     ben_cop_shd.g_old_rec.prtn_elig_ovrid_alwd_flag;
795   End If;
796   If (p_rec.drvbl_fctr_apls_rts_flag = hr_api.g_varchar2) then
797     p_rec.drvbl_fctr_apls_rts_flag :=
798     ben_cop_shd.g_old_rec.drvbl_fctr_apls_rts_flag;
799   End If;
800   --FHR
801   If (p_rec.short_name = hr_api.g_varchar2) then
802     p_rec.short_name :=
803     ben_cop_shd.g_old_rec.short_name;
804   End If;
805   If (p_rec.short_code = hr_api.g_varchar2) then
806       p_rec.short_code :=
807       ben_cop_shd.g_old_rec.short_code;
808   End If;
809   --FHR
810   If (p_rec.legislation_code = hr_api.g_varchar2) then
811             p_rec.legislation_code :=
812             ben_cop_shd.g_old_rec.legislation_code;
813   End If;
814     If (p_rec.legislation_subgroup = hr_api.g_varchar2) then
815             p_rec.legislation_subgroup :=
816             ben_cop_shd.g_old_rec.legislation_subgroup;
817   End If;
818     If (p_rec.hidden_flag = hr_api.g_varchar2) then
819   	p_rec.hidden_flag :=   ben_cop_shd.g_old_rec.hidden_flag;
820   End If;
821   If (p_rec.susp_if_ctfn_not_prvd_flag = hr_api.g_varchar2) then
822     p_rec.susp_if_ctfn_not_prvd_flag :=
823     ben_cop_shd.g_old_rec.susp_if_ctfn_not_prvd_flag;
824   End If;
825  If (p_rec.ctfn_determine_cd = hr_api.g_varchar2) then
826     p_rec.ctfn_determine_cd :=
827     ben_cop_shd.g_old_rec.ctfn_determine_cd;
828   End If;
829   If (p_rec.cop_attribute_category = hr_api.g_varchar2) then
830     p_rec.cop_attribute_category :=
831     ben_cop_shd.g_old_rec.cop_attribute_category;
832   End If;
833   If (p_rec.cop_attribute1 = hr_api.g_varchar2) then
834     p_rec.cop_attribute1 :=
835     ben_cop_shd.g_old_rec.cop_attribute1;
836   End If;
837   If (p_rec.cop_attribute2 = hr_api.g_varchar2) then
838     p_rec.cop_attribute2 :=
839     ben_cop_shd.g_old_rec.cop_attribute2;
840   End If;
841   If (p_rec.cop_attribute3 = hr_api.g_varchar2) then
842     p_rec.cop_attribute3 :=
843     ben_cop_shd.g_old_rec.cop_attribute3;
844   End If;
845   If (p_rec.cop_attribute4 = hr_api.g_varchar2) then
846     p_rec.cop_attribute4 :=
847     ben_cop_shd.g_old_rec.cop_attribute4;
848   End If;
849   If (p_rec.cop_attribute5 = hr_api.g_varchar2) then
850     p_rec.cop_attribute5 :=
851     ben_cop_shd.g_old_rec.cop_attribute5;
852   End If;
853   If (p_rec.cop_attribute6 = hr_api.g_varchar2) then
854     p_rec.cop_attribute6 :=
855     ben_cop_shd.g_old_rec.cop_attribute6;
856   End If;
857   If (p_rec.cop_attribute7 = hr_api.g_varchar2) then
858     p_rec.cop_attribute7 :=
859     ben_cop_shd.g_old_rec.cop_attribute7;
860   End If;
861   If (p_rec.cop_attribute8 = hr_api.g_varchar2) then
862     p_rec.cop_attribute8 :=
863     ben_cop_shd.g_old_rec.cop_attribute8;
864   End If;
865   If (p_rec.cop_attribute9 = hr_api.g_varchar2) then
866     p_rec.cop_attribute9 :=
867     ben_cop_shd.g_old_rec.cop_attribute9;
868   End If;
869   If (p_rec.cop_attribute10 = hr_api.g_varchar2) then
870     p_rec.cop_attribute10 :=
871     ben_cop_shd.g_old_rec.cop_attribute10;
872   End If;
873   If (p_rec.cop_attribute11 = hr_api.g_varchar2) then
874     p_rec.cop_attribute11 :=
875     ben_cop_shd.g_old_rec.cop_attribute11;
876   End If;
877   If (p_rec.cop_attribute12 = hr_api.g_varchar2) then
878     p_rec.cop_attribute12 :=
879     ben_cop_shd.g_old_rec.cop_attribute12;
880   End If;
881   If (p_rec.cop_attribute13 = hr_api.g_varchar2) then
882     p_rec.cop_attribute13 :=
883     ben_cop_shd.g_old_rec.cop_attribute13;
884   End If;
885   If (p_rec.cop_attribute14 = hr_api.g_varchar2) then
886     p_rec.cop_attribute14 :=
887     ben_cop_shd.g_old_rec.cop_attribute14;
888   End If;
889   If (p_rec.cop_attribute15 = hr_api.g_varchar2) then
890     p_rec.cop_attribute15 :=
891     ben_cop_shd.g_old_rec.cop_attribute15;
892   End If;
893   If (p_rec.cop_attribute16 = hr_api.g_varchar2) then
894     p_rec.cop_attribute16 :=
895     ben_cop_shd.g_old_rec.cop_attribute16;
896   End If;
897   If (p_rec.cop_attribute17 = hr_api.g_varchar2) then
898     p_rec.cop_attribute17 :=
899     ben_cop_shd.g_old_rec.cop_attribute17;
900   End If;
901   If (p_rec.cop_attribute18 = hr_api.g_varchar2) then
902     p_rec.cop_attribute18 :=
903     ben_cop_shd.g_old_rec.cop_attribute18;
904   End If;
905   If (p_rec.cop_attribute19 = hr_api.g_varchar2) then
906     p_rec.cop_attribute19 :=
907     ben_cop_shd.g_old_rec.cop_attribute19;
908   End If;
909   If (p_rec.cop_attribute20 = hr_api.g_varchar2) then
910     p_rec.cop_attribute20 :=
911     ben_cop_shd.g_old_rec.cop_attribute20;
912   End If;
913   If (p_rec.cop_attribute21 = hr_api.g_varchar2) then
914     p_rec.cop_attribute21 :=
915     ben_cop_shd.g_old_rec.cop_attribute21;
916   End If;
917   If (p_rec.cop_attribute22 = hr_api.g_varchar2) then
918     p_rec.cop_attribute22 :=
919     ben_cop_shd.g_old_rec.cop_attribute22;
920   End If;
921   If (p_rec.cop_attribute23 = hr_api.g_varchar2) then
922     p_rec.cop_attribute23 :=
923     ben_cop_shd.g_old_rec.cop_attribute23;
924   End If;
925   If (p_rec.cop_attribute24 = hr_api.g_varchar2) then
926     p_rec.cop_attribute24 :=
927     ben_cop_shd.g_old_rec.cop_attribute24;
928   End If;
929   If (p_rec.cop_attribute25 = hr_api.g_varchar2) then
930     p_rec.cop_attribute25 :=
931     ben_cop_shd.g_old_rec.cop_attribute25;
932   End If;
933   If (p_rec.cop_attribute26 = hr_api.g_varchar2) then
934     p_rec.cop_attribute26 :=
935     ben_cop_shd.g_old_rec.cop_attribute26;
936   End If;
937   If (p_rec.cop_attribute27 = hr_api.g_varchar2) then
938     p_rec.cop_attribute27 :=
939     ben_cop_shd.g_old_rec.cop_attribute27;
940   End If;
941   If (p_rec.cop_attribute28 = hr_api.g_varchar2) then
942     p_rec.cop_attribute28 :=
943     ben_cop_shd.g_old_rec.cop_attribute28;
944   End If;
945   If (p_rec.cop_attribute29 = hr_api.g_varchar2) then
946     p_rec.cop_attribute29 :=
947     ben_cop_shd.g_old_rec.cop_attribute29;
948   End If;
949   If (p_rec.cop_attribute30 = hr_api.g_varchar2) then
950     p_rec.cop_attribute30 :=
951     ben_cop_shd.g_old_rec.cop_attribute30;
952   End If;
953    If (p_rec.all_inelig = hr_api.g_varchar2) then
954     p_rec.all_inelig :=
955     ben_cop_shd.g_old_rec.all_inelig;
956   End If;
957   --
958   hr_utility.set_location(' Leaving:'||l_proc, 10);
959 --
960 End convert_defs;
961 --
962 -- ----------------------------------------------------------------------------
963 -- |---------------------------------< upd >----------------------------------|
964 -- ----------------------------------------------------------------------------
965 Procedure upd
966   (
967   p_rec			in out nocopy 	ben_cop_shd.g_rec_type,
968   p_effective_date	in 	date,
969   p_datetrack_mode	in 	varchar2
970   ) is
971 --
972   l_proc			varchar2(72) := g_package||'upd';
973   l_validation_start_date	date;
974   l_validation_end_date		date;
975 --
976 Begin
977   hr_utility.set_location('Entering:'||l_proc, 5);
978   --
979   -- Ensure that the DateTrack update mode is valid
980   --
981   dt_api.validate_dt_upd_mode(p_datetrack_mode => p_datetrack_mode);
982   --
983   -- We must lock the row which we need to update.
984   --
985   ben_cop_shd.lck
986 	(p_effective_date	 => p_effective_date,
987       	 p_datetrack_mode	 => p_datetrack_mode,
988       	 p_oipl_id	 => p_rec.oipl_id,
989       	 p_object_version_number => p_rec.object_version_number,
990       	 p_validation_start_date => l_validation_start_date,
991       	 p_validation_end_date	 => l_validation_end_date);
992   --
993   -- 1. During an update system defaults are used to determine if
994   --    arguments have been defaulted or not. We must therefore
995   --    derive the full record structure values to be updated.
996   --
997   -- 2. Call the supporting update validate operations.
998   --
999   convert_defs(p_rec);
1000   ben_cop_bus.update_validate
1001 	(p_rec			 => p_rec,
1002 	 p_effective_date	 => p_effective_date,
1003 	 p_datetrack_mode  	 => p_datetrack_mode,
1004 	 p_validation_start_date => l_validation_start_date,
1005 	 p_validation_end_date	 => l_validation_end_date);
1006   --
1007   -- Call the supporting pre-update operation
1008   --
1009   pre_update
1010 	(p_rec			 => p_rec,
1011 	 p_effective_date	 => p_effective_date,
1012 	 p_datetrack_mode	 => p_datetrack_mode,
1013 	 p_validation_start_date => l_validation_start_date,
1014 	 p_validation_end_date	 => l_validation_end_date);
1015   --
1016   -- Update the row.
1017   --
1018   update_dml
1019 	(p_rec			 => p_rec,
1020 	 p_effective_date	 => p_effective_date,
1021 	 p_datetrack_mode	 => p_datetrack_mode,
1022 	 p_validation_start_date => l_validation_start_date,
1023 	 p_validation_end_date	 => l_validation_end_date);
1024   --
1025   -- Call the supporting post-update operation
1026   --
1027   post_update
1028 	(p_rec			 => p_rec,
1029 	 p_effective_date	 => p_effective_date,
1030 	 p_datetrack_mode	 => p_datetrack_mode,
1031 	 p_validation_start_date => l_validation_start_date,
1032 	 p_validation_end_date	 => l_validation_end_date);
1033 End upd;
1034 --
1035 -- ----------------------------------------------------------------------------
1036 -- |---------------------------------< upd >----------------------------------|
1037 -- ----------------------------------------------------------------------------
1038 Procedure upd
1039   (
1040   p_oipl_id                      in number,
1041   p_effective_start_date         out nocopy date,
1042   p_effective_end_date           out nocopy date,
1043   p_ivr_ident                    in varchar2         default hr_api.g_varchar2,
1044   p_url_ref_name                 in varchar2         default hr_api.g_varchar2,
1045   p_opt_id                       in number           default hr_api.g_number,
1046   p_business_group_id            in number           default hr_api.g_number,
1047   p_pl_id                        in number           default hr_api.g_number,
1048   p_ordr_num                     in number           default hr_api.g_number,
1049   p_rqd_perd_enrt_nenrt_val      in number           default hr_api.g_number,
1050   p_dflt_flag                    in varchar2         default hr_api.g_varchar2,
1051   p_actl_prem_id                 in number           default hr_api.g_number,
1052   p_mndtry_flag                  in varchar2         default hr_api.g_varchar2,
1053   p_oipl_stat_cd                 in varchar2         default hr_api.g_varchar2,
1054   p_pcp_dsgn_cd                  in varchar2         default hr_api.g_varchar2,
1055   p_pcp_dpnt_dsgn_cd             in varchar2         default hr_api.g_varchar2,
1056   p_rqd_perd_enrt_nenrt_uom      in varchar2         default hr_api.g_varchar2,
1057   p_elig_apls_flag               in varchar2         default hr_api.g_varchar2,
1058   p_dflt_enrt_det_rl             in number           default hr_api.g_number,
1059   p_trk_inelig_per_flag          in varchar2         default hr_api.g_varchar2,
1060   p_drvbl_fctr_prtn_elig_flag    in varchar2         default hr_api.g_varchar2,
1061   p_mndtry_rl                    in number           default hr_api.g_number,
1062   p_rqd_perd_enrt_nenrt_rl                    in number           default hr_api.g_number,
1063   p_dflt_enrt_cd                 in varchar2         default hr_api.g_varchar2,
1064   p_prtn_elig_ovrid_alwd_flag    in varchar2         default hr_api.g_varchar2,
1065   p_drvbl_fctr_apls_rts_flag     in varchar2         default hr_api.g_varchar2,
1066   p_per_cvrd_cd                  in varchar2         default hr_api.g_varchar2,
1067   p_postelcn_edit_rl             in number           default hr_api.g_number,
1068   p_vrfy_fmly_mmbr_cd            in varchar2         default hr_api.g_varchar2,
1069   p_vrfy_fmly_mmbr_rl            in number           default hr_api.g_number,
1070   p_enrt_cd                      in varchar2         default hr_api.g_varchar2,
1071   p_enrt_rl                      in number           default hr_api.g_number,
1072   p_auto_enrt_flag               in varchar2         default hr_api.g_varchar2,
1073   p_auto_enrt_mthd_rl            in number           default hr_api.g_number,
1074   p_short_name                   in varchar2         default hr_api.g_varchar2,		--FHR
1075   p_short_code                   in varchar2         default hr_api.g_varchar2,		--FHR
1076     p_legislation_code                   in varchar2         default hr_api.g_varchar2,
1077     p_legislation_subgroup                   in varchar2         default hr_api.g_varchar2,
1078   p_hidden_flag                   in varchar2         default hr_api.g_varchar2,
1079   p_susp_if_ctfn_not_prvd_flag    in  varchar2        default hr_api.g_varchar2,
1080   p_ctfn_determine_cd             in  varchar2        default hr_api.g_varchar2,
1081   p_cop_attribute_category       in varchar2         default hr_api.g_varchar2,
1082   p_cop_attribute1               in varchar2         default hr_api.g_varchar2,
1083   p_cop_attribute2               in varchar2         default hr_api.g_varchar2,
1084   p_cop_attribute3               in varchar2         default hr_api.g_varchar2,
1085   p_cop_attribute4               in varchar2         default hr_api.g_varchar2,
1086   p_cop_attribute5               in varchar2         default hr_api.g_varchar2,
1087   p_cop_attribute6               in varchar2         default hr_api.g_varchar2,
1088   p_cop_attribute7               in varchar2         default hr_api.g_varchar2,
1089   p_cop_attribute8               in varchar2         default hr_api.g_varchar2,
1090   p_cop_attribute9               in varchar2         default hr_api.g_varchar2,
1091   p_cop_attribute10              in varchar2         default hr_api.g_varchar2,
1092   p_cop_attribute11              in varchar2         default hr_api.g_varchar2,
1093   p_cop_attribute12              in varchar2         default hr_api.g_varchar2,
1094   p_cop_attribute13              in varchar2         default hr_api.g_varchar2,
1095   p_cop_attribute14              in varchar2         default hr_api.g_varchar2,
1096   p_cop_attribute15              in varchar2         default hr_api.g_varchar2,
1097   p_cop_attribute16              in varchar2         default hr_api.g_varchar2,
1098   p_cop_attribute17              in varchar2         default hr_api.g_varchar2,
1099   p_cop_attribute18              in varchar2         default hr_api.g_varchar2,
1100   p_cop_attribute19              in varchar2         default hr_api.g_varchar2,
1101   p_cop_attribute20              in varchar2         default hr_api.g_varchar2,
1102   p_cop_attribute21              in varchar2         default hr_api.g_varchar2,
1103   p_cop_attribute22              in varchar2         default hr_api.g_varchar2,
1104   p_cop_attribute23              in varchar2         default hr_api.g_varchar2,
1105   p_cop_attribute24              in varchar2         default hr_api.g_varchar2,
1106   p_cop_attribute25              in varchar2         default hr_api.g_varchar2,
1107   p_cop_attribute26              in varchar2         default hr_api.g_varchar2,
1108   p_cop_attribute27              in varchar2         default hr_api.g_varchar2,
1109   p_cop_attribute28              in varchar2         default hr_api.g_varchar2,
1110   p_cop_attribute29              in varchar2         default hr_api.g_varchar2,
1111   p_cop_attribute30              in varchar2         default hr_api.g_varchar2,
1112   p_all_inelig                     in  varchar2      default hr_api.g_varchar2,
1113   p_object_version_number        in out nocopy number,
1114   p_effective_date               in date,
1115   p_datetrack_mode               in varchar2
1116   ) is
1117 --
1118   l_rec		ben_cop_shd.g_rec_type;
1119   l_proc	varchar2(72) := g_package||'upd';
1120 --
1121 Begin
1122   hr_utility.set_location('Entering:'||l_proc, 5);
1123   --
1124   -- Call conversion function to turn arguments into the
1125   -- l_rec structure.
1126   --
1127   l_rec :=
1128   ben_cop_shd.convert_args
1129   (
1130   p_oipl_id,
1131   null,
1132   null,
1133   p_ivr_ident,
1134   p_url_ref_name,
1135   p_opt_id,
1136   p_business_group_id,
1137   p_pl_id,
1138   p_ordr_num,
1139   p_rqd_perd_enrt_nenrt_val,
1140   p_dflt_flag,
1141   p_actl_prem_id,
1142   p_mndtry_flag,
1143   p_oipl_stat_cd,
1144   p_pcp_dsgn_cd,
1145   p_pcp_dpnt_dsgn_cd,
1146   p_rqd_perd_enrt_nenrt_uom,
1147   p_elig_apls_flag,
1148   p_dflt_enrt_det_rl,
1149   p_trk_inelig_per_flag,
1150   p_drvbl_fctr_prtn_elig_flag,
1151   p_mndtry_rl,
1152   p_rqd_perd_enrt_nenrt_rl,
1153   p_dflt_enrt_cd,
1154   p_prtn_elig_ovrid_alwd_flag,
1155   p_drvbl_fctr_apls_rts_flag,
1156   p_per_cvrd_cd,
1157   p_postelcn_edit_rl,
1158   p_vrfy_fmly_mmbr_cd,
1159   p_vrfy_fmly_mmbr_rl,
1160   p_enrt_cd,
1161   p_enrt_rl,
1162   p_auto_enrt_flag,
1163   p_auto_enrt_mthd_rl,
1164   p_short_name,		--FHR
1165   p_short_code,		--FHR
1166     p_legislation_code,
1167     p_legislation_subgroup,
1168   p_hidden_flag,
1169   p_susp_if_ctfn_not_prvd_flag,
1170   p_ctfn_determine_cd,
1171   p_cop_attribute_category,
1172   p_cop_attribute1,
1173   p_cop_attribute2,
1174   p_cop_attribute3,
1175   p_cop_attribute4,
1176   p_cop_attribute5,
1177   p_cop_attribute6,
1178   p_cop_attribute7,
1179   p_cop_attribute8,
1180   p_cop_attribute9,
1181   p_cop_attribute10,
1182   p_cop_attribute11,
1183   p_cop_attribute12,
1184   p_cop_attribute13,
1185   p_cop_attribute14,
1186   p_cop_attribute15,
1187   p_cop_attribute16,
1188   p_cop_attribute17,
1189   p_cop_attribute18,
1190   p_cop_attribute19,
1191   p_cop_attribute20,
1192   p_cop_attribute21,
1193   p_cop_attribute22,
1194   p_cop_attribute23,
1195   p_cop_attribute24,
1196   p_cop_attribute25,
1197   p_cop_attribute26,
1198   p_cop_attribute27,
1199   p_cop_attribute28,
1200   p_cop_attribute29,
1201   p_cop_attribute30,
1202   p_all_inelig,
1203   p_object_version_number
1204   );
1205   --
1206   -- Having converted the arguments into the
1207   -- plsql record structure we call the corresponding record
1208   -- business process.
1209   --
1210   upd(l_rec, p_effective_date, p_datetrack_mode);
1211   p_object_version_number       := l_rec.object_version_number;
1212   p_effective_start_date        := l_rec.effective_start_date;
1213   p_effective_end_date          := l_rec.effective_end_date;
1214   --
1215   --
1216   hr_utility.set_location(' Leaving:'||l_proc, 10);
1217 End upd;
1218 --
1219 end ben_cop_upd;