DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_PGM_UPD

Source


1 Package Body ben_pgm_upd as
2 /* $Header: bepgmrhi.pkb 120.1 2005/12/09 05:02:29 nhunur noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  ben_pgm_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_pgm_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_pgm_f',
78            p_base_key_column    => 'pgm_id',
79            p_base_key_value     => p_rec.pgm_id);
80     --
81     ben_pgm_shd.g_api_dml := true;  -- Set the api dml status
82     --
83     -- Update the ben_pgm_f Row
84     --
85     update  ben_pgm_f
86     set
87     pgm_id                          = p_rec.pgm_id,
88     name                            = p_rec.name,
89     dpnt_adrs_rqd_flag              = p_rec.dpnt_adrs_rqd_flag,
90     pgm_prvds_no_auto_enrt_flag     = p_rec.pgm_prvds_no_auto_enrt_flag,
91     dpnt_dob_rqd_flag               = p_rec.dpnt_dob_rqd_flag,
92     pgm_prvds_no_dflt_enrt_flag     = p_rec.pgm_prvds_no_dflt_enrt_flag,
93     dpnt_legv_id_rqd_flag           = p_rec.dpnt_legv_id_rqd_flag,
94     dpnt_dsgn_lvl_cd                = p_rec.dpnt_dsgn_lvl_cd,
95     pgm_stat_cd                     = p_rec.pgm_stat_cd,
96     ivr_ident                       = p_rec.ivr_ident,
97     pgm_typ_cd                      = p_rec.pgm_typ_cd,
98     elig_apls_flag                  = p_rec.elig_apls_flag,
99     uses_all_asmts_for_rts_flag     = p_rec.uses_all_asmts_for_rts_flag,
100     url_ref_name                    = p_rec.url_ref_name,
101     pgm_desc                        = p_rec.pgm_desc,
102     prtn_elig_ovrid_alwd_flag       = p_rec.prtn_elig_ovrid_alwd_flag,
103     pgm_use_all_asnts_elig_flag     = p_rec.pgm_use_all_asnts_elig_flag,
104     dpnt_dsgn_cd                    = p_rec.dpnt_dsgn_cd,
105     mx_dpnt_pct_prtt_lf_amt         = p_rec.mx_dpnt_pct_prtt_lf_amt,
106     mx_sps_pct_prtt_lf_amt          = p_rec.mx_sps_pct_prtt_lf_amt,
107     acty_ref_perd_cd                = p_rec.acty_ref_perd_cd,
108     coord_cvg_for_all_pls_flg       = p_rec.coord_cvg_for_all_pls_flg,
109     enrt_cvg_end_dt_cd              = p_rec.enrt_cvg_end_dt_cd,
110     enrt_cvg_end_dt_rl              = p_rec.enrt_cvg_end_dt_rl,
111     dpnt_cvg_end_dt_cd              = p_rec.dpnt_cvg_end_dt_cd,
112     dpnt_cvg_end_dt_rl              = p_rec.dpnt_cvg_end_dt_rl,
113     dpnt_cvg_strt_dt_cd             = p_rec.dpnt_cvg_strt_dt_cd,
114     dpnt_cvg_strt_dt_rl             = p_rec.dpnt_cvg_strt_dt_rl,
115     dpnt_dsgn_no_ctfn_rqd_flag      = p_rec.dpnt_dsgn_no_ctfn_rqd_flag,
116     drvbl_fctr_dpnt_elig_flag       = p_rec.drvbl_fctr_dpnt_elig_flag,
117     drvbl_fctr_prtn_elig_flag       = p_rec.drvbl_fctr_prtn_elig_flag,
118     enrt_cvg_strt_dt_cd             = p_rec.enrt_cvg_strt_dt_cd,
119     enrt_cvg_strt_dt_rl             = p_rec.enrt_cvg_strt_dt_rl,
120     enrt_info_rt_freq_cd            = p_rec.enrt_info_rt_freq_cd,
121     rt_strt_dt_cd                   = p_rec.rt_strt_dt_cd,
122     rt_strt_dt_rl                   = p_rec.rt_strt_dt_rl,
123     rt_end_dt_cd                    = p_rec.rt_end_dt_cd,
124     rt_end_dt_rl                    = p_rec.rt_end_dt_rl,
125     pgm_grp_cd                      = p_rec.pgm_grp_cd,
126     pgm_uom                         = p_rec.pgm_uom,
127     drvbl_fctr_apls_rts_flag        = p_rec.drvbl_fctr_apls_rts_flag,
128     alws_unrstrctd_enrt_flag        = p_rec.alws_unrstrctd_enrt_flag,
129     enrt_cd                         = p_rec.enrt_cd,
130     enrt_mthd_cd                    = p_rec.enrt_mthd_cd,
131     poe_lvl_cd                      = p_rec.poe_lvl_cd,
132     enrt_rl                         = p_rec.enrt_rl,
133     auto_enrt_mthd_rl               = p_rec.auto_enrt_mthd_rl,
134     trk_inelig_per_flag             = p_rec.trk_inelig_per_flag,
135     business_group_id               = p_rec.business_group_id,
136     per_cvrd_cd                     = p_rec.per_cvrd_cd ,
137     vrfy_fmly_mmbr_rl               = p_rec.vrfy_fmly_mmbr_rl  ,
138     vrfy_fmly_mmbr_cd               = p_rec.vrfy_fmly_mmbr_cd,
139     short_name			    = p_rec.short_name,		/*FHR*/
140     short_code			    = p_rec.short_code,  	/*FHR*/
141         legislation_code			    = p_rec.legislation_code,  	/*FHR*/
142         legislation_subgroup			    = p_rec.legislation_subgroup,  	/*FHR*/
143     Dflt_pgm_flag                   = p_rec.Dflt_pgm_flag,
144     Use_prog_points_flag            = p_rec.Use_prog_points_flag,
145     Dflt_step_cd                    = p_rec.Dflt_step_cd,
146     Dflt_step_rl                    = p_rec.Dflt_step_rl,
147     Update_salary_cd                = p_rec.Update_salary_cd,
148     Use_multi_pay_rates_flag         = p_rec.Use_multi_pay_rates_flag,
149     dflt_element_type_id            = p_rec.dflt_element_type_id,
150     Dflt_input_value_id             = p_rec.Dflt_input_value_id,
151     Use_scores_cd                   = p_rec.Use_scores_cd,
152     Scores_calc_mthd_cd             = p_rec.Scores_calc_mthd_cd,
153     Scores_calc_rl                  = p_rec.Scores_calc_rl,
154     gsp_allow_override_flag          = p_rec.gsp_allow_override_flag,
155     use_variable_rates_flag          = p_rec.use_variable_rates_flag,
156     salary_calc_mthd_cd          = p_rec.salary_calc_mthd_cd,
157     salary_calc_mthd_rl          = p_rec.salary_calc_mthd_rl,
158     susp_if_dpnt_ssn_nt_prv_cd   = p_rec.susp_if_dpnt_ssn_nt_prv_cd,
159     susp_if_dpnt_dob_nt_prv_cd   = p_rec.susp_if_dpnt_dob_nt_prv_cd,
160     susp_if_dpnt_adr_nt_prv_cd   = p_rec.susp_if_dpnt_adr_nt_prv_cd,
161     susp_if_ctfn_not_dpnt_flag   = p_rec.susp_if_ctfn_not_dpnt_flag,
162     dpnt_ctfn_determine_cd       = p_rec.dpnt_ctfn_determine_cd,
163     pgm_attribute_category          = p_rec.pgm_attribute_category,
164     pgm_attribute1                  = p_rec.pgm_attribute1,
165     pgm_attribute2                  = p_rec.pgm_attribute2,
166     pgm_attribute3                  = p_rec.pgm_attribute3,
167     pgm_attribute4                  = p_rec.pgm_attribute4,
168     pgm_attribute5                  = p_rec.pgm_attribute5,
169     pgm_attribute6                  = p_rec.pgm_attribute6,
170     pgm_attribute7                  = p_rec.pgm_attribute7,
171     pgm_attribute8                  = p_rec.pgm_attribute8,
172     pgm_attribute9                  = p_rec.pgm_attribute9,
173     pgm_attribute10                 = p_rec.pgm_attribute10,
174     pgm_attribute11                 = p_rec.pgm_attribute11,
175     pgm_attribute12                 = p_rec.pgm_attribute12,
176     pgm_attribute13                 = p_rec.pgm_attribute13,
177     pgm_attribute14                 = p_rec.pgm_attribute14,
178     pgm_attribute15                 = p_rec.pgm_attribute15,
179     pgm_attribute16                 = p_rec.pgm_attribute16,
180     pgm_attribute17                 = p_rec.pgm_attribute17,
181     pgm_attribute18                 = p_rec.pgm_attribute18,
182     pgm_attribute19                 = p_rec.pgm_attribute19,
183     pgm_attribute20                 = p_rec.pgm_attribute20,
184     pgm_attribute21                 = p_rec.pgm_attribute21,
185     pgm_attribute22                 = p_rec.pgm_attribute22,
186     pgm_attribute23                 = p_rec.pgm_attribute23,
187     pgm_attribute24                 = p_rec.pgm_attribute24,
188     pgm_attribute25                 = p_rec.pgm_attribute25,
189     pgm_attribute26                 = p_rec.pgm_attribute26,
190     pgm_attribute27                 = p_rec.pgm_attribute27,
191     pgm_attribute28                 = p_rec.pgm_attribute28,
192     pgm_attribute29                 = p_rec.pgm_attribute29,
193     pgm_attribute30                 = p_rec.pgm_attribute30,
194     object_version_number           = p_rec.object_version_number
195     where   pgm_id = p_rec.pgm_id
196     and     effective_start_date = p_validation_start_date
197     and     effective_end_date   = p_validation_end_date;
198     --
199     ben_pgm_shd.g_api_dml := false;   -- Unset the api dml status
200     --
201     -- Set the effective start and end dates
202     --
203     p_rec.effective_start_date := p_validation_start_date;
204     p_rec.effective_end_date   := p_validation_end_date;
205   End If;
206 --
207 hr_utility.set_location(' Leaving:'||l_proc, 15);
208 Exception
209   When hr_api.check_integrity_violated Then
210     -- A check constraint has been violated
211     ben_pgm_shd.g_api_dml := false;   -- Unset the api dml status
212     ben_pgm_shd.constraint_error
213       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
214   When hr_api.unique_integrity_violated Then
215     -- Unique integrity has been violated
216     ben_pgm_shd.g_api_dml := false;   -- Unset the api dml status
217     ben_pgm_shd.constraint_error
218       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
219   When Others Then
220     ben_pgm_shd.g_api_dml := false;   -- Unset the api dml status
221     Raise;
222 End dt_update_dml;
223 --
224 -- ----------------------------------------------------------------------------
225 -- |------------------------------< update_dml >------------------------------|
226 -- ----------------------------------------------------------------------------
227 -- {Start Of Comments}
228 --
229 -- Description:
230 --   This procedure calls the dt_update_dml control logic which handles
231 --   the actual datetrack dml.
232 --
233 -- Prerequisites:
234 --   This is an internal private procedure which must be called from the upd
235 --   procedure.
236 --
237 -- In Parameters:
238 --   A Pl/Sql record structre.
239 --
240 -- Post Success:
241 --   Processing contines.
242 --
243 -- Post Failure:
244 --   No specific error handling is required within this procedure.
245 --
246 -- Developer Implementation Notes:
247 --   The update 'set' arguments list should be modified if any of your
248 --   attributes are not updateable.
249 --
250 -- Access Status:
251 --   Internal Row Handler Use Only.
252 --
253 -- {End Of Comments}
254 -- ----------------------------------------------------------------------------
255 Procedure update_dml
256         (p_rec                   in out nocopy ben_pgm_shd.g_rec_type,
257          p_effective_date        in     date,
258          p_datetrack_mode        in     varchar2,
259          p_validation_start_date in     date,
260          p_validation_end_date   in     date) is
261 --
262   l_proc        varchar2(72) := g_package||'update_dml';
263 --
264 Begin
265   hr_utility.set_location('Entering:'||l_proc, 5);
266   --
267   dt_update_dml(p_rec                   => p_rec,
268                 p_effective_date        => p_effective_date,
269                 p_datetrack_mode        => p_datetrack_mode,
270                 p_validation_start_date => p_validation_start_date,
271                 p_validation_end_date   => p_validation_end_date);
272   --
273   hr_utility.set_location(' Leaving:'||l_proc, 10);
274 End update_dml;
275 --
276 -- ----------------------------------------------------------------------------
277 -- |----------------------------< dt_pre_update >-----------------------------|
278 -- ----------------------------------------------------------------------------
279 -- {Start Of Comments}
280 --
281 -- Description:
282 --   The dt_pre_update procedure controls the execution
283 --   of dml for the datetrack modes of: UPDATE, UPDATE_OVERRIDE
284 --   and UPDATE_CHANGE_INSERT only. The execution required is as
285 --   follows:
286 --
287 --   1) Providing the datetrack update mode is not 'CORRECTION'
288 --      then set the effective end date of the current row (this
289 --      will be the validation_start_date - 1).
290 --   2) If the datetrack mode is 'UPDATE_OVERRIDE' then call the
291 --      corresponding delete_dml process to delete any future rows
292 --      where the effective_start_date is greater than or equal to
293 --      the validation_start_date.
294 --   3) Call the insert_dml process to insert the new updated row
295 --      details..
296 --
297 -- Prerequisites:
298 --   This is an internal procedure which is called from the
299 --   pre_update procedure.
300 --
301 -- In Parameters:
302 --
303 -- Post Success:
304 --   Processing continues.
305 --
306 -- Post Failure:
307 --   If an error has occurred, an error message and exception will be raised
308 --   but not handled.
309 --
310 -- Developer Implementation Notes:
311 --   This is an internal procedure which is required by Datetrack. Don't
312 --   remove or modify.
313 --
314 -- Access Status:
315 --   Internal Row Handler Use Only.
316 --
317 -- {End Of Comments}
318 -- ----------------------------------------------------------------------------
319 Procedure dt_pre_update
320         (p_rec                   in out nocopy ben_pgm_shd.g_rec_type,
321          p_effective_date        in     date,
322          p_datetrack_mode        in     varchar2,
323          p_validation_start_date in     date,
324          p_validation_end_date   in     date) is
325 --
326   l_proc                 varchar2(72) := g_package||'dt_pre_update';
327   l_dummy_version_number number;
328 --
329 Begin
330   hr_utility.set_location('Entering:'||l_proc, 5);
331   If (p_datetrack_mode <> 'CORRECTION') then
332     hr_utility.set_location(l_proc, 10);
333     --
334     -- Update the current effective end date
335     --
336     ben_pgm_shd.upd_effective_end_date
337      (p_effective_date         => p_effective_date,
338       p_base_key_value         => p_rec.pgm_id,
339       p_new_effective_end_date => (p_validation_start_date - 1),
340       p_validation_start_date  => p_validation_start_date,
341       p_validation_end_date    => p_validation_end_date,
342       p_object_version_number  => l_dummy_version_number);
343     --
344     If (p_datetrack_mode = 'UPDATE_OVERRIDE') then
345       hr_utility.set_location(l_proc, 15);
346       --
347       -- As the datetrack mode is 'UPDATE_OVERRIDE' then we must
348       -- delete any future rows
349       --
350       ben_pgm_del.delete_dml
351         (p_rec                   => p_rec,
352          p_effective_date        => p_effective_date,
353          p_datetrack_mode        => p_datetrack_mode,
354          p_validation_start_date => p_validation_start_date,
355          p_validation_end_date   => p_validation_end_date);
356     End If;
357     hr_utility.set_location(l_proc, 20);
358     --
359     -- We must now insert the updated row
360     --
361     ben_pgm_ins.insert_dml
362       (p_rec                    => p_rec,
363        p_effective_date         => p_effective_date,
364        p_datetrack_mode         => p_datetrack_mode,
365        p_validation_start_date  => p_validation_start_date,
366        p_validation_end_date    => p_validation_end_date);
367   End If;
368   hr_utility.set_location(' Leaving:'||l_proc, 20);
369 End dt_pre_update;
370 --
371 -- ----------------------------------------------------------------------------
372 -- |------------------------------< pre_update >------------------------------|
373 -- ----------------------------------------------------------------------------
374 -- {Start Of Comments}
375 --
376 -- Description:
377 --   This private procedure contains any processing which is required before
378 --   the update dml.
379 --
380 -- Prerequisites:
381 --   This is an internal procedure which is called from the upd procedure.
382 --
383 -- In Parameters:
384 --   A Pl/Sql record structre.
385 --
386 -- Post Success:
387 --   Processing continues.
388 --
389 -- Post Failure:
390 --   If an error has occurred, an error message and exception will be raised
391 --   but not handled.
392 --
393 -- Developer Implementation Notes:
394 --   Any pre-processing required before the update dml is issued should be
395 --   coded within this procedure. It is important to note that any 3rd party
396 --   maintenance should be reviewed before placing in this procedure. The call
397 --   to the dt_update_dml procedure should NOT be removed.
398 --
399 -- Access Status:
400 --   Internal Row Handler Use Only.
401 --
402 -- {End Of Comments}
403 -- ----------------------------------------------------------------------------
404 Procedure pre_update
405         (p_rec                   in out nocopy ben_pgm_shd.g_rec_type,
406          p_effective_date        in     date,
407          p_datetrack_mode        in     varchar2,
408          p_validation_start_date in     date,
409          p_validation_end_date   in     date) is
410 --
411   l_proc        varchar2(72) := g_package||'pre_update';
412 --
413 Begin
414   hr_utility.set_location('Entering:'||l_proc, 5);
415   --
416   --
417   --
418   dt_pre_update
419     (p_rec                   => p_rec,
420      p_effective_date        => p_effective_date,
421      p_datetrack_mode        => p_datetrack_mode,
422      p_validation_start_date => p_validation_start_date,
423      p_validation_end_date   => p_validation_end_date);
424   --
425   hr_utility.set_location(' Leaving:'||l_proc, 10);
426 End pre_update;
427 --
428 -- ----------------------------------------------------------------------------
429 -- |-----------------------------< post_update >------------------------------|
430 -- ----------------------------------------------------------------------------
431 -- {Start Of Comments}
432 --
433 -- Description:
434 --   This private procedure contains any processing which is required after the
435 --   update dml.
436 --
437 -- Prerequisites:
438 --   This is an internal procedure which is called from the upd procedure.
439 --
440 -- In Parameters:
441 --   A Pl/Sql record structre.
442 --
443 -- Post Success:
444 --   Processing continues.
445 --
446 -- Post Failure:
447 --   If an error has occurred, an error message and exception will be raised
448 --   but not handled.
449 --
450 -- Developer Implementation Notes:
451 --   Any post-processing required after the update dml is issued should be
452 --   coded within this procedure. It is important to note that any 3rd party
453 --   maintenance should be reviewed before placing in this procedure.
454 --
455 -- Access Status:
456 --   Internal Row Handler Use Only.
457 --
458 -- {End Of Comments}
459 -- ----------------------------------------------------------------------------
460 Procedure post_update
461         (p_rec                   in ben_pgm_shd.g_rec_type,
462          p_effective_date        in date,
463          p_datetrack_mode        in varchar2,
464          p_validation_start_date in date,
465          p_validation_end_date   in date) is
466 --
467   l_proc        varchar2(72) := g_package||'post_update';
468 --
469 Begin
470   hr_utility.set_location('Entering:'||l_proc, 5);
471   --
472     -- Added for GSP validations
473     pqh_gsp_ben_validations.pgm_validations
474     	(  p_pgm_id			=> p_rec.pgm_id
475     	 , p_dml_operation 		=> 'U'
476     	 , p_effective_date 		=> p_effective_date
477     	 , p_business_group_id  	=> p_rec.business_group_id
478     	 , p_short_name			=> p_rec.short_name
479     	 , p_short_code			=> p_rec.short_code
480     	 , p_Dflt_Pgm_Flag		=> p_rec.Dflt_Pgm_Flag
481     	 , p_Pgm_Typ_Cd			=> p_rec.Pgm_Typ_Cd
482     	 , p_pgm_Stat_cd		=> p_rec.pgm_Stat_cd
483     	 , p_Use_Prog_Points_Flag	=> p_rec.Use_Prog_Points_Flag
484     	 , p_Acty_Ref_Perd_Cd		=> p_rec.Acty_Ref_Perd_Cd
485     	 , p_Pgm_Uom			=> p_rec.Pgm_Uom
486     	 );
487 
488   hr_utility.set_location(' Leaving:'||l_proc, 10);
489 End post_update;
490 -- ----------------------------------------------------------------------------
491 -- |-----------------------------< convert_defs >-----------------------------|
492 -- ----------------------------------------------------------------------------
493 -- {Start Of Comments}
494 --
495 -- Description:
496 --   The Convert_Defs procedure has one very important function:
497 --   It must return the record structure for the row with all system defaulted
498 --   values converted into its corresponding parameter value for update. When
499 --   we attempt to update a row through the Upd process , certain
500 --   parameters can be defaulted which enables flexibility in the calling of
501 --   the upd process (e.g. only attributes which need to be updated need to be
502 --   specified). For the upd process to determine which attributes
503 --   have NOT been specified we need to check if the parameter has a reserved
504 --   system default value. Therefore, for all parameters which have a
505 --   corresponding reserved system default mechanism specified we need to
506 --   check if a system default is being used. If a system default is being
507 --   used then we convert the defaulted value into its corresponding attribute
508 --   value held in the g_old_rec data structure.
509 --
510 -- Prerequisites:
511 --   This private function can only be called from the upd process.
512 --
513 -- In Parameters:
514 --   A Pl/Sql record structre.
515 --
516 -- Post Success:
517 --   The record structure will be returned with all system defaulted parameter
518 --   values converted into its current row attribute value.
519 --
520 -- Post Failure:
521 --   No direct error handling is required within this function. Any possible
522 --   errors within this procedure will be a PL/SQL value error due to conversion
523 
524 --   of datatypes or data lengths.
525 --
526 -- Developer Implementation Notes:
527 --   None.
528 --
529 -- Access Status:
530 --   Internal Row Handler Use Only.
531 --
532 -- {End Of Comments}
533 -- ----------------------------------------------------------------------------
534 Procedure convert_defs(p_rec in out nocopy ben_pgm_shd.g_rec_type) is
535 --
536   l_proc  varchar2(72) := g_package||'convert_defs';
537 --
538 Begin
539   --
540   hr_utility.set_location('Entering:'||l_proc, 5);
541   --
542   -- We must now examine each argument value in the
543   -- p_rec plsql record structure
544   -- to see if a system default is being used. If a system default
545   -- is being used then we must set to the 'current' argument value.
546   --
547   If (p_rec.name = hr_api.g_varchar2) then
548     p_rec.name :=
549     ben_pgm_shd.g_old_rec.name;
550   End If;
551   If (p_rec.dpnt_adrs_rqd_flag = hr_api.g_varchar2) then
552     p_rec.dpnt_adrs_rqd_flag :=
553     ben_pgm_shd.g_old_rec.dpnt_adrs_rqd_flag;
554   End If;
555   If (p_rec.pgm_prvds_no_auto_enrt_flag = hr_api.g_varchar2) then
556     p_rec.pgm_prvds_no_auto_enrt_flag :=
557     ben_pgm_shd.g_old_rec.pgm_prvds_no_auto_enrt_flag;
558   End If;
559   If (p_rec.dpnt_dob_rqd_flag = hr_api.g_varchar2) then
560     p_rec.dpnt_dob_rqd_flag :=
561     ben_pgm_shd.g_old_rec.dpnt_dob_rqd_flag;
562   End If;
563   If (p_rec.pgm_prvds_no_dflt_enrt_flag = hr_api.g_varchar2) then
564     p_rec.pgm_prvds_no_dflt_enrt_flag :=
565     ben_pgm_shd.g_old_rec.pgm_prvds_no_dflt_enrt_flag;
566   End If;
567   If (p_rec.dpnt_legv_id_rqd_flag = hr_api.g_varchar2) then
568     p_rec.dpnt_legv_id_rqd_flag :=
569     ben_pgm_shd.g_old_rec.dpnt_legv_id_rqd_flag;
570   End If;
571   If (p_rec.dpnt_dsgn_lvl_cd = hr_api.g_varchar2) then
572     p_rec.dpnt_dsgn_lvl_cd :=
573     ben_pgm_shd.g_old_rec.dpnt_dsgn_lvl_cd;
574   End If;
575   If (p_rec.pgm_stat_cd = hr_api.g_varchar2) then
576     p_rec.pgm_stat_cd :=
577     ben_pgm_shd.g_old_rec.pgm_stat_cd;
578   End If;
579   If (p_rec.ivr_ident = hr_api.g_varchar2) then
580     p_rec.ivr_ident :=
581     ben_pgm_shd.g_old_rec.ivr_ident;
582   End If;
583   If (p_rec.pgm_typ_cd = hr_api.g_varchar2) then
584     p_rec.pgm_typ_cd :=
585     ben_pgm_shd.g_old_rec.pgm_typ_cd;
586   End If;
587   If (p_rec.elig_apls_flag = hr_api.g_varchar2) then
588     p_rec.elig_apls_flag :=
589     ben_pgm_shd.g_old_rec.elig_apls_flag;
590   End If;
591   If (p_rec.uses_all_asmts_for_rts_flag = hr_api.g_varchar2) then
592     p_rec.uses_all_asmts_for_rts_flag :=
593     ben_pgm_shd.g_old_rec.uses_all_asmts_for_rts_flag;
594   End If;
595   If (p_rec.url_ref_name = hr_api.g_varchar2) then
596     p_rec.url_ref_name :=
597     ben_pgm_shd.g_old_rec.url_ref_name;
598   End If;
599   If (p_rec.pgm_desc = hr_api.g_varchar2) then
600     p_rec.pgm_desc :=
601     ben_pgm_shd.g_old_rec.pgm_desc;
602   End If;
603   If (p_rec.prtn_elig_ovrid_alwd_flag = hr_api.g_varchar2) then
604     p_rec.prtn_elig_ovrid_alwd_flag :=
605     ben_pgm_shd.g_old_rec.prtn_elig_ovrid_alwd_flag;
606   End If;
607   If (p_rec.pgm_use_all_asnts_elig_flag = hr_api.g_varchar2) then
608     p_rec.pgm_use_all_asnts_elig_flag :=
609     ben_pgm_shd.g_old_rec.pgm_use_all_asnts_elig_flag;
610   End If;
611   If (p_rec.dpnt_dsgn_cd = hr_api.g_varchar2) then
612     p_rec.dpnt_dsgn_cd :=
613     ben_pgm_shd.g_old_rec.dpnt_dsgn_cd;
614   End If;
615   If (p_rec.mx_dpnt_pct_prtt_lf_amt = hr_api.g_number) then
616     p_rec.mx_dpnt_pct_prtt_lf_amt :=
617     ben_pgm_shd.g_old_rec.mx_dpnt_pct_prtt_lf_amt;
618   End If;
619   If (p_rec.mx_sps_pct_prtt_lf_amt = hr_api.g_number) then
620     p_rec.mx_sps_pct_prtt_lf_amt :=
621     ben_pgm_shd.g_old_rec.mx_sps_pct_prtt_lf_amt;
622   End If;
623   If (p_rec.acty_ref_perd_cd = hr_api.g_varchar2) then
624     p_rec.acty_ref_perd_cd :=
625     ben_pgm_shd.g_old_rec.acty_ref_perd_cd;
626   End If;
627   If (p_rec.coord_cvg_for_all_pls_flg = hr_api.g_varchar2) then
628     p_rec.coord_cvg_for_all_pls_flg :=
629     ben_pgm_shd.g_old_rec.coord_cvg_for_all_pls_flg;
630   End If;
631   If (p_rec.enrt_cvg_end_dt_cd = hr_api.g_varchar2) then
632     p_rec.enrt_cvg_end_dt_cd :=
633     ben_pgm_shd.g_old_rec.enrt_cvg_end_dt_cd;
634   End If;
635   If (p_rec.enrt_cvg_end_dt_rl = hr_api.g_number) then
636     p_rec.enrt_cvg_end_dt_rl :=
637     ben_pgm_shd.g_old_rec.enrt_cvg_end_dt_rl;
638   End If;
639   If (p_rec.dpnt_cvg_end_dt_cd = hr_api.g_varchar2) then
640     p_rec.dpnt_cvg_end_dt_cd :=
641     ben_pgm_shd.g_old_rec.dpnt_cvg_end_dt_cd;
642   End If;
643   If (p_rec.dpnt_cvg_end_dt_rl = hr_api.g_number) then
644     p_rec.dpnt_cvg_end_dt_rl :=
645     ben_pgm_shd.g_old_rec.dpnt_cvg_end_dt_rl;
646   End If;
647   If (p_rec.dpnt_cvg_strt_dt_cd = hr_api.g_varchar2) then
648     p_rec.dpnt_cvg_strt_dt_cd :=
649     ben_pgm_shd.g_old_rec.dpnt_cvg_strt_dt_cd;
650   End If;
651   If (p_rec.dpnt_cvg_strt_dt_rl = hr_api.g_number) then
652     p_rec.dpnt_cvg_strt_dt_rl :=
653     ben_pgm_shd.g_old_rec.dpnt_cvg_strt_dt_rl;
654   End If;
655   If (p_rec.dpnt_dsgn_no_ctfn_rqd_flag = hr_api.g_varchar2) then
656     p_rec.dpnt_dsgn_no_ctfn_rqd_flag :=
657     ben_pgm_shd.g_old_rec.dpnt_dsgn_no_ctfn_rqd_flag;
658   End If;
659   If (p_rec.drvbl_fctr_dpnt_elig_flag = hr_api.g_varchar2) then
660     p_rec.drvbl_fctr_dpnt_elig_flag :=
661     ben_pgm_shd.g_old_rec.drvbl_fctr_dpnt_elig_flag;
662   End If;
663   If (p_rec.drvbl_fctr_prtn_elig_flag = hr_api.g_varchar2) then
664     p_rec.drvbl_fctr_prtn_elig_flag :=
665     ben_pgm_shd.g_old_rec.drvbl_fctr_prtn_elig_flag;
666   End If;
667   If (p_rec.enrt_cvg_strt_dt_cd = hr_api.g_varchar2) then
668     p_rec.enrt_cvg_strt_dt_cd :=
669     ben_pgm_shd.g_old_rec.enrt_cvg_strt_dt_cd;
670   End If;
671   If (p_rec.enrt_cvg_strt_dt_rl = hr_api.g_number) then
672     p_rec.enrt_cvg_strt_dt_rl :=
673     ben_pgm_shd.g_old_rec.enrt_cvg_strt_dt_rl;
674   End If;
675   If (p_rec.enrt_info_rt_freq_cd = hr_api.g_varchar2) then
676     p_rec.enrt_info_rt_freq_cd :=
677     ben_pgm_shd.g_old_rec.enrt_info_rt_freq_cd;
678   End If;
679   If (p_rec.rt_strt_dt_cd = hr_api.g_varchar2) then
680     p_rec.rt_strt_dt_cd :=
681     ben_pgm_shd.g_old_rec.rt_strt_dt_cd;
682   End If;
683   If (p_rec.rt_strt_dt_rl = hr_api.g_number) then
684     p_rec.rt_strt_dt_rl :=
685     ben_pgm_shd.g_old_rec.rt_strt_dt_rl;
686   End If;
687   If (p_rec.rt_end_dt_cd = hr_api.g_varchar2) then
688     p_rec.rt_end_dt_cd :=
689     ben_pgm_shd.g_old_rec.rt_end_dt_cd;
690   End If;
691   If (p_rec.rt_end_dt_rl = hr_api.g_number) then
692     p_rec.rt_end_dt_rl :=
693     ben_pgm_shd.g_old_rec.rt_end_dt_rl;
694   End If;
695   If (p_rec.pgm_grp_cd = hr_api.g_varchar2) then
696     p_rec.pgm_grp_cd :=
697     ben_pgm_shd.g_old_rec.pgm_grp_cd;
698   End If;
699   If (p_rec.pgm_uom = hr_api.g_varchar2) then
700     p_rec.pgm_uom :=
701     ben_pgm_shd.g_old_rec.pgm_uom;
702   End If;
703   If (p_rec.drvbl_fctr_apls_rts_flag = hr_api.g_varchar2) then
704     p_rec.drvbl_fctr_apls_rts_flag :=
705     ben_pgm_shd.g_old_rec.drvbl_fctr_apls_rts_flag;
706   End If;
707   If (p_rec.alws_unrstrctd_enrt_flag = hr_api.g_varchar2) then
708     p_rec.alws_unrstrctd_enrt_flag :=
709     ben_pgm_shd.g_old_rec.alws_unrstrctd_enrt_flag;
710   End If;
711   If (p_rec.enrt_cd = hr_api.g_varchar2) then
712     p_rec.enrt_cd :=
713     ben_pgm_shd.g_old_rec.enrt_cd;
714   End If;
715   If (p_rec.enrt_mthd_cd = hr_api.g_varchar2) then
716     p_rec.enrt_mthd_cd :=
717     ben_pgm_shd.g_old_rec.enrt_mthd_cd;
718   End If;
719   If (p_rec.poe_lvl_cd = hr_api.g_varchar2) then
720     p_rec.poe_lvl_cd :=
721     ben_pgm_shd.g_old_rec.poe_lvl_cd;
722   End If;
723   If (p_rec.enrt_rl = hr_api.g_number) then
724     p_rec.enrt_rl :=
725     ben_pgm_shd.g_old_rec.enrt_rl;
726   End If;
727   If (p_rec.auto_enrt_mthd_rl = hr_api.g_number) then
728     p_rec.auto_enrt_mthd_rl :=
729     ben_pgm_shd.g_old_rec.auto_enrt_mthd_rl;
730   End If;
731   If (p_rec.trk_inelig_per_flag = hr_api.g_varchar2) then
732     p_rec.trk_inelig_per_flag :=
733     ben_pgm_shd.g_old_rec.trk_inelig_per_flag;
734   End If;
735   If (p_rec.business_group_id = hr_api.g_number) then
736     p_rec.business_group_id :=
737     ben_pgm_shd.g_old_rec.business_group_id;
738   End If;
739 
740 
741   If (p_rec.per_cvrd_cd = hr_api.g_varchar2) then
742     p_rec.per_cvrd_cd :=
743     ben_pgm_shd.g_old_rec.per_cvrd_cd;
744   End If;
745 
746   If (p_rec.vrfy_fmly_mmbr_rl = hr_api.g_number) then
747     p_rec.vrfy_fmly_mmbr_rl :=
748     ben_pgm_shd.g_old_rec.vrfy_fmly_mmbr_rl;
749   End If;
750 
751   If (p_rec.vrfy_fmly_mmbr_cd = hr_api.g_varchar2) then
752     p_rec.vrfy_fmly_mmbr_cd :=
753     ben_pgm_shd.g_old_rec.vrfy_fmly_mmbr_cd;
754   End If;
755 
756 --FHR
757   If (p_rec.short_name = hr_api.g_varchar2) then
758     p_rec.short_name :=
759     ben_pgm_shd.g_old_rec.short_name;
760   End If;
761 
762   If (p_rec.short_code = hr_api.g_varchar2) then
763     p_rec.short_code :=
764     ben_pgm_shd.g_old_rec.short_code;
765   End If;
766 
767   If (p_rec.legislation_code = hr_api.g_varchar2) then
768         p_rec.legislation_code :=
769         ben_pgm_shd.g_old_rec.legislation_code;
770   End If;
771   If (p_rec.legislation_subgroup = hr_api.g_varchar2) then
772         p_rec.legislation_subgroup :=
773         ben_pgm_shd.g_old_rec.legislation_subgroup;
774   End If;
775 
776 --GSTP
777   If (p_rec.Dflt_pgm_flag = hr_api.g_varchar2) then
778     p_rec.Dflt_pgm_flag :=
779     ben_pgm_shd.g_old_rec.Dflt_pgm_flag;
780   End If;
781   If (p_rec.Use_prog_points_flag = hr_api.g_varchar2) then
782     p_rec.Use_prog_points_flag :=
783     ben_pgm_shd.g_old_rec.Use_prog_points_flag;
784   End If;
785   If (p_rec.Dflt_step_cd = hr_api.g_varchar2) then
786     p_rec.Dflt_step_cd :=
787     ben_pgm_shd.g_old_rec.Dflt_step_cd;
788   End If;
789   If (p_rec.Dflt_step_rl = hr_api.g_number) then
790     p_rec.Dflt_step_rl :=
791     ben_pgm_shd.g_old_rec.Dflt_step_rl;
792   End If;
793   If (p_rec.Update_salary_cd = hr_api.g_varchar2) then
794     p_rec.Update_salary_cd :=
795     ben_pgm_shd.g_old_rec.Update_salary_cd;
796   End If;
797   If (p_rec.Use_multi_pay_rates_flag = hr_api.g_varchar2) then
798     p_rec.Use_multi_pay_rates_flag :=
799     ben_pgm_shd.g_old_rec.Use_multi_pay_rates_flag;
800   End If;
801   If (p_rec.dflt_element_type_id = hr_api.g_number) then
802     p_rec.dflt_element_type_id :=
803     ben_pgm_shd.g_old_rec.dflt_element_type_id;
804   End If;
805   If (p_rec.Dflt_input_value_id = hr_api.g_number) then
806     p_rec.Dflt_input_value_id :=
807     ben_pgm_shd.g_old_rec.Dflt_input_value_id;
808   End If;
809   If (p_rec.Use_scores_cd = hr_api.g_varchar2) then
810     p_rec.Use_scores_cd :=
811     ben_pgm_shd.g_old_rec.Use_scores_cd;
812   End If;
813   If (p_rec.Scores_calc_mthd_cd = hr_api.g_varchar2) then
814     p_rec.Scores_calc_mthd_cd :=
815     ben_pgm_shd.g_old_rec.Scores_calc_mthd_cd;
816   End If;
817   If (p_rec.Scores_calc_rl = hr_api.g_number) then
818     p_rec.Scores_calc_rl :=
819     ben_pgm_shd.g_old_rec.Scores_calc_rl;
820   End If;
821 --GSTP
822 
823   If (p_rec.gsp_allow_override_flag = hr_api.g_varchar2) then
824     p_rec.gsp_allow_override_flag :=
825     ben_pgm_shd.g_old_rec.gsp_allow_override_flag;
826   End If;
827 
828   If (p_rec.use_variable_rates_flag = hr_api.g_varchar2) then
829     p_rec.use_variable_rates_flag :=
830     ben_pgm_shd.g_old_rec.use_variable_rates_flag;
831   End If;
832 
833   If (p_rec.salary_calc_mthd_cd = hr_api.g_varchar2) then
834     p_rec.salary_calc_mthd_cd :=
835     ben_pgm_shd.g_old_rec.salary_calc_mthd_cd;
836   End If;
837 
838 
839   If (p_rec.salary_calc_mthd_rl = hr_api.g_number) then
840     p_rec.salary_calc_mthd_rl :=
841     ben_pgm_shd.g_old_rec.salary_calc_mthd_rl;
842   End If;
843 
844   If (p_rec.susp_if_dpnt_ssn_nt_prv_cd = hr_api.g_varchar2) then
845     p_rec.susp_if_dpnt_ssn_nt_prv_cd :=
846     ben_pgm_shd.g_old_rec.susp_if_dpnt_ssn_nt_prv_cd;
847   End If;
848 
849   If (p_rec.susp_if_dpnt_dob_nt_prv_cd = hr_api.g_varchar2) then
850     p_rec.susp_if_dpnt_dob_nt_prv_cd :=
851     ben_pgm_shd.g_old_rec.susp_if_dpnt_dob_nt_prv_cd;
852   End If;
853   If (p_rec.susp_if_dpnt_adr_nt_prv_cd = hr_api.g_varchar2) then
854     p_rec.susp_if_dpnt_adr_nt_prv_cd :=
855     ben_pgm_shd.g_old_rec.susp_if_dpnt_adr_nt_prv_cd;
856   End If;
857   If (p_rec.susp_if_ctfn_not_dpnt_flag = hr_api.g_varchar2) then
858     p_rec.susp_if_ctfn_not_dpnt_flag :=
859     ben_pgm_shd.g_old_rec.susp_if_ctfn_not_dpnt_flag;
860   End If;
861   If (p_rec.dpnt_ctfn_determine_cd = hr_api.g_varchar2) then
862     p_rec.dpnt_ctfn_determine_cd :=
863     ben_pgm_shd.g_old_rec.dpnt_ctfn_determine_cd;
864   End If;
865 
866   If (p_rec.pgm_attribute_category = hr_api.g_varchar2) then
867     p_rec.pgm_attribute_category :=
868     ben_pgm_shd.g_old_rec.pgm_attribute_category;
869   End If;
870 
871   If (p_rec.pgm_attribute1 = hr_api.g_varchar2) then
872     p_rec.pgm_attribute1 :=
873     ben_pgm_shd.g_old_rec.pgm_attribute1;
874   End If;
875 
876   If (p_rec.pgm_attribute2 = hr_api.g_varchar2) then
877     p_rec.pgm_attribute2 :=
878     ben_pgm_shd.g_old_rec.pgm_attribute2;
879   End If;
880   If (p_rec.pgm_attribute3 = hr_api.g_varchar2) then
881     p_rec.pgm_attribute3 :=
882     ben_pgm_shd.g_old_rec.pgm_attribute3;
883   End If;
884   If (p_rec.pgm_attribute4 = hr_api.g_varchar2) then
885     p_rec.pgm_attribute4 :=
886     ben_pgm_shd.g_old_rec.pgm_attribute4;
887   End If;
888   If (p_rec.pgm_attribute5 = hr_api.g_varchar2) then
889     p_rec.pgm_attribute5 :=
890     ben_pgm_shd.g_old_rec.pgm_attribute5;
891   End If;
892   If (p_rec.pgm_attribute6 = hr_api.g_varchar2) then
893     p_rec.pgm_attribute6 :=
894     ben_pgm_shd.g_old_rec.pgm_attribute6;
895   End If;
896   If (p_rec.pgm_attribute7 = hr_api.g_varchar2) then
897     p_rec.pgm_attribute7 :=
898     ben_pgm_shd.g_old_rec.pgm_attribute7;
899   End If;
900   If (p_rec.pgm_attribute8 = hr_api.g_varchar2) then
901     p_rec.pgm_attribute8 :=
902     ben_pgm_shd.g_old_rec.pgm_attribute8;
903   End If;
904   If (p_rec.pgm_attribute9 = hr_api.g_varchar2) then
905     p_rec.pgm_attribute9 :=
906     ben_pgm_shd.g_old_rec.pgm_attribute9;
907   End If;
908   If (p_rec.pgm_attribute10 = hr_api.g_varchar2) then
909     p_rec.pgm_attribute10 :=
910     ben_pgm_shd.g_old_rec.pgm_attribute10;
911   End If;
912   If (p_rec.pgm_attribute11 = hr_api.g_varchar2) then
913     p_rec.pgm_attribute11 :=
914     ben_pgm_shd.g_old_rec.pgm_attribute11;
915   End If;
916   If (p_rec.pgm_attribute12 = hr_api.g_varchar2) then
917     p_rec.pgm_attribute12 :=
918     ben_pgm_shd.g_old_rec.pgm_attribute12;
919   End If;
920   If (p_rec.pgm_attribute13 = hr_api.g_varchar2) then
921     p_rec.pgm_attribute13 :=
922     ben_pgm_shd.g_old_rec.pgm_attribute13;
923   End If;
924   If (p_rec.pgm_attribute14 = hr_api.g_varchar2) then
925     p_rec.pgm_attribute14 :=
926     ben_pgm_shd.g_old_rec.pgm_attribute14;
927   End If;
928   If (p_rec.pgm_attribute15 = hr_api.g_varchar2) then
929     p_rec.pgm_attribute15 :=
930     ben_pgm_shd.g_old_rec.pgm_attribute15;
931   End If;
932   If (p_rec.pgm_attribute16 = hr_api.g_varchar2) then
933     p_rec.pgm_attribute16 :=
934     ben_pgm_shd.g_old_rec.pgm_attribute16;
935   End If;
936   If (p_rec.pgm_attribute17 = hr_api.g_varchar2) then
937     p_rec.pgm_attribute17 :=
938     ben_pgm_shd.g_old_rec.pgm_attribute17;
939   End If;
940   If (p_rec.pgm_attribute18 = hr_api.g_varchar2) then
941     p_rec.pgm_attribute18 :=
942     ben_pgm_shd.g_old_rec.pgm_attribute18;
943   End If;
944   If (p_rec.pgm_attribute19 = hr_api.g_varchar2) then
945     p_rec.pgm_attribute19 :=
946     ben_pgm_shd.g_old_rec.pgm_attribute19;
947   End If;
948   If (p_rec.pgm_attribute20 = hr_api.g_varchar2) then
949     p_rec.pgm_attribute20 :=
950     ben_pgm_shd.g_old_rec.pgm_attribute20;
951   End If;
952   If (p_rec.pgm_attribute21 = hr_api.g_varchar2) then
953     p_rec.pgm_attribute21 :=
954     ben_pgm_shd.g_old_rec.pgm_attribute21;
955   End If;
956   If (p_rec.pgm_attribute22 = hr_api.g_varchar2) then
957     p_rec.pgm_attribute22 :=
958     ben_pgm_shd.g_old_rec.pgm_attribute22;
959   End If;
960   If (p_rec.pgm_attribute23 = hr_api.g_varchar2) then
961     p_rec.pgm_attribute23 :=
962     ben_pgm_shd.g_old_rec.pgm_attribute23;
963   End If;
964   If (p_rec.pgm_attribute24 = hr_api.g_varchar2) then
965     p_rec.pgm_attribute24 :=
966     ben_pgm_shd.g_old_rec.pgm_attribute24;
967   End If;
968   If (p_rec.pgm_attribute25 = hr_api.g_varchar2) then
969     p_rec.pgm_attribute25 :=
970     ben_pgm_shd.g_old_rec.pgm_attribute25;
971   End If;
972   If (p_rec.pgm_attribute26 = hr_api.g_varchar2) then
973     p_rec.pgm_attribute26 :=
974     ben_pgm_shd.g_old_rec.pgm_attribute26;
975   End If;
976   If (p_rec.pgm_attribute27 = hr_api.g_varchar2) then
977     p_rec.pgm_attribute27 :=
978     ben_pgm_shd.g_old_rec.pgm_attribute27;
979   End If;
980   If (p_rec.pgm_attribute28 = hr_api.g_varchar2) then
981     p_rec.pgm_attribute28 :=
982     ben_pgm_shd.g_old_rec.pgm_attribute28;
983   End If;
984   If (p_rec.pgm_attribute29 = hr_api.g_varchar2) then
985     p_rec.pgm_attribute29 :=
986     ben_pgm_shd.g_old_rec.pgm_attribute29;
987   End If;
988   If (p_rec.pgm_attribute30 = hr_api.g_varchar2) then
989     p_rec.pgm_attribute30 :=
990     ben_pgm_shd.g_old_rec.pgm_attribute30;
991   End If;
992   --
993   hr_utility.set_location(' Leaving:'||l_proc, 10);
994 --
995 End convert_defs;
996 --
997 -- ----------------------------------------------------------------------------
998 -- |---------------------------------< upd >----------------------------------|
999 -- ----------------------------------------------------------------------------
1000 Procedure upd
1001   (
1002   p_rec                 in out nocopy  ben_pgm_shd.g_rec_type,
1003   p_effective_date      in      date,
1004   p_datetrack_mode      in      varchar2
1005   ) is
1006 --
1007   l_proc                        varchar2(72) := g_package||'upd';
1008   l_validation_start_date       date;
1009   l_validation_end_date         date;
1010 --
1011 Begin
1012   hr_utility.set_location('Entering:'||l_proc, 5);
1013   --
1014   -- Ensure that the DateTrack update mode is valid
1015   --
1016   dt_api.validate_dt_upd_mode(p_datetrack_mode => p_datetrack_mode);
1017   --
1018   -- We must lock the row which we need to update.
1019   --
1020   ben_pgm_shd.lck
1021         (p_effective_date        => p_effective_date,
1022          p_datetrack_mode        => p_datetrack_mode,
1023          p_pgm_id        => p_rec.pgm_id,
1024          p_object_version_number => p_rec.object_version_number,
1025          p_validation_start_date => l_validation_start_date,
1026          p_validation_end_date   => l_validation_end_date);
1027   --
1028   -- 1. During an update system defaults are used to determine if
1029   --    arguments have been defaulted or not. We must therefore
1030   --    derive the full record structure values to be updated.
1031   --
1032   -- 2. Call the supporting update validate operations.
1033   --
1034   convert_defs(p_rec);
1035   ben_pgm_bus.update_validate
1036         (p_rec                   => p_rec,
1037          p_effective_date        => p_effective_date,
1038          p_datetrack_mode        => p_datetrack_mode,
1039          p_validation_start_date => l_validation_start_date,
1040          p_validation_end_date   => l_validation_end_date);
1041   --
1042   -- Call the supporting pre-update operation
1043   --
1044   pre_update
1045         (p_rec                   => p_rec,
1046          p_effective_date        => p_effective_date,
1047          p_datetrack_mode        => p_datetrack_mode,
1048          p_validation_start_date => l_validation_start_date,
1049          p_validation_end_date   => l_validation_end_date);
1050   --
1051   -- Update the row.
1052   --
1053   update_dml
1054         (p_rec                   => p_rec,
1055          p_effective_date        => p_effective_date,
1056          p_datetrack_mode        => p_datetrack_mode,
1057          p_validation_start_date => l_validation_start_date,
1058          p_validation_end_date   => l_validation_end_date);
1059   --
1060   -- Call the supporting post-update operation
1061   --
1062   post_update
1063         (p_rec                   => p_rec,
1064          p_effective_date        => p_effective_date,
1065          p_datetrack_mode        => p_datetrack_mode,
1066          p_validation_start_date => l_validation_start_date,
1067          p_validation_end_date   => l_validation_end_date);
1068 End upd;
1069 --
1070 -- ----------------------------------------------------------------------------
1071 -- |---------------------------------< upd >----------------------------------|
1072 -- ----------------------------------------------------------------------------
1073 Procedure upd
1074   (
1075   p_pgm_id                       in number,
1076   p_effective_start_date         out nocopy date,
1077   p_effective_end_date           out nocopy date,
1078   p_name                         in varchar2         default hr_api.g_varchar2,
1079   p_dpnt_adrs_rqd_flag           in varchar2         default hr_api.g_varchar2,
1080   p_pgm_prvds_no_auto_enrt_flag  in varchar2         default hr_api.g_varchar2,
1081   p_dpnt_dob_rqd_flag            in varchar2         default hr_api.g_varchar2,
1082   p_pgm_prvds_no_dflt_enrt_flag  in varchar2         default hr_api.g_varchar2,
1083   p_dpnt_legv_id_rqd_flag        in varchar2         default hr_api.g_varchar2,
1084   p_dpnt_dsgn_lvl_cd             in varchar2         default hr_api.g_varchar2,
1085   p_pgm_stat_cd                  in varchar2         default hr_api.g_varchar2,
1086   p_ivr_ident                    in varchar2         default hr_api.g_varchar2,
1087   p_pgm_typ_cd                   in varchar2         default hr_api.g_varchar2,
1088   p_elig_apls_flag               in varchar2         default hr_api.g_varchar2,
1089   p_uses_all_asmts_for_rts_flag  in varchar2         default hr_api.g_varchar2,
1090   p_url_ref_name                 in varchar2         default hr_api.g_varchar2,
1091   p_pgm_desc                     in varchar2         default hr_api.g_varchar2,
1092   p_prtn_elig_ovrid_alwd_flag    in varchar2         default hr_api.g_varchar2,
1093   p_pgm_use_all_asnts_elig_flag  in varchar2         default hr_api.g_varchar2,
1094   p_dpnt_dsgn_cd                 in varchar2         default hr_api.g_varchar2,
1095   p_mx_dpnt_pct_prtt_lf_amt      in number           default hr_api.g_number,
1096   p_mx_sps_pct_prtt_lf_amt       in number           default hr_api.g_number,
1097   p_acty_ref_perd_cd             in varchar2         default hr_api.g_varchar2,
1098   p_coord_cvg_for_all_pls_flg    in varchar2         default hr_api.g_varchar2,
1099   p_enrt_cvg_end_dt_cd           in varchar2         default hr_api.g_varchar2,
1100   p_enrt_cvg_end_dt_rl           in number           default hr_api.g_number,
1101   p_dpnt_cvg_end_dt_cd           in varchar2         default hr_api.g_varchar2,
1102   p_dpnt_cvg_end_dt_rl           in number           default hr_api.g_number,
1103   p_dpnt_cvg_strt_dt_cd          in varchar2         default hr_api.g_varchar2,
1104   p_dpnt_cvg_strt_dt_rl          in number           default hr_api.g_number,
1105   p_dpnt_dsgn_no_ctfn_rqd_flag   in varchar2         default hr_api.g_varchar2,
1106   p_drvbl_fctr_dpnt_elig_flag    in varchar2         default hr_api.g_varchar2,
1107   p_drvbl_fctr_prtn_elig_flag    in varchar2         default hr_api.g_varchar2,
1108   p_enrt_cvg_strt_dt_cd          in varchar2         default hr_api.g_varchar2,
1109   p_enrt_cvg_strt_dt_rl          in number           default hr_api.g_number,
1110   p_enrt_info_rt_freq_cd         in varchar2         default hr_api.g_varchar2,
1111   p_rt_strt_dt_cd                in varchar2         default hr_api.g_varchar2,
1112   p_rt_strt_dt_rl                in number           default hr_api.g_number,
1113   p_rt_end_dt_cd                 in varchar2         default hr_api.g_varchar2,
1114   p_rt_end_dt_rl                 in number           default hr_api.g_number,
1115   p_pgm_grp_cd                   in varchar2         default hr_api.g_varchar2,
1116   p_pgm_uom                      in varchar2         default hr_api.g_varchar2,
1117   p_drvbl_fctr_apls_rts_flag     in varchar2         default hr_api.g_varchar2,
1118   p_alws_unrstrctd_enrt_flag     in  varchar2        default hr_api.g_varchar2,
1119   p_enrt_cd                      in  varchar2        default hr_api.g_varchar2,
1120   p_enrt_mthd_cd                 in  varchar2        default hr_api.g_varchar2,
1121   p_poe_lvl_cd                   in  varchar2        default hr_api.g_varchar2,
1122   p_enrt_rl                      in  number          default hr_api.g_number,
1123   p_auto_enrt_mthd_rl            in  number          default hr_api.g_number,
1124   p_trk_inelig_per_flag          in varchar2         default hr_api.g_varchar2,
1125   p_business_group_id            in number           default hr_api.g_number,
1126   p_per_cvrd_cd                  in varchar2        default hr_api.g_varchar2,
1127   P_vrfy_fmly_mmbr_rl            in number          default hr_api.g_number,
1128   P_vrfy_fmly_mmbr_cd            in varchar2        default hr_api.g_varchar2,
1129   p_short_name			 in varchar2         default hr_api.g_varchar2,    --FHR
1130   p_short_code			 in varchar2         default hr_api.g_varchar2,    --FHR
1131     p_legislation_code			 in varchar2         default hr_api.g_varchar2,
1132     p_legislation_subgroup			 in varchar2         default hr_api.g_varchar2,
1133   p_Dflt_pgm_flag                in Varchar2         default hr_api.g_varchar2,
1134   p_Use_prog_points_flag         in Varchar2         default hr_api.g_varchar2,
1135   p_Dflt_step_cd                 in Varchar2         default hr_api.g_varchar2,
1136   p_Dflt_step_rl                 in number           default hr_api.g_number,
1137   p_Update_salary_cd             in Varchar2         default hr_api.g_varchar2,
1138   p_Use_multi_pay_rates_flag     in Varchar2         default hr_api.g_varchar2,
1139   p_dflt_element_type_id         in number           default hr_api.g_number,
1140   p_Dflt_input_value_id          in number           default hr_api.g_number,
1141   p_Use_scores_cd                in Varchar2         default hr_api.g_varchar2,
1142   p_Scores_calc_mthd_cd          in Varchar2         default hr_api.g_varchar2,
1143   p_Scores_calc_rl               in number           default hr_api.g_number,
1144   p_gsp_allow_override_flag       in varchar2         default hr_api.g_varchar2,
1145   p_use_variable_rates_flag       in varchar2         default hr_api.g_varchar2,
1146   p_salary_calc_mthd_cd       in varchar2         default hr_api.g_varchar2,
1147   p_salary_calc_mthd_rl       in number         default hr_api.g_number,
1148   p_susp_if_dpnt_ssn_nt_prv_cd      in  varchar2   default hr_api.g_varchar2,
1149   p_susp_if_dpnt_dob_nt_prv_cd      in  varchar2   default hr_api.g_varchar2,
1150   p_susp_if_dpnt_adr_nt_prv_cd      in  varchar2   default hr_api.g_varchar2,
1151   p_susp_if_ctfn_not_dpnt_flag      in  varchar2   default hr_api.g_varchar2,
1152   p_dpnt_ctfn_determine_cd          in  varchar2   default hr_api.g_varchar2,
1153   p_pgm_attribute_category       in varchar2         default hr_api.g_varchar2,
1154   p_pgm_attribute1               in varchar2         default hr_api.g_varchar2,
1155   p_pgm_attribute2               in varchar2         default hr_api.g_varchar2,
1156   p_pgm_attribute3               in varchar2         default hr_api.g_varchar2,
1157   p_pgm_attribute4               in varchar2         default hr_api.g_varchar2,
1158   p_pgm_attribute5               in varchar2         default hr_api.g_varchar2,
1159   p_pgm_attribute6               in varchar2         default hr_api.g_varchar2,
1160   p_pgm_attribute7               in varchar2         default hr_api.g_varchar2,
1161   p_pgm_attribute8               in varchar2         default hr_api.g_varchar2,
1162   p_pgm_attribute9               in varchar2         default hr_api.g_varchar2,
1163   p_pgm_attribute10              in varchar2         default hr_api.g_varchar2,
1164   p_pgm_attribute11              in varchar2         default hr_api.g_varchar2,
1165   p_pgm_attribute12              in varchar2         default hr_api.g_varchar2,
1166   p_pgm_attribute13              in varchar2         default hr_api.g_varchar2,
1167   p_pgm_attribute14              in varchar2         default hr_api.g_varchar2,
1168   p_pgm_attribute15              in varchar2         default hr_api.g_varchar2,
1169   p_pgm_attribute16              in varchar2         default hr_api.g_varchar2,
1170   p_pgm_attribute17              in varchar2         default hr_api.g_varchar2,
1171   p_pgm_attribute18              in varchar2         default hr_api.g_varchar2,
1172   p_pgm_attribute19              in varchar2         default hr_api.g_varchar2,
1173   p_pgm_attribute20              in varchar2         default hr_api.g_varchar2,
1174   p_pgm_attribute21              in varchar2         default hr_api.g_varchar2,
1175   p_pgm_attribute22              in varchar2         default hr_api.g_varchar2,
1176   p_pgm_attribute23              in varchar2         default hr_api.g_varchar2,
1177   p_pgm_attribute24              in varchar2         default hr_api.g_varchar2,
1178   p_pgm_attribute25              in varchar2         default hr_api.g_varchar2,
1179   p_pgm_attribute26              in varchar2         default hr_api.g_varchar2,
1180   p_pgm_attribute27              in varchar2         default hr_api.g_varchar2,
1181   p_pgm_attribute28              in varchar2         default hr_api.g_varchar2,
1182   p_pgm_attribute29              in varchar2         default hr_api.g_varchar2,
1183   p_pgm_attribute30              in varchar2         default hr_api.g_varchar2,
1184   p_object_version_number        in out nocopy number,
1185   p_effective_date               in date,
1186   p_datetrack_mode               in varchar2
1187   ) is
1188 --
1189   l_rec         ben_pgm_shd.g_rec_type;
1190   l_proc        varchar2(72) := g_package||'upd';
1191 --
1192 Begin
1193   hr_utility.set_location('Entering:'||l_proc, 5);
1194   --
1195   -- Call conversion function to turn arguments into the
1196   -- l_rec structure.
1197   --
1198   l_rec :=
1199   ben_pgm_shd.convert_args
1200   (
1201   p_pgm_id,
1202   null,
1203   null,
1204   p_name,
1205   p_dpnt_adrs_rqd_flag,
1206   p_pgm_prvds_no_auto_enrt_flag,
1207   p_dpnt_dob_rqd_flag,
1208   p_pgm_prvds_no_dflt_enrt_flag,
1209   p_dpnt_legv_id_rqd_flag,
1210   p_dpnt_dsgn_lvl_cd,
1211   p_pgm_stat_cd,
1212   p_ivr_ident,
1213   p_pgm_typ_cd,
1214   p_elig_apls_flag,
1215   p_uses_all_asmts_for_rts_flag,
1216   p_url_ref_name,
1217   p_pgm_desc,
1218   p_prtn_elig_ovrid_alwd_flag,
1219   p_pgm_use_all_asnts_elig_flag,
1220   p_dpnt_dsgn_cd,
1221   p_mx_dpnt_pct_prtt_lf_amt,
1222   p_mx_sps_pct_prtt_lf_amt,
1223   p_acty_ref_perd_cd,
1224   p_coord_cvg_for_all_pls_flg,
1225   p_enrt_cvg_end_dt_cd,
1226   p_enrt_cvg_end_dt_rl,
1227   p_dpnt_cvg_end_dt_cd,
1228   p_dpnt_cvg_end_dt_rl,
1229   p_dpnt_cvg_strt_dt_cd,
1230   p_dpnt_cvg_strt_dt_rl,
1231   p_dpnt_dsgn_no_ctfn_rqd_flag,
1232   p_drvbl_fctr_dpnt_elig_flag,
1233   p_drvbl_fctr_prtn_elig_flag,
1234   p_enrt_cvg_strt_dt_cd,
1235   p_enrt_cvg_strt_dt_rl,
1236   p_enrt_info_rt_freq_cd,
1237   p_rt_strt_dt_cd,
1238   p_rt_strt_dt_rl,
1239   p_rt_end_dt_cd,
1240   p_rt_end_dt_rl,
1241   p_pgm_grp_cd,
1242   p_pgm_uom,
1243   p_drvbl_fctr_apls_rts_flag,
1244   p_alws_unrstrctd_enrt_flag,
1245   p_enrt_cd,
1246   p_enrt_mthd_cd,
1247   p_poe_lvl_cd,
1248   p_enrt_rl,
1249   p_auto_enrt_mthd_rl,
1250   p_trk_inelig_per_flag,
1251   p_business_group_id,
1252   p_per_cvrd_cd  ,
1253   P_vrfy_fmly_mmbr_rl,
1254   P_vrfy_fmly_mmbr_cd,
1255   p_short_name,			/*FHR*/
1256   p_short_code,			/*FHR*/
1257     p_legislation_code,			/*FHR*/
1258     p_legislation_subgroup,			/*FHR*/
1259   p_Dflt_pgm_flag,
1260   p_Use_prog_points_flag,
1261   p_Dflt_step_cd,
1262   p_Dflt_step_rl,
1263   p_Update_salary_cd,
1264   p_Use_multi_pay_rates_flag,
1265   p_dflt_element_type_id,
1266   p_Dflt_input_value_id,
1267   p_Use_scores_cd,
1268   p_Scores_calc_mthd_cd,
1269   p_Scores_calc_rl,
1270   P_gsp_allow_override_flag,
1271   P_use_variable_rates_flag,
1272   P_salary_calc_mthd_cd,
1273   P_salary_calc_mthd_rl,
1274   p_susp_if_dpnt_ssn_nt_prv_cd,
1275   p_susp_if_dpnt_dob_nt_prv_cd,
1276   p_susp_if_dpnt_adr_nt_prv_cd,
1277   p_susp_if_ctfn_not_dpnt_flag,
1278   p_dpnt_ctfn_determine_cd,
1279   P_pgm_attribute_category,
1280   p_pgm_attribute1,
1281   p_pgm_attribute2,
1282   p_pgm_attribute3,
1283   p_pgm_attribute4,
1284   p_pgm_attribute5,
1285   p_pgm_attribute6,
1286   p_pgm_attribute7,
1287   p_pgm_attribute8,
1288   p_pgm_attribute9,
1289   p_pgm_attribute10,
1290   p_pgm_attribute11,
1291   p_pgm_attribute12,
1292   p_pgm_attribute13,
1293   p_pgm_attribute14,
1294   p_pgm_attribute15,
1295   p_pgm_attribute16,
1296   p_pgm_attribute17,
1297   p_pgm_attribute18,
1298   p_pgm_attribute19,
1299   p_pgm_attribute20,
1300   p_pgm_attribute21,
1301   p_pgm_attribute22,
1302   p_pgm_attribute23,
1303   p_pgm_attribute24,
1304   p_pgm_attribute25,
1305   p_pgm_attribute26,
1306   p_pgm_attribute27,
1307   p_pgm_attribute28,
1308   p_pgm_attribute29,
1309   p_pgm_attribute30,
1310   p_object_version_number
1311   );
1312   --
1313   -- Having converted the arguments into the
1314   -- plsql record structure we call the corresponding record
1315   -- business process.
1316   --
1317   --
1318   upd(l_rec, p_effective_date, p_datetrack_mode);
1319   p_object_version_number       := l_rec.object_version_number;
1320   p_effective_start_date        := l_rec.effective_start_date;
1321   p_effective_end_date          := l_rec.effective_end_date;
1322   --
1323   --
1324   hr_utility.set_location(' Leaving:'||l_proc, 10);
1325 End upd;
1326 --
1327 end ben_pgm_upd;