1 Package Body ben_esw_upd as
2 /* $Header: beeswrhi.pkb 120.1 2005/06/17 09:40 abparekh noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' ben_esw_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
21 -- this 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 structure.
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_esw_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
63 ) is
64 --
65 l_proc varchar2(72) := g_package||'dt_update_dml';
66 --
67 Begin
68 hr_utility.set_location('Entering:'||l_proc, 5);
69 --
70 If (p_datetrack_mode = hr_api.g_correction) then
71 hr_utility.set_location(l_proc, 10);
72 --
73 -- Because we are updating a row we must get the next object
74 -- version number.
75 --
76 p_rec.object_version_number :=
77 dt_api.get_object_version_number
78 (p_base_table_name => 'ben_elig_scre_wtg_f'
79 ,p_base_key_column => 'elig_scre_wtg_id'
80 ,p_base_key_value => p_rec.elig_scre_wtg_id
81 );
82 --
83 --
84 --
85 -- Update the ben_elig_scre_wtg_f Row
86 --
87 update ben_elig_scre_wtg_f
88 set
89 elig_scre_wtg_id = p_rec.elig_scre_wtg_id
90 ,elig_per_id = p_rec.elig_per_id
91 ,elig_per_opt_id = p_rec.elig_per_opt_id
92 ,elig_rslt_id = p_rec.elig_rslt_id
93 ,per_in_ler_id = p_rec.per_in_ler_id
94 ,object_version_number = p_rec.object_version_number
95 ,eligy_prfl_id = p_rec.eligy_prfl_id
96 ,crit_tab_short_name = p_rec.crit_tab_short_name
97 ,crit_tab_pk_id = p_rec.crit_tab_pk_id
98 ,computed_score = p_rec.computed_score
99 ,benefit_action_id = p_rec.benefit_action_id
100 where elig_scre_wtg_id = p_rec.elig_scre_wtg_id
101 and effective_start_date = p_validation_start_date
102 and effective_end_date = p_validation_end_date;
103 --
104 --
105 --
106 -- Set the effective start and end dates
107 --
108 p_rec.effective_start_date := p_validation_start_date;
109 p_rec.effective_end_date := p_validation_end_date;
110 End If;
111 --
112 hr_utility.set_location(' Leaving:'||l_proc, 15);
113 Exception
114 When hr_api.check_integrity_violated Then
115 -- A check constraint has been violated
116 --
117 ben_esw_shd.constraint_error
118 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
119 When hr_api.unique_integrity_violated Then
120 -- Unique integrity has been violated
121 --
122 ben_esw_shd.constraint_error
123 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
124 When Others Then
125 --
126 Raise;
127 End dt_update_dml;
128 --
129 -- ----------------------------------------------------------------------------
130 -- |------------------------------< update_dml >------------------------------|
131 -- ----------------------------------------------------------------------------
132 -- {Start Of Comments}
133 --
134 -- Description:
135 -- This procedure calls the dt_update_dml control logic which handles
136 -- the actual datetrack dml.
137 --
138 -- Prerequisites:
139 -- This is an internal private procedure which must be called from the upd
140 -- procedure.
141 --
142 -- In Parameters:
143 -- A Pl/Sql record structre.
144 --
145 -- Post Success:
146 -- Processing contines.
147 --
148 -- Post Failure:
149 -- No specific error handling is required within this procedure.
150 --
151 -- Developer Implementation Notes:
152 -- The update 'set' arguments list should be modified if any of your
153 -- attributes are not updateable.
154 --
155 -- Access Status:
156 -- Internal Row Handler Use Only.
157 --
158 -- {End Of Comments}
159 -- ----------------------------------------------------------------------------
160 Procedure update_dml
161 (p_rec in out nocopy ben_esw_shd.g_rec_type
162 ,p_effective_date in date
163 ,p_datetrack_mode in varchar2
164 ,p_validation_start_date in date
165 ,p_validation_end_date in date
166 ) is
167 --
168 l_proc varchar2(72) := g_package||'update_dml';
169 --
170 Begin
171 hr_utility.set_location('Entering:'||l_proc, 5);
172 --
173 ben_esw_upd.dt_update_dml
174 (p_rec => p_rec
175 ,p_effective_date => p_effective_date
176 ,p_datetrack_mode => p_datetrack_mode
177 ,p_validation_start_date => p_validation_start_date
178 ,p_validation_end_date => p_validation_end_date
179 );
180 --
181 hr_utility.set_location(' Leaving:'||l_proc, 10);
182 End update_dml;
183 --
184 -- ----------------------------------------------------------------------------
185 -- |----------------------------< dt_pre_update >-----------------------------|
186 -- ----------------------------------------------------------------------------
187 -- {Start Of Comments}
188 --
189 -- Description:
190 -- The dt_pre_update procedure controls the execution
191 -- of dml for the datetrack modes of: UPDATE, UPDATE_OVERRIDE
192 -- and UPDATE_CHANGE_INSERT only. The execution required is as
193 -- follows:
194 --
195 -- 1) Providing the datetrack update mode is not 'CORRECTION'
196 -- then set the effective end date of the current row (this
197 -- will be the validation_start_date - 1).
198 -- 2) If the datetrack mode is 'UPDATE_OVERRIDE' then call the
199 -- corresponding delete_dml process to delete any future rows
200 -- where the effective_start_date is greater than or equal to
201 -- the validation_start_date.
202 -- 3) Call the insert_dml process to insert the new updated row
203 -- details.
204 --
205 -- Prerequisites:
206 -- This is an internal procedure which is called from the
207 -- pre_update procedure.
208 --
209 -- In Parameters:
210 --
211 -- Post Success:
212 -- Processing continues.
213 --
214 -- Post Failure:
215 -- If an error has occurred, an error message and exception will be raised
216 -- but not handled.
217 --
218 -- Developer Implementation Notes:
219 -- This is an internal procedure which is required by Datetrack. Don't
220 -- remove or modify.
221 --
222 -- Access Status:
223 -- Internal Row Handler Use Only.
224 --
225 -- {End Of Comments}
226 -- ----------------------------------------------------------------------------
227 Procedure dt_pre_update
228 (p_rec in out nocopy ben_esw_shd.g_rec_type
229 ,p_effective_date in date
230 ,p_datetrack_mode in varchar2
231 ,p_validation_start_date in date
232 ,p_validation_end_date in date
233 ) is
234 --
235 l_proc varchar2(72) := g_package||'dt_pre_update';
236 l_dummy_version_number number;
237 --
238 Begin
239 hr_utility.set_location('Entering:'||l_proc, 5);
240 If (p_datetrack_mode <> hr_api.g_correction) then
241 --
242 -- Update the current effective end date
243 --
244 ben_esw_shd.upd_effective_end_date
245 (p_effective_date => p_effective_date
246 ,p_base_key_value => p_rec.elig_scre_wtg_id
247 ,p_new_effective_end_date => (p_validation_start_date - 1)
248 ,p_validation_start_date => p_validation_start_date
249 ,p_validation_end_date => p_validation_end_date
250 ,p_object_version_number => l_dummy_version_number
251 );
252 --
253 If (p_datetrack_mode = hr_api.g_update_override) then
254 --
255 -- As the datetrack mode is 'UPDATE_OVERRIDE' then we must
256 -- delete any future rows
257 --
258 ben_esw_del.delete_dml
259 (p_rec => p_rec
260 ,p_effective_date => p_effective_date
261 ,p_datetrack_mode => p_datetrack_mode
262 ,p_validation_start_date => p_validation_start_date
263 ,p_validation_end_date => p_validation_end_date
264 );
265 End If;
266 --
267 -- We must now insert the updated row
268 --
269 ben_esw_ins.insert_dml
270 (p_rec => p_rec
271 ,p_effective_date => p_effective_date
272 ,p_datetrack_mode => p_datetrack_mode
273 ,p_validation_start_date => p_validation_start_date
274 ,p_validation_end_date => p_validation_end_date
275 );
276 End If;
277 hr_utility.set_location(' Leaving:'||l_proc, 20);
278 End dt_pre_update;
279 --
280 -- ----------------------------------------------------------------------------
281 -- |------------------------------< pre_update >------------------------------|
282 -- ----------------------------------------------------------------------------
283 -- {Start Of Comments}
284 --
285 -- Description:
286 -- This private procedure contains any processing which is required before
287 -- the update dml.
288 --
289 -- Prerequisites:
290 -- This is an internal procedure which is called from the upd procedure.
291 --
292 -- In Parameters:
293 -- A Pl/Sql record structure.
294 --
295 -- Post Success:
296 -- Processing continues.
297 --
298 -- Post Failure:
299 -- If an error has occurred, an error message and exception will be raised
300 -- but not handled.
301 -- Developer Implementation Notes:
302 -- Any pre-processing required before the update dml is issued should be
303 -- coded within this procedure. It is important to note that any 3rd party
304 -- maintenance should be reviewed before placing in this procedure. The call
305 -- to the dt_update_dml procedure should NOT be removed.
306 --
307 -- Access Status:
308 -- Internal Row Handler Use Only.
309 --
310 -- {End Of Comments}
311 -- ----------------------------------------------------------------------------
312 Procedure pre_update
313 (p_rec in out nocopy ben_esw_shd.g_rec_type
314 ,p_effective_date in date
315 ,p_datetrack_mode in varchar2
316 ,p_validation_start_date in date
317 ,p_validation_end_date in date
318 ) is
319 --
320 l_proc varchar2(72) := g_package||'pre_update';
321 --
322 Begin
323 hr_utility.set_location('Entering:'||l_proc, 5);
324 --
325 --
326 --
327 dt_pre_update
328 (p_rec => p_rec
329 ,p_effective_date => p_effective_date
330 ,p_datetrack_mode => p_datetrack_mode
331 ,p_validation_start_date => p_validation_start_date
332 ,p_validation_end_date => p_validation_end_date
333 );
334 --
335 hr_utility.set_location(' Leaving:'||l_proc, 10);
336 End pre_update;
337 --
338 -- ----------------------------------------------------------------------------
339 -- |----------------------------< post_update >-------------------------------|
340 -- ----------------------------------------------------------------------------
341 -- {Start Of Comments}
342 --
343 -- Description:
344 -- This private procedure contains any processing which is required after
345 -- the update dml.
346 --
347 -- Prerequisites:
348 -- This is an internal procedure which is called from the upd procedure.
349 --
350 -- In Parameters:
351 -- A Pl/Sql record structure.
352 --
353 -- Post Success:
354 -- Processing continues.
355 --
356 -- Post Failure:
357 -- If an error has occurred, an error message and exception will be raised
358 -- but not handled.
359 --
360 -- Developer Implementation Notes:
361 -- Any post-processing required after the update dml is issued should be
362 -- coded within this procedure. It is important to note that any 3rd party
363 -- maintenance should be reviewed before placing in this procedure.
364 --
365 -- Access Status:
366 -- Internal Row Handler Use Only.
367 --
368 -- {End Of Comments}
369 -- ----------------------------------------------------------------------------
370 Procedure post_update
371 (p_rec in ben_esw_shd.g_rec_type
372 ,p_effective_date in date
373 ,p_datetrack_mode in varchar2
374 ,p_validation_start_date in date
375 ,p_validation_end_date in date
376 ) is
377 --
378 l_proc varchar2(72) := g_package||'post_update';
379 --
380 Begin
381 hr_utility.set_location('Entering:'||l_proc, 5);
382 begin
383 --
384 ben_esw_rku.after_update
385 (p_effective_date
386 => p_effective_date
387 ,p_datetrack_mode
388 => p_datetrack_mode
389 ,p_validation_start_date
390 => p_validation_start_date
391 ,p_validation_end_date
392 => p_validation_end_date
393 ,p_elig_scre_wtg_id
394 => p_rec.elig_scre_wtg_id
395 ,p_elig_per_id
396 => p_rec.elig_per_id
397 ,p_elig_per_opt_id
398 => p_rec.elig_per_opt_id
399 ,p_elig_rslt_id
400 => p_rec.elig_rslt_id
401 ,p_per_in_ler_id
402 => p_rec.per_in_ler_id
403 ,p_effective_start_date
404 => p_rec.effective_start_date
405 ,p_effective_end_date
406 => p_rec.effective_end_date
407 ,p_object_version_number
408 => p_rec.object_version_number
409 ,p_eligy_prfl_id
410 => p_rec.eligy_prfl_id
411 ,p_crit_tab_short_name
412 => p_rec.crit_tab_short_name
413 ,p_crit_tab_pk_id
414 => p_rec.crit_tab_pk_id
415 ,p_computed_score
416 => p_rec.computed_score
417 ,p_benefit_action_id
418 => p_rec.benefit_action_id
419 ,p_elig_per_id_o
420 => ben_esw_shd.g_old_rec.elig_per_id
421 ,p_elig_per_opt_id_o
422 => ben_esw_shd.g_old_rec.elig_per_opt_id
423 ,p_elig_rslt_id_o
424 => ben_esw_shd.g_old_rec.elig_rslt_id
425 ,p_per_in_ler_id_o
426 => ben_esw_shd.g_old_rec.per_in_ler_id
427 ,p_effective_start_date_o
428 => ben_esw_shd.g_old_rec.effective_start_date
429 ,p_effective_end_date_o
430 => ben_esw_shd.g_old_rec.effective_end_date
431 ,p_object_version_number_o
432 => ben_esw_shd.g_old_rec.object_version_number
433 ,p_eligy_prfl_id_o
434 => ben_esw_shd.g_old_rec.eligy_prfl_id
435 ,p_crit_tab_short_name_o
436 => ben_esw_shd.g_old_rec.crit_tab_short_name
437 ,p_crit_tab_pk_id_o
438 => ben_esw_shd.g_old_rec.crit_tab_pk_id
439 ,p_computed_score_o
440 => ben_esw_shd.g_old_rec.computed_score
441 ,p_benefit_action_id_o
442 => ben_esw_shd.g_old_rec.benefit_action_id
443 );
444 --
445 exception
446 --
447 when hr_api.cannot_find_prog_unit then
448 --
449 hr_api.cannot_find_prog_unit_error
450 (p_module_name => 'BEN_ELIG_SCRE_WTG_F'
451 ,p_hook_type => 'AU');
452 --
453 end;
454 --
455 hr_utility.set_location(' Leaving:'||l_proc, 10);
456 End post_update;
457 --
458 -- ----------------------------------------------------------------------------
459 -- |-----------------------------< convert_defs >-----------------------------|
460 -- ----------------------------------------------------------------------------
461 -- {Start Of Comments}
462 --
463 -- Description:
464 -- The Convert_Defs procedure has one very important function:
465 -- It must return the record structure for the row with all system defaulted
466 -- values converted into its corresponding parameter value for update. When
467 -- we attempt to update a row through the Upd process , certain
468 -- parameters can be defaulted which enables flexibility in the calling of
469 -- the upd process (e.g. only attributes which need to be updated need to be
470 -- specified). For the upd process to determine which attributes
471 -- have NOT been specified we need to check if the parameter has a reserved
472 -- system default value. Therefore, for all parameters which have a
473 -- corresponding reserved system default mechanism specified we need to
474 -- check if a system default is being used. If a system default is being
475 -- used then we convert the defaulted value into its corresponding attribute
476 -- value held in the g_old_rec data structure.
477 --
478 -- Prerequisites:
479 -- This private function can only be called from the upd process.
480 --
481 -- In Parameters:
482 -- A Pl/Sql record structure.
483 --
484 -- Post Success:
485 -- The record structure will be returned with all system defaulted parameter
486 -- values converted into its current row attribute value.
487 --
488 -- Post Failure:
489 -- No direct error handling is required within this function. Any possible
490 -- errors within this procedure will be a PL/SQL value error due to
491 -- conversion of datatypes or data lengths.
492 --
493 -- Developer Implementation Notes:
494 -- None.
495 --
496 -- Access Status:
497 -- Internal Row Handler Use Only.
498 --
499 -- {End Of Comments}
500 -- ----------------------------------------------------------------------------
501 Procedure convert_defs
502 (p_rec in out nocopy ben_esw_shd.g_rec_type
503 ) is
504 --
505 Begin
506 --
507 -- We must now examine each argument value in the
508 -- p_rec plsql record structure
509 -- to see if a system default is being used. If a system default
510 -- is being used then we must set to the 'current' argument value.
511 --
512 If (p_rec.elig_per_id = hr_api.g_number) then
513 p_rec.elig_per_id :=
514 ben_esw_shd.g_old_rec.elig_per_id;
515 End If;
516 If (p_rec.elig_per_opt_id = hr_api.g_number) then
517 p_rec.elig_per_opt_id :=
518 ben_esw_shd.g_old_rec.elig_per_opt_id;
519 End If;
520 If (p_rec.elig_rslt_id = hr_api.g_number) then
521 p_rec.elig_rslt_id :=
522 ben_esw_shd.g_old_rec.elig_rslt_id;
523 End If;
524 If (p_rec.per_in_ler_id = hr_api.g_number) then
525 p_rec.per_in_ler_id :=
526 ben_esw_shd.g_old_rec.per_in_ler_id;
527 End If;
528 If (p_rec.eligy_prfl_id = hr_api.g_number) then
529 p_rec.eligy_prfl_id :=
530 ben_esw_shd.g_old_rec.eligy_prfl_id;
531 End If;
532 If (p_rec.crit_tab_short_name = hr_api.g_varchar2) then
533 p_rec.crit_tab_short_name :=
534 ben_esw_shd.g_old_rec.crit_tab_short_name;
535 End If;
536 If (p_rec.crit_tab_pk_id = hr_api.g_number) then
537 p_rec.crit_tab_pk_id :=
538 ben_esw_shd.g_old_rec.crit_tab_pk_id;
539 End If;
540 If (p_rec.computed_score = hr_api.g_number) then
541 p_rec.computed_score :=
542 ben_esw_shd.g_old_rec.computed_score;
543 End If;
544 If (p_rec.benefit_action_id = hr_api.g_number) then
545 p_rec.benefit_action_id :=
546 ben_esw_shd.g_old_rec.benefit_action_id;
547 End If;
548 --
549 End convert_defs;
550 --
551 -- ----------------------------------------------------------------------------
552 -- |---------------------------------< upd >----------------------------------|
553 -- ----------------------------------------------------------------------------
554 Procedure upd
555 (p_effective_date in date
556 ,p_datetrack_mode in varchar2
557 ,p_rec in out nocopy ben_esw_shd.g_rec_type
558 ) is
559 --
560 l_proc varchar2(72) := g_package||'upd';
561 l_validation_start_date date;
562 l_validation_end_date date;
563 --
564 Begin
565 hr_utility.set_location('Entering:'||l_proc, 5);
566 --
567 -- Ensure that the DateTrack update mode is valid
568 --
569 dt_api.validate_dt_upd_mode(p_datetrack_mode => p_datetrack_mode);
570 --
571 -- We must lock the row which we need to update.
572 --
573 ben_esw_shd.lck
574 (p_effective_date => p_effective_date
575 ,p_datetrack_mode => p_datetrack_mode
576 ,p_elig_scre_wtg_id => p_rec.elig_scre_wtg_id
577 ,p_object_version_number => p_rec.object_version_number
578 ,p_validation_start_date => l_validation_start_date
579 ,p_validation_end_date => l_validation_end_date
580 );
581 --
582 -- 1. During an update system defaults are used to determine if
583 -- arguments have been defaulted or not. We must therefore
584 -- derive the full record structure values to be updated.
585 --
586 -- 2. Call the supporting update validate operations.
587 --
588 ben_esw_upd.convert_defs(p_rec);
589 --
590 ben_esw_bus.update_validate
591 (p_rec => p_rec
592 ,p_effective_date => p_effective_date
593 ,p_datetrack_mode => p_datetrack_mode
594 ,p_validation_start_date => l_validation_start_date
595 ,p_validation_end_date => l_validation_end_date
596 );
597 --
598 -- Call to raise any errors on multi-message list
599 hr_multi_message.end_validation_set;
600 --
601 -- Call the supporting pre-update operation
602 --
603 pre_update
604 (p_rec => p_rec
605 ,p_effective_date => p_effective_date
606 ,p_datetrack_mode => p_datetrack_mode
607 ,p_validation_start_date => l_validation_start_date
608 ,p_validation_end_date => l_validation_end_date
609 );
610 --
611 -- Update the row.
612 --
613 update_dml
614 (p_rec => p_rec
615 ,p_effective_date => p_effective_date
616 ,p_datetrack_mode => p_datetrack_mode
617 ,p_validation_start_date => l_validation_start_date
618 ,p_validation_end_date => l_validation_end_date
619 );
620 --
621 -- Call the supporting post-update operation
622 --
623 post_update
624 (p_rec => p_rec
625 ,p_effective_date => p_effective_date
626 ,p_datetrack_mode => p_datetrack_mode
627 ,p_validation_start_date => l_validation_start_date
628 ,p_validation_end_date => l_validation_end_date
629 );
630 --
631 -- Call to raise any errors on multi-message list
632 hr_multi_message.end_validation_set;
633 End upd;
634 --
635 -- ----------------------------------------------------------------------------
636 -- |------------------------------< upd >-------------------------------------|
637 -- ----------------------------------------------------------------------------
638 Procedure upd
639 (p_effective_date in date
640 ,p_datetrack_mode in varchar2
641 ,p_elig_scre_wtg_id in number
642 ,p_object_version_number in out nocopy number
643 ,p_elig_per_id in number default hr_api.g_number
644 ,p_elig_per_opt_id in number default hr_api.g_number
645 ,p_elig_rslt_id in number default hr_api.g_number
646 ,p_per_in_ler_id in number default hr_api.g_number
647 ,p_eligy_prfl_id in number default hr_api.g_number
648 ,p_crit_tab_short_name in varchar2 default hr_api.g_varchar2
649 ,p_crit_tab_pk_id in number default hr_api.g_number
650 ,p_computed_score in number default hr_api.g_number
651 ,p_benefit_action_id in number default hr_api.g_number
652 ,p_effective_start_date out nocopy date
653 ,p_effective_end_date out nocopy date
654 ) is
655 --
656 l_rec ben_esw_shd.g_rec_type;
657 l_proc varchar2(72) := g_package||'upd';
658 --
659 Begin
660 hr_utility.set_location('Entering:'||l_proc, 5);
661 --
662 -- Call conversion function to turn arguments into the
663 -- l_rec structure.
664 --
665 l_rec :=
666 ben_esw_shd.convert_args
667 (p_elig_scre_wtg_id
668 ,p_elig_per_id
669 ,p_elig_per_opt_id
670 ,p_elig_rslt_id
671 ,p_per_in_ler_id
672 ,null
673 ,null
674 ,p_object_version_number
675 ,p_eligy_prfl_id
676 ,p_crit_tab_short_name
677 ,p_crit_tab_pk_id
678 ,p_computed_score
679 ,p_benefit_action_id
680 );
681 --
682 -- Having converted the arguments into the
683 -- plsql record structure we call the corresponding record
684 -- business process.
685 --
686 ben_esw_upd.upd
687 (p_effective_date
688 ,p_datetrack_mode
689 ,l_rec
690 );
691 --
692 -- Set the out parameters
693 --
694 p_object_version_number := l_rec.object_version_number;
695 p_effective_start_date := l_rec.effective_start_date;
696 p_effective_end_date := l_rec.effective_end_date;
697 --
698 --
699 hr_utility.set_location(' Leaving:'||l_proc, 10);
700 End upd;
701 --
702 end ben_esw_upd;