DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_PRV_UPD

Source


1 Package Body ben_prv_upd as
2 /* $Header: beprvrhi.pkb 120.0.12000000.3 2007/07/01 19:16:05 mmudigon noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  ben_prv_upd.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |------------------------------< update_dml >------------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 --   This procedure controls the actual dml update logic. The processing of
17 --   this procedure is:
18 --   1) Increment the object_version_number by 1 if the object_version_number
19 --      is defined as an attribute for this entity.
20 --   2) To set and unset the g_api_dml status as required (as we are about to
21 --      perform dml).
22 --   3) To update the specified row in the schema using the primary key in
23 --      the predicates.
24 --   4) To trap any constraint violations that may have occurred.
25 --   5) To raise any other errors.
26 --
27 -- Prerequisites:
28 --   This is an internal private procedure which must be called from the upd
29 --   procedure.
30 --
31 -- In Parameters:
32 --   A Pl/Sql record structre.
33 --
34 -- Post Success:
35 --   The specified row will be updated in the schema.
36 --
37 -- Post Failure:
38 --   On the update dml failure it is important to note that we always reset the
39 --   g_api_dml status to false.
40 --   If a check, unique or parent integrity constraint violation is raised the
41 --   constraint_error procedure will be called.
42 --   If any other error is reported, the error will be raised after the
43 --   g_api_dml status is reset.
44 --
45 -- Developer Implementation Notes:
46 --   The update 'set' attribute list should be modified if any of your
47 --   attributes are not updateable.
48 --
49 -- Access Status:
50 --   Internal Row Handler Use Only.
51 --
52 -- {End Of Comments}
53 -- ----------------------------------------------------------------------------
54 Procedure update_dml(p_rec in out nocopy ben_prv_shd.g_rec_type) is
55 --
56   l_proc  varchar2(72) := g_package||'update_dml';
57 --
58 Begin
59   hr_utility.set_location('Entering:'||l_proc, 5);
60   --
61   -- Increment the object version
62   --
63   p_rec.object_version_number := p_rec.object_version_number + 1;
64   --
65   ben_prv_shd.g_api_dml := true;  -- Set the api dml status
66   --
67   -- Update the ben_prtt_rt_val Row
68   --
69   update ben_prtt_rt_val
70   set
71   prtt_rt_val_id                    = p_rec.prtt_rt_val_id,
72   rt_strt_dt                        = p_rec.rt_strt_dt,
73   rt_end_dt                         = p_rec.rt_end_dt,
74   rt_typ_cd                         = p_rec.rt_typ_cd,
75   tx_typ_cd                         = p_rec.tx_typ_cd,
76   -- ordr_num			    = p_rec.ordr_num,
77   acty_typ_cd                       = p_rec.acty_typ_cd,
78   mlt_cd                            = p_rec.mlt_cd,
79   acty_ref_perd_cd                  = p_rec.acty_ref_perd_cd,
80   rt_val                            = p_rec.rt_val,
81   ann_rt_val                        = p_rec.ann_rt_val,
82   cmcd_rt_val                       = p_rec.cmcd_rt_val,
83   cmcd_ref_perd_cd                  = p_rec.cmcd_ref_perd_cd,
84   bnft_rt_typ_cd                    = p_rec.bnft_rt_typ_cd,
85   dsply_on_enrt_flag                = p_rec.dsply_on_enrt_flag,
86   rt_ovridn_flag                    = p_rec.rt_ovridn_flag,
87   rt_ovridn_thru_dt                 = p_rec.rt_ovridn_thru_dt,
88   elctns_made_dt                    = p_rec.elctns_made_dt,
89   prtt_rt_val_stat_cd               = p_rec.prtt_rt_val_stat_cd,
90   prtt_enrt_rslt_id                 = p_rec.prtt_enrt_rslt_id,
91   cvg_amt_calc_mthd_id              = p_rec.cvg_amt_calc_mthd_id,
92   actl_prem_id                      = p_rec.actl_prem_id,
93   comp_lvl_fctr_id                  = p_rec.comp_lvl_fctr_id,
94   element_entry_value_id            = p_rec.element_entry_value_id,
95   per_in_ler_id                     = p_rec.per_in_ler_id,
96   ended_per_in_ler_id               = p_rec.ended_per_in_ler_id,
97   acty_base_rt_id                   = p_rec.acty_base_rt_id,
98   prtt_reimbmt_rqst_id              = p_rec.prtt_reimbmt_rqst_id,
99   prtt_rmt_aprvd_fr_pymt_id         = p_rec.prtt_rmt_aprvd_fr_pymt_id,
100   pp_in_yr_used_num                 = p_rec.pp_in_yr_used_num,
101   business_group_id                 = p_rec.business_group_id,
102   prv_attribute_category            = p_rec.prv_attribute_category,
103   prv_attribute1                    = p_rec.prv_attribute1,
104   prv_attribute2                    = p_rec.prv_attribute2,
105   prv_attribute3                    = p_rec.prv_attribute3,
106   prv_attribute4                    = p_rec.prv_attribute4,
107   prv_attribute5                    = p_rec.prv_attribute5,
108   prv_attribute6                    = p_rec.prv_attribute6,
109   prv_attribute7                    = p_rec.prv_attribute7,
110   prv_attribute8                    = p_rec.prv_attribute8,
111   prv_attribute9                    = p_rec.prv_attribute9,
112   prv_attribute10                   = p_rec.prv_attribute10,
113   prv_attribute11                   = p_rec.prv_attribute11,
114   prv_attribute12                   = p_rec.prv_attribute12,
115   prv_attribute13                   = p_rec.prv_attribute13,
116   prv_attribute14                   = p_rec.prv_attribute14,
117   prv_attribute15                   = p_rec.prv_attribute15,
118   prv_attribute16                   = p_rec.prv_attribute16,
119   prv_attribute17                   = p_rec.prv_attribute17,
120   prv_attribute18                   = p_rec.prv_attribute18,
121   prv_attribute19                   = p_rec.prv_attribute19,
122   prv_attribute20                   = p_rec.prv_attribute20,
123   prv_attribute21                   = p_rec.prv_attribute21,
124   prv_attribute22                   = p_rec.prv_attribute22,
125   prv_attribute23                   = p_rec.prv_attribute23,
126   prv_attribute24                   = p_rec.prv_attribute24,
127   prv_attribute25                   = p_rec.prv_attribute25,
128   prv_attribute26                   = p_rec.prv_attribute26,
129   prv_attribute27                   = p_rec.prv_attribute27,
130   prv_attribute28                   = p_rec.prv_attribute28,
131   prv_attribute29                   = p_rec.prv_attribute29,
132   prv_attribute30                   = p_rec.prv_attribute30,
133   pk_id_table_name                  = p_rec.pk_id_table_name    ,
134   pk_id                             = p_rec.pk_id,
135   object_version_number             = p_rec.object_version_number
136   where prtt_rt_val_id = p_rec.prtt_rt_val_id;
137   --
138   ben_prv_shd.g_api_dml := false;   -- Unset the api dml status
139   --
140   hr_utility.set_location(' Leaving:'||l_proc, 10);
141 --
142 Exception
143   When hr_api.check_integrity_violated Then
144     -- A check constraint has been violated
145     ben_prv_shd.g_api_dml := false;   -- Unset the api dml status
146     ben_prv_shd.constraint_error
147       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
148   When hr_api.parent_integrity_violated Then
149     -- Parent integrity has been violated
150     ben_prv_shd.g_api_dml := false;   -- Unset the api dml status
151     ben_prv_shd.constraint_error
152       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
153   When hr_api.unique_integrity_violated Then
154     -- Unique integrity has been violated
155     ben_prv_shd.g_api_dml := false;   -- Unset the api dml status
156     ben_prv_shd.constraint_error
157       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
158   When Others Then
159     ben_prv_shd.g_api_dml := false;   -- Unset the api dml status
160     Raise;
161 End update_dml;
162 --
163 -- ----------------------------------------------------------------------------
164 -- |------------------------------< pre_update >------------------------------|
165 -- ----------------------------------------------------------------------------
166 -- {Start Of Comments}
167 --
168 -- Description:
169 --   This private procedure contains any processing which is required before
170 --   the update dml.
171 --
172 -- Prerequisites:
173 --   This is an internal procedure which is called from the upd procedure.
174 --
175 -- In Parameters:
176 --   A Pl/Sql record structre.
177 --
178 -- Post Success:
179 --   Processing continues.
180 --
181 -- Post Failure:
182 --   If an error has occurred, an error message and exception will be raised
183 --   but not handled.
184 --
185 -- Developer Implementation Notes:
186 --   Any pre-processing required before the update dml is issued should be
187 --   coded within this procedure. It is important to note that any 3rd party
188 --   maintenance should be reviewed before placing in this procedure.
189 --
190 -- Access Status:
191 --   Internal Row Handler Use Only.
192 --
193 -- {End Of Comments}
194 -- ----------------------------------------------------------------------------
195 Procedure pre_update(p_rec in out nocopy ben_prv_shd.g_rec_type ,p_effective_date in date ) is
196 --
197   cursor c1 is
198    select enrt_rt_id, object_version_number
199    from ben_enrt_rt
200    where prtt_rt_val_id = p_rec.prtt_rt_val_id;
201 
202   l_enrt_rt_id number := null;
203   l_enrt_rt_ovn number := null;
204   l_effective_date date := p_effective_date;
205   l_proc  varchar2(72) := g_package||'pre_update';
206 --
207 Begin
208   hr_utility.set_location('Entering:'||l_proc, 5);
209 
210   -- If the rate is ending before it's starting, void the rate and update
211   -- the associated enrt_rt to no longer have an FK to it.
212 
213   if p_rec.rt_strt_dt > p_rec.rt_end_dt and
214      p_rec.prtt_rt_val_stat_cd is null then
215      p_rec.prtt_rt_val_stat_cd := 'VOIDD';
216   end if;
217 
218   if p_rec.prtt_rt_val_stat_cd = 'VOIDD' then
219      open c1;
220      fetch c1 into l_enrt_rt_id, l_enrt_rt_ovn;
221      close c1;
222      if l_enrt_rt_id is not null then
223         ben_enrollment_rate_api.update_enrollment_rate(
224         p_enrt_rt_id                    => l_enrt_rt_id,
225         p_prtt_rt_val_id                => null,
226         p_object_version_number         => l_enrt_rt_ovn,
227         p_effective_date                => l_effective_date);
228     end if;
229   end if;
230   hr_utility.set_location(' Leaving:'||l_proc, 10);
231 End pre_update;
232 --
233 -- ----------------------------------------------------------------------------
234 -- |-----------------------------< post_update >------------------------------|
235 -- ----------------------------------------------------------------------------
236 -- {Start Of Comments}
237 --
238 -- Description:
239 --   This private procedure contains any processing which is required after the
240 --   update dml.
241 --
242 -- Prerequisites:
243 --   This is an internal procedure which is called from the upd procedure.
244 --
245 -- In Parameters:
246 --   A Pl/Sql record structre.
247 --
248 -- Post Success:
249 --   Processing continues.
250 --
251 -- Post Failure:
252 --   If an error has occurred, an error message and exception will be raised
253 --   but not handled.
254 --
255 -- Developer Implementation Notes:
256 --   Any post-processing required after the update dml is issued should be
257 --   coded within this procedure. It is important to note that any 3rd party
258 --   maintenance should be reviewed before placing in this procedure.
259 --
260 -- Access Status:
261 --   Internal Row Handler Use Only.
262 --
263 -- {End Of Comments}
264 -- ----------------------------------------------------------------------------
265 Procedure post_update(p_rec in ben_prv_shd.g_rec_type,p_effective_date in date ) is
266 --
267   l_proc  varchar2(72) := g_package||'post_update';
268   -- p_effective_date date := sysdate;
269   l_old_rec   ben_prv_ler.g_prv_ler_rec ;
270   l_new_rec   ben_prv_ler.g_prv_ler_rec ;
271 --
272 Begin
273   hr_utility.set_location('Entering:'||l_proc, 5);
274   -- Start of API User Hook for post_update.
275   --
276   begin
277      l_old_rec.prtt_enrt_rslt_id   := ben_prv_shd.g_old_rec.prtt_enrt_rslt_id;
278      l_old_rec.business_group_id   := ben_prv_shd.g_old_rec.business_group_id;
279      l_old_rec.rt_strt_dt          := ben_prv_shd.g_old_rec.rt_strt_dt;
280      l_old_rec.rt_end_dt           := ben_prv_shd.g_old_rec.rt_end_dt;
281      l_old_rec.cmcd_rt_val         := ben_prv_shd.g_old_rec.cmcd_rt_val;
282      l_old_rec.ann_rt_val          := ben_prv_shd.g_old_rec.ann_rt_val;
283      l_old_rec.rt_val              := ben_prv_shd.g_old_rec.rt_val;
284      l_old_rec.rt_ovridn_flag      := ben_prv_shd.g_old_rec.rt_ovridn_flag;
285      l_old_rec.elctns_made_dt      := ben_prv_shd.g_old_rec.elctns_made_dt;
286      l_old_rec.rt_ovridn_thru_dt   := ben_prv_shd.g_old_rec.rt_ovridn_thru_dt;
287      l_old_rec.tx_typ_cd           := ben_prv_shd.g_old_rec.tx_typ_cd;
288      l_old_rec.acty_typ_cd         := ben_prv_shd.g_old_rec.acty_typ_cd;
289      l_old_rec.per_in_ler_id       := ben_prv_shd.g_old_rec.per_in_ler_id;
290      l_old_rec.acty_base_rt_id     := ben_prv_shd.g_old_rec.acty_base_rt_id;
291      l_old_rec.prtt_rt_val_stat_cd := ben_prv_shd.g_old_rec.prtt_rt_val_stat_cd;
292      l_old_rec.prtt_rt_val_id      := ben_prv_shd.g_old_rec.prtt_rt_val_id;
293 
294      l_new_rec.prtt_enrt_rslt_id := p_rec.prtt_enrt_rslt_id;
295      l_new_rec.business_group_id := p_rec.business_group_id;
296      l_new_rec.rt_strt_dt        := p_rec.rt_strt_dt;
297      l_new_rec.rt_end_dt         := p_rec.rt_end_dt;
298      l_new_rec.cmcd_rt_val       := p_rec.cmcd_rt_val;
299      l_new_rec.ann_rt_val        := p_rec.ann_rt_val;
300      l_new_rec.rt_val            := p_rec.rt_val;
301      l_new_rec.rt_ovridn_flag    := p_rec.rt_ovridn_flag;
302      l_new_rec.elctns_made_dt    := p_rec.elctns_made_dt;
303      l_new_rec.rt_ovridn_thru_dt := p_rec.rt_ovridn_thru_dt;
304      l_new_rec.tx_typ_cd         := p_rec.tx_typ_cd;
305      l_new_rec.acty_typ_cd       := p_rec.acty_typ_cd;
306      l_new_rec.per_in_ler_id     := p_rec.per_in_ler_id;
307      l_new_rec.acty_base_rt_id   := p_rec.acty_base_rt_id;
308      l_new_rec.prtt_rt_val_stat_cd := p_rec.prtt_rt_val_stat_cd;
309      l_new_rec.prtt_rt_val_id      := p_rec.prtt_rt_val_id;
310      --
311     ben_prv_rku.after_update
312       (
313   p_prtt_rt_val_id                =>p_rec.prtt_rt_val_id
314  ,p_rt_strt_dt                    =>p_rec.rt_strt_dt
315  ,p_rt_end_dt                     =>p_rec.rt_end_dt
316  ,p_rt_typ_cd                     =>p_rec.rt_typ_cd
317  ,p_tx_typ_cd                     =>p_rec.tx_typ_cd
318  ,p_ordr_num			  => p_rec.ordr_num
319  ,p_acty_typ_cd                   =>p_rec.acty_typ_cd
320  ,p_mlt_cd                        =>p_rec.mlt_cd
321  ,p_acty_ref_perd_cd              =>p_rec.acty_ref_perd_cd
322  ,p_rt_val                        =>p_rec.rt_val
323  ,p_ann_rt_val                    =>p_rec.ann_rt_val
324  ,p_cmcd_rt_val                   =>p_rec.cmcd_rt_val
325  ,p_cmcd_ref_perd_cd              =>p_rec.cmcd_ref_perd_cd
326  ,p_bnft_rt_typ_cd                =>p_rec.bnft_rt_typ_cd
327  ,p_dsply_on_enrt_flag            =>p_rec.dsply_on_enrt_flag
328  ,p_rt_ovridn_flag                =>p_rec.rt_ovridn_flag
329  ,p_rt_ovridn_thru_dt             =>p_rec.rt_ovridn_thru_dt
330  ,p_elctns_made_dt                =>p_rec.elctns_made_dt
331  ,p_prtt_rt_val_stat_cd           =>p_rec.prtt_rt_val_stat_cd
332  ,p_prtt_enrt_rslt_id             =>p_rec.prtt_enrt_rslt_id
333  ,p_cvg_amt_calc_mthd_id          =>p_rec.cvg_amt_calc_mthd_id
334  ,p_actl_prem_id                  =>p_rec.actl_prem_id
335  ,p_comp_lvl_fctr_id              =>p_rec.comp_lvl_fctr_id
336  ,p_element_entry_value_id        =>p_rec.element_entry_value_id
337  ,p_per_in_ler_id                 =>p_rec.per_in_ler_id
338  ,p_ended_per_in_ler_id           =>p_rec.ended_per_in_ler_id
339  ,p_acty_base_rt_id               =>p_rec.acty_base_rt_id
340  ,p_prtt_reimbmt_rqst_id          =>p_rec.prtt_reimbmt_rqst_id
341  ,p_prtt_rmt_aprvd_fr_pymt_id     =>p_rec.prtt_rmt_aprvd_fr_pymt_id
342  ,p_pp_in_yr_used_num             =>p_rec.pp_in_yr_used_num
343  ,p_business_group_id             =>p_rec.business_group_id
344  ,p_prv_attribute_category        =>p_rec.prv_attribute_category
345  ,p_prv_attribute1                =>p_rec.prv_attribute1
346  ,p_prv_attribute2                =>p_rec.prv_attribute2
347  ,p_prv_attribute3                =>p_rec.prv_attribute3
348  ,p_prv_attribute4                =>p_rec.prv_attribute4
349  ,p_prv_attribute5                =>p_rec.prv_attribute5
350  ,p_prv_attribute6                =>p_rec.prv_attribute6
351  ,p_prv_attribute7                =>p_rec.prv_attribute7
352  ,p_prv_attribute8                =>p_rec.prv_attribute8
353  ,p_prv_attribute9                =>p_rec.prv_attribute9
354  ,p_prv_attribute10               =>p_rec.prv_attribute10
355  ,p_prv_attribute11               =>p_rec.prv_attribute11
356  ,p_prv_attribute12               =>p_rec.prv_attribute12
357  ,p_prv_attribute13               =>p_rec.prv_attribute13
358  ,p_prv_attribute14               =>p_rec.prv_attribute14
359  ,p_prv_attribute15               =>p_rec.prv_attribute15
360  ,p_prv_attribute16               =>p_rec.prv_attribute16
361  ,p_prv_attribute17               =>p_rec.prv_attribute17
362  ,p_prv_attribute18               =>p_rec.prv_attribute18
363  ,p_prv_attribute19               =>p_rec.prv_attribute19
364  ,p_prv_attribute20               =>p_rec.prv_attribute20
365  ,p_prv_attribute21               =>p_rec.prv_attribute21
366  ,p_prv_attribute22               =>p_rec.prv_attribute22
367  ,p_prv_attribute23               =>p_rec.prv_attribute23
368  ,p_prv_attribute24               =>p_rec.prv_attribute24
369  ,p_prv_attribute25               =>p_rec.prv_attribute25
370  ,p_prv_attribute26               =>p_rec.prv_attribute26
371  ,p_prv_attribute27               =>p_rec.prv_attribute27
372  ,p_prv_attribute28               =>p_rec.prv_attribute28
373  ,p_prv_attribute29               =>p_rec.prv_attribute29
374  ,p_prv_attribute30               =>p_rec.prv_attribute30
375  ,p_pk_id_table_name              =>p_rec.pk_id_table_name
376  ,p_pk_id                         =>p_rec.pk_id
377  ,p_object_version_number         =>p_rec.object_version_number
378  ,p_effective_date                =>p_effective_date
379  ,p_rt_strt_dt_o                  =>ben_prv_shd.g_old_rec.rt_strt_dt
380  ,p_rt_end_dt_o                   =>ben_prv_shd.g_old_rec.rt_end_dt
381  ,p_rt_typ_cd_o                   =>ben_prv_shd.g_old_rec.rt_typ_cd
382  ,p_tx_typ_cd_o                   =>ben_prv_shd.g_old_rec.tx_typ_cd
383  ,p_ordr_num_o	 	          =>ben_abr_shd.g_old_rec.ordr_num
384  ,p_acty_typ_cd_o                 =>ben_prv_shd.g_old_rec.acty_typ_cd
385  ,p_mlt_cd_o                      =>ben_prv_shd.g_old_rec.mlt_cd
386  ,p_acty_ref_perd_cd_o            =>ben_prv_shd.g_old_rec.acty_ref_perd_cd
387  ,p_rt_val_o                      =>ben_prv_shd.g_old_rec.rt_val
388  ,p_ann_rt_val_o                  =>ben_prv_shd.g_old_rec.ann_rt_val
389  ,p_cmcd_rt_val_o                 =>ben_prv_shd.g_old_rec.cmcd_rt_val
390  ,p_cmcd_ref_perd_cd_o            =>ben_prv_shd.g_old_rec.cmcd_ref_perd_cd
391  ,p_bnft_rt_typ_cd_o              =>ben_prv_shd.g_old_rec.bnft_rt_typ_cd
392  ,p_dsply_on_enrt_flag_o          =>ben_prv_shd.g_old_rec.dsply_on_enrt_flag
393  ,p_rt_ovridn_flag_o              =>ben_prv_shd.g_old_rec.rt_ovridn_flag
394  ,p_rt_ovridn_thru_dt_o           =>ben_prv_shd.g_old_rec.rt_ovridn_thru_dt
395  ,p_elctns_made_dt_o              =>ben_prv_shd.g_old_rec.elctns_made_dt
396  ,p_prtt_rt_val_stat_cd_o         =>ben_prv_shd.g_old_rec.prtt_rt_val_stat_cd
397  ,p_prtt_enrt_rslt_id_o           =>ben_prv_shd.g_old_rec.prtt_enrt_rslt_id
398  ,p_cvg_amt_calc_mthd_id_o        =>ben_prv_shd.g_old_rec.cvg_amt_calc_mthd_id
399  ,p_actl_prem_id_o                =>ben_prv_shd.g_old_rec.actl_prem_id
400  ,p_comp_lvl_fctr_id_o            =>ben_prv_shd.g_old_rec.comp_lvl_fctr_id
401  ,p_element_entry_value_id_o      =>ben_prv_shd.g_old_rec.element_entry_value_id
402  ,p_per_in_ler_id_o               =>ben_prv_shd.g_old_rec.per_in_ler_id
403  ,p_ended_per_in_ler_id_o         =>ben_prv_shd.g_old_rec.ended_per_in_ler_id
404  ,p_acty_base_rt_id_o             =>ben_prv_shd.g_old_rec.acty_base_rt_id
405  ,p_prtt_reimbmt_rqst_id_o        =>ben_prv_shd.g_old_rec.prtt_reimbmt_rqst_id
406  ,p_prtt_rmt_aprvd_fr_pymt_id_o   =>ben_prv_shd.g_old_rec.prtt_rmt_aprvd_fr_pymt_id
407  ,p_pp_in_yr_used_num_o           =>ben_prv_shd.g_old_rec.pp_in_yr_used_num
408  ,p_business_group_id_o           =>ben_prv_shd.g_old_rec.business_group_id
409  ,p_prv_attribute_category_o      =>ben_prv_shd.g_old_rec.prv_attribute_category
410  ,p_prv_attribute1_o              =>ben_prv_shd.g_old_rec.prv_attribute1
411  ,p_prv_attribute2_o              =>ben_prv_shd.g_old_rec.prv_attribute2
412  ,p_prv_attribute3_o              =>ben_prv_shd.g_old_rec.prv_attribute3
413  ,p_prv_attribute4_o              =>ben_prv_shd.g_old_rec.prv_attribute4
414  ,p_prv_attribute5_o              =>ben_prv_shd.g_old_rec.prv_attribute5
415  ,p_prv_attribute6_o              =>ben_prv_shd.g_old_rec.prv_attribute6
416  ,p_prv_attribute7_o              =>ben_prv_shd.g_old_rec.prv_attribute7
417  ,p_prv_attribute8_o              =>ben_prv_shd.g_old_rec.prv_attribute8
418  ,p_prv_attribute9_o              =>ben_prv_shd.g_old_rec.prv_attribute9
419  ,p_prv_attribute10_o             =>ben_prv_shd.g_old_rec.prv_attribute10
420  ,p_prv_attribute11_o             =>ben_prv_shd.g_old_rec.prv_attribute11
421  ,p_prv_attribute12_o             =>ben_prv_shd.g_old_rec.prv_attribute12
422  ,p_prv_attribute13_o             =>ben_prv_shd.g_old_rec.prv_attribute13
423  ,p_prv_attribute14_o             =>ben_prv_shd.g_old_rec.prv_attribute14
424  ,p_prv_attribute15_o             =>ben_prv_shd.g_old_rec.prv_attribute15
425  ,p_prv_attribute16_o             =>ben_prv_shd.g_old_rec.prv_attribute16
426  ,p_prv_attribute17_o             =>ben_prv_shd.g_old_rec.prv_attribute17
427  ,p_prv_attribute18_o             =>ben_prv_shd.g_old_rec.prv_attribute18
428  ,p_prv_attribute19_o             =>ben_prv_shd.g_old_rec.prv_attribute19
429  ,p_prv_attribute20_o             =>ben_prv_shd.g_old_rec.prv_attribute20
430  ,p_prv_attribute21_o             =>ben_prv_shd.g_old_rec.prv_attribute21
431  ,p_prv_attribute22_o             =>ben_prv_shd.g_old_rec.prv_attribute22
432  ,p_prv_attribute23_o             =>ben_prv_shd.g_old_rec.prv_attribute23
433  ,p_prv_attribute24_o             =>ben_prv_shd.g_old_rec.prv_attribute24
434  ,p_prv_attribute25_o             =>ben_prv_shd.g_old_rec.prv_attribute25
435  ,p_prv_attribute26_o             =>ben_prv_shd.g_old_rec.prv_attribute26
436  ,p_prv_attribute27_o             =>ben_prv_shd.g_old_rec.prv_attribute27
437  ,p_prv_attribute28_o             =>ben_prv_shd.g_old_rec.prv_attribute28
438  ,p_prv_attribute29_o             =>ben_prv_shd.g_old_rec.prv_attribute29
439  ,p_prv_attribute30_o             =>ben_prv_shd.g_old_rec.prv_attribute30
440  ,p_pk_id_table_name_o            =>ben_prv_shd.g_old_rec.pk_id_table_name
441  ,p_pk_id_o                       =>ben_prv_shd.g_old_rec.pk_id
442  ,p_object_version_number_o       =>ben_prv_shd.g_old_rec.object_version_number
443       );
444  hr_utility.set_location('DM Mode prv ' ||hr_general.g_data_migrator_mode ,379);
445   --bug 1408379  caliing ler_chk moved from trigger to here
446  if hr_general.g_data_migrator_mode not in ( 'Y','P') then
447      ben_prv_ler.ler_chk(p_old => l_old_rec
448                      ,p_new => l_new_rec
449                      ,p_effective_date => p_effective_date  );
450   end if ;
451   exception
452     --
453     when hr_api.cannot_find_prog_unit then
454       --
455       hr_api.cannot_find_prog_unit_error
456         (p_module_name => 'ben_prtt_rt_val'
457         ,p_hook_type   => 'AU');
458       --
459   end;
460   --
461   -- End of API User Hook for post_update.
462   --
463   hr_utility.set_location(' Leaving:'||l_proc, 10);
464 End post_update;
465 --
466 -- ----------------------------------------------------------------------------
467 -- |-----------------------------< convert_defs >-----------------------------|
468 -- ----------------------------------------------------------------------------
469 -- {Start Of Comments}
470 --
471 -- Description:
472 --   The Convert_Defs procedure has one very important function:
473 --   It must return the record structure for the row with all system defaulted
474 --   values converted into its corresponding parameter value for update. When
475 --   we attempt to update a row through the Upd process , certain
476 --   parameters can be defaulted which enables flexibility in the calling of
477 --   the upd process (e.g. only attributes which need to be updated need to be
478 --   specified). For the upd process to determine which attributes
479 --   have NOT been specified we need to check if the parameter has a reserved
480 --   system default value. Therefore, for all parameters which have a
481 --   corresponding reserved system default mechanism specified we need to
482 --   check if a system default is being used. If a system default is being
483 --   used then we convert the defaulted value into its corresponding attribute
484 --   value held in the g_old_rec data structure.
485 --
486 -- Prerequisites:
487 --   This private function can only be called from the upd process.
488 --
489 -- In Parameters:
490 --   A Pl/Sql record structre.
491 --
492 -- Post Success:
493 --   The record structure will be returned with all system defaulted parameter
494 --   values converted into its current row attribute value.
495 --
496 -- Post Failure:
497 --   No direct error handling is required within this function. Any possible
498 --   errors within this procedure will be a PL/SQL value error due to conversion
499 
500 --   of datatypes or data lengths.
501 --
502 -- Developer Implementation Notes:
503 --   None.
504 --
505 -- Access Status:
506 --   Internal Row Handler Use Only.
507 --
508 -- {End Of Comments}
509 -- ----------------------------------------------------------------------------
510 Procedure convert_defs(p_rec in out nocopy ben_prv_shd.g_rec_type) is
511 --
512   l_proc  varchar2(72) := g_package||'convert_defs';
513 --
514 Begin
515   --
516   hr_utility.set_location('Entering:'||l_proc, 5);
517   --
518   -- We must now examine each argument value in the
519   -- p_rec plsql record structure
520   -- to see if a system default is being used. If a system default
521   -- is being used then we must set to the 'current' argument value.
522   --
523   If (p_rec.rt_strt_dt = hr_api.g_date) then
524     p_rec.rt_strt_dt :=
525     ben_prv_shd.g_old_rec.rt_strt_dt;
526   End If;
527   If (p_rec.rt_end_dt = hr_api.g_date) then
528     p_rec.rt_end_dt :=
529     ben_prv_shd.g_old_rec.rt_end_dt;
530   End If;
531   If (p_rec.rt_typ_cd = hr_api.g_varchar2) then
532     p_rec.rt_typ_cd :=
533     ben_prv_shd.g_old_rec.rt_typ_cd;
534   End If;
535   If (p_rec.tx_typ_cd = hr_api.g_varchar2) then
536     p_rec.tx_typ_cd :=
537     ben_prv_shd.g_old_rec.tx_typ_cd;
538   End If;
539   If (p_rec.ordr_num = hr_api.g_number) then
540         p_rec.ordr_num :=
541         ben_abr_shd.g_old_rec.ordr_num;
542   End If;
543   If (p_rec.acty_typ_cd = hr_api.g_varchar2) then
544     p_rec.acty_typ_cd :=
545     ben_prv_shd.g_old_rec.acty_typ_cd;
546   End If;
547   If (p_rec.mlt_cd = hr_api.g_varchar2) then
548     p_rec.mlt_cd :=
549     ben_prv_shd.g_old_rec.mlt_cd;
550   End If;
551   If (p_rec.acty_ref_perd_cd = hr_api.g_varchar2) then
552     p_rec.acty_ref_perd_cd :=
553     ben_prv_shd.g_old_rec.acty_ref_perd_cd;
554   End If;
555   If (p_rec.rt_val = hr_api.g_number) then
556     p_rec.rt_val :=
557     ben_prv_shd.g_old_rec.rt_val;
558   End If;
559   If (p_rec.ann_rt_val = hr_api.g_number) then
560     p_rec.ann_rt_val :=
561     ben_prv_shd.g_old_rec.ann_rt_val;
562   End If;
563   If (p_rec.cmcd_rt_val = hr_api.g_number) then
564     p_rec.cmcd_rt_val :=
565     ben_prv_shd.g_old_rec.cmcd_rt_val;
566   End If;
567   If (p_rec.cmcd_ref_perd_cd = hr_api.g_varchar2) then
568     p_rec.cmcd_ref_perd_cd :=
569     ben_prv_shd.g_old_rec.cmcd_ref_perd_cd;
570   End If;
571   If (p_rec.bnft_rt_typ_cd = hr_api.g_varchar2) then
572     p_rec.bnft_rt_typ_cd :=
573     ben_prv_shd.g_old_rec.bnft_rt_typ_cd;
574   End If;
575   If (p_rec.dsply_on_enrt_flag = hr_api.g_varchar2) then
576     p_rec.dsply_on_enrt_flag :=
577     ben_prv_shd.g_old_rec.dsply_on_enrt_flag;
578   End If;
579   If (p_rec.rt_ovridn_flag = hr_api.g_varchar2) then
580     p_rec.rt_ovridn_flag :=
581     ben_prv_shd.g_old_rec.rt_ovridn_flag;
582   End If;
583   If (p_rec.rt_ovridn_thru_dt = hr_api.g_date) then
584     p_rec.rt_ovridn_thru_dt :=
585     ben_prv_shd.g_old_rec.rt_ovridn_thru_dt;
586   End If;
587   If (p_rec.elctns_made_dt = hr_api.g_date) then
588     p_rec.elctns_made_dt :=
589     ben_prv_shd.g_old_rec.elctns_made_dt;
590   End If;
591   If (p_rec.prtt_rt_val_stat_cd = hr_api.g_varchar2) then
592     p_rec.prtt_rt_val_stat_cd :=
593     ben_prv_shd.g_old_rec.prtt_rt_val_stat_cd;
594   End If;
595   If (p_rec.prtt_enrt_rslt_id = hr_api.g_number) then
596     p_rec.prtt_enrt_rslt_id :=
597     ben_prv_shd.g_old_rec.prtt_enrt_rslt_id;
598   End If;
599   If (p_rec.cvg_amt_calc_mthd_id = hr_api.g_number) then
600     p_rec.cvg_amt_calc_mthd_id :=
601     ben_prv_shd.g_old_rec.cvg_amt_calc_mthd_id;
602   End If;
603   If (p_rec.actl_prem_id = hr_api.g_number) then
604     p_rec.actl_prem_id :=
605     ben_prv_shd.g_old_rec.actl_prem_id;
606   End If;
607   If (p_rec.comp_lvl_fctr_id = hr_api.g_number) then
608     p_rec.comp_lvl_fctr_id :=
609     ben_prv_shd.g_old_rec.comp_lvl_fctr_id;
610   End If;
611   If (p_rec.element_entry_value_id = hr_api.g_number) then
612     p_rec.element_entry_value_id :=
613     ben_prv_shd.g_old_rec.element_entry_value_id;
614   End If;
615   If (p_rec.per_in_ler_id = hr_api.g_number) then
616     p_rec.per_in_ler_id :=
617     ben_prv_shd.g_old_rec.per_in_ler_id;
618   End If;
619   If (p_rec.ended_per_in_ler_id = hr_api.g_number) then
620     p_rec.ended_per_in_ler_id :=
621     ben_prv_shd.g_old_rec.ended_per_in_ler_id;
622   End If;
623   If (p_rec.acty_base_rt_id = hr_api.g_number) then
624     p_rec.acty_base_rt_id :=
625     ben_prv_shd.g_old_rec.acty_base_rt_id;
626   End If;
627   If (p_rec.prtt_reimbmt_rqst_id = hr_api.g_number) then
628     p_rec.prtt_reimbmt_rqst_id :=
629     ben_prv_shd.g_old_rec.prtt_reimbmt_rqst_id;
630   End If;
631 
632   If (p_rec.prtt_rmt_aprvd_fr_pymt_id = hr_api.g_number) then
633     p_rec.prtt_rmt_aprvd_fr_pymt_id :=
634     ben_prv_shd.g_old_rec.prtt_rmt_aprvd_fr_pymt_id;
635   End If;
636 
637   If (p_rec.pp_in_yr_used_num = hr_api.g_number) then
638     p_rec.pp_in_yr_used_num :=
639     ben_prv_shd.g_old_rec.pp_in_yr_used_num;
640   End If;
641 
642 
643   If (p_rec.business_group_id = hr_api.g_number) then
644     p_rec.business_group_id :=
645     ben_prv_shd.g_old_rec.business_group_id;
646   End If;
647 
648   If (p_rec.prv_attribute_category = hr_api.g_varchar2) then
649     p_rec.prv_attribute_category :=
650     ben_prv_shd.g_old_rec.prv_attribute_category;
651   End If;
652 
653   If (p_rec.prv_attribute1 = hr_api.g_varchar2) then
654     p_rec.prv_attribute1 :=
655     ben_prv_shd.g_old_rec.prv_attribute1;
656   End If;
657 
658   If (p_rec.prv_attribute2 = hr_api.g_varchar2) then
659     p_rec.prv_attribute2 :=
660     ben_prv_shd.g_old_rec.prv_attribute2;
661   End If;
662   If (p_rec.prv_attribute3 = hr_api.g_varchar2) then
663     p_rec.prv_attribute3 :=
664     ben_prv_shd.g_old_rec.prv_attribute3;
665   End If;
666   If (p_rec.prv_attribute4 = hr_api.g_varchar2) then
667     p_rec.prv_attribute4 :=
668     ben_prv_shd.g_old_rec.prv_attribute4;
669   End If;
670   If (p_rec.prv_attribute5 = hr_api.g_varchar2) then
671     p_rec.prv_attribute5 :=
672     ben_prv_shd.g_old_rec.prv_attribute5;
673   End If;
674   If (p_rec.prv_attribute6 = hr_api.g_varchar2) then
675     p_rec.prv_attribute6 :=
676     ben_prv_shd.g_old_rec.prv_attribute6;
677   End If;
678   If (p_rec.prv_attribute7 = hr_api.g_varchar2) then
679     p_rec.prv_attribute7 :=
680     ben_prv_shd.g_old_rec.prv_attribute7;
681   End If;
682   If (p_rec.prv_attribute8 = hr_api.g_varchar2) then
683     p_rec.prv_attribute8 :=
684     ben_prv_shd.g_old_rec.prv_attribute8;
685   End If;
686   If (p_rec.prv_attribute9 = hr_api.g_varchar2) then
687     p_rec.prv_attribute9 :=
688     ben_prv_shd.g_old_rec.prv_attribute9;
689   End If;
690   If (p_rec.prv_attribute10 = hr_api.g_varchar2) then
691     p_rec.prv_attribute10 :=
692     ben_prv_shd.g_old_rec.prv_attribute10;
693   End If;
694   If (p_rec.prv_attribute11 = hr_api.g_varchar2) then
695     p_rec.prv_attribute11 :=
696     ben_prv_shd.g_old_rec.prv_attribute11;
697   End If;
698   If (p_rec.prv_attribute12 = hr_api.g_varchar2) then
699     p_rec.prv_attribute12 :=
700     ben_prv_shd.g_old_rec.prv_attribute12;
701   End If;
702   If (p_rec.prv_attribute13 = hr_api.g_varchar2) then
703     p_rec.prv_attribute13 :=
704     ben_prv_shd.g_old_rec.prv_attribute13;
705   End If;
706   If (p_rec.prv_attribute14 = hr_api.g_varchar2) then
707     p_rec.prv_attribute14 :=
708     ben_prv_shd.g_old_rec.prv_attribute14;
709   End If;
710   If (p_rec.prv_attribute15 = hr_api.g_varchar2) then
711     p_rec.prv_attribute15 :=
712     ben_prv_shd.g_old_rec.prv_attribute15;
713   End If;
714   If (p_rec.prv_attribute16 = hr_api.g_varchar2) then
715     p_rec.prv_attribute16 :=
716     ben_prv_shd.g_old_rec.prv_attribute16;
717   End If;
718   If (p_rec.prv_attribute17 = hr_api.g_varchar2) then
719     p_rec.prv_attribute17 :=
720     ben_prv_shd.g_old_rec.prv_attribute17;
721   End If;
722   If (p_rec.prv_attribute18 = hr_api.g_varchar2) then
723     p_rec.prv_attribute18 :=
724     ben_prv_shd.g_old_rec.prv_attribute18;
725   End If;
726   If (p_rec.prv_attribute19 = hr_api.g_varchar2) then
727     p_rec.prv_attribute19 :=
728     ben_prv_shd.g_old_rec.prv_attribute19;
729   End If;
730   If (p_rec.prv_attribute20 = hr_api.g_varchar2) then
731     p_rec.prv_attribute20 :=
732     ben_prv_shd.g_old_rec.prv_attribute20;
733   End If;
734   If (p_rec.prv_attribute21 = hr_api.g_varchar2) then
735     p_rec.prv_attribute21 :=
736     ben_prv_shd.g_old_rec.prv_attribute21;
737   End If;
738   If (p_rec.prv_attribute22 = hr_api.g_varchar2) then
739     p_rec.prv_attribute22 :=
740     ben_prv_shd.g_old_rec.prv_attribute22;
741   End If;
742   If (p_rec.prv_attribute23 = hr_api.g_varchar2) then
743     p_rec.prv_attribute23 :=
744     ben_prv_shd.g_old_rec.prv_attribute23;
745   End If;
746   If (p_rec.prv_attribute24 = hr_api.g_varchar2) then
747     p_rec.prv_attribute24 :=
748     ben_prv_shd.g_old_rec.prv_attribute24;
749   End If;
750   If (p_rec.prv_attribute25 = hr_api.g_varchar2) then
751     p_rec.prv_attribute25 :=
752     ben_prv_shd.g_old_rec.prv_attribute25;
753   End If;
754   If (p_rec.prv_attribute26 = hr_api.g_varchar2) then
755     p_rec.prv_attribute26 :=
756     ben_prv_shd.g_old_rec.prv_attribute26;
757   End If;
758   If (p_rec.prv_attribute27 = hr_api.g_varchar2) then
759     p_rec.prv_attribute27 :=
760     ben_prv_shd.g_old_rec.prv_attribute27;
761   End If;
762   If (p_rec.prv_attribute28 = hr_api.g_varchar2) then
763     p_rec.prv_attribute28 :=
764     ben_prv_shd.g_old_rec.prv_attribute28;
765   End If;
766   If (p_rec.prv_attribute29 = hr_api.g_varchar2) then
767     p_rec.prv_attribute29 :=
768     ben_prv_shd.g_old_rec.prv_attribute29;
769   End If;
770   If (p_rec.prv_attribute30 = hr_api.g_varchar2) then
771     p_rec.prv_attribute30 :=
772     ben_prv_shd.g_old_rec.prv_attribute30;
773   End If;
774   If (p_rec.pk_id_table_name = hr_api.g_varchar2) then
775     p_rec.pk_id_table_name :=
776     ben_prv_shd.g_old_rec.pk_id_table_name;
777   End If;
778   If (p_rec.pk_id= hr_api.g_number) then
779     p_rec.pk_id :=
780     ben_prv_shd.g_old_rec.pk_id;
781   End If;
782 
783   --
784   hr_utility.set_location(' Leaving:'||l_proc, 10);
785 --
786 End convert_defs;
787 --
788 -- ----------------------------------------------------------------------------
789 -- |---------------------------------< upd >----------------------------------|
790 -- ----------------------------------------------------------------------------
791 Procedure upd
792   (   p_rec  in out nocopy ben_prv_shd.g_rec_type ,
793       p_effective_date in date ) is
794   l_proc  varchar2(72) := g_package||'upd';
795 --
796 Begin
797   hr_utility.set_location('Entering:'||l_proc, 5);
798   ---
799   -- We must lock the row which we need to update.
800   --
801   ben_prv_shd.lck
802 	(
803 	p_rec.prtt_rt_val_id,
804 	p_rec.object_version_number
805 	);
806   --
807   -- 1. During an update system defaults are used to determine if
808   --    arguments have been defaulted or not. We must therefore
809   --    derive the full record structure values to be updated.
810   --
811   -- 2. Call the supporting update validate operations.
812   --
813   convert_defs(p_rec);
814   ben_prv_bus.update_validate(p_rec,p_effective_date);
815   --
816   -- Call the supporting pre-update operation
817   --
818   pre_update(p_rec,p_effective_date);
819   --
820   -- Update the row.
821   --
822   update_dml(p_rec);
823   --
824   -- Call the supporting post-update operation
825   --
826   post_update(p_rec,p_effective_date );
827 
828 End upd;
829 --
830 -- ----------------------------------------------------------------------------
831 -- |---------------------------------< upd >----------------------------------|
832 -- ----------------------------------------------------------------------------
833 Procedure upd
834   (
835   p_prtt_rt_val_id               in number,
836   p_enrt_rt_id		     	 in number	     default hr_api.g_number,
837   p_rt_strt_dt                   in date             default hr_api.g_date,
838   p_rt_end_dt                    in date             default hr_api.g_date,
839   p_rt_typ_cd                    in varchar2         default hr_api.g_varchar2,
840   p_tx_typ_cd                    in varchar2         default hr_api.g_varchar2,
841   p_ordr_num			 in number           default hr_api.g_number,
842   p_acty_typ_cd                  in varchar2         default hr_api.g_varchar2,
843   p_mlt_cd                       in varchar2         default hr_api.g_varchar2,
844   p_acty_ref_perd_cd             in varchar2         default hr_api.g_varchar2,
845   p_rt_val                       in number           default hr_api.g_number,
846   p_ann_rt_val                   in number           default hr_api.g_number,
847   p_cmcd_rt_val                  in number           default hr_api.g_number,
848   p_cmcd_ref_perd_cd             in varchar2         default hr_api.g_varchar2,
849   p_bnft_rt_typ_cd               in varchar2         default hr_api.g_varchar2,
850   p_dsply_on_enrt_flag           in varchar2         default hr_api.g_varchar2,
851   p_rt_ovridn_flag               in varchar2         default hr_api.g_varchar2,
852   p_rt_ovridn_thru_dt            in date             default hr_api.g_date,
853   p_elctns_made_dt               in date             default hr_api.g_date,
854   p_prtt_rt_val_stat_cd          in varchar2         default hr_api.g_varchar2,
855   p_prtt_enrt_rslt_id            in number           default hr_api.g_number,
856   p_cvg_amt_calc_mthd_id         in number           default hr_api.g_number,
857   p_actl_prem_id                 in number           default hr_api.g_number,
858   p_comp_lvl_fctr_id             in number           default hr_api.g_number,
859   p_element_entry_value_id       in number           default hr_api.g_number,
860   p_per_in_ler_id                in number           default hr_api.g_number,
861   p_ended_per_in_ler_id          in number           default hr_api.g_number,
862   p_acty_base_rt_id              in number           default hr_api.g_number,
863   p_prtt_reimbmt_rqst_id         in number           default hr_api.g_number,
864   p_prtt_rmt_aprvd_fr_pymt_id    in number           default hr_api.g_number,
865   p_pp_in_yr_used_num            in number           default hr_api.g_number,
866   p_business_group_id            in number           default hr_api.g_number,
867   p_prv_attribute_category       in varchar2         default hr_api.g_varchar2,
868   p_prv_attribute1               in varchar2         default hr_api.g_varchar2,
869   p_prv_attribute2               in varchar2         default hr_api.g_varchar2,
870   p_prv_attribute3               in varchar2         default hr_api.g_varchar2,
871   p_prv_attribute4               in varchar2         default hr_api.g_varchar2,
872   p_prv_attribute5               in varchar2         default hr_api.g_varchar2,
873   p_prv_attribute6               in varchar2         default hr_api.g_varchar2,
874   p_prv_attribute7               in varchar2         default hr_api.g_varchar2,
875   p_prv_attribute8               in varchar2         default hr_api.g_varchar2,
876   p_prv_attribute9               in varchar2         default hr_api.g_varchar2,
877   p_prv_attribute10              in varchar2         default hr_api.g_varchar2,
878   p_prv_attribute11              in varchar2         default hr_api.g_varchar2,
879   p_prv_attribute12              in varchar2         default hr_api.g_varchar2,
880   p_prv_attribute13              in varchar2         default hr_api.g_varchar2,
881   p_prv_attribute14              in varchar2         default hr_api.g_varchar2,
882   p_prv_attribute15              in varchar2         default hr_api.g_varchar2,
883   p_prv_attribute16              in varchar2         default hr_api.g_varchar2,
884   p_prv_attribute17              in varchar2         default hr_api.g_varchar2,
885   p_prv_attribute18              in varchar2         default hr_api.g_varchar2,
886   p_prv_attribute19              in varchar2         default hr_api.g_varchar2,
887   p_prv_attribute20              in varchar2         default hr_api.g_varchar2,
888   p_prv_attribute21              in varchar2         default hr_api.g_varchar2,
889   p_prv_attribute22              in varchar2         default hr_api.g_varchar2,
890   p_prv_attribute23              in varchar2         default hr_api.g_varchar2,
891   p_prv_attribute24              in varchar2         default hr_api.g_varchar2,
892   p_prv_attribute25              in varchar2         default hr_api.g_varchar2,
893   p_prv_attribute26              in varchar2         default hr_api.g_varchar2,
894   p_prv_attribute27              in varchar2         default hr_api.g_varchar2,
895   p_prv_attribute28              in varchar2         default hr_api.g_varchar2,
896   p_prv_attribute29              in varchar2         default hr_api.g_varchar2,
897   p_prv_attribute30              in varchar2         default hr_api.g_varchar2,
898   p_pk_id_table_name             in varchar2         default hr_api.g_varchar2,
899   p_pk_id                        in number           default hr_api.g_number,
900   p_object_version_number        in out nocopy number                                ,
901   p_effective_Date               in date
902   ) is
903 --
904   l_rec	  ben_prv_shd.g_rec_type;
905   l_proc  varchar2(72) := g_package||'upd';
906 --
907 Begin
908   hr_utility.set_location('Entering:'||l_proc, 5);
909   --
910   -- Call conversion function to turn arguments into the
911   -- l_rec structure.
912   --
913   l_rec :=
914   ben_prv_shd.convert_args
915   (
916   p_prtt_rt_val_id,
917   p_enrt_rt_id,
918   p_rt_strt_dt,
919   p_rt_end_dt,
920   p_rt_typ_cd,
921   p_tx_typ_cd,
922   p_ordr_num,
923   p_acty_typ_cd,
924   p_mlt_cd,
925   p_acty_ref_perd_cd,
926   p_rt_val,
927   p_ann_rt_val,
928   p_cmcd_rt_val,
929   p_cmcd_ref_perd_cd,
930   p_bnft_rt_typ_cd,
931   p_dsply_on_enrt_flag,
932   p_rt_ovridn_flag,
933   p_rt_ovridn_thru_dt,
934   p_elctns_made_dt,
935   p_prtt_rt_val_stat_cd,
936   p_prtt_enrt_rslt_id,
937   p_cvg_amt_calc_mthd_id,
938   p_actl_prem_id,
939   p_comp_lvl_fctr_id,
940   p_element_entry_value_id,
941   p_per_in_ler_id,
942   p_ended_per_in_ler_id,
943   p_acty_base_rt_id,
944   p_prtt_reimbmt_rqst_id,
945   p_prtt_rmt_aprvd_fr_pymt_id,
946   p_pp_in_yr_used_num,
947   p_business_group_id,
948   p_prv_attribute_category,
949   p_prv_attribute1,
950   p_prv_attribute2,
951   p_prv_attribute3,
952   p_prv_attribute4,
953   p_prv_attribute5,
954   p_prv_attribute6,
955   p_prv_attribute7,
956   p_prv_attribute8,
957   p_prv_attribute9,
958   p_prv_attribute10,
959   p_prv_attribute11,
960   p_prv_attribute12,
961   p_prv_attribute13,
962   p_prv_attribute14,
963   p_prv_attribute15,
964   p_prv_attribute16,
965   p_prv_attribute17,
966   p_prv_attribute18,
967   p_prv_attribute19,
968   p_prv_attribute20,
969   p_prv_attribute21,
970   p_prv_attribute22,
971   p_prv_attribute23,
972   p_prv_attribute24,
973   p_prv_attribute25,
974   p_prv_attribute26,
975   p_prv_attribute27,
976   p_prv_attribute28,
977   p_prv_attribute29,
978   p_prv_attribute30,
979   p_pk_id_table_name,
980   p_pk_id,
981   p_object_version_number
982   );
983   --
984   -- Having converted the arguments into the
985   -- plsql record structure we call the corresponding record
986   -- business process.
987   --
988   upd(l_rec , p_effective_date );
989 
990 
991   p_object_version_number := l_rec.object_version_number;
992   --
993   hr_utility.set_location(' Leaving:'||l_proc, 10);
994 End upd;
995 --
996 end ben_prv_upd;