DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_CPD_INS

Source


1 Package Body ben_cpd_ins as
2 /* $Header: becpdrhi.pkb 120.4.12020000.3 2013/01/02 07:16:14 kmsuresh ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  ben_cpd_ins.';  -- Global package name
9 --
10 -- The following global variables are only to be used by
11 -- the set_base_key_value and pre_insert procedures.
12 --
13 g_pl_id_i  number   default null;
14 g_oipl_id_i  number   default null;
15 g_lf_evt_ocrd_dt_i  date   default null;
16 --
17 -- ----------------------------------------------------------------------------
18 -- |------------------------< set_base_key_value >----------------------------|
19 -- ----------------------------------------------------------------------------
20 procedure set_base_key_value
21   (p_pl_id  in  number
22   ,p_oipl_id  in  number
23   ,p_lf_evt_ocrd_dt  in  date) is
24 --
25   l_proc       varchar2(72) := g_package||'set_base_key_value';
26 --
27 Begin
28   hr_utility.set_location('Entering:'||l_proc, 10);
29   --
30   ben_cpd_ins.g_pl_id_i := p_pl_id;
31   ben_cpd_ins.g_lf_evt_ocrd_dt_i := p_lf_evt_ocrd_dt;
32   ben_cpd_ins.g_oipl_id_i := p_oipl_id;
33   --
34   hr_utility.set_location(' Leaving:'||l_proc, 20);
35 End set_base_key_value;
36 --
37 --
38 -- ----------------------------------------------------------------------------
39 -- |------------------------------< insert_dml >------------------------------|
40 -- ----------------------------------------------------------------------------
41 -- {Start Of Comments}
42 --
43 -- Description:
44 --   This procedure controls the actual dml insert logic. The processing of
45 --   this procedure are as follows:
46 --   1) Initialise the object_version_number to 1 if the object_version_number
47 --      is defined as an attribute for this entity.
48 --   2) To set and unset the g_api_dml status as required (as we are about to
49 --      perform dml).
50 --   3) To insert the row into the schema.
51 --   4) To trap any constraint violations that may have occurred.
52 --   5) To raise any other errors.
53 --
54 -- Prerequisites:
55 --   This is an internal private procedure which must be called from the ins
56 --   procedure and must have all mandatory attributes set (except the
57 --   object_version_number which is initialised within this procedure).
58 --
59 -- In Parameters:
60 --   A Pl/Sql record structre.
61 --
62 -- Post Success:
63 --   The specified row will be inserted into the schema.
64 --
65 -- Post Failure:
66 --   On the insert dml failure it is important to note that we always reset the
67 --   g_api_dml status to false.
68 --   If a check, unique or parent integrity constraint violation is raised the
69 --   constraint_error procedure will be called.
70 --   If any other error is reported, the error will be raised after the
71 --   g_api_dml status is reset.
72 --
73 -- Developer Implementation Notes:
74 --   None.
75 --
76 -- Access Status:
77 --   Internal Row Handler Use Only.
81 Procedure insert_dml
78 --
79 -- {End Of Comments}
80 -- ----------------------------------------------------------------------------
82   (p_rec in out nocopy ben_cpd_shd.g_rec_type
83   ) is
84 --
85   l_proc  varchar2(72) := g_package||'insert_dml';
86 --
87 Begin
88   hr_utility.set_location('Entering:'||l_proc, 5);
89   p_rec.object_version_number := 1;  -- Initialise the object version
90   --
91   ben_cpd_shd.g_api_dml := true;  -- Set the api dml status
92   --
93   -- Insert the row into: ben_cwb_pl_dsgn
94   --
95   insert into ben_cwb_pl_dsgn
96       (pl_id
97       ,lf_evt_ocrd_dt
98       ,oipl_id
99       ,effective_date
100       ,name
101       ,group_pl_id
102       ,group_oipl_id
103       ,opt_hidden_flag
104       ,opt_id
105       ,pl_uom
106       ,pl_ordr_num
107       ,oipl_ordr_num
108       ,pl_xchg_rate
109       ,opt_count
110       ,uses_bdgt_flag
111       ,prsrv_bdgt_cd
112       ,upd_start_dt
113       ,upd_end_dt
114       ,approval_mode
115       ,enrt_perd_start_dt
116       ,enrt_perd_end_dt
117       ,yr_perd_start_dt
118       ,yr_perd_end_dt
119       ,wthn_yr_start_dt
120       ,wthn_yr_end_dt
121       ,enrt_perd_id
122       ,yr_perd_id
123       ,business_group_id
124       ,perf_revw_strt_dt
125       ,asg_updt_eff_date
126       ,emp_interview_typ_cd
127       ,salary_change_reason
128       ,ws_abr_id
129       ,ws_nnmntry_uom
130       ,ws_rndg_cd
131       ,ws_sub_acty_typ_cd
132       ,dist_bdgt_abr_id
133       ,dist_bdgt_nnmntry_uom
134       ,dist_bdgt_rndg_cd
135       ,ws_bdgt_abr_id
136       ,ws_bdgt_nnmntry_uom
137       ,ws_bdgt_rndg_cd
138       ,rsrv_abr_id
139       ,rsrv_nnmntry_uom
140       ,rsrv_rndg_cd
141       ,elig_sal_abr_id
142       ,elig_sal_nnmntry_uom
143       ,elig_sal_rndg_cd
144       ,misc1_abr_id
145       ,misc1_nnmntry_uom
146       ,misc1_rndg_cd
147       ,misc2_abr_id
148       ,misc2_nnmntry_uom
149       ,misc2_rndg_cd
150       ,misc3_abr_id
151       ,misc3_nnmntry_uom
152       ,misc3_rndg_cd
153       ,stat_sal_abr_id
154       ,stat_sal_nnmntry_uom
155       ,stat_sal_rndg_cd
156       ,rec_abr_id
157       ,rec_nnmntry_uom
158       ,rec_rndg_cd
159       ,tot_comp_abr_id
160       ,tot_comp_nnmntry_uom
161       ,tot_comp_rndg_cd
162       ,oth_comp_abr_id
163       ,oth_comp_nnmntry_uom
164       ,oth_comp_rndg_cd
165       ,actual_flag
166       ,acty_ref_perd_cd
167       ,legislation_code
168       ,pl_annulization_factor
169       ,pl_stat_cd
170       ,uom_precision
171       ,ws_element_type_id
172       ,ws_input_value_id
173       ,data_freeze_date
174       ,ws_amt_edit_cd
175       ,ws_amt_edit_enf_cd_for_nulls
176       ,ws_over_budget_edit_cd
177       ,ws_over_budget_tolerance_pct
178       ,bdgt_over_budget_edit_cd
179       ,bdgt_over_budget_tolerance_pct
180       ,auto_distr_flag
181       ,pqh_document_short_name
182       ,ovrid_rt_strt_dt
183       ,do_not_process_flag
184       ,ovr_perf_revw_strt_dt
185       ,post_zero_salary_increase
186       ,show_appraisals_n_days
187       ,grade_range_validation
188       ,object_version_number
189       )
190   Values
191     (p_rec.pl_id
192     ,p_rec.lf_evt_ocrd_dt
193     ,p_rec.oipl_id
194     ,p_rec.effective_date
195     ,p_rec.name
196     ,p_rec.group_pl_id
197     ,p_rec.group_oipl_id
198     ,p_rec.opt_hidden_flag
199     ,p_rec.opt_id
200     ,p_rec.pl_uom
201     ,p_rec.pl_ordr_num
202     ,p_rec.oipl_ordr_num
203     ,p_rec.pl_xchg_rate
204     ,p_rec.opt_count
205     ,p_rec.uses_bdgt_flag
206     ,p_rec.prsrv_bdgt_cd
207     ,p_rec.upd_start_dt
208     ,p_rec.upd_end_dt
209     ,p_rec.approval_mode
210     ,p_rec.enrt_perd_start_dt
211     ,p_rec.enrt_perd_end_dt
212     ,p_rec.yr_perd_start_dt
213     ,p_rec.yr_perd_end_dt
214     ,p_rec.wthn_yr_start_dt
215     ,p_rec.wthn_yr_end_dt
216     ,p_rec.enrt_perd_id
217     ,p_rec.yr_perd_id
218     ,p_rec.business_group_id
219     ,p_rec.perf_revw_strt_dt
220     ,p_rec.asg_updt_eff_date
221     ,p_rec.emp_interview_typ_cd
222     ,p_rec.salary_change_reason
223     ,p_rec.ws_abr_id
224     ,p_rec.ws_nnmntry_uom
225     ,p_rec.ws_rndg_cd
226     ,p_rec.ws_sub_acty_typ_cd
227     ,p_rec.dist_bdgt_abr_id
228     ,p_rec.dist_bdgt_nnmntry_uom
229     ,p_rec.dist_bdgt_rndg_cd
230     ,p_rec.ws_bdgt_abr_id
231     ,p_rec.ws_bdgt_nnmntry_uom
232     ,p_rec.ws_bdgt_rndg_cd
233     ,p_rec.rsrv_abr_id
234     ,p_rec.rsrv_nnmntry_uom
235     ,p_rec.rsrv_rndg_cd
236     ,p_rec.elig_sal_abr_id
237     ,p_rec.elig_sal_nnmntry_uom
238     ,p_rec.elig_sal_rndg_cd
239     ,p_rec.misc1_abr_id
240     ,p_rec.misc1_nnmntry_uom
241     ,p_rec.misc1_rndg_cd
242     ,p_rec.misc2_abr_id
243     ,p_rec.misc2_nnmntry_uom
244     ,p_rec.misc2_rndg_cd
245     ,p_rec.misc3_abr_id
246     ,p_rec.misc3_nnmntry_uom
247     ,p_rec.misc3_rndg_cd
248     ,p_rec.stat_sal_abr_id
249     ,p_rec.stat_sal_nnmntry_uom
250     ,p_rec.stat_sal_rndg_cd
251     ,p_rec.rec_abr_id
252     ,p_rec.rec_nnmntry_uom
253     ,p_rec.rec_rndg_cd
254     ,p_rec.tot_comp_abr_id
255     ,p_rec.tot_comp_nnmntry_uom
256     ,p_rec.tot_comp_rndg_cd
257     ,p_rec.oth_comp_abr_id
258     ,p_rec.oth_comp_nnmntry_uom
259     ,p_rec.oth_comp_rndg_cd
260     ,p_rec.actual_flag
261     ,p_rec.acty_ref_perd_cd
262     ,p_rec.legislation_code
263     ,p_rec.pl_annulization_factor
264     ,p_rec.pl_stat_cd
265     ,p_rec.uom_precision
266     ,p_rec.ws_element_type_id
267     ,p_rec.ws_input_value_id
268     ,p_rec.data_freeze_date
269     ,p_rec.ws_amt_edit_cd
270     ,p_rec.ws_amt_edit_enf_cd_for_nulls
271     ,p_rec.ws_over_budget_edit_cd
272     ,p_rec.ws_over_budget_tolerance_pct
273     ,p_rec.bdgt_over_budget_edit_cd
274     ,p_rec.bdgt_over_budget_tolerance_pct
275     ,p_rec.auto_distr_flag
276     ,p_rec.pqh_document_short_name
277     ,p_rec.ovrid_rt_strt_dt
278     ,p_rec.do_not_process_flag
279     ,p_rec.ovr_perf_revw_strt_dt
280     ,p_rec.post_zero_salary_increase
281     ,p_rec.show_appraisals_n_days
282     ,p_rec.grade_range_validation
283     ,p_rec.object_version_number
284     );
285   --
286   ben_cpd_shd.g_api_dml := false;   -- Unset the api dml status
287   --
288   hr_utility.set_location(' Leaving:'||l_proc, 10);
289 Exception
290   When hr_api.check_integrity_violated Then
291     -- A check constraint has been violated
292     ben_cpd_shd.g_api_dml := false;   -- Unset the api dml status
293     ben_cpd_shd.constraint_error
294       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
295   When hr_api.parent_integrity_violated Then
296     -- Parent integrity has been violated
297     ben_cpd_shd.g_api_dml := false;   -- Unset the api dml status
298     ben_cpd_shd.constraint_error
299       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
300   When hr_api.unique_integrity_violated Then
301     -- Unique integrity has been violated
302     ben_cpd_shd.g_api_dml := false;   -- Unset the api dml status
303     ben_cpd_shd.constraint_error
304       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
305   When Others Then
306     ben_cpd_shd.g_api_dml := false;   -- Unset the api dml status
307     Raise;
308 End insert_dml;
309 --
310 -- ----------------------------------------------------------------------------
311 -- |------------------------------< pre_insert >------------------------------|
312 -- ----------------------------------------------------------------------------
313 -- {Start Of Comments}
314 --
315 -- Description:
316 --   This private procedure contains any processing which is required before
317 --   the insert dml. Presently, if the entity has a corresponding primary
318 --   key which is maintained by an associating sequence, the primary key for
319 --   the entity will be populated with the next sequence value in
320 --   preparation for the insert dml.
321 --
322 -- Prerequisites:
323 --   This is an internal procedure which is called from the ins procedure.
324 --
325 -- In Parameters:
326 --   A Pl/Sql record structure.
327 --
328 -- Post Success:
329 --   Processing continues.
330 --
331 -- Post Failure:
332 --   If an error has occurred, an error message and exception will be raised
333 --   but not handled.
334 --
335 -- Developer Implementation Notes:
336 --   Any pre-processing required before the insert dml is issued should be
337 --   coded within this procedure. As stated above, a good example is the
338 --   generation of a primary key number via a corresponding sequence.
339 --   It is important to note that any 3rd party maintenance should be reviewed
340 --   before placing in this procedure.
341 --
342 -- Access Status:
343 --   Internal Row Handler Use Only.
344 --
345 -- {End Of Comments}
346 -- ----------------------------------------------------------------------------
347 Procedure pre_insert
348   (p_rec  in out nocopy ben_cpd_shd.g_rec_type
349   ) is
350 --
351   Cursor C_Sel1 is
352     Select null
353       from ben_cwb_pl_dsgn
354      where pl_id =
355              ben_cpd_ins.g_pl_id_i
356         or lf_evt_ocrd_dt =
357              ben_cpd_ins.g_lf_evt_ocrd_dt_i
358         or oipl_id =
359              ben_cpd_ins.g_oipl_id_i;
360 --
361   l_proc   varchar2(72) := g_package||'pre_insert';
362   l_exists varchar2(1);
363 --
364 Begin
365   hr_utility.set_location('Entering:'||l_proc, 5);
366   --
367   If (ben_cpd_ins.g_pl_id_i is not null or
368       ben_cpd_ins.g_lf_evt_ocrd_dt_i is not null or
369       ben_cpd_ins.g_oipl_id_i is not null) Then
370     --
371     -- Verify registered primary key values not already in use
372     --
373     Open C_Sel1;
374     Fetch C_Sel1 into l_exists;
375     If C_Sel1%found Then
376        Close C_Sel1;
377        --
378        -- The primary key values are already in use.
379        --
380        fnd_message.set_name('PER','PER_289391_KEY_ALREADY_USED');
381        fnd_message.set_token('TABLE_NAME','ben_cwb_pl_dsgn');
385     --
382        fnd_message.raise_error;
383     End If;
384     Close C_Sel1;
386     -- Use registered key values and clear globals
387     --
388     p_rec.pl_id :=
389       ben_cpd_ins.g_pl_id_i;
390     ben_cpd_ins.g_pl_id_i := null;
391     p_rec.lf_evt_ocrd_dt :=
392       ben_cpd_ins.g_lf_evt_ocrd_dt_i;
393     ben_cpd_ins.g_lf_evt_ocrd_dt_i := null;
394     p_rec.oipl_id :=
395       ben_cpd_ins.g_oipl_id_i;
396     ben_cpd_ins.g_oipl_id_i := null;
397   Else
398       -- Commented out the following code as it is not required.
399     null;
400 /*    --
401     -- No registerd key values, so select the next sequence number
402     --
403     --
404     -- Select the next sequence number
405     --
406     Open C_Sel1;
407     Fetch C_Sel1 Into p_rec.oipl_id;
408     Close C_Sel1; */
409   End If;
410   --
411   hr_utility.set_location(' Leaving:'||l_proc, 10);
412 End pre_insert;
413 --
414 -- ----------------------------------------------------------------------------
415 -- |-----------------------------< post_insert >------------------------------|
416 -- ----------------------------------------------------------------------------
417 -- {Start Of Comments}
418 --
419 -- Description:
420 --   This private procedure contains any processing which is required after
421 --   the insert dml.
422 --
423 -- Prerequisites:
424 --   This is an internal procedure which is called from the ins procedure.
425 --
426 -- In Parameters:
427 --   A Pl/Sql record structre.
428 --
429 -- Post Success:
430 --   Processing continues.
431 --
432 -- Post Failure:
433 --   If an error has occurred, an error message and exception will be raised
434 --   but not handled.
435 --
436 -- Developer Implementation Notes:
437 --   Any post-processing required after the insert dml is issued should be
438 --   coded within this procedure. It is important to note that any 3rd party
439 --   maintenance should be reviewed before placing in this procedure.
440 --
441 -- Access Status:
442 --   Internal Row Handler Use Only.
443 --
444 -- {End Of Comments}
445 -- ----------------------------------------------------------------------------
446 Procedure post_insert
447   (p_rec                          in ben_cpd_shd.g_rec_type
448   ) is
449 --
450   l_proc  varchar2(72) := g_package||'post_insert';
451 --
452 Begin
453   hr_utility.set_location('Entering:'||l_proc, 5);
454   begin
455     --
456     ben_cpd_rki.after_insert
457       (p_pl_id
458       => p_rec.pl_id
459       ,p_lf_evt_ocrd_dt
460       => p_rec.lf_evt_ocrd_dt
461       ,p_oipl_id
462       => p_rec.oipl_id
463       ,p_effective_date
464       => p_rec.effective_date
465       ,p_name
466       => p_rec.name
467       ,p_group_pl_id
468       => p_rec.group_pl_id
469       ,p_group_oipl_id
470       => p_rec.group_oipl_id
471       ,p_opt_hidden_flag
472       => p_rec.opt_hidden_flag
473       ,p_opt_id
474       => p_rec.opt_id
475       ,p_pl_uom
476       => p_rec.pl_uom
477       ,p_pl_ordr_num
478       => p_rec.pl_ordr_num
479       ,p_oipl_ordr_num
480       => p_rec.oipl_ordr_num
481       ,p_pl_xchg_rate
482       => p_rec.pl_xchg_rate
483       ,p_opt_count
484       => p_rec.opt_count
485       ,p_uses_bdgt_flag
486       => p_rec.uses_bdgt_flag
487       ,p_prsrv_bdgt_cd
488       => p_rec.prsrv_bdgt_cd
489       ,p_upd_start_dt
490       => p_rec.upd_start_dt
491       ,p_upd_end_dt
492       => p_rec.upd_end_dt
493       ,p_approval_mode
494       => p_rec.approval_mode
495       ,p_enrt_perd_start_dt
496       => p_rec.enrt_perd_start_dt
497       ,p_enrt_perd_end_dt
498       => p_rec.enrt_perd_end_dt
499       ,p_yr_perd_start_dt
500       => p_rec.yr_perd_start_dt
501       ,p_yr_perd_end_dt
502       => p_rec.yr_perd_end_dt
503       ,p_wthn_yr_start_dt
504       => p_rec.wthn_yr_start_dt
505       ,p_wthn_yr_end_dt
506       => p_rec.wthn_yr_end_dt
507       ,p_enrt_perd_id
508       => p_rec.enrt_perd_id
509       ,p_yr_perd_id
510       => p_rec.yr_perd_id
511       ,p_business_group_id
512       => p_rec.business_group_id
513       ,p_perf_revw_strt_dt
514       => p_rec.perf_revw_strt_dt
515       ,p_asg_updt_eff_date
516       => p_rec.asg_updt_eff_date
517       ,p_emp_interview_typ_cd
518       => p_rec.emp_interview_typ_cd
519       ,p_salary_change_reason
520       => p_rec.salary_change_reason
521       ,p_ws_abr_id
522       => p_rec.ws_abr_id
523       ,p_ws_nnmntry_uom
524       => p_rec.ws_nnmntry_uom
525       ,p_ws_rndg_cd
526       => p_rec.ws_rndg_cd
527       ,p_ws_sub_acty_typ_cd
528       => p_rec.ws_sub_acty_typ_cd
529       ,p_dist_bdgt_abr_id
530       => p_rec.dist_bdgt_abr_id
531       ,p_dist_bdgt_nnmntry_uom
532       => p_rec.dist_bdgt_nnmntry_uom
533       ,p_dist_bdgt_rndg_cd
534       => p_rec.dist_bdgt_rndg_cd
535       ,p_ws_bdgt_abr_id
536       => p_rec.ws_bdgt_abr_id
537       ,p_ws_bdgt_nnmntry_uom
538       => p_rec.ws_bdgt_nnmntry_uom
539       ,p_ws_bdgt_rndg_cd
540       => p_rec.ws_bdgt_rndg_cd
541       ,p_rsrv_abr_id
542       => p_rec.rsrv_abr_id
543       ,p_rsrv_nnmntry_uom
544       => p_rec.rsrv_nnmntry_uom
545       ,p_rsrv_rndg_cd
546       => p_rec.rsrv_rndg_cd
547       ,p_elig_sal_abr_id
548       => p_rec.elig_sal_abr_id
549       ,p_elig_sal_nnmntry_uom
550       => p_rec.elig_sal_nnmntry_uom
551       ,p_elig_sal_rndg_cd
552       => p_rec.elig_sal_rndg_cd
556       => p_rec.misc1_nnmntry_uom
553       ,p_misc1_abr_id
554       => p_rec.misc1_abr_id
555       ,p_misc1_nnmntry_uom
557       ,p_misc1_rndg_cd
558       => p_rec.misc1_rndg_cd
559       ,p_misc2_abr_id
560       => p_rec.misc2_abr_id
561       ,p_misc2_nnmntry_uom
562       => p_rec.misc2_nnmntry_uom
563       ,p_misc2_rndg_cd
564       => p_rec.misc2_rndg_cd
565       ,p_misc3_abr_id
566       => p_rec.misc3_abr_id
567       ,p_misc3_nnmntry_uom
568       => p_rec.misc3_nnmntry_uom
569       ,p_misc3_rndg_cd
570       => p_rec.misc3_rndg_cd
571       ,p_stat_sal_abr_id
572       => p_rec.stat_sal_abr_id
573       ,p_stat_sal_nnmntry_uom
574       => p_rec.stat_sal_nnmntry_uom
575       ,p_stat_sal_rndg_cd
576       => p_rec.stat_sal_rndg_cd
577       ,p_rec_abr_id
578       => p_rec.rec_abr_id
579       ,p_rec_nnmntry_uom
580       => p_rec.rec_nnmntry_uom
581       ,p_rec_rndg_cd
582       => p_rec.rec_rndg_cd
583       ,p_tot_comp_abr_id
584       => p_rec.tot_comp_abr_id
585       ,p_tot_comp_nnmntry_uom
586       => p_rec.tot_comp_nnmntry_uom
587       ,p_tot_comp_rndg_cd
588       => p_rec.tot_comp_rndg_cd
589       ,p_oth_comp_abr_id
590       => p_rec.oth_comp_abr_id
591       ,p_oth_comp_nnmntry_uom
592       => p_rec.oth_comp_nnmntry_uom
593       ,p_oth_comp_rndg_cd
594       => p_rec.oth_comp_rndg_cd
595       ,p_actual_flag
596       => p_rec.actual_flag
597       ,p_acty_ref_perd_cd
598       => p_rec.acty_ref_perd_cd
599       ,p_legislation_code
600       => p_rec.legislation_code
601       ,p_pl_annulization_factor
602       => p_rec.pl_annulization_factor
603       ,p_pl_stat_cd
604       => p_rec.pl_stat_cd
605       ,p_uom_precision
606       => p_rec.uom_precision
607       ,p_ws_element_type_id
608       => p_rec.ws_element_type_id
609       ,p_ws_input_value_id
610       => p_rec.ws_input_value_id
611       ,p_data_freeze_date
612       => p_rec.data_freeze_date
613       ,p_ws_amt_edit_cd
614       => p_rec.ws_amt_edit_cd
615       ,p_ws_amt_edit_enf_cd_for_nul
616       => p_rec.ws_amt_edit_enf_cd_for_nulls
617       ,p_ws_over_budget_edit_cd
618       => p_rec.ws_over_budget_edit_cd
619       ,p_ws_over_budget_tol_pct
620       => p_rec.ws_over_budget_tolerance_pct
621       ,p_bdgt_over_budget_edit_cd
622       => p_rec.bdgt_over_budget_edit_cd
623       ,p_bdgt_over_budget_tol_pct
624       => p_rec.bdgt_over_budget_tolerance_pct
625       ,p_auto_distr_flag
626       => p_rec.auto_distr_flag
627       ,p_pqh_document_short_name
628       => p_rec.pqh_document_short_name
629       ,p_ovrid_rt_strt_dt
630       => p_rec.ovrid_rt_strt_dt
631       ,p_do_not_process_flag
632       => p_rec.do_not_process_flag
633       ,p_ovr_perf_revw_strt_dt
634       => p_rec.ovr_perf_revw_strt_dt
635       ,p_post_zero_salary_increase
636       => p_rec.post_zero_salary_increase
637      ,p_show_appraisals_n_days
638       => p_rec.show_appraisals_n_days
639       ,p_grade_range_validation
640       => p_rec.grade_range_validation
641       ,p_object_version_number
642       => p_rec.object_version_number
643       );
644     --
645   exception
646     --
647     when hr_api.cannot_find_prog_unit then
648       --
649       hr_api.cannot_find_prog_unit_error
650         (p_module_name => 'BEN_CWB_PL_DSGN'
651         ,p_hook_type   => 'AI');
652       --
653   end;
654   --
655   hr_utility.set_location(' Leaving:'||l_proc, 10);
656 End post_insert;
657 --
658 -- ----------------------------------------------------------------------------
659 -- |---------------------------------< ins >----------------------------------|
660 -- ----------------------------------------------------------------------------
661 Procedure ins
662   (p_rec                          in out nocopy ben_cpd_shd.g_rec_type
663   ) is
664 --
665   l_proc  varchar2(72) := g_package||'ins';
666 --
667 Begin
668   hr_utility.set_location('Entering:'||l_proc, 5);
669   --
670   -- Call the supporting insert validate operations
671   --
672   ben_cpd_bus.insert_validate
673      (p_rec
674      );
675   --
676   -- Call to raise any errors on multi-message list
677   hr_multi_message.end_validation_set;
678   --
679   -- Call the supporting pre-insert operation
680   --
681   ben_cpd_ins.pre_insert(p_rec);
682   --
683   -- Insert the row
684   --
685   ben_cpd_ins.insert_dml(p_rec);
686   --
687   -- Call the supporting post-insert operation
688   --
689   ben_cpd_ins.post_insert
690      (p_rec
691      );
692   --
693   -- Call to raise any errors on multi-message list
694   hr_multi_message.end_validation_set;
695   --
696   hr_utility.set_location('Leaving:'||l_proc, 20);
697 end ins;
698 --
699 -- ----------------------------------------------------------------------------
700 -- |---------------------------------< ins >----------------------------------|
701 -- ----------------------------------------------------------------------------
702 Procedure ins
703   (p_pl_id                          in     number
704   ,p_oipl_id                        in     number
705   ,p_lf_evt_ocrd_dt                 in     date
706   ,p_effective_date                 in     date     default null
707   ,p_name                           in     varchar2 default null
708   ,p_group_pl_id                    in     number   default null
709   ,p_group_oipl_id                  in     number   default null
710   ,p_opt_hidden_flag                in     varchar2 default null
711   ,p_opt_id                         in     number   default null
715   ,p_pl_xchg_rate                   in     number   default null
712   ,p_pl_uom                         in     varchar2 default null
713   ,p_pl_ordr_num                    in     number   default null
714   ,p_oipl_ordr_num                  in     number   default null
716   ,p_opt_count                      in     number   default null
717   ,p_uses_bdgt_flag                 in     varchar2 default null
718   ,p_prsrv_bdgt_cd                  in     varchar2 default null
719   ,p_upd_start_dt                   in     date     default null
720   ,p_upd_end_dt                     in     date     default null
721   ,p_approval_mode                  in     varchar2 default null
722   ,p_enrt_perd_start_dt             in     date     default null
723   ,p_enrt_perd_end_dt               in     date     default null
724   ,p_yr_perd_start_dt               in     date     default null
725   ,p_yr_perd_end_dt                 in     date     default null
726   ,p_wthn_yr_start_dt               in     date     default null
727   ,p_wthn_yr_end_dt                 in     date     default null
728   ,p_enrt_perd_id                   in     number   default null
729   ,p_yr_perd_id                     in     number   default null
730   ,p_business_group_id              in     number   default null
731   ,p_perf_revw_strt_dt              in     date     default null
732   ,p_asg_updt_eff_date              in     date     default null
733   ,p_emp_interview_typ_cd           in     varchar2 default null
734   ,p_salary_change_reason           in     varchar2 default null
735   ,p_ws_abr_id                      in     number   default null
736   ,p_ws_nnmntry_uom                 in     varchar2 default null
737   ,p_ws_rndg_cd                     in     varchar2 default null
738   ,p_ws_sub_acty_typ_cd             in     varchar2 default null
739   ,p_dist_bdgt_abr_id               in     number   default null
740   ,p_dist_bdgt_nnmntry_uom          in     varchar2 default null
741   ,p_dist_bdgt_rndg_cd              in     varchar2 default null
742   ,p_ws_bdgt_abr_id                 in     number   default null
743   ,p_ws_bdgt_nnmntry_uom            in     varchar2 default null
744   ,p_ws_bdgt_rndg_cd                in     varchar2 default null
745   ,p_rsrv_abr_id                    in     number   default null
746   ,p_rsrv_nnmntry_uom               in     varchar2 default null
747   ,p_rsrv_rndg_cd                   in     varchar2 default null
748   ,p_elig_sal_abr_id                in     number   default null
749   ,p_elig_sal_nnmntry_uom           in     varchar2 default null
750   ,p_elig_sal_rndg_cd               in     varchar2 default null
751   ,p_misc1_abr_id                   in     number   default null
752   ,p_misc1_nnmntry_uom              in     varchar2 default null
753   ,p_misc1_rndg_cd                  in     varchar2 default null
754   ,p_misc2_abr_id                   in     number   default null
755   ,p_misc2_nnmntry_uom              in     varchar2 default null
756   ,p_misc2_rndg_cd                  in     varchar2 default null
757   ,p_misc3_abr_id                   in     number   default null
758   ,p_misc3_nnmntry_uom              in     varchar2 default null
759   ,p_misc3_rndg_cd                  in     varchar2 default null
760   ,p_stat_sal_abr_id                in     number   default null
761   ,p_stat_sal_nnmntry_uom           in     varchar2 default null
762   ,p_stat_sal_rndg_cd               in     varchar2 default null
763   ,p_rec_abr_id                     in     number   default null
764   ,p_rec_nnmntry_uom                in     varchar2 default null
765   ,p_rec_rndg_cd                    in     varchar2 default null
766   ,p_tot_comp_abr_id                in     number   default null
767   ,p_tot_comp_nnmntry_uom           in     varchar2 default null
768   ,p_tot_comp_rndg_cd               in     varchar2 default null
769   ,p_oth_comp_abr_id                in     number   default null
770   ,p_oth_comp_nnmntry_uom           in     varchar2 default null
771   ,p_oth_comp_rndg_cd               in     varchar2 default null
772   ,p_actual_flag                    in     varchar2 default null
773   ,p_acty_ref_perd_cd               in     varchar2 default null
774   ,p_legislation_code               in     varchar2 default null
775   ,p_pl_annulization_factor         in     number   default null
776   ,p_pl_stat_cd                     in     varchar2 default null
777   ,p_uom_precision                  in     number   default null
778   ,p_ws_element_type_id             in     number   default null
779   ,p_ws_input_value_id              in     number   default null
780   ,p_data_freeze_date               in     date     default null
781   ,p_ws_amt_edit_cd                 in     varchar2 default null
782   ,p_ws_amt_edit_enf_cd_for_nul     in     varchar2 default null
783   ,p_ws_over_budget_edit_cd         in     varchar2 default null
784   ,p_ws_over_budget_tol_pct         in     number   default null
785   ,p_bdgt_over_budget_edit_cd       in     varchar2 default null
786   ,p_bdgt_over_budget_tol_pct       in     number   default null
787   ,p_auto_distr_flag                in     varchar2 default null
788   ,p_pqh_document_short_name        in     varchar2 default null
789   ,p_ovrid_rt_strt_dt               in     date     default null
790   ,p_do_not_process_flag            in     varchar2 default null
791   ,p_ovr_perf_revw_strt_dt          in     date     default null
792   ,p_post_zero_salary_increase         in     varchar2  default null
793   ,p_show_appraisals_n_days            in     number    default null
794   ,p_grade_range_validation         in     varchar2  default null
795   ,p_object_version_number             out nocopy number
796   ,p_email_password_protected       in  varchar2 default null
797   ,p_email_cc_manager               in varchar2 default null
798   ,p_email_subject                   in varchar2 default null
799   ,p_email_content                  in clob default empty_clob()
800   ,p_email_sample_address           in varchar2 default null
801   ) is
802 --
803   l_rec   ben_cpd_shd.g_rec_type;
804   l_proc  varchar2(72) := g_package||'ins';
805 --
806 Begin
807   hr_utility.set_location('Entering:'||l_proc, 5);
808   --
809   -- Call conversion function to turn arguments into the
810   -- p_rec structure.
811   --
812   l_rec :=
813   ben_cpd_shd.convert_args
814     (p_pl_id
815     ,p_oipl_id
816     ,p_lf_evt_ocrd_dt
817     ,p_effective_date
818     ,p_name
819     ,p_group_pl_id
820     ,p_group_oipl_id
821     ,p_opt_hidden_flag
822     ,p_opt_id
823     ,p_pl_uom
824     ,p_pl_ordr_num
825     ,p_oipl_ordr_num
826     ,p_pl_xchg_rate
827     ,p_opt_count
828     ,p_uses_bdgt_flag
829     ,p_prsrv_bdgt_cd
830     ,p_upd_start_dt
831     ,p_upd_end_dt
832     ,p_approval_mode
833     ,p_enrt_perd_start_dt
834     ,p_enrt_perd_end_dt
835     ,p_yr_perd_start_dt
836     ,p_yr_perd_end_dt
837     ,p_wthn_yr_start_dt
838     ,p_wthn_yr_end_dt
839     ,p_enrt_perd_id
840     ,p_yr_perd_id
841     ,p_business_group_id
842     ,p_perf_revw_strt_dt
843     ,p_asg_updt_eff_date
844     ,p_emp_interview_typ_cd
845     ,p_salary_change_reason
846     ,p_ws_abr_id
847     ,p_ws_nnmntry_uom
848     ,p_ws_rndg_cd
849     ,p_ws_sub_acty_typ_cd
850     ,p_dist_bdgt_abr_id
851     ,p_dist_bdgt_nnmntry_uom
852     ,p_dist_bdgt_rndg_cd
853     ,p_ws_bdgt_abr_id
854     ,p_ws_bdgt_nnmntry_uom
855     ,p_ws_bdgt_rndg_cd
856     ,p_rsrv_abr_id
857     ,p_rsrv_nnmntry_uom
858     ,p_rsrv_rndg_cd
859     ,p_elig_sal_abr_id
860     ,p_elig_sal_nnmntry_uom
861     ,p_elig_sal_rndg_cd
862     ,p_misc1_abr_id
863     ,p_misc1_nnmntry_uom
864     ,p_misc1_rndg_cd
865     ,p_misc2_abr_id
866     ,p_misc2_nnmntry_uom
867     ,p_misc2_rndg_cd
868     ,p_misc3_abr_id
869     ,p_misc3_nnmntry_uom
870     ,p_misc3_rndg_cd
871     ,p_stat_sal_abr_id
872     ,p_stat_sal_nnmntry_uom
873     ,p_stat_sal_rndg_cd
874     ,p_rec_abr_id
875     ,p_rec_nnmntry_uom
876     ,p_rec_rndg_cd
877     ,p_tot_comp_abr_id
878     ,p_tot_comp_nnmntry_uom
879     ,p_tot_comp_rndg_cd
880     ,p_oth_comp_abr_id
881     ,p_oth_comp_nnmntry_uom
882     ,p_oth_comp_rndg_cd
883     ,p_actual_flag
884     ,p_acty_ref_perd_cd
885     ,p_legislation_code
886     ,p_pl_annulization_factor
887     ,p_pl_stat_cd
888     ,p_uom_precision
889     ,p_ws_element_type_id
890     ,p_ws_input_value_id
891     ,p_data_freeze_date
892     ,p_ws_amt_edit_cd
893     ,p_ws_amt_edit_enf_cd_for_nul
894     ,p_ws_over_budget_edit_cd
895     ,p_ws_over_budget_tol_pct
896     ,p_bdgt_over_budget_edit_cd
897     ,p_bdgt_over_budget_tol_pct
898     ,p_auto_distr_flag
899     ,p_pqh_document_short_name
900     ,p_ovrid_rt_strt_dt
901     ,p_do_not_process_flag
902     ,p_ovr_perf_revw_strt_dt
903     ,p_post_zero_salary_increase
904     ,p_show_appraisals_n_days
905     ,p_grade_range_validation
906     ,null
907 	,p_email_password_protected
908 	,p_email_cc_manager
909 	,p_email_subject
910 	,p_email_content
911 	,p_email_sample_address
912     );
913   --
914   -- Having converted the arguments into the ben_cpd_rec
915   -- plsql record structure we call the corresponding record business process.
916   --
917   ben_cpd_ins.ins
918      (l_rec
919      );
920   --
921   -- As the primary key argument(s)
922   -- are specified as an OUT's we must set these values.
923   --
924   p_object_version_number := l_rec.object_version_number;
925   --
926   hr_utility.set_location(' Leaving:'||l_proc, 10);
927 End ins;
928 --
929 end ben_cpd_ins;