DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_EFC_VALIDATION

Source


1 package body ben_efc_validation as
2 /* $Header: beefcval.pkb 120.0.12010000.4 2008/08/05 14:23:49 ubhat ship $ */
3 --
4 /*
5 +==============================================================================+
6 |			 Copyright (c) 1997 Oracle Corporation		       |
7 |			    Redwood Shores, California, USA		       |
8 |				All rights reserved.			       |
9 +==============================================================================+
10 --
11 History
12   Version    Date	Author	   Comments
13   ---------  ---------	---------- --------------------------------------------
14   115.0      12-Jul-01	mhoyes     Created.
15   115.1      26-Jul-01	mhoyes     Enhanced for Patchset E+ patch.
16   115.2      13-Aug-01	mhoyes     Enhanced for Patchset E+ patch.
17   115.3      14-Aug-01	mhoyes     Removed patch checking.
18   115.4      31-Aug-01	mhoyes     Enhanced for BEN July patch.
19   115.5      13-Sep-01	mhoyes     Enhanced for BEN July patch.
20   115.7      17-Sep-01	mhoyes     Raised error for batch ranges.
21   115.8      28-Sep-01	mhoyes     Enhanced for BEN patchset F.
22   115.9      05-Mar-02	mhoyes   - Fixed bug 2252610. Weakened vaildation
23                                    to exclude online benmgle and extract
24                                    benefit actions.
25   115.10     13-Mar-02  ikasire    UTF8 Changes
26   115.11     14-mar-02  ikasire    GSCC error
27   115.12     16-Feb-06  rbingi     Bug5042850: Checking only for Unprocessed actual person
28                                     rows eliminating with non_person_cd is null
29   115.14     03-Nov-06  rtagarra   Bug 5049253 : Changed Phases.
30   115.15     13-Nov-06  rtagarra   Closed the worker and updated the step to C_RECAL from
31 				   C_UPDATE.
32   -----------------------------------------------------------------------------
33 */
34 --
35 -- Globals.
36 --
37 g_package varchar2(50) := 'ben_efc_validation.';
38 --
39 procedure adjust_validation
40   (p_worker_id           in     number   default null
41   ,p_total_workers       in     number   default null
42   ,p_ent_scode           in     varchar2 default null
43   --
44   ,p_disp_private        in     boolean  default false
45   ,p_disp_succeeds       in     boolean  default false
46   ,p_disp_exclusions     in     boolean  default false
47   --
48   ,p_valworker_id        in     number   default null
49   ,p_valtotal_workers    in     number   default null
50   --
51   ,p_multithread_substep in     number   default null
52   --
53   ,p_business_group_id   in     number   default null
54   )
55 is
56   --
57   l_proc                  varchar2(1000) := 'adjust_validation';
58   --
59   l_adjustment_counts     ben_efc_adjustments.g_adjustment_counts;
60   --
61   l_bftid_va              benutils.g_number_table := benutils.g_number_table();
62   l_bftprdt_va            benutils.g_date_table := benutils.g_date_table();
63   l_bftmdcd_va            benutils.g_v2_30_table := benutils.g_v2_30_table();
64   l_pgmid_va              benutils.g_number_table := benutils.g_number_table();
65   l_bftdfflg_va           benutils.g_v2_30_table := benutils.g_v2_30_table();
66   l_bftcuflg_va           benutils.g_v2_30_table := benutils.g_v2_30_table();
67   l_bftnprflg_va          benutils.g_v2_30_table := benutils.g_v2_30_table();
68   l_bftnplflg_va          benutils.g_v2_30_table := benutils.g_v2_30_table();
69   l_bftvlflg_va           benutils.g_v2_30_table := benutils.g_v2_30_table();
70   l_cnt_va                benutils.g_number_table := benutils.g_number_table();
71   --
72   l_fixbftid_va           benutils.g_number_table := benutils.g_number_table();
73   --
74   l_action_id             number;
75   l_bgp_id                number;
76   l_chunk                 number;
77   l_efc_component_id      number;
78   --
79   l_proccomp_name         varchar2(100);
80   --
81   l_pk1                   number;
82   l_pk2                   date;
83   l_pk3                   date;
84   l_status                varchar2(1);
85   l_pk2char               varchar2(2000) := '' ; -- UTF8 varchar2(100) := '';
86   l_pk3char               varchar2(2000) := '' ; -- UTF8 varchar2(100) := '';
87   l_pk4char               varchar2(2000) := '' ; -- UTF8 varchar2(100) := '';
88   l_pk5char               varchar2(2000) := '' ; -- UTF8 varchar2(100) := '';
89   l_efc_worker_id         number;
90   l_worker_id             number;
91   l_total_workers         number;
92   l_rcu_action_id         number;
93   --
94   l_modify                boolean;
95   l_validation            boolean;
96   l_upbatrow_count        number;
97   --
98   l_table                 varchar2(100);
99   l_bft_cnt               pls_integer;
100   l_bftext_cnt            pls_integer;
101   l_extract               boolean;
102   --
103 /*
104   CURSOR csr_find_batch_ranges
105     (c_bg IN NUMBER
106     )
107   IS
108     SELECT count(*)
109       FROM ben_batch_ranges bbr,
110            ben_benefit_actions bft
111      WHERE bbr.benefit_action_id = bft.benefit_action_id
112      and   bft.business_group_id = c_bg
113      and   bbr.range_status_cd = 'U'
114      group by bbr.benefit_action_id;
115 */
116 -- Bug 5042850, non_person_cd is NN tells its not actually the person row
117   CURSOR csr_find_batch_ranges
118     (c_bg IN NUMBER
119     )
120   IS
121     SELECT bft.benefit_action_id,
122            bft.process_date,
123            bft.mode_cd,
124            bft.pgm_id,
125            bft.derivable_factors_flag,
126            bft.close_uneai_flag,
127            bft.no_programs_flag,
128            bft.no_plans_flag,
129            bft.validate_flag,
130            count(*)
131       FROM ben_person_actions act,
132            ben_benefit_actions bft
133      WHERE act.benefit_action_id = bft.benefit_action_id
134      and   bft.business_group_id = c_bg
135      and   act.ACTION_STATUS_CD = 'U'
136      and   act.non_person_cd is null -- Bug 5042850
137      group by bft.benefit_action_id,
138               bft.process_date,
139               bft.mode_cd,
140               bft.pgm_id,
141               bft.derivable_factors_flag,
142               bft.close_uneai_flag,
143               bft.no_programs_flag,
144               bft.no_plans_flag,
145               bft.validate_flag
146      having count(*) > 1
147      order by bft.benefit_action_id desc;
148   --
149   cursor c_getexrsltdets
150     (c_eff_date    date
151     ,c_bgp_id      number
152     ,c_ext_dfn_id  number
153     )
154   is
155     select rst.ext_rslt_id
156     from ben_ext_rslt rst
157     where rst.eff_dt = c_eff_date
158     and   rst.business_group_id = c_bgp_id
159     and   rst.ext_dfn_id = c_ext_dfn_id;
160   --
161   l_getexrsltdets c_getexrsltdets%rowtype;
162   --
163 begin
164   --
165   hr_general.g_data_migrator_mode := 'Y';
166   --
167   l_modify     := FALSE;
168   l_validation := FALSE;
169   --
170   -- Running in standalone mode with no actions
171   --
172   if p_business_group_id is not null then
173     --
174     hr_efc_info.insert_line('-- ');
175     hr_efc_info.insert_line
176       ('-- Re-calculating/adjusting in validate mode with no actions ');
177     hr_efc_info.insert_line('-- ');
178     --
179     l_action_id     := null;
180     l_pk1           := null;
181     l_chunk         := null;
182     l_efc_worker_id := null;
183     l_bgp_id        := p_business_group_id;
184     l_worker_id     := null;
185     l_total_workers := null;
186     l_validation    := TRUE;
187     --
188   --
189   -- Running in validation mode with actions
190   --
191   elsif p_worker_id is null
192     and p_total_workers is null
193   then
194     --
195     hr_efc_info.get_action_details
196       (l_action_id
197       ,l_bgp_id
198       ,l_chunk
199       );
200     --
201     l_pk1           := null;
202     l_chunk         := null;
203     l_efc_worker_id := null;
204     l_worker_id     := null;
205     l_total_workers := null;
206     l_validation    := TRUE;
207     --
208   --
209   -- Running in conversion mode with actions
210   --
211   else
212     --
213     if p_multithread_substep is not null then
214       --
215       hr_efc_info.insert_line('-- ');
216       hr_efc_info.insert_line
217         ('-- Re-calculating/adjusting converted monetary values phase '||p_multithread_substep);
218       hr_efc_info.insert_line('-- ');
219       --
220       if p_multithread_substep = 10 then
221         --
222         l_table := 'ben_elig_per_f';
223 l_proccomp_name := 'beadjefu';
224 
225         --
226       elsif p_multithread_substep = 20 then
227         --
228         l_table := 'ben_enrt_prem';
229 l_proccomp_name := 'beaj1efu';
230 
231         --
232       elsif p_multithread_substep = 30 then
233         --
234         l_table := 'ben_enrt_rt';
235 l_proccomp_name := 'beaj2efu';
236 
237         --
238       elsif p_multithread_substep = 40 then
239         --
240         l_table := 'ben_prtt_rt_val';
241 l_proccomp_name := 'beaj3efu';
242 
243         --
244       elsif p_multithread_substep = 50 then
245         --
246         l_table := 'pay_element_entry_values_f';
247 l_proccomp_name := 'beaj4efu';
248         --
249       end if;
250       --
251     else
252       --
253       hr_efc_info.insert_line('-- ');
254       hr_efc_info.insert_line
255         ('-- Re-calculating/adjusting converted monetary values for all phases ');
256       hr_efc_info.insert_line('-- ');
257       --
258       l_table := 'ALLTABS';
259 l_proccomp_name := 'beadjust';
260 
261       --
262     end if;
263     --
264     l_worker_id     := p_worker_id;
265     l_total_workers := p_total_workers;
266 --    l_proccomp_name := 'beadjust';
267     --
268     hr_efc_info.get_action_details
269       (l_action_id
270       ,l_bgp_id
271       ,l_chunk
272       );
273     --
274     -- First processor only - insert a row into the HR_EFC_PROCESS_COMPONENTS
275     -- table (procedure includes locking so that only 1 row is inserted)
276     --
277     hr_efc_info.insert_or_select_comp_row
278       (p_action_id              => l_action_id
279       ,p_process_component_name => l_proccomp_name
280       ,p_table_name             => l_table
281       ,p_total_workers          => l_total_workers
282       ,p_worker_id              => l_worker_id
283       ,p_step                   => 'C_RECAL'
284       ,p_sub_step               => p_multithread_substep
285       ,p_process_component_id   => l_efc_component_id
286       );
287     --
288     -- Call procedure to check if this worker has already started (will detect
289     -- if this worker has been restarted).
290     --
291     hr_efc_info.insert_or_select_worker_row
292       (p_process_component_id   => l_efc_component_id
293       ,p_process_component_name => l_proccomp_name
294       ,p_action_id              => l_action_id
295       ,p_worker_number          => l_worker_id
296       --
297       ,p_pk1                    => l_pk1
298       ,p_pk2                    => l_pk2char
299       ,p_pk3                    => l_pk3char
300       ,p_pk4                    => l_pk4char
301       ,p_pk5                    => l_pk5char
302       ,p_status                 => l_status
303       --
304       ,p_efc_worker_id          => l_efc_worker_id
305       );
306     --
307     l_modify := TRUE;
308     --
309   end if;
310   --
311   -- Remove all exclusions for the EFC action
312   --
313   delete from ben_efc_exclusions
314   where efc_action_id = l_action_id;
315   --
316   -- Check for validate mode
317   --
318   l_rcu_action_id := l_action_id;
319   --
320   if l_validation then
321     --
322     -- Need to nullify action id in validate mode to avoid action
323     -- specific validation
324     --
325     l_action_id := null;
326     --
327   end if;
328   --
329   -- Only validate the batch ranges in validation mode
330   --
331   if p_multithread_substep is null
332     and p_ent_scode = 'BFT'
333   then
334     --
335     -- Check for unprocessed batch ranges
336     --
337     hr_efc_info.insert_line('-- ');
338     hr_efc_info.insert_line('-- Check for uncomplete benefit actions in BEN_BENEFIT_ACTIONS table...');
339     hr_efc_info.insert_line('-- ');
340     --
341     OPEN csr_find_batch_ranges(l_bgp_id);
342     FETCH csr_find_batch_ranges BULK COLLECT INTO l_bftid_va,
343                                                   l_bftprdt_va,
344                                                   l_bftmdcd_va,
345                                                   l_pgmid_va,
346                                                   l_bftdfflg_va,
347                                                   l_bftcuflg_va,
348                                                   l_bftnprflg_va,
349                                                   l_bftnplflg_va,
350                                                   l_bftvlflg_va,
351                                                   l_cnt_va;
352     CLOSE csr_find_batch_ranges;
353     --
354     if l_bftid_va.count > 0 then
355       --
356       l_bft_cnt    := 0;
357       l_bftext_cnt := 0;
358       --
359       for elenum in l_bftid_va.first..l_bftid_va.last
360       loop
361         --
362         l_extract := FALSE;
363         --
364         if l_bft_cnt = 20 then
365           --
366           exit;
367           --
368         end if;
369         --
370         -- Exclude out extracts
371         --
372         if l_bftmdcd_va(elenum) = 'S'
373           and l_pgmid_va(elenum) is not null
374           and l_bftdfflg_va(elenum) = 'N'
375           and l_bftcuflg_va(elenum) = 'N'
376           and l_bftnprflg_va(elenum) = 'N'
377           and l_bftnplflg_va(elenum) = 'N'
378           and l_bftvlflg_va(elenum) = 'N'
379         then
380           --
381           -- Check if an extract result exists
382           --
383           open c_getexrsltdets
384             (c_eff_date   => l_bftprdt_va(elenum)
385             ,c_bgp_id     => l_bgp_id
386             ,c_ext_dfn_id => l_pgmid_va(elenum)
387             );
388           fetch c_getexrsltdets into l_getexrsltdets;
389           if c_getexrsltdets%found then
390             --
391             l_bftext_cnt := l_bftext_cnt+1;
392             l_extract := TRUE;
393             --
394           else
395             --
396             l_extract := FALSE;
397             --
398           end if;
399           close c_getexrsltdets;
400           --
401         else
402           --
403           l_extract := FALSE;
404           --
405         end if;
406         --
407         if not l_extract then
408           --
409           if l_bft_cnt = 0
410           then
411             --
412             hr_efc_info.insert_line('-- Uncompleted batch information identified for the following');
413             hr_efc_info.insert_line('-- rows in ben_benefit_actions ');
414             hr_efc_info.insert_line('-- ');
415             hr_efc_info.insert_line('-- Benefit Action ID /Mode Cd /Process date /Person Action Count');
416             hr_efc_info.insert_line('-- ');
417             --
418           end if;
419           --
420           hr_efc_info.insert_line('-- '||l_bftid_va(elenum)
421                                  ||' /'||l_bftmdcd_va(elenum)
422                                  ||' /'||l_bftprdt_va(elenum)
423                                  ||' /'||l_cnt_va(elenum)
424                                  );
425           --
426           l_fixbftid_va.extend(1);
427           l_fixbftid_va(l_bft_cnt+1) := l_bftid_va(elenum);
428           l_bft_cnt := l_bft_cnt+1;
429           --
430         end if;
431         --
432       end loop;
433       --
434       if l_bft_cnt > 0 then
435         --
436         hr_efc_info.insert_line('-- ');
437         hr_efc_info.insert_line('-- The uncompleted benefit actions above need to be resolved. Use ');
438         hr_efc_info.insert_line('-- the restart process to complete. ');
439         hr_efc_info.insert_line('-- ');
440         --
441         hr_efc_info.g_efc_error_app := 805;
442         hr_efc_info.g_efc_error_message := 'BEN_92694_EFC_UNPROC_RANGES';
443         --
444       else
445         --
446         hr_efc_info.insert_line('-- ');
447         hr_efc_info.insert_line('-- Detected '||l_bftext_cnt||' Extracts. ');
448         hr_efc_info.insert_line('-- No Actions required ');
449         hr_efc_info.insert_line('-- ');
450         --
451       end if;
452       --
453     END IF;
454     --
455   end if;
456   --
457   if nvl(p_multithread_substep,10) = 10 then
458     --
459     -- Only call the rounding code upgrade for adjustments
460     --
461     if p_multithread_substep is not null then
462       --
463       -- Upgrade rounding codes
464       --
465       -- Action is required in validate mode to perform the
466       -- backup of the rounding codes.
467       --
468       -- We only need to backup the rounding codes for the first
469       -- thread.
470       --
471       ben_efc_rndg_cd_upgrade.upgrade_rounding_codes
472         (p_business_group_id => l_bgp_id
473         ,p_action_id         => l_rcu_action_id
474         ,p_modify            => l_modify
475         );
476       --
477     end if;
478     --
479     if p_ent_scode is null
480       or p_ent_scode = 'PEP'
481     then
482       --
483       ben_efc_adjustments.pep_adjustments
484         (p_validate          => FALSE
485         ,p_worker_id         => p_worker_id
486         ,p_action_id         => l_action_id
487         ,p_total_workers     => p_total_workers
488 
489         ,p_pk1               => l_pk1
490         ,p_chunk             => l_chunk
491         ,p_efc_worker_id     => l_efc_worker_id
492         --
493         ,p_valworker_id      => p_valworker_id
494         ,p_valtotal_workers  => p_valtotal_workers
495         --
496         ,p_business_group_id => l_bgp_id
497         --
498         ,p_adjustment_counts => l_adjustment_counts
499         );
500       --
501       if l_validation then
502         --
503         ben_efc_reporting.DisplayEFCInfo
504           (p_ent_scode           => 'PEP'
505           ,p_efc_action_id       => l_action_id
506           ,p_adjustment_counts   => l_adjustment_counts
507           --
508           ,p_disp_private        => p_disp_private
509           ,p_disp_succeeds       => p_disp_succeeds
510           ,p_disp_exclusions     => p_disp_exclusions
511           --
512           ,p_rcoerr_val_set      => ben_efc_adjustments.g_pep_rcoerr_val_set
513           ,p_failed_adj_val_set  => ben_efc_adjustments.g_pep_failed_adj_val_set
514           ,p_fatal_error_val_set => ben_efc_adjustments.g_pep_fatal_error_val_set
515           ,p_success_val_set     => ben_efc_adjustments.g_pep_success_adj_val_set
516           );
517         --
518       end if;
519       --
520     end if;
521     --
522     if p_ent_scode is null
523       or p_ent_scode = 'EPO'
524     then
525       --
526       ben_efc_adjustments.epo_adjustments
527         (p_validate          => FALSE
528         ,p_worker_id         => p_worker_id
529         ,p_action_id         => l_action_id
530         ,p_total_workers     => p_total_workers
531 
532         ,p_pk1               => l_pk1
533         ,p_chunk             => l_chunk
534         ,p_efc_worker_id     => l_efc_worker_id
535         --
536         ,p_valworker_id      => p_valworker_id
537         ,p_valtotal_workers  => p_valtotal_workers
538         --
539         ,p_business_group_id => l_bgp_id
540         --
541         ,p_adjustment_counts => l_adjustment_counts
542         );
543       --
544       if l_validation then
545         --
546         ben_efc_reporting.DisplayEFCInfo
547           (p_ent_scode           => 'EPO'
548           ,p_efc_action_id       => l_action_id
549           ,p_adjustment_counts   => l_adjustment_counts
550           --
551           ,p_disp_private        => p_disp_private
552           ,p_disp_succeeds       => p_disp_succeeds
553           ,p_disp_exclusions     => p_disp_exclusions
554           --
555           ,p_rcoerr_val_set      => ben_efc_adjustments.g_epo_rcoerr_val_set
556           ,p_failed_adj_val_set  => ben_efc_adjustments.g_epo_failed_adj_val_set
557           ,p_fatal_error_val_set => ben_efc_adjustments.g_epo_fatal_error_val_set
558           ,p_success_val_set     => ben_efc_adjustments.g_epo_success_adj_val_set
559           );
560         --
561       end if;
562       --
563     end if;
564     --
565     if p_ent_scode is null
566       or p_ent_scode = 'ENB'
567     then
568       --
569       ben_efc_adjustments.enb_adjustments
570         (p_validate          => FALSE
571         ,p_worker_id         => p_worker_id
572         ,p_action_id         => l_action_id
573         ,p_total_workers     => p_total_workers
574 
575         ,p_pk1               => l_pk1
576         ,p_chunk             => l_chunk
577         ,p_efc_worker_id     => l_efc_worker_id
578         --
579         ,p_valworker_id      => p_valworker_id
580         ,p_valtotal_workers  => p_valtotal_workers
581         --
582         ,p_business_group_id => l_bgp_id
583         --
584         ,p_adjustment_counts => l_adjustment_counts
585         );
586       --
587       if l_validation then
588         --
589         ben_efc_reporting.DisplayEFCInfo
590           (p_ent_scode           => 'ENB'
591           ,p_efc_action_id       => l_action_id
592           ,p_adjustment_counts   => l_adjustment_counts
593           --
594           ,p_disp_private        => p_disp_private
595           ,p_disp_succeeds       => p_disp_succeeds
596           ,p_disp_exclusions     => p_disp_exclusions
597           --
598           ,p_rcoerr_val_set      => ben_efc_adjustments.g_enb_rcoerr_val_set
599           ,p_failed_adj_val_set  => ben_efc_adjustments.g_enb_failed_adj_val_set
600           ,p_fatal_error_val_set => ben_efc_adjustments.g_enb_fatal_error_val_set
601           ,p_success_val_set     => ben_efc_adjustments.g_enb_success_adj_val_set
602           );
603         --
604       end if;
605       --
606     end if;
607     --
608   end if;
609   --
610   if nvl(p_multithread_substep,20) = 20 then
611     --
612     if p_ent_scode is null
613       or p_ent_scode = 'EPR'
614     then
615       --
616       ben_efc_adjustments.epr_adjustments
617         (p_validate          => FALSE
618         ,p_worker_id         => p_worker_id
619         ,p_action_id         => l_action_id
620         ,p_total_workers     => p_total_workers
621 
622         ,p_pk1               => l_pk1
623         ,p_chunk             => l_chunk
624         ,p_efc_worker_id     => l_efc_worker_id
625         --
626         ,p_valworker_id      => p_valworker_id
627         ,p_valtotal_workers  => p_valtotal_workers
628         --
629         ,p_business_group_id => l_bgp_id
630         --
631         ,p_adjustment_counts => l_adjustment_counts
632         );
633       --
634       if l_validation then
635         --
636         ben_efc_reporting.DisplayEFCInfo
637           (p_ent_scode           => 'EPR'
638           ,p_efc_action_id       => l_action_id
639           ,p_adjustment_counts   => l_adjustment_counts
640           --
641           ,p_disp_private        => p_disp_private
642           ,p_disp_succeeds       => p_disp_succeeds
643           ,p_disp_exclusions     => p_disp_exclusions
644           --
645           ,p_rcoerr_val_set      => ben_efc_adjustments.g_epr_rcoerr_val_set
646           ,p_failed_adj_val_set  => ben_efc_adjustments.g_epr_failed_adj_val_set
647           ,p_fatal_error_val_set => ben_efc_adjustments.g_epr_fatal_error_val_set
648           ,p_success_val_set     => ben_efc_adjustments.g_epr_success_adj_val_set
649           );
650         --
651       end if;
652       --
653     end if;
654     --
655   end if;
656   --
657   if nvl(p_multithread_substep,30) = 30 then
658     --
659     if p_ent_scode is null
660       or p_ent_scode = 'ECR'
661     then
662       --
663       ben_efc_adjustments.ecr_adjustments
664         (p_validate          => FALSE
665         ,p_worker_id         => p_worker_id
666         ,p_action_id         => l_action_id
667         ,p_total_workers     => p_total_workers
668 
669         ,p_pk1               => l_pk1
670         ,p_chunk             => l_chunk
671         ,p_efc_worker_id     => l_efc_worker_id
672         --
673         ,p_valworker_id      => p_valworker_id
674         ,p_valtotal_workers  => p_valtotal_workers
675         --
676         ,p_business_group_id => l_bgp_id
677         --
678         ,p_adjustment_counts => l_adjustment_counts
679         );
680       --
681       if l_validation then
682         --
683         ben_efc_reporting.DisplayEFCInfo
684           (p_ent_scode           => 'ECR'
685           ,p_efc_action_id       => l_action_id
686           ,p_adjustment_counts   => l_adjustment_counts
687           --
688           ,p_disp_private        => p_disp_private
689           ,p_disp_succeeds       => p_disp_succeeds
690           ,p_disp_exclusions     => p_disp_exclusions
691           --
692           ,p_rcoerr_val_set      => ben_efc_adjustments.g_ecr_rcoerr_val_set
693           ,p_failed_adj_val_set  => ben_efc_adjustments.g_ecr_failed_adj_val_set
694           ,p_fatal_error_val_set => ben_efc_adjustments.g_ecr_fatal_error_val_set
695           ,p_success_val_set     => ben_efc_adjustments.g_ecr_success_adj_val_set
696           );
697         --
698       end if;
699       --
700     end if;
701     --
702   end if;
703   --
704   if nvl(p_multithread_substep,40) = 40 then
705     --
706     if p_ent_scode is null
707       or p_ent_scode = 'PRV'
708     then
709       --
710       ben_efc_adjustments1.prv_adjustments
711         (p_validate          => FALSE
712         ,p_worker_id         => p_worker_id
713         ,p_action_id         => l_action_id
714         ,p_total_workers     => p_total_workers
715 
716         ,p_pk1               => l_pk1
717         ,p_chunk             => l_chunk
718         ,p_efc_worker_id     => l_efc_worker_id
719         --
720         ,p_valworker_id      => p_valworker_id
721         ,p_valtotal_workers  => p_valtotal_workers
722         --
723         ,p_business_group_id => l_bgp_id
724         --
725         ,p_adjustment_counts => l_adjustment_counts
726         );
727       --
728       if l_validation then
729         --
730         ben_efc_reporting.DisplayEFCInfo
731           (p_ent_scode           => 'PRV'
732           ,p_efc_action_id       => l_action_id
733           ,p_adjustment_counts   => l_adjustment_counts
734           --
735           ,p_disp_private        => p_disp_private
736           ,p_disp_succeeds       => p_disp_succeeds
737           ,p_disp_exclusions     => p_disp_exclusions
738           --
739           ,p_rcoerr_val_set      => ben_efc_adjustments.g_prv_rcoerr_val_set
740           ,p_failed_adj_val_set  => ben_efc_adjustments.g_prv_failed_adj_val_set
741           ,p_fatal_error_val_set => ben_efc_adjustments.g_prv_fatal_error_val_set
742           ,p_success_val_set     => ben_efc_adjustments.g_prv_success_adj_val_set
743           );
744         --
745       end if;
746       --
747     end if;
748     --
749   end if;
750   --
751   if nvl(p_multithread_substep,50) = 50 then
752     --
753     if p_ent_scode is null
754       or p_ent_scode = 'EEV'
755     then
756       --
757       ben_efc_adjustments1.eev_adjustments
758         (p_validate          => FALSE
759         ,p_worker_id         => p_worker_id
760         ,p_action_id         => l_action_id
761         ,p_total_workers     => p_total_workers
762 
763         ,p_pk1               => l_pk1
764         ,p_chunk             => l_chunk
765         ,p_efc_worker_id     => l_efc_worker_id
766         --
767         ,p_valworker_id      => p_valworker_id
768         ,p_valtotal_workers  => p_valtotal_workers
769         --
770         ,p_business_group_id => l_bgp_id
771         --
772         ,p_adjustment_counts => l_adjustment_counts
773         );
774       --
775       if l_validation then
776         --
777         ben_efc_reporting.DisplayEFCInfo
778           (p_ent_scode           => 'EEV'
779           ,p_efc_action_id       => l_action_id
780           ,p_adjustment_counts   => l_adjustment_counts
781           --
782           ,p_disp_private        => p_disp_private
783           ,p_disp_succeeds       => p_disp_succeeds
784           ,p_disp_exclusions     => p_disp_exclusions
785           --
786           ,p_rcoerr_val_set      => ben_efc_adjustments.g_eev_rcoerr_val_set
787           ,p_failed_adj_val_set  => ben_efc_adjustments.g_eev_failed_adj_val_set
788           ,p_fatal_error_val_set => ben_efc_adjustments.g_eev_fatal_error_val_set
789           ,p_success_val_set     => ben_efc_adjustments.g_eev_success_adj_val_set
790           );
791         --
792       end if;
793       --
794     end if;
795     --
796     if p_ent_scode is null
797       or p_ent_scode = 'BPL'
798     then
799       --
800       ben_efc_adjustments1.bpl_adjustments
801         (p_validate          => FALSE
802         ,p_worker_id         => p_worker_id
803         ,p_action_id         => l_action_id
804         ,p_total_workers     => p_total_workers
805 
806         ,p_pk1               => l_pk1
807         ,p_chunk             => l_chunk
808         ,p_efc_worker_id     => l_efc_worker_id
809         --
810         ,p_valworker_id      => p_valworker_id
811         ,p_valtotal_workers  => p_valtotal_workers
812         --
813         ,p_business_group_id => l_bgp_id
814         --
815         ,p_adjustment_counts => l_adjustment_counts
816         );
817       --
818       if l_validation then
819         --
820         ben_efc_reporting.DisplayEFCInfo
821           (p_ent_scode           => 'BPL'
822           ,p_efc_action_id       => l_action_id
823           ,p_adjustment_counts   => l_adjustment_counts
824           --
825           ,p_disp_private        => p_disp_private
826           ,p_disp_succeeds       => p_disp_succeeds
827           ,p_disp_exclusions     => p_disp_exclusions
828           --
829           ,p_rcoerr_val_set      => ben_efc_adjustments.g_bpl_rcoerr_val_set
830           ,p_failed_adj_val_set  => ben_efc_adjustments.g_bpl_failed_adj_val_set
831           ,p_fatal_error_val_set => ben_efc_adjustments.g_bpl_fatal_error_val_set
832           ,p_success_val_set     => ben_efc_adjustments.g_bpl_success_adj_val_set
833           );
834         --
835       end if;
836       --
837     end if;
838     --
839   end if;
840 
841 
842 
843     hr_efc_info.complete_worker_row
844         (p_efc_worker_id => l_efc_worker_id
845         ,p_pk1           => l_pk1
846         );
847 
848 commit;
849 
850 
851 
852   --
853 end adjust_validation;
854 --
855 end ben_efc_validation;