DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_COP_UPD

Source


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