DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_EXT_FMT

Source


1 Package Body ben_ext_fmt as
2 /* $Header: benxfrmt.pkb 120.21 2007/09/05 02:25:53 tjesumic ship $ */
3 --
4 --
5 -- ----------------------------------------------------------------------------
6 -- |                     Private Global Definitions                           |
7 -- ----------------------------------------------------------------------------
8 --
9 g_debug boolean := hr_utility.debug_enabled;
10 g_package  varchar2(33)	:= '  ben_ext_fmt.';  -- Global package name
11 g_val_def valtabtyp := valtabtyp(null,null,null,null,null,null,null,null,null,null,
12                                  null,null,null,null,null,null,null,null,null,null,
13                                  null,null,null,null,null,null,null,null,null,null,
14                                  null,null,null,null,null,null,null,null,null,null,
15                                  null,null,null,null,null,null,null,null,null,null,
16                                  null,null,null,null,null,null,null,null,null,null,
17                                  null,null,null,null,null,null,null,null,null,null,
18                                  null,null,null,null,null,null,null,null,null,null,
19                                  null,null,null,null,null,null,null,null,null,null,
20                                  null,null,null,null,null,null,null,null,null,null,
21                                  null,null,null,null,null,null,null,null,null,null,
22                                  null,null,null,null,null,null,null,null,null,null,
23                                  null,null,null,null,null,null,null,null,null,null,
24                                  null,null,null,null,null,null,null,null,null,null,
25                                  null,null,null,null,null,null,null,null,null,null,
26                                  null,null,null,null,null,null,null,null,null,null,
27                                  null,null,null,null,null,null,null,null,null,null,
28                                  null,null,null,null,null,null,null,null,null,null,
29                                  null,null,null,null,null,null,null,null,null,null,
30                                  null,null,null,null,null,null,null,null,null,null,
31                                  null,null,null,null,null,null,null,null,null,null,
32                                  null,null,null,null,null,null,null,null,null,null,
33                                  null,null,null,null,null,null,null,null,null,null,
34                                  null,null,null,null,null,null,null,null,null,null,
35                                  null,null,null,null,null,null,null,null,null,null,
36                                  null,null,null,null,null,null,null,null,null,null,
37                                  null,null,null,null,null,null,null,null,null,null,
38                                  null,null,null,null,null,null,null,null,null,null,
39                                  null,null,null,null,null,null,null,null,null,null,
40                                  null,null,null,null,null,null,null,null,null,null
41                                  );
42 
43 g_rqd_elmt_is_present     varchar2(1);
44 
45 TYPE t_number IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
46 TYPE t_varchar2_30 IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
47 TYPE t_varchar2_600 IS TABLE OF VARCHAR2(600) INDEX BY BINARY_INTEGER;
48 
49 
50 -- ------------------------------------------------------------------
51 -- |------------------------< get_pay_balance  >----------------|
52 -- ------------------------------------------------------------------
53 
54 function get_pay_balance ( p_defined_balance_id  in number
55                           ,p_assignment_id       in number
56                           ,p_effective_date      in date
57                           ,p_business_group_id   in number
58                           )
59          return varchar2 is
60 
61 
62   cursor c_leg is
63   select LEGISLATION_CODE
64   from per_business_groups_perf
65   where business_group_id = p_business_group_id
66   ;
67 
68 
69 
70   l_LEGISLATION_CODE  per_business_groups.LEGISLATION_CODE%type ;
71   l_proc  varchar2(72) := g_package||'get_pay_balance';
72   l_rslt_elmt varchar2(300) ;
73 
74 begin
75 
76     hr_utility.set_location('Entering:'||l_proc, 5);
77 
78 
79     open c_leg ;
80     fetch c_leg into l_LEGISLATION_CODE ;
81     close c_leg ;
82 
83 
84      l_rslt_elmt :=  ben_ext_payroll_balance.Get_Balance_Value
85                          (p_business_group_id  => p_business_group_id
86                          ,p_assignment_id      => p_assignment_id
87                          ,p_effective_date     => p_effective_date
88                          ,p_legislation_code   => l_LEGISLATION_CODE
89                          ,p_defined_balance_id => p_defined_balance_id
90                         )  ;
91 
92     hr_utility.set_location(' Exiting: ' ||  l_rslt_elmt || '  : ' ||l_proc, 15);
93     return l_rslt_elmt ;
94 end ;
95 
96 
97 
98 -- ------------------------------------------------------------------
99 -- |------------------------< get_name >----------------|
100 -- ------------------------------------------------------------------
101 -- Fix for Bug 3870480
102 Function get_name(p_val_id number) Return Varchar2 Is
103 --
104   l_proc  varchar2(72) := g_package||'sprs_or_incl';
105   val_name varchar2(250);
106 --
107 Begin
108   --
109   hr_utility.set_location('Entering:'||l_proc, 5);
110   --
111   select user_name into val_name
112      from fnd_user
113       where user_id = p_val_id;
114 
115   hr_utility.set_location(' Exiting:'||l_proc, 15);
116   return val_name;
117   --
118   --
119 Exception
120   When NO_DATA_FOUND Then
121   --
122   hr_utility.set_location(' Exiting:'||l_proc, 999);
123   --
124   return null;
125 End get_name;
126 --
127 
128 --
129 -- ----------------------------------------------------------------------------
130 -- |---------< get_error_msg >---------------------------------------------|
131 -- ----------------------------------------------------------------------------
132 --
133 function get_error_msg(p_err_no         in number ,
134                        p_err_name       in varchar2 ,
135                        p_token1         in varchar2 default null,
136                        p_token2         in varchar2 default null ) return varchar2 IS
137  l_err_message fnd_new_messages.message_text%type ;
138  l_proc               varchar2(72) := g_package||'get_error_msg';
139 begin
140 
141   hr_utility.set_location('Entering'||l_proc, 5);
142   hr_utility.set_location('Error'||substr(p_err_name,1,100), 99.99);
143   fnd_message.set_name('BEN',p_err_name);
144   if P_err_no in ( 91888,92065,91924,91887,92313,92312,92678,92679  )
145      and p_token1 is not null   then
146      fnd_message.set_token('DATA' , p_token1 ) ;
147   end if ;
148   -- because the token name is required
149   -- that si hard coded as per the error number
150   -- if any new error calls this then the totken is to be added here
151   --     fnd_message.set_token('FIELD','p_prvs_stat_cd');
152   --    fnd_message.set_token('TYPE','BEN_PER_IN_LER_STAT_CD');
153   l_err_message  := fnd_message.get ;
154   hr_utility.set_location('message'||substr(l_err_message,1,100), 99.99);
155   hr_utility.set_location('Exiting'||l_proc, 5);
156   return (l_err_message) ;
157 
158 end ;
159 
160 
161 --
162 -- ----------------------------------------------------------------------------
163 -- |---------< decode_setup >---------------------------------------------|
164 -- ----------------------------------------------------------------------------
165 --
166 function decode_setup(p_ext_data_elmt_typ        in varchar2,
167                            p_name                in varchar2,
168                            p_id                  in varchar2) return varchar2 IS
169 --
170   l_proc               varchar2(72) := g_package||'decode_setup';
171   l_val                ben_ext_rslt_dtl.val_01%type ;
172 --
173 begin
174 --
175   --
176   hr_utility.set_location('Entering'||l_proc, 5);
177   --
178   if p_ext_data_elmt_typ = 'F' then
179     l_val := p_name;
180   else
181     l_val := p_id;
182   end if;
183   return(l_val);
184   --
185   hr_utility.set_location('Exiting:'||l_proc, 15);
186   --
187 end decode_setup;
188 --
189 
190 
191 -- ------------------------------------------------------------------
192 -- |------------------------< apply_decode >------------------------|
193 -- ------------------------------------------------------------------
194 --  This function substitute data element value with the decoded
195 --  value defined in the extract layout.  This function will
196 --  return the decoded value if found.  Otherwise, it would return
197 --  the default value if provided.
198 --
199 Function apply_decode(p_value              varchar2,
200                       p_ext_data_elmt_id   number,
201                       p_default            varchar2,
202                       p_short_name        varchar2 default null
203                      ) Return Varchar2 Is
204 --
205   l_proc            varchar2(72) := g_package||'apply_decode';
206   l_dcd_val         ben_ext_data_elmt_decd.dcd_val%type ;
207   l_err_message     varchar2(2000) ;
208 
209 --
210 cursor c1 is
211   select dcd_val
212     from ben_ext_data_elmt_decd
213     where
214          ext_data_elmt_id = p_ext_data_elmt_id
215      and val = nvl(p_value, ' ');
216 --
217 Begin
218   --
219   hr_utility.set_location('Entering:'||l_proc, 5);
220   hr_utility.set_location('code for decode ' ||p_value||'  '|| p_ext_data_elmt_id ,936);
221   --
222   hr_utility.set_location('MONSTER defa '||p_default ,10);
223 
224   if p_value is not null then
225   --
226     open c1;
227     fetch c1 into l_dcd_val;
228     --
229     if c1%found then
230       --
231       close c1;
232       --
233       if upper(l_dcd_val) <> 'NULL' then
234       --
235          return(l_dcd_val);
236       --
237       else
238       --
239          return(null);
240       --
241       end if;
242       --
243     else
244       --
245       close c1;
246       --
247       if p_default is not null then
248         --
249         if upper(p_default) <> 'NULL' then
250           --
251           return(p_default);
252           --
253         else
254           --
255           return(null);
256           --
257         end if;
258         --
259       else
260         --
261         -- warning -- could not find decoded value and default was not
262         -- specified.  So just return the database value and warn.
263         --
264        IF p_short_name = 'PRLSHP' and p_value =  '18'  THEN
265           -- whne the person relationshp type is 18 dont raise warning
266           -- the default not defined to return 18 , this is a hard coded value
267           null ;
268        else
269           if ben_ext_person.g_business_group_id is not null then
270             l_err_message := get_error_msg(91888,'BEN_91888_EXT_INVALID_DCD',g_elmt_name );
271             ben_ext_util.write_err
272            (p_ext_rslt_id => ben_extract.g_ext_rslt_id,
273             p_err_num  => 91888,
274             p_err_name => l_err_message,
275             p_typ_cd   => 'W',
276             p_person_id => ben_ext_person.g_person_id,
277             p_business_group_id => ben_ext_person.g_business_group_id);
278           end if;
279        end if  ;
280         --
281         return(p_value);
282         --
283       end if;
284     --
285     end if;
286   --
287   else
288     --
289     if p_default is not null and upper(p_default) <> 'NULL' then
290        --
291        hr_utility.set_location(' retunr defaul :'||p_default, 15);
292        return(p_default);
293        --
294     else
295        --
296        return(null);
297        --
298     end if;
299     --
300   end if;
301   --
302   hr_utility.set_location(' Exiting:'||l_proc, 15);
303 --
304 End apply_decode;
305 
306 --
307 -- ----------------------------------------------------------------------------
308 -- |---------< get_element_value >---------------------------------------------|
309 -- ----------------------------------------------------------------------------
310 --
311 
312 function get_element_value
313                          (
314                            p_seq_num                number
315                          , p_ext_data_elmt_id       number
316                          , p_data_elmt_typ_cd       varchar2
317                          , p_name                   varchar2
318                          , p_frmt_mask_cd           varchar2
319                          , p_dflt_val               varchar2
320                          , p_short_name             varchar2
321                          , p_two_char_substr        varchar2
322                          , p_one_char_substr        varchar2
323                          , p_lookup_type            varchar2
324                          , p_frmt_mask_lookup_cd    varchar2 default null
325                            ) return varchar2 IS
326 --
327  l_proc               varchar2(72) := g_package||'get_element_value';
328  l_lookup_type varchar2(30) := p_lookup_type  ;
329  l_number                       varchar2(1);
330  l_max_len                      integer ;
331 --
332  l_rslt_elmt          varchar2(4000) ;
333 
334 begin
335     hr_utility.set_location('Entering'||l_proc, 5);
336 
337      if p_one_char_substr = 'A' then
338             --
339            if p_two_char_substr in ('AC','AP') then
340               --
341               IF p_short_name = 'ACNITMCMDT' THEN
342                 --
343                 l_rslt_elmt := apply_format_mask
344                  (ben_ext_person.g_actn_cmpltd_date, p_frmt_mask_cd);
345                 --
346               ELSIF p_short_name = 'ACNITMDDT' THEN
347                 --
348                 l_rslt_elmt := apply_format_mask
349                  (ben_ext_person.g_actn_due_date, p_frmt_mask_cd);
350                 --
351               ELSIF p_short_name = 'ACNITMDES' THEN
352                 --
353                 l_rslt_elmt := ben_ext_person.g_actn_description;
354                 --
355               ELSIF p_short_name = 'ACNITMNM' THEN
356                 --
357                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
358                  ben_ext_person.g_actn_name,
359                  to_char(ben_ext_person.g_actn_type_id));
360                 --
361               ELSIF p_short_name = 'ACNITMRQFG' THEN
362                 --
363                 l_rslt_elmt := ben_ext_person.g_actn_required_flag;
364 	        --
365                 -- Run Result
366                 --
367               ELSIF p_short_name = 'ACNITMTYP' THEN
368                 --
369                 l_rslt_elmt := ben_ext_person.g_actn_type;
370                 --
371               ELSIF p_short_name = 'APPNUM' THEN
372                 --
373                 l_rslt_elmt := ben_ext_person.g_applicant_number;
374                 --
375               end if;
376               --
377            elsif p_two_char_substr = 'AS' then
378               --
379               IF p_short_name = 'ASGFLX01' THEN
380                 l_rslt_elmt := ben_ext_person.g_asg_attr_1;
381               ELSIF p_short_name = 'ASGFLX02' THEN
382                 l_rslt_elmt := ben_ext_person.g_asg_attr_2;
383               ELSIF p_short_name = 'ASGFLX03' THEN
384                 l_rslt_elmt := ben_ext_person.g_asg_attr_3;
385               ELSIF p_short_name = 'ASGFLX04' THEN
386                 l_rslt_elmt := ben_ext_person.g_asg_attr_4;
387               ELSIF p_short_name = 'ASGFLX05' THEN
388                 l_rslt_elmt := ben_ext_person.g_asg_attr_5;
389               ELSIF p_short_name = 'ASGFLX06' THEN
390                 l_rslt_elmt := ben_ext_person.g_asg_attr_6;
391               ELSIF p_short_name = 'ASGFLX07' THEN
392                 l_rslt_elmt := ben_ext_person.g_asg_attr_7;
393               ELSIF p_short_name = 'ASGFLX08' THEN
394                 l_rslt_elmt := ben_ext_person.g_asg_attr_8;
395               ELSIF p_short_name = 'ASGFLX09' THEN
396                 l_rslt_elmt := ben_ext_person.g_asg_attr_9;
397               ELSIF p_short_name = 'ASGFLX10' THEN
398                 l_rslt_elmt := ben_ext_person.g_asg_attr_10;
399               ELSIF p_short_name = 'ASGGRP' THEN
400                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
401                  ben_ext_person.g_people_group,
402                  to_char(ben_ext_person.g_people_group_id));
403               ELSIF p_short_name = 'ASGHSAL' THEN
404                 l_rslt_elmt := ben_ext_person.g_hourly_salaried_code;
405               ELSIF p_short_name = 'ASGJOB' THEN
406                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
407                  ben_ext_person.g_job,
408                  to_char(ben_ext_person.g_job_id));
409               ELSIF p_short_name = 'ASGLUN' THEN
410                 l_rslt_elmt := ben_ext_person.g_labour_union_member_flag;
411               ELSIF p_short_name = 'ASGMNG' THEN
412                 l_rslt_elmt := ben_ext_person.g_manager_flag;
413               ELSIF p_short_name = 'ASGPAY' THEN
414                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
415                  ben_ext_person.g_payroll,
416                  to_char(ben_ext_person.g_payroll_id));
417               ELSIF p_short_name = 'ASGPYBS' THEN
418                 l_rslt_elmt := ben_ext_person.g_pay_basis_type ;
419 
420               ELSIF p_short_name = 'ASGPBSS' THEN
421                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
422                  ben_ext_person.g_pay_basis, to_char(ben_ext_person.g_pay_basis_id));
423 
424               ELSIF p_short_name = 'ASGPOS' THEN
425                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
426                  ben_ext_person.g_position,
427                  to_char(ben_ext_person.g_position_id));
428               ELSIF p_short_name = 'ASGTITL' THEN
429                 l_rslt_elmt := ben_ext_person.g_asg_title;
430               END IF;
431               --
432            end if;
433             --
434       elsif p_one_char_substr = 'B' then
435             --
436            if p_two_char_substr in ('BA','BC') then
437               IF p_short_name = 'BAMTDSGD' THEN
438                 l_rslt_elmt := apply_format_mask
439                 (ben_ext_person.g_bnf_amt_dsgd,p_frmt_mask_cd);
440               ELSIF p_short_name = 'BAMTUOM' THEN
441                 l_rslt_elmt := ben_ext_person.g_bnf_amt_uom;
442               ELSIF p_short_name = 'BCONSQNM' THEN
443                 l_rslt_elmt := apply_format_mask
444                 (ben_ext_person.g_bnf_contact_seq_num, p_frmt_mask_cd);
445               END IF;
446            elsif p_two_char_substr in ('BD','BE','BF') then
447               IF p_short_name = 'BDOB' THEN
448                 l_rslt_elmt := apply_format_mask
449                 (ben_ext_person.g_bnf_date_of_birth, p_frmt_mask_cd);
450               ELSIF p_short_name = 'BDOD' THEN
451                 l_rslt_elmt := apply_format_mask
452                 (ben_ext_person.g_bnf_date_of_death, p_frmt_mask_cd);
453               ELSIF p_short_name = 'BDSBCD' THEN
454                 l_rslt_elmt := ben_ext_person.g_bnf_disabled_flag;
455               ELSIF p_short_name = 'BEMADR' THEN
456                 l_rslt_elmt := substr(ben_ext_person.g_bnf_email_address,1,600);
457               ELSIF p_short_name = 'BFLNM' THEN
458                 l_rslt_elmt := ben_ext_person.g_bnf_fl_nm;
459               ELSIF p_short_name = 'BFSTNM' THEN
460                 l_rslt_elmt := ben_ext_person.g_bnf_fst_nm;
461               ELSIF p_short_name = 'BFXNUM' THEN
462                 l_rslt_elmt := apply_format_mask
463                 (ben_ext_person.g_bnf_fax,p_frmt_mask_cd);
464               END IF;
465            elsif p_two_char_substr in ('BG','BK','BL','BM','BN') then
466               IF p_short_name = 'BGENDR' THEN
467                 l_rslt_elmt := ben_ext_person.g_bnf_gender;
468               ELSIF p_short_name = 'BKNASNM' THEN
469                 l_rslt_elmt := ben_ext_person.g_bnf_known_as;
470               ELSIF p_short_name = 'BLANG' THEN
471                 l_rslt_elmt := ben_ext_person.g_bnf_language;
472               ELSIF p_short_name = 'BLSTNM' THEN
473                 l_rslt_elmt := ben_ext_person.g_bnf_lst_nm;
474               ELSIF p_short_name = 'BMBNUM' THEN
475                 l_rslt_elmt := apply_format_mask
476                 (ben_ext_person.g_bnf_mobile,p_frmt_mask_cd);
477               --
478               -- change log information
479               --
480               ELSIF p_short_name = 'BMIDNM' THEN
481                 l_rslt_elmt := ben_ext_person.g_bnf_mid_nm;
482               ELSIF p_short_name = 'BMRSTS' THEN
483                 l_rslt_elmt := ben_ext_person.g_bnf_marital_status;
484               ELSIF p_short_name = 'BNATION' THEN
485                 l_rslt_elmt := ben_ext_person.g_bnf_nationality;
486               ELSIF p_short_name = 'BNGRP' THEN
487                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
488                  ben_ext_person.g_benefit_group,
489                  to_char(ben_ext_person.g_benefit_group_id));
490               END IF;
491            elsif p_two_char_substr = 'BP' then
492               IF p_short_name = 'BPCTDSGD' THEN
493                 l_rslt_elmt := apply_format_mask
494                 (ben_ext_person.g_bnf_pct_dsgd,p_frmt_mask_cd);
495               ELSIF p_short_name = 'BPHNHM' THEN
496                 l_rslt_elmt := apply_format_mask
497                 (ben_ext_person.g_bnf_home_phone, p_frmt_mask_cd);
498               ELSIF p_short_name = 'BPHNWR' THEN
499                 l_rslt_elmt := apply_format_mask
500                 (ben_ext_person.g_bnf_work_phone, p_frmt_mask_cd);
501               ELSIF p_short_name = 'BPRADCITY' THEN
502                 l_rslt_elmt := ben_ext_person.g_bnf_prim_city;
503               ELSIF p_short_name = 'BPRADCNT' THEN
504                 l_rslt_elmt := ben_ext_person.g_bnf_prim_country;
505               ELSIF p_short_name = 'BPRADEFDT' THEN
506                 l_rslt_elmt := apply_format_mask
507                 (ben_ext_person.g_bnf_prim_effect_date, p_frmt_mask_cd);
508               ELSIF p_short_name = 'BPRADLN1' THEN
509                 l_rslt_elmt := ben_ext_person.g_bnf_prim_address1;
510               ELSIF p_short_name = 'BPRADLN2' THEN
511                 l_rslt_elmt := ben_ext_person.g_bnf_prim_address2;
512               ELSIF p_short_name = 'BPRADLN3' THEN
513                 l_rslt_elmt := ben_ext_person.g_bnf_prim_address3;
514               ELSIF p_short_name = 'BPRADPCD' THEN
515                 l_rslt_elmt := ben_ext_person.g_bnf_prim_postal_code;
516               ELSIF p_short_name = 'BPRADRG' THEN
517                 l_rslt_elmt := ben_ext_person.g_bnf_prim_region;
518               ELSIF p_short_name = 'BPRADST' THEN
519                 l_rslt_elmt := ben_ext_person.g_bnf_prim_state;
520               ELSIF p_short_name = 'BPRENMADJ' THEN
521                 l_rslt_elmt := ben_ext_person.g_bnf_pre_nm_adjunct;
522               ELSIF p_short_name = 'BPRMYCNT' THEN
523                 l_rslt_elmt := ben_ext_person.g_bnf_prmy_cont;
524               ELSIF p_short_name = 'BPRVLSTNM' THEN
525                 l_rslt_elmt := ben_ext_person.g_bnf_prv_lst_nm;
526               ELSIF p_short_name = 'BPREFIX' THEN
527                 l_rslt_elmt := ben_ext_person.g_bnf_prefix;
528               END IF;
529            elsif p_two_char_substr in ('BR','BS') then
530               IF p_short_name = 'BRLSHP' THEN
531                 l_rslt_elmt := ben_ext_person.g_bnf_rlshp;
532               ELSIF p_short_name = 'BSGRP' THEN
533                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
534                    ben_extract.g_business_group_name,
535                    to_char(ben_ext_person.g_business_group_id));
536                 --
537               ELSIF p_short_name = 'BSHRFL' THEN
538                 l_rslt_elmt := ben_ext_person.g_bnf_shared_resd_flag;
539               ELSIF p_short_name = 'BSSN' THEN
540                 l_rslt_elmt := apply_format_mask
541                 (ben_ext_person.g_bnf_ssn,p_frmt_mask_cd);
542               ELSIF p_short_name = 'BSTUSTS' THEN
543                 l_rslt_elmt := ben_ext_person.g_bnf_student_status;
544               ELSIF p_short_name = 'BSUF' THEN
545                 l_rslt_elmt := ben_ext_person.g_bnf_suffix;
546               END IF;
547            elsif p_two_char_substr = 'BT' then
548               IF p_short_name = 'BTOBUSG' THEN
549                 l_rslt_elmt := apply_format_mask
550                  (ben_ext_person.g_bnf_tobacco_usage, p_frmt_mask_cd);
551               ELSIF p_short_name = 'BTTL' THEN
552                 l_rslt_elmt := ben_ext_person.g_bnf_title;
553               END IF;
554            end if;
555       elsif p_one_char_substr = 'C' then
556            if p_two_char_substr = 'CB' then
557               IF p_short_name =    'CBRADNM' then
558                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_name ;
559               ELSIF p_short_name = 'CBRADORG' then
560                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_org_name ;
561               ELSIF p_short_name = 'CBRADAD1' then
562                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_addr1 ;
563               ELSIF p_short_name = 'CBRADAD2' then
564                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_addr2 ;
565               ELSIF p_short_name = 'CBRADAD3' then
566                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_addr3 ;
567               ELSIF p_short_name = 'CBRADCTY' then
568                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_city ;
569               ELSIF p_short_name = 'CBRADST' then
570                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_state ;
571               ELSIF p_short_name = 'CBRACNT' then
572                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_country ;
573               ELSIF p_short_name = 'CBRAPH' then
574                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_phone ;
575               ELSIF p_short_name = 'CBRAZIP' then
576                  l_rslt_elmt :=  ben_ext_person.g_elig_cobra_admin_zip ;
577               end if ;
578 
579            ELSIF p_two_char_substr = 'CH' then
580               IF p_short_name = 'CHGACTDT' THEN
581                 l_rslt_elmt := apply_format_mask
582                   (ben_ext_person.g_chg_actl_dt,p_frmt_mask_cd);
583               ELSIF p_short_name = 'CHGCD' THEN
584                  l_rslt_elmt := ben_ext_person.g_chg_evt_cd;
585               ELSIF p_short_name = 'CHGDT' THEN
586                  l_rslt_elmt := apply_format_mask
587                  (ben_ext_person.g_chg_eff_dt,p_frmt_mask_cd);
588               ELSIF p_short_name = 'CHGEVNEW1' THEN
589                  l_rslt_elmt := ben_ext_person.g_chg_new_val1;
590               ELSIF p_short_name = 'CHGEVNEW2' THEN
591                  l_rslt_elmt := ben_ext_person.g_chg_new_val2;
592               ELSIF p_short_name = 'CHGEVNEW3' THEN
593                  l_rslt_elmt := ben_ext_person.g_chg_new_val3;
594               ELSIF p_short_name = 'CHGEVNEW4' THEN
595                  l_rslt_elmt := ben_ext_person.g_chg_new_val4;
596               ELSIF p_short_name = 'CHGEVNEW5' THEN
597                  l_rslt_elmt := ben_ext_person.g_chg_new_val5;
598               ELSIF p_short_name = 'CHGEVNEW6' THEN
599                  l_rslt_elmt := ben_ext_person.g_chg_new_val6;
600               ELSIF p_short_name = 'CHGEVOLD1' THEN
601                  l_rslt_elmt := ben_ext_person.g_chg_old_val1;
602               ELSIF p_short_name = 'CHGEVOLD2' THEN
603                  l_rslt_elmt := ben_ext_person.g_chg_old_val2;
604               ELSIF p_short_name = 'CHGEVOLD3' THEN
605                  l_rslt_elmt := ben_ext_person.g_chg_old_val3;
606               ELSIF p_short_name = 'CHGEVOLD4' THEN
607                  l_rslt_elmt := ben_ext_person.g_chg_old_val4;
608               ELSIF p_short_name = 'CHGEVOLD5' THEN
609                  l_rslt_elmt := ben_ext_person.g_chg_old_val5;
610               ELSIF p_short_name = 'CHGEVOLD6' THEN
611                  l_rslt_elmt := ben_ext_person.g_chg_old_val6;
612               ELSIF p_short_name = 'CHGPTBLNM' THEN
613                   l_rslt_elmt := ben_ext_person.g_chg_pay_table;
614               ELSIF p_short_name = 'CHGPCLNM' THEN
615                   l_rslt_elmt := ben_ext_person.g_chg_pay_column;
616               ELSIF p_short_name = 'CHGPMOD' THEN
617                   l_rslt_elmt := ben_ext_person.g_chg_pay_mode;
618 
619               END IF;
620            elsif p_two_char_substr = 'CI' then
621               IF p_short_name = 'CINSPRQD' THEN
622                 l_rslt_elmt := ben_ext_person.g_cm_inspn_rqd_flag;
623               END IF;
624            elsif p_two_char_substr = 'CM' then
625               IF p_short_name = 'CMAD1' THEN
626                 l_rslt_elmt := ben_ext_person.g_cm_addr_line1;
627               ELSIF p_short_name = 'CMAD2' THEN
628                 l_rslt_elmt := ben_ext_person.g_cm_addr_line2;
629               ELSIF p_short_name = 'CMAD3' THEN
630                 l_rslt_elmt := ben_ext_person.g_cm_addr_line3;
631               ELSIF p_short_name = 'CMCNTY' THEN  -- Fix for Bug 2593220
632                 l_rslt_elmt := nvl(hr_general.DECODE_FND_COMM_LOOKUP(l_lookup_type,
633                                    ben_ext_person.g_cm_county),
634                                    ben_ext_person.g_cm_county);
635                 --l_rslt_elmt := ben_ext_person.g_cm_county;  -- End of Fix, Bug 2593220
636               ELSIF p_short_name = 'CMCRY' THEN
637                 l_rslt_elmt := ben_ext_person.g_cm_country;
638               ELSIF p_short_name = 'CMCTY' THEN
639                 l_rslt_elmt := ben_ext_person.g_cm_city;
640               ELSIF p_short_name = 'CMDLVTXT' THEN
641                 l_rslt_elmt := ben_ext_person.g_cm_dlvry_instn_txt;
642               ELSIF p_short_name = 'CMEFFDT' THEN
643                 l_rslt_elmt := apply_format_mask
644                   (ben_ext_person.g_cm_eff_dt,p_frmt_mask_cd);
645               ELSIF p_short_name = 'CMKIT' THEN
646                 l_rslt_elmt := ben_ext_person.g_cm_kit;
647               ELSIF p_short_name = 'CMLEND' THEN
648                 l_rslt_elmt := apply_format_mask
649                 (ben_ext_person.g_cm_lf_evt_ntfn_dt, p_frmt_mask_cd);
650                 --
651                 --  Eligibility
652                 --
653               ELSIF p_short_name = 'CMLENM' THEN
654                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
655                  ben_ext_person.g_cm_lf_evt,
656                  to_char(ben_ext_person.g_cm_lf_evt_id));
657               ELSIF p_short_name = 'CMLEOD' THEN
658                 l_rslt_elmt := apply_format_mask
659                 (ben_ext_person.g_cm_lf_evt_ocrd_dt, p_frmt_mask_cd);
660               ELSIF p_short_name = 'CMLEST' THEN
661                 l_rslt_elmt := ben_ext_person.g_cm_lf_evt_stat;
662               ELSIF p_short_name = 'CMREG3' THEN
663                 l_rslt_elmt := ben_ext_person.g_cm_region_3;
664               ELSIF p_short_name = 'CMSHRTNM' THEN
665                 l_rslt_elmt := ben_ext_person.g_cm_short_name;
666               ELSIF p_short_name = 'CMSTA' THEN
667                 l_rslt_elmt := ben_ext_person.g_cm_state;
668               ELSIF p_short_name = 'CMTBSNTDT' THEN
669                 l_rslt_elmt := apply_format_mask
670                 (ben_ext_person.g_cm_to_be_sent_dt, p_frmt_mask_cd);
671               ELSIF p_short_name = 'CMTRGR' THEN
672                 l_rslt_elmt := ben_ext_person.g_cm_trgr_proc_name;
673               ELSIF p_short_name = 'CMTRGRDT' THEN
674                 l_rslt_elmt := apply_format_mask
675                 (ben_ext_person.g_cm_trgr_proc_dt, p_frmt_mask_cd);
676               ELSIF p_short_name = 'CMTYP' THEN
677                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
678                  ben_ext_person.g_cm_type,
679                  to_char(ben_ext_person.g_cm_type_id));
680               ELSIF p_short_name = 'CMZIP' THEN
681                 l_rslt_elmt := ben_ext_person.g_cm_postal_code;
682               END IF;
683            elsif p_two_char_substr = 'CO' then
684               IF p_short_name = 'COBEFL' THEN
685                 l_rslt_elmt := ben_ext_person.g_contact_is_bnfcry_flag;
686               ELSIF p_short_name = 'COCDFL' THEN
687                 l_rslt_elmt := ben_ext_person.g_contact_is_cvrd_dpnt_flag;
688               ELSIF p_short_name = 'COCONSQNM' THEN
689                 l_rslt_elmt := apply_format_mask
690                 (ben_ext_person.g_contact_seq_num, p_frmt_mask_cd);
691               ELSIF p_short_name = 'CODOB' THEN
692                 l_rslt_elmt := apply_format_mask
693                 (ben_ext_person.g_contact_date_of_birth, p_frmt_mask_cd);
694               ELSIF p_short_name = 'CODOD' THEN
695                 l_rslt_elmt := apply_format_mask
696                 (ben_ext_person.g_contact_date_of_death, p_frmt_mask_cd);
697               ELSIF p_short_name = 'CODSBL' THEN
698                 l_rslt_elmt := ben_ext_person.g_contact_disabled_flag;
699               ELSIF p_short_name = 'COEDFL' THEN
700                 l_rslt_elmt := ben_ext_person.g_contact_is_elig_dpnt_flag;
701               ELSIF p_short_name = 'COEMADR' THEN
702                 l_rslt_elmt := substr(ben_ext_person.g_contact_email_address,1,600) ;
703               ELSIF p_short_name = 'COENDT' THEN
704                 l_rslt_elmt := apply_format_mask(ben_ext_person.g_contact_end_date, p_frmt_mask_cd);
705               ELSIF p_short_name = 'COENLER' THEN
706                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
707                  ben_ext_person.g_contact_end_life_evt,
708                  to_char(ben_ext_person.g_contact_end_ler_id));
709               ELSIF p_short_name = 'COFSTNM' THEN
710                 l_rslt_elmt := ben_ext_person.g_contact_first_name;
711               ELSIF p_short_name = 'COFULNM' THEN
712                 l_rslt_elmt := ben_ext_person.g_contact_full_name;
713               ELSIF p_short_name = 'COFXNUM' THEN
714                 l_rslt_elmt := apply_format_mask
715                  (ben_ext_person.g_contact_fax,p_frmt_mask_cd);
716               ELSIF p_short_name = 'COKNASNM' THEN
717                 l_rslt_elmt := ben_ext_person.g_contact_known_as;
718               ELSIF p_short_name = 'COLANG' THEN
719                 l_rslt_elmt := ben_ext_person.g_contact_language;
720               ELSIF p_short_name = 'COLSTNM' THEN
721                 l_rslt_elmt := ben_ext_person.g_contact_last_name;
722               ELSIF p_short_name = 'COMBNUM' THEN
723                 l_rslt_elmt := apply_format_mask
724                 (ben_ext_person.g_contact_mobile, p_frmt_mask_cd);
725               ELSIF p_short_name = 'COMIDNM' THEN
726                 l_rslt_elmt := ben_ext_person.g_contact_middle_names;
727               ELSIF p_short_name = 'COMRTL' THEN
728                 l_rslt_elmt := ben_ext_person.g_contact_marital_status;
729               ELSIF p_short_name = 'CONATID' THEN
730                 l_rslt_elmt := apply_format_mask
731                 (ben_ext_person.g_contact_national_ident, p_frmt_mask_cd);
732               ELSIF p_short_name = 'CONATION' THEN
733                 l_rslt_elmt := ben_ext_person.g_contact_nationality;
734               ELSIF p_short_name = 'CONMSFX' THEN
735                 l_rslt_elmt := ben_ext_person.g_contact_suffix;
736               ELSIF p_short_name = 'CONMPREFIX' THEN
737                 l_rslt_elmt := ben_ext_person.g_contact_prefix;
738               ELSIF p_short_name = 'COPERSFL' THEN
739                 l_rslt_elmt := ben_ext_person.g_contact_personal_flag;
740               ELSIF p_short_name = 'COPHNHM' THEN
741                 l_rslt_elmt := apply_format_mask
742                 (ben_ext_person.g_contact_home_phone, p_frmt_mask_cd);
743               ELSIF p_short_name = 'COPHNWR' THEN
744                 l_rslt_elmt := apply_format_mask
745                 (ben_ext_person.g_contact_work_phone, p_frmt_mask_cd);
746               ELSIF p_short_name = 'COPLSTNM' THEN
747                 l_rslt_elmt := ben_ext_person.g_contact_prev_last_name;
748               ELSIF p_short_name = 'COPRADCITY' THEN
749                 l_rslt_elmt := ben_ext_person.g_contact_prim_city;
750               ELSIF p_short_name = 'COPRADCNT' THEN
751                 l_rslt_elmt := ben_ext_person.g_contact_prim_country;
752               ELSIF p_short_name = 'COPRADEFDT' THEN
753                 l_rslt_elmt := apply_format_mask
754                 (ben_ext_person.g_contact_prim_effect_date, p_frmt_mask_cd);
755               ELSIF p_short_name = 'COPRADLN1' THEN
756                 l_rslt_elmt := ben_ext_person.g_contact_prim_address1;
757               ELSIF p_short_name = 'COPRADLN2' THEN
758                 l_rslt_elmt := ben_ext_person.g_contact_prim_address2;
759               ELSIF p_short_name = 'COPRADLN3' THEN
760                 l_rslt_elmt := ben_ext_person.g_contact_prim_address3;
761               ELSIF p_short_name = 'COPRADPCD' THEN
762                 l_rslt_elmt := ben_ext_person.g_contact_prim_postal_code;
763               ELSIF p_short_name = 'COPRADRG' THEN
764                 l_rslt_elmt := ben_ext_person.g_contact_prim_region;
765               ELSIF p_short_name = 'COPRADST' THEN
766                 l_rslt_elmt := ben_ext_person.g_contact_prim_state;
767               ELSIF p_short_name = 'COPRMFL' THEN
768                 l_rslt_elmt := ben_ext_person.g_contact_prmy_contact_flag;
769               ELSIF p_short_name = 'COPRNMAD' THEN
770                 l_rslt_elmt := ben_ext_person.g_contact_pre_name_adjunct;
771               ELSIF p_short_name = 'COPYRFL' THEN
772                 l_rslt_elmt := ben_ext_person.g_contact_pymts_rcpnt_flag;
773               ELSIF p_short_name = 'CORLSHP' THEN
774                  l_rslt_elmt := ben_ext_person.g_contact_rlshp_type;
775               ELSIF p_short_name = 'COSEX' THEN
776                 l_rslt_elmt := ben_ext_person.g_contact_sex;
777               ELSIF p_short_name = 'COSHRFL' THEN
778                 l_rslt_elmt := ben_ext_person.g_contact_shared_resd_flag;
779               ELSIF p_short_name = 'COSTDNT' THEN
780                 l_rslt_elmt := ben_ext_person.g_contact_student_status;
781               ELSIF p_short_name = 'COSTDT' THEN
782                 l_rslt_elmt := ben_ext_person.g_contact_start_date;
783               ELSIF p_short_name = 'COSTLER' THEN
784                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
785                    ben_ext_person.g_contact_start_life_evt,
786                    to_char(ben_ext_person.g_contact_start_ler_id));
787               ELSIF p_short_name = 'COTITLE' THEN
788                 l_rslt_elmt := ben_ext_person.g_contact_title;
789               ELSIF p_short_name = 'COTOBUSG' THEN
790                 l_rslt_elmt := apply_format_mask
791                 (ben_ext_person.g_contact_tobacco_usage, p_frmt_mask_cd);
792               END IF;
793            elsif p_two_char_substr = 'CV' then
794               IF p_short_name = 'CVGST' THEN
795                 l_rslt_elmt := apply_format_mask
796                  (ben_ext_person.g_enrt_cvg_strt_dt, p_frmt_mask_cd);
797               ELSIF p_short_name = 'CVGTH' THEN
798                 --
799                 IF ben_ext_person.g_enrt_cvg_thru_dt =
800                   to_date('31/12/4712','DD/MM/YYYY') THEN
801                   --
802                   l_rslt_elmt := null;
803                   --
804                 ELSE
805                   --
806                   l_rslt_elmt := apply_format_mask
807                   (ben_ext_person.g_enrt_cvg_thru_dt, p_frmt_mask_cd);
808                   --
809                 END IF;
810 
811               END IF;
812            elsif p_two_char_substr = 'CW' then
813                  --- CWB Elements
814                  hr_utility.set_location(' cwb extract  ' || p_two_char_substr  || ' /' || p_short_name  , 99 );
815                  IF p_short_name = 'CWBLEN'  then
816                      l_rslt_elmt := ben_ext_person.g_CWB_Life_Event_Name ;
817                  ELSIF p_short_name = 'CWBLEOD' then
818                       l_rslt_elmt := apply_format_mask (ben_ext_person.g_CWB_Life_Event_Occurred_Date,p_frmt_mask_cd);
819                  ELSIF p_short_name = 'CWBPGN' then
820                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_name ;
821                  ELSIF p_short_name = 'CWBPGS1' then
822                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT1 ;
823                  ELSIF p_short_name = 'CWBPGS2' then
824                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT2 ;
825                  ELSIF p_short_name = 'CWBPGS3' then
826                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT3 ;
827                  ELSIF p_short_name = 'CWBPGS4' then
828                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT4 ;
829                  ELSIF p_short_name = 'CWBPGS5' then
830                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT5 ;
831                  ELSIF p_short_name = 'CWBPGS6' then
832                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT6 ;
833                  ELSIF p_short_name = 'CWBPGS7' then
834                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT7 ;
835                  ELSIF p_short_name = 'CWBPGS8' then
836                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT8 ;
837                  ELSIF p_short_name = 'CWBPGS9' then
838                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT9 ;
839                  ELSIF p_short_name = 'CWBPGS10' then
840                       l_rslt_elmt :=  ben_ext_person.g_CWB_PEOPLE_GROUP_SEGMENT10 ;
841                  ELSIF p_short_name = 'CWBPS' then
842                       l_rslt_elmt :=  ben_ext_person.g_CWB_new_Perf_rating ;
843                  ELSIF p_short_name = 'CWBPASD' then
844                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_ADJUSTED_SVC_DATE,p_frmt_mask_cd) ;
845                  ELSIF p_short_name = 'CWBPAA1' then
846                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE1  ;
847                  ELSIF p_short_name = 'CWBPAA2' then
848                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE2  ;
849                  ELSIF p_short_name = 'CWBPAA3' then
850                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE3  ;
851                  ELSIF p_short_name = 'CWBPAA4' then
852                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE4  ;
853                  ELSIF p_short_name = 'CWBPAA5' then
854                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE5  ;
855                  ELSIF p_short_name = 'CWBPAA6' then
856                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE6  ;
857                  ELSIF p_short_name = 'CWBPAA7' then
858                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE7  ;
859                  ELSIF p_short_name = 'CWBPAA8' then
860                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE8  ;
861                  ELSIF p_short_name = 'CWBPAA9' then
862                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE9  ;
863                  ELSIF p_short_name = 'CWBPAA10' then
864                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE10  ;
865                  ELSIF p_short_name = 'CWBPAA11' then
866                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE11  ;
867                  ELSIF p_short_name = 'CWBPAA12' then
868                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE12  ;
869                  ELSIF p_short_name = 'CWBPAA13' then
870                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE13  ;
871                  ELSIF p_short_name = 'CWBPAA14' then
872                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE14  ;
873                  ELSIF p_short_name = 'CWBPAA15' then
874                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE15  ;
875                  ELSIF p_short_name = 'CWBPAA16' then
876                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE16  ;
877                  ELSIF p_short_name = 'CWBPAA17' then
878                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE17  ;
879                  ELSIF p_short_name = 'CWBPAA18' then
880                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE18  ;
881                  ELSIF p_short_name = 'CWBPAA19' then
882                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE19  ;
883                  ELSIF p_short_name = 'CWBPAA20' then
884                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE20  ;
885                  ELSIF p_short_name = 'CWBPAA21' then
886                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE21  ;
887                  ELSIF p_short_name = 'CWBPAA22' then
888                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE22  ;
889                  ELSIF p_short_name = 'CWBPAA23' then
890                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE23  ;
891                  ELSIF p_short_name = 'CWBPAA24' then
892                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE24  ;
893                  ELSIF p_short_name = 'CWBPAA25' then
894                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE25  ;
895                  ELSIF p_short_name = 'CWBPAA26' then
896                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE26  ;
897                  ELSIF p_short_name = 'CWBPAA27' then
898                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE27  ;
899                  ELSIF p_short_name = 'CWBPAA28' then
900                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE28  ;
901                  ELSIF p_short_name = 'CWBPAA29' then
902                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE29  ;
903                  ELSIF p_short_name = 'CWBPAA30' then
904                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Assg_ATTRIBUTE30  ;
905                  ELSIF p_short_name = 'CWBPBS' then
906                       l_rslt_elmt := apply_format_mask(ben_ext_person.g_CWB_Person_BASE_SALARY , p_frmt_mask_cd);
907                  ELSIF p_short_name = 'CWBPBSF' then
908                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_BASE_SALARY_FREQ  ;
909                  ELSIF p_short_name = 'CWBPBN' then
910                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Brief_Name  ;
911                  ELSIF p_short_name = 'CWBPBGN' then
912                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_BG_Name  ;
913                  ELSIF p_short_name = 'CWBPCN' then
914                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Custom_Name  ;
915                  ELSIF p_short_name = 'CWBPCS1' then
916                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT1  ;
917                  ELSIF p_short_name = 'CWBPCS2' then
918                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT2  ;
919                  ELSIF p_short_name = 'CWBPCS3' then
920                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT3  ;
921                  ELSIF p_short_name = 'CWBPCS4' then
922                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT4  ;
923                  ELSIF p_short_name = 'CWBPCS5' then
924                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT5  ;
925                  ELSIF p_short_name = 'CWBPCS6' then
926                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT6  ;
927                  ELSIF p_short_name = 'CWBPCS7' then
928                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT7  ;
929                  ELSIF p_short_name = 'CWBPCS8' then
930                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT8  ;
931                  ELSIF p_short_name = 'CWBPCS9' then
932                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT9  ;
933                  ELSIF p_short_name = 'CWBPCS10' then
934                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT10  ;
935                  ELSIF p_short_name = 'CWBPCS11' then
936                       l_rslt_elmt := apply_format_mask(ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT11 , p_frmt_mask_cd);
937                  ELSIF p_short_name = 'CWBPCS12' then
938                       l_rslt_elmt := apply_format_mask(ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT12 , p_frmt_mask_cd);
939                  ELSIF p_short_name = 'CWBPCS13' then
940                       l_rslt_elmt := apply_format_mask(ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT13 , p_frmt_mask_cd);
941                  ELSIF p_short_name = 'CWBPCS14' then
942                       l_rslt_elmt := apply_format_mask(ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT14 , p_frmt_mask_cd);
943                  ELSIF p_short_name = 'CWBPCS15' then
944                       l_rslt_elmt := apply_format_mask(ben_ext_person.g_CWB_Person_CUSTOM_SEGMENT15 , p_frmt_mask_cd);
945                  ELSIF p_short_name = 'CWBPEA' then
946                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_EMAIL_DDRESS  ;
947                  ELSIF p_short_name = 'CWBPEC' then
948                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_EMPloyee_CATEGORY   ;
949                  ELSIF p_short_name = 'CWBPEN' then
950                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_EMPLOYEE_NUMBER  ;
951                  ELSIF p_short_name = 'CWBPFR' then
952                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_FEEDBACK_RATING  ;
953                  ELSIF p_short_name = 'CWBPF' then
954                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_FREQUENCY  ;
955                  ELSIF p_short_name = 'CWBPFN' then
956                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_FULL_NAME  ;
957                       hr_utility.set_location(' cwbfn ' || ben_ext_person.g_CWB_Person_FULL_NAME , 99 );
958                  ELSIF p_short_name = 'CWBPGAF' then
959                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_GRADE_ANN_FACTOR  ;
960                  ELSIF p_short_name = 'CWBPGC' then
961                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Grade_COMPARATIO  ;
962                  ELSIF p_short_name = 'CWBPGMXV' then
963                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_Grade_MAX_VAL , p_frmt_mask_cd);
964                  ELSIF p_short_name = 'CWBPGMP' then
965                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_Grade_MID_POINT, p_frmt_mask_cd);
966                  ELSIF p_short_name = 'CWBPGMNV' then
967                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_Grade_MIN_VAL , p_frmt_mask_cd);
968                  ELSIF p_short_name = 'CWBPGRDN' then
969                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_GRADE_name  ;
970                  ELSIF p_short_name = 'CWBPGQ' then
971                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Grade_QUARTILE  ;
972                  ELSIF p_short_name = 'CWBPIA1' then
973                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE1  ;
974                  ELSIF p_short_name = 'CWBPIA2' then
975                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE2  ;
976                  ELSIF p_short_name = 'CWBPIA3' then
977                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE3  ;
978                  ELSIF p_short_name = 'CWBPIA4' then
979                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE4  ;
980                  ELSIF p_short_name = 'CWBPIA5' then
981                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE5  ;
982                  ELSIF p_short_name = 'CWBPIA6' then
983                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE6  ;
984                  ELSIF p_short_name = 'CWBPIA7' then
985                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE7  ;
986                  ELSIF p_short_name = 'CWBPIA8' then
987                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE8  ;
988                  ELSIF p_short_name = 'CWBPIA9' then
989                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE9  ;
990                  ELSIF p_short_name = 'CWBPIA10' then
991                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE10  ;
992                  ELSIF p_short_name = 'CWBPIA11' then
993                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE11  ;
994                  ELSIF p_short_name = 'CWBPIA12' then
995                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE12  ;
996                  ELSIF p_short_name = 'CWBPIA13' then
997                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE13  ;
998                  ELSIF p_short_name = 'CWBPIA14' then
999                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE14  ;
1000                  ELSIF p_short_name = 'CWBPIA15' then
1001                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE15  ;
1002                  ELSIF p_short_name = 'CWBPIA16' then
1003                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE16  ;
1004                  ELSIF p_short_name = 'CWBPIA17' then
1005                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE17  ;
1006                  ELSIF p_short_name = 'CWBPIA18' then
1007                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE18  ;
1008                  ELSIF p_short_name = 'CWBPIA19' then
1009                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE19  ;
1010                  ELSIF p_short_name = 'CWBPIA20' then
1011                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE20  ;
1012                  ELSIF p_short_name = 'CWBPIA21' then
1013                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE21  ;
1014                  ELSIF p_short_name = 'CWBPIA22' then
1015                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE22  ;
1016                  ELSIF p_short_name = 'CWBPIA23' then
1017                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE23  ;
1018                  ELSIF p_short_name = 'CWBPIA24' then
1019                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE24  ;
1020                  ELSIF p_short_name = 'CWBPIA25' then
1021                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE25  ;
1022                  ELSIF p_short_name = 'CWBPIA26' then
1023                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE26  ;
1024                  ELSIF p_short_name = 'CWBPIA27' then
1025                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE27  ;
1026                  ELSIF p_short_name = 'CWBPIA28' then
1027                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE28  ;
1028                  ELSIF p_short_name = 'CWBPIA29' then
1029                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE29  ;
1030                  ELSIF p_short_name = 'CWBPIA30' then
1031                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_Info_ATTRIBUTE30  ;
1032                  ELSIF p_short_name = 'CWBPJN' then
1033                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_JOB_name  ;
1034                  ELSIF p_short_name = 'CWBPLG' then
1035                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_LEGISLATION  ;
1036                  ELSIF p_short_name = 'CWBPLOC' then
1037                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_LOCATION  ;
1038                  ELSIF p_short_name = 'CWBPNH' then
1039                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_NORMAL_HOURS , p_frmt_mask_cd);
1040                  ELSIF p_short_name = 'CWBPON' then
1041                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_ORG_name  ;
1042                  ELSIF p_short_name = 'CWBPOSD' then
1043                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_ORIG_START_DATE , p_frmt_mask_cd);
1044                  ELSIF p_short_name = 'CWBPPAF' then
1045                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_PAY_ANNUL_FACTOR , p_frmt_mask_cd);
1046                  ELSIF p_short_name = 'CWBPPR' then
1047                       l_rslt_elmt :=   ben_ext_person.g_CWB_Person_PAY_RATE ;   ---- ?????????
1048                  ELSIF p_short_name = 'CWBPPN' then
1049                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_PAYROLL_NAME  ;
1050                  ELSIF p_short_name = 'CWBPPRTN' then
1051                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_PERF_RATING  ;
1052                  ELSIF p_short_name = 'CWBPPRD' then
1053                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_PERF_RATING_DATE, p_frmt_mask_cd) ;
1054                  ELSIF p_short_name = 'CWBPPRT' then
1055                       l_rslt_elmt :=  ben_ext_person.g_CWB_Persom_PERF_RATING_TYPE  ;
1056                  ELSIF p_short_name = 'CWBPP' then
1057                       l_rslt_elmt :=  ben_ext_person. g_CWB_Person_POSITION  ;
1058                  ELSIF p_short_name = 'CWBPPPS' then
1059                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_POST_PROCESS_Stat  ;
1060                  ELSIF p_short_name = 'CWBPSD' then
1061                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_START_DATE, p_frmt_mask_cd) ;
1062                  ELSIF p_short_name = 'CWBPST' then
1063                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_STATUS_TYPE  ;
1064                  ELSIF p_short_name = 'CWBPSBN' then
1065                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_SUP_BRIEF_NAME  ;
1066                  ELSIF p_short_name = 'CWBPSCN' then
1067                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_SUP_CUSTOM_NAME  ;
1068                  ELSIF p_short_name = 'CWBPSFN' then
1069                       l_rslt_elmt :=  ben_ext_person.g_CWB_Person_SUP_FULL_NAME  ;
1070                  ELSIF p_short_name = 'CWBPYE' then
1071                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Person_YEARS_EMPLOYED, p_frmt_mask_cd) ;
1072                  ELSIF p_short_name = 'CWBPYIG' then
1073                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Person_YEARS_IN_GRADE, p_frmt_mask_cd)  ;
1074                  ELSIF p_short_name = 'CWBPYIJ' then
1075                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Person_YEARS_IN_JOB, p_frmt_mask_cd)  ;
1076                  ELSIF p_short_name = 'CWBPYIP' then
1077                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Person_YEARS_IN_POS, p_frmt_mask_cd)  ;
1078                  ELSIF p_short_name = 'CWBPSTAT' then
1079                       l_rslt_elmt :=   ben_ext_person.g_CWB_new_Postion_name ;
1080                  --- cwb groups
1081                  ELSIF p_short_name = 'CWBB'  THEN
1082                       l_rslt_elmt :=   ben_ext_person.g_CWB_Budget_PL_ID  ;
1083                  ELSIF p_short_name = 'CWBBACS'  THEN
1084                       l_rslt_elmt :=   ben_ext_person.g_CWB_Budget_Access   ;
1085                  ELSIF p_short_name = 'CWBBAPRL'  THEN
1086                       l_rslt_elmt :=   ben_ext_person.g_CWB_Budget_Approval   ;
1087                  ELSIF p_short_name = 'CWBBAD'  THEN
1088                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Budget_Approval_Date, p_frmt_mask_cd);
1089                  ELSIF p_short_name = 'CWBBDBV'  THEN
1090                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Budget_Dist_Budget_Value, p_frmt_mask_cd) ;
1091                  ELSIF p_short_name = 'CWBBDD'  THEN
1092                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Budget_Due_Date, p_frmt_mask_cd);
1093                  ELSIF p_short_name = 'CWBBGON'  THEN
1094                       l_rslt_elmt :=   ben_ext_person.g_CWB_Budget_Group_Option_Name ;
1095                  ELSIF p_short_name = 'CWBBGPN'  THEN
1096                       l_rslt_elmt :=   ben_ext_person.g_CWB_Budget_Group_Plan_Name  ;
1097                  ELSIF p_short_name = 'CWBBLUB'  THEN
1098                         l_rslt_elmt :=
1099                      decode_setup(p_data_elmt_typ_cd,
1100                                                   get_name(ben_ext_person.g_CWB_Budget_Last_Updt_By),
1101                                                                   ben_ext_person.g_CWB_Budget_Last_Updt_By);
1102                  ELSIF p_short_name = 'CWBBLUD'  THEN
1103                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Budget_Last_Updt_dt, p_frmt_mask_cd);
1104                  ELSIF p_short_name = 'CWBBP'  THEN
1105                       l_rslt_elmt :=   ben_ext_person.g_CWB_Budget_Population ;
1106                  ELSIF p_short_name = 'CWBBRMXV'  THEN
1107                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Budget_Resv_Max_Value, p_frmt_mask_cd) ;
1108                  ELSIF p_short_name = 'CWBBRMNV'  THEN
1109                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Budget_Resv_Min_Value, p_frmt_mask_cd)  ;
1110                  ELSIF p_short_name = 'CWBBRV'  THEN
1111                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Budget_Resv_Value , p_frmt_mask_cd) ;
1112                  ELSIF p_short_name = 'CWBBRVLUB'  THEN
1113                            l_rslt_elmt :=
1114                      decode_setup(p_data_elmt_typ_cd,
1115                                                   get_name(ben_ext_person.g_CWB_Budget_Resv_Val_Updt_By),
1116                                                                   ben_ext_person.g_CWB_Budget_Resv_Val_Updt_By);
1117                  ELSIF p_short_name = 'CWBBRVLUD'  THEN
1118                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Budget_Resv_Val_Updt_dt, p_frmt_mask_cd) ;
1119                  ELSIF p_short_name = 'CWBBSD'  THEN
1120                       l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_CWB_Budget_Submit_date , p_frmt_mask_cd)    ;
1121                  ELSIF p_short_name = 'CWBBSN'  THEN
1122                       l_rslt_elmt :=   ben_ext_person.g_CWB_Budget_Submit_Name ;
1123                  ELSIF p_short_name = 'CWBBWBV'  THEN
1124                       l_rslt_elmt :=    apply_format_mask(ben_ext_person.g_CWB_Budget_WS_Budget_Value, p_frmt_mask_cd) ;
1125                  ELSIF p_short_name = 'CWBDBID'  THEN
1126                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Dist_Budget_Issue_date, p_frmt_mask_cd) ;
1127                  ELSIF p_short_name = 'CWBDBIV'  THEN
1128                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Dist_Budget_Issue_Value, p_frmt_mask_cd) ;
1129                  ELSIF p_short_name = 'CWBDBMNV'  THEN
1130                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Dist_Budget_Max_Value, p_frmt_mask_cd) ;
1131                  ELSIF p_short_name = 'CWBDBMXV'  THEN
1132                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Dist_Budget_Max_Value, p_frmt_mask_cd) ;
1133                  ELSIF p_short_name = 'CWBDBVLUB'  THEN
1134                              l_rslt_elmt :=
1135                      decode_setup(p_data_elmt_typ_cd,
1136                                                   get_name(ben_ext_person.g_CWB_Dist_Budget_Val_Updt_By),
1137                                                                   ben_ext_person.g_CWB_Dist_Budget_Val_Updt_By);
1138                  ELSIF p_short_name = 'CWBDBVLUD'  THEN
1139                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Dist_Budget_Val_Updt_dt, p_frmt_mask_cd) ;
1140                  ELSIF p_short_name = 'CWBWBID'  THEN
1141                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_WS_Budget_Issue_Date, p_frmt_mask_cd) ;
1142                  ELSIF p_short_name = 'CWBWBIV'  THEN
1143                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_WS_Budget_Max_Value, p_frmt_mask_cd) ;
1144                  ELSIF p_short_name = 'CWBWBMXV'  THEN
1145                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_WS_Budget_Max_Value, p_frmt_mask_cd) ;
1146                  ELSIF p_short_name = 'CWBWBMNV'  THEN
1147                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_WS_Budget_Min_Value, p_frmt_mask_cd) ;
1148                  ELSIF p_short_name = 'CWBWBVLUB'  THEN
1149                                  l_rslt_elmt :=
1150                      decode_setup(p_data_elmt_typ_cd,
1151                                                   get_name(ben_ext_person.g_CWB_WS_Budget_Val_Updt_By),
1152                                                                   ben_ext_person.g_CWB_WS_Budget_Val_Updt_By);
1153                  ELSIF p_short_name = 'CWBWBVLUD'  THEN
1154                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_WS_Budget_Val_Updt_dt, p_frmt_mask_cd) ;
1155                  -- cwb  rates
1156                 ELSIF p_short_name = 'CWBAEF' THEN
1157                       l_rslt_elmt :=   ben_ext_person.g_CWB_Awrd_Elig_Flag ;
1158                 ELSIF p_short_name  = 'CWBAESV'  THEN
1159                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_Elig_Salary_Value, p_frmt_mask_cd) ;
1160                 ELSIF p_short_name  = 'CWBAGON'  THEN
1161                       l_rslt_elmt :=   ben_ext_person.g_CWB_Awrd_Group_Option_Name ;
1162                 ELSIF p_short_name  = 'CWBAGPN'  THEN
1163                       l_rslt_elmt :=   ben_ext_person.g_CWB_Awrd_Group_Plan_Name ;
1164                 ELSIF p_short_name  = 'CWBAMV1'  THEN
1165                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_Misc_Value1, p_frmt_mask_cd) ;
1166                 ELSIF p_short_name  = 'CWBAMV2'  THEN
1167                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_Misc_Value2, p_frmt_mask_cd) ;
1168                 ELSIF p_short_name  = 'CWBAMV3'  THEN
1169                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_Misc_Value3, p_frmt_mask_cd) ;
1170                 ELSIF p_short_name  = 'CWBAON'   THEN
1171                       l_rslt_elmt :=   ben_ext_person.g_CWB_Awrd_Option_Name ;
1172                 ELSIF p_short_name  = 'CWBAOCV'  THEN
1173                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_Other_Comp_Value, p_frmt_mask_cd) ;
1174                 ELSIF p_short_name  = 'CWBAPN'   THEN
1175                       l_rslt_elmt :=   ben_ext_person.g_CWB_Awrd_Plan_Name  ;
1176                 ELSIF p_short_name  = 'CWBARV'   THEN
1177                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_Recorded_Value, p_frmt_mask_cd) ;
1178                 ELSIF p_short_name  = 'CWBASSV'  THEN
1179                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_Stated_Salary_Value, p_frmt_mask_cd) ;
1180                 ELSIF p_short_name  = 'CWBATCV'  THEN
1181                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_Total_Comp_Value, p_frmt_mask_cd) ;
1182                 ELSIF p_short_name  = 'CWBAWMXV' THEN
1183                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_WS_Maximum_Value, p_frmt_mask_cd) ;
1184                 ELSIF p_short_name  = 'CWBAWMNV' THEN
1185                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_WS_Minimum_Value, p_frmt_mask_cd) ;
1186                 ELSIF p_short_name  = 'CWBAWV'   THEN
1187                       l_rslt_elmt :=   apply_format_mask(ben_ext_person.g_CWB_Awrd_WS_Value, p_frmt_mask_cd) ;
1188                 ELSIF p_short_name  = 'CWBNCR'   THEN
1189                       l_rslt_elmt :=   ben_ext_person.g_cwb_nw_chg_reason ;
1190                 ELSIF p_short_name  = 'CWBRDGS'   THEN
1191                       l_rslt_elmt :=   ben_ext_person.g_CWB_new_Grade_name ;
1192                 ELSIF p_short_name  = 'CWBGRPS'   THEN
1193                       l_rslt_elmt :=   ben_ext_person.g_CWB_new_Group_name ;
1194                 ELSIF p_short_name  = 'CWBJS'   THEN
1195                       l_rslt_elmt :=   ben_ext_person.g_CWB_new_Job_name ;
1196                 ELSIF p_short_name  = 'CWBPILST'  then
1197                       l_rslt_elmt :=   ben_ext_person.g_CWB_Life_Event_status ;
1198                 ELSIF p_short_name  = 'CWBGPLN'  then
1199                        l_rslt_elmt :=   ben_ext_person.g_cwb_group_plan_name ;
1200                 END IF ;
1201                 --- EOF cwb
1202 
1203 
1204            end if;
1205       elsif p_one_char_substr = 'D' then
1206            if p_two_char_substr in ('DA','DB','DC') then
1207               IF p_short_name = 'DATVRFDT' THEN
1208                 l_rslt_elmt := apply_format_mask
1209                 (ben_ext_person.g_data_verification_dt, p_frmt_mask_cd);
1210               ELSIF p_short_name = 'DCONSQNM' THEN
1211                 l_rslt_elmt := apply_format_mask
1212                 (ben_ext_person.g_dpnt_contact_seq_num, p_frmt_mask_cd);
1213               ELSIF p_short_name = 'DCVID' THEN
1214                 l_rslt_elmt := apply_format_mask(ben_ext_person.g_dpnt_cvrd_dpnt_id,p_frmt_mask_cd) ;
1215               ELSIF p_short_name = 'DCVGST' THEN
1216                 l_rslt_elmt := apply_format_mask
1217                 (ben_ext_person.g_dpnt_cvg_strt_dt, p_frmt_mask_cd);
1218               ELSIF p_short_name = 'DCVGTH' THEN
1219                 --
1220                   IF ben_ext_person.g_dpnt_cvg_thru_dt =
1221                      to_date('31/12/4712','DD/MM/YYYY') THEN
1222                      l_rslt_elmt := null;
1223                   ELSE
1224                      l_rslt_elmt := apply_format_mask
1225                      (ben_ext_person.g_dpnt_cvg_thru_dt, p_frmt_mask_cd);
1226                   END IF;
1227                   --
1228               END IF ;
1229            elsif p_two_char_substr in ('DD','DE') then
1230               IF p_short_name = 'DDOB' THEN
1231                 l_rslt_elmt := apply_format_mask
1232                 (ben_ext_person.g_dpnt_date_of_birth, p_frmt_mask_cd);
1233               ELSIF p_short_name = 'DDOD' THEN
1234                  l_rslt_elmt := apply_format_mask
1235                  (ben_ext_person.g_dpnt_date_of_death, p_frmt_mask_cd);
1236               ELSIF p_short_name = 'DDSBL' THEN
1237                 l_rslt_elmt := ben_ext_person.g_dpnt_disabled_flag;
1238               ELSIF p_short_name = 'DEMADR' THEN
1239                 l_rslt_elmt := substr(ben_ext_person.g_dpnt_email_address,1,600);
1240               END IF;
1241            elsif p_two_char_substr in ('DF','DK','DL','DM') then
1242               IF p_short_name = 'DFSTNM' THEN
1243                 l_rslt_elmt := ben_ext_person.g_dpnt_first_name;
1244               ELSIF p_short_name = 'DFULNM' THEN
1245                 l_rslt_elmt := ben_ext_person.g_dpnt_full_name;
1246               ELSIF p_short_name = 'DFXNUM' THEN
1247                 l_rslt_elmt := apply_format_mask
1248                  (ben_ext_person.g_dpnt_fax,p_frmt_mask_cd);
1249               ELSIF p_short_name = 'DKNASNM' THEN
1250                 l_rslt_elmt := ben_ext_person.g_dpnt_known_as;
1251               ELSIF p_short_name = 'DLANG' THEN
1252                 l_rslt_elmt := ben_ext_person.g_dpnt_language;
1253               ELSIF p_short_name = 'DLSTNM' THEN
1254                 l_rslt_elmt := ben_ext_person.g_dpnt_last_name;
1255               ELSIF p_short_name = 'DMBNUM' THEN
1256                 l_rslt_elmt := apply_format_mask
1257                 (ben_ext_person.g_dpnt_mobile,p_frmt_mask_cd);
1258               ELSIF p_short_name = 'DMIDNM' THEN
1259                 l_rslt_elmt := ben_ext_person.g_dpnt_middle_names;
1260               ELSIF p_short_name = 'DMRTL' THEN
1261                 l_rslt_elmt := ben_ext_person.g_dpnt_marital_status;
1262               END IF;
1263            elsif p_two_char_substr in ('DN','DO') then
1264               IF p_short_name = 'DNATID' THEN
1265                 l_rslt_elmt := apply_format_mask
1266                 (ben_ext_person.g_dpnt_national_identifier, p_frmt_mask_cd);
1267               ELSIF p_short_name = 'DNATION' THEN
1268                 l_rslt_elmt := ben_ext_person.g_dpnt_nationality;
1269               ELSIF p_short_name = 'DNMSFX' THEN
1270                 l_rslt_elmt := ben_ext_person.g_dpnt_suffix;
1271               ELSIF p_short_name = 'DNMPREFIX' THEN
1272                 l_rslt_elmt := ben_ext_person.g_dpnt_prefix;
1273               ELSIF p_short_name = 'DOB' THEN
1274                 l_rslt_elmt := apply_format_mask
1275                 (ben_ext_person.g_date_of_birth, p_frmt_mask_cd);
1276               ELSIF p_short_name = 'DOD' THEN
1277                 l_rslt_elmt := apply_format_mask
1278                 (ben_ext_person.g_date_of_death, p_frmt_mask_cd);
1279               END IF;
1280            elsif p_two_char_substr = 'DP' then
1281               IF p_short_name = 'DPHNHM' THEN
1282                 l_rslt_elmt := apply_format_mask
1283                 (ben_ext_person.g_dpnt_home_phone, p_frmt_mask_cd);
1284               ELSIF p_short_name = 'DPHNWR' THEN
1285                 l_rslt_elmt := apply_format_mask
1286                 (ben_ext_person.g_dpnt_work_phone, p_frmt_mask_cd);
1287               ELSIF p_short_name = 'DPLSTNM' THEN
1288                 l_rslt_elmt := ben_ext_person.g_dpnt_prev_last_name;
1289               ELSIF p_short_name = 'DPPREND' THEN
1290                 --
1291                 IF ben_ext_person.g_dpnt_ppr_end_dt =
1292                   to_date('31/12/4712','DD/MM/YYYY') THEN
1293                   l_rslt_elmt := null;
1294                 ELSE
1295                    l_rslt_elmt := apply_format_mask
1296                       (ben_ext_person.g_dpnt_ppr_end_dt, p_frmt_mask_cd);
1297                 END IF;
1298                 --
1299               ELSIF p_short_name = 'DPPRIDENT' THEN
1300                 l_rslt_elmt := ben_ext_person.g_dpnt_ppr_ident;
1301               ELSIF p_short_name = 'DPPRNAME' THEN
1302                 l_rslt_elmt := ben_ext_person.g_dpnt_ppr_name;
1303               ELSIF p_short_name = 'DPPRSTRT' THEN
1304                   l_rslt_elmt := apply_format_mask
1305                      (ben_ext_person.g_dpnt_ppr_strt_dt, p_frmt_mask_cd);
1306               ELSIF p_short_name = 'DPPRTYP' THEN
1307                 l_rslt_elmt := ben_ext_person.g_dpnt_ppr_typ;
1308               ELSIF p_short_name = 'DPRADCITY' THEN
1309                 l_rslt_elmt := ben_ext_person.g_dpnt_prim_city;
1310               ELSIF p_short_name = 'DPRADCNT' THEN
1311                 l_rslt_elmt := ben_ext_person.g_dpnt_prim_country;
1312               ELSIF p_short_name = 'DPRADEFDT' THEN
1313                 l_rslt_elmt := apply_format_mask
1314                 (ben_ext_person.g_dpnt_prim_effect_date, p_frmt_mask_cd);
1315               ELSIF p_short_name = 'DPRADLN1' THEN
1316                 l_rslt_elmt := ben_ext_person.g_dpnt_prim_address1;
1317               ELSIF p_short_name = 'DPRADLN2' THEN
1318                 l_rslt_elmt := ben_ext_person.g_dpnt_prim_address2;
1319               ELSIF p_short_name = 'DPRADLN3' THEN
1320                 l_rslt_elmt := ben_ext_person.g_dpnt_prim_address3;
1321               ELSIF p_short_name = 'DPRADPCD' THEN
1322                 l_rslt_elmt := ben_ext_person.g_dpnt_prim_postal_code;
1323               ELSIF p_short_name = 'DPRADRG' THEN
1324                 l_rslt_elmt := ben_ext_person.g_dpnt_prim_region;
1325               ELSIF p_short_name = 'DPRADST' THEN
1326                 l_rslt_elmt := ben_ext_person.g_dpnt_prim_state;
1327               ELSIF p_short_name = 'DPRNMAD' THEN
1328                 l_rslt_elmt := ben_ext_person.g_dpnt_pre_name_adjunct;
1329               END IF;
1330            elsif p_two_char_substr in ('DR','DS','DT') then
1331               IF p_short_name = 'DRLSHP' THEN
1332                  l_rslt_elmt := ben_ext_person.g_dpnt_rlshp_type;
1333               ELSIF p_short_name = 'DSBL' THEN
1334                 l_rslt_elmt := ben_ext_person.g_registered_disabled_flag;
1335               ELSIF p_short_name = 'DSEX' THEN
1336                 l_rslt_elmt := ben_ext_person.g_dpnt_sex;
1337               ELSIF p_short_name = 'DSHRFL' THEN
1338                 l_rslt_elmt := ben_ext_person.g_dpnt_shared_resd_flag;
1339               ELSIF p_short_name = 'DSTDNT' THEN
1340                 l_rslt_elmt := ben_ext_person.g_dpnt_student_status;
1341               ELSIF p_short_name = 'DTITLE' THEN
1342                 l_rslt_elmt := ben_ext_person.g_dpnt_title;
1343               ELSIF p_short_name = 'DTOBUSG' THEN
1344                 l_rslt_elmt := apply_format_mask
1345                 (ben_ext_person.g_dpnt_tobacco_usage, p_frmt_mask_cd);
1346               END IF;
1347            end if;
1348       elsif p_one_char_substr = 'E' then
1349            if p_two_char_substr in ('EA','EC') then
1350               IF p_short_name = 'EAGE' THEN
1351                  l_rslt_elmt := apply_format_mask
1352                  (ben_ext_person.g_elig_age_val, p_frmt_mask_cd);
1353               ELSIF p_short_name = 'EAGELOS' THEN
1354                  l_rslt_elmt := apply_format_mask
1355                  (ben_ext_person.g_elig_cmbn_age_n_los, p_frmt_mask_cd);
1356               ELSIF p_short_name = 'EAGEUOM' THEN
1357                  l_rslt_elmt := ben_ext_person.g_elig_age_uom;
1358               ELSIF p_short_name = 'ECMPAMT' THEN
1359                  l_rslt_elmt := apply_format_mask
1360                  (ben_ext_person.g_elig_comp_amt, p_frmt_mask_cd);
1361               ELSIF p_short_name = 'ECMPUOM' THEN
1362                  l_rslt_elmt := ben_ext_person.g_elig_comp_amt_uom;
1363               ELSIF p_short_name = 'ECVGAMT' THEN
1364                  l_rslt_elmt := apply_format_mask
1365                  (ben_ext_person.g_elig_cvg_amt, p_frmt_mask_cd);
1366               END IF;
1367            elsif p_two_char_substr = 'ED' then
1368               IF p_short_name = 'EDCONSQNM' THEN
1369                 l_rslt_elmt := apply_format_mask
1370                 (ben_ext_person.g_elig_dpnt_contact_seq_num,p_frmt_mask_cd);
1371               ELSIF p_short_name = 'EDCRDT' THEN
1372                  l_rslt_elmt := apply_format_mask
1373                  (ben_ext_person.g_elig_dpnt_create_dt, p_frmt_mask_cd);
1374               ELSIF p_short_name = 'EDID' THEN
1375                 l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_elig_dpnt_id, p_frmt_mask_cd);
1376               ELSIF p_short_name = 'EDDOB' THEN
1377                 l_rslt_elmt := apply_format_mask
1378                 (ben_ext_person.g_elig_dpnt_date_of_birth, p_frmt_mask_cd);
1379               ELSIF p_short_name = 'EDDOD' THEN
1380                  l_rslt_elmt := apply_format_mask
1381                  (ben_ext_person.g_elig_dpnt_date_of_death, p_frmt_mask_cd);
1382               ELSIF p_short_name = 'EDDSBL' THEN
1383                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_disabled_flag;
1384               ELSIF p_short_name = 'EDELGST' THEN
1385                  l_rslt_elmt := apply_format_mask
1386                  (ben_ext_person.g_elig_dpnt_elig_strt_dt, p_frmt_mask_cd);
1387               ELSIF p_short_name = 'EDELGTH' THEN
1388                 IF ben_ext_person.g_elig_dpnt_elig_thru_dt =
1389                   to_date('31/12/4712', 'DD/MM/YYYY') THEN
1390                   l_rslt_elmt := null;
1391                 ELSE
1392                   l_rslt_elmt := apply_format_mask
1393                   (ben_ext_person.g_elig_dpnt_elig_thru_dt, p_frmt_mask_cd);
1394                 END IF;
1395               ELSIF p_short_name = 'EDEMADR' THEN
1396                 l_rslt_elmt := substr(ben_ext_person.g_elig_dpnt_email_address,1,600) ;
1397               ELSIF p_short_name = 'EDFLTAMT' THEN
1398                  l_rslt_elmt := apply_format_mask
1399                  (ben_ext_person.g_elig_dflt_amt, p_frmt_mask_cd);
1400               ELSIF p_short_name = 'EDFSTNM' THEN
1401                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_first_name;
1402               ELSIF p_short_name = 'EDFULNM' THEN
1403                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_full_name;
1404               ELSIF p_short_name = 'EDFXNUM' THEN
1405                 l_rslt_elmt := apply_format_mask
1406                 (ben_ext_person.g_elig_dpnt_fax, p_frmt_mask_cd);
1407               ELSIF p_short_name = 'EDKNASNM' THEN
1408                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_known_as;
1409               ELSIF p_short_name = 'EDLANG' THEN
1410                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_language;
1411               ELSIF p_short_name = 'EDLSTNM' THEN
1412                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_last_name;
1413               ELSIF p_short_name = 'EDMBNUM' THEN
1414                 l_rslt_elmt := apply_format_mask
1415                 (ben_ext_person.g_elig_dpnt_mobile, p_frmt_mask_cd);
1416               ELSIF p_short_name = 'EDMIDNM' THEN
1417                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_middle_names;
1418               ELSIF p_short_name = 'EDMRTL' THEN
1419                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_marital_status;
1420               ELSIF p_short_name = 'EDNATID' THEN
1421                 l_rslt_elmt := apply_format_mask
1422                 (ben_ext_person.g_elig_dpnt_national_ident, p_frmt_mask_cd);
1423               ELSIF p_short_name = 'EDNATION' THEN
1424                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_nationality;
1425               ELSIF p_short_name = 'EDNMSFX' THEN
1426                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_suffix;
1427               ELSIF p_short_name = 'EDORDT' THEN
1428                 l_rslt_elmt := apply_format_mask
1429                 (ben_ext_person.g_elig_dpnt_ovrdn_thru_dt, p_frmt_mask_cd);
1430               ELSIF p_short_name = 'EDORF' THEN
1431                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_ovrdn_flag;
1432               ELSIF p_short_name = 'EDPHNHM' THEN
1433                 l_rslt_elmt := apply_format_mask
1434                 (ben_ext_person.g_elig_dpnt_home_phone, p_frmt_mask_cd);
1435               ELSIF p_short_name = 'EDPHNWR' THEN
1436                 l_rslt_elmt := apply_format_mask
1437                 (ben_ext_person.g_elig_dpnt_work_phone, p_frmt_mask_cd);
1438               ELSIF p_short_name = 'EDPLSTNM' THEN
1439                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_prev_last_name;
1440               ELSIF p_short_name = 'EDPRADCITY' THEN
1441                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_prim_city;
1442               ELSIF p_short_name = 'EDPRADCNT' THEN
1443                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_prim_country;
1444               ELSIF p_short_name = 'EDPRADEFDT' THEN
1445                 l_rslt_elmt := apply_format_mask
1446                 (ben_ext_person.g_elig_dpnt_prim_effect_date,p_frmt_mask_cd);
1447               ELSIF p_short_name = 'EDPRADLN1' THEN
1448                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_prim_address1;
1449               ELSIF p_short_name = 'EDPRADLN2' THEN
1450                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_prim_address2;
1451               ELSIF p_short_name = 'EDPRADLN3' THEN
1452                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_prim_address3;
1453               ELSIF p_short_name = 'EDPRADPCD' THEN
1454                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_prim_postal_code;
1455               ELSIF p_short_name = 'EDPRADRG' THEN
1456                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_prim_region;
1457               ELSIF p_short_name = 'EDPRADST' THEN
1458                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_prim_state;
1459               ELSIF p_short_name = 'EDPRNMAD' THEN
1460                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_pre_name_adjunct;
1461               ELSIF p_short_name = 'EDRLSHP' THEN
1462                  l_rslt_elmt := ben_ext_person.g_elig_dpnt_rlshp_type;
1463               ELSIF p_short_name = 'EDSEX' THEN
1464                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_sex;
1465               ELSIF p_short_name = 'EDSHRFL' THEN
1466                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_shared_resd_flag;
1467               ELSIF p_short_name = 'EDSTDNT' THEN
1468                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_student_status;
1469               ELSIF p_short_name = 'EDTITLE' THEN
1470                 l_rslt_elmt := ben_ext_person.g_elig_dpnt_title;
1471               ELSIF p_short_name = 'EDTOBUSG' THEN
1472                 l_rslt_elmt := apply_format_mask
1473                 (ben_ext_person.g_elig_dpnt_tobacco_usage, p_frmt_mask_cd);
1474               END IF;
1475            elsif p_two_char_substr = 'EE' then
1476               IF p_short_name = 'EEDFLTDT' THEN
1477                  l_rslt_elmt :=
1478                    apply_format_mask(ben_ext_person.g_elig_dflt_enrt_dt, p_frmt_mask_cd);
1479               ELSIF p_short_name = 'EELCMDDT' THEN
1480                  l_rslt_elmt :=
1481                    apply_format_mask(ben_ext_person.g_elig_elec_made_dt, p_frmt_mask_cd);
1482               ELSIF p_short_name = 'EEMPAFTTAX' THEN
1483                  l_rslt_elmt :=
1484                    apply_format_mask(ben_ext_person.g_elig_ee_after_tax_cost, p_frmt_mask_cd);
1485               ELSIF p_short_name = 'EEMPPRETAX' THEN
1486                  l_rslt_elmt :=
1487                    apply_format_mask(ben_ext_person.g_elig_ee_pre_tax_cost, p_frmt_mask_cd);
1488               ELSIF p_short_name = 'EEMPTOTCST' THEN
1489                  l_rslt_elmt :=
1490                    apply_format_mask(ben_ext_person.g_elig_ee_ttl_cost, p_frmt_mask_cd);
1491               ELSIF p_short_name = 'EEPRTOTCST' THEN
1492                  l_rslt_elmt :=
1493                    apply_format_mask(ben_ext_person.g_elig_er_ttl_cost, p_frmt_mask_cd);
1494               ELSIF p_short_name = 'EESTDT' THEN
1495                l_rslt_elmt :=
1496                  apply_format_mask(ben_ext_person.g_elig_enrt_strt_dt, p_frmt_mask_cd);
1497               ELSIF p_short_name = 'EETHRUDT' THEN
1498                l_rslt_elmt :=
1499                  apply_format_mask(ben_ext_person.g_elig_enrt_end_dt, p_frmt_mask_cd);
1500               END IF;
1501            elsif p_two_char_substr = 'EF' then
1502               IF p_short_name = 'EFFDT' THEN
1503                  l_rslt_elmt :=
1504                    apply_format_mask(ben_extract.g_effective_date,p_frmt_mask_cd);
1505               ELSIF p_short_name = 'EFLX01' THEN
1506                 l_rslt_elmt := ben_ext_person.g_elig_flex_01;
1507               ELSIF p_short_name = 'EFLX02' THEN
1508                 l_rslt_elmt := ben_ext_person.g_elig_flex_02;
1509               ELSIF p_short_name = 'EFLX03' THEN
1510                 l_rslt_elmt := ben_ext_person.g_elig_flex_03;
1511               ELSIF p_short_name = 'EFLX04' THEN
1512                 l_rslt_elmt := ben_ext_person.g_elig_flex_04;
1513               ELSIF p_short_name = 'EFLX05' THEN
1514                 l_rslt_elmt := ben_ext_person.g_elig_flex_05;
1515               ELSIF p_short_name = 'EFLX06' THEN
1516                 l_rslt_elmt := ben_ext_person.g_elig_flex_06;
1517               ELSIF p_short_name = 'EFLX07' THEN
1518                 l_rslt_elmt := ben_ext_person.g_elig_flex_07;
1519               ELSIF p_short_name = 'EFLX08' THEN
1520                 l_rslt_elmt := ben_ext_person.g_elig_flex_08;
1521               ELSIF p_short_name = 'EFLX09' THEN
1522                 l_rslt_elmt := ben_ext_person.g_elig_flex_09;
1523               ELSIF p_short_name = 'EFLX10' THEN
1524                 l_rslt_elmt := ben_ext_person.g_elig_flex_10;
1525               END IF;
1526            elsif p_two_char_substr in ('EH','EI') then
1527               IF p_short_name = 'EHRSWKD' THEN
1528                  l_rslt_elmt :=
1529                    apply_format_mask(ben_ext_person.g_elig_hrs_wkd, p_frmt_mask_cd);
1530               ELSIF p_short_name = 'EINCRAMT' THEN
1531                  l_rslt_elmt :=
1532                    apply_format_mask(ben_ext_person.g_elig_incr_amt, p_frmt_mask_cd);
1533               END IF;
1534            elsif p_two_char_substr = 'EL' then
1535               IF p_short_name = 'ELCVAO' THEN
1536                  l_rslt_elmt := ben_ext_person.g_elig_cvg_onl_flg;
1537               ELSIF p_short_name = 'ELCVBT' THEN
1538                  l_rslt_elmt := ben_ext_person.g_elig_cvg_bnft_typ;
1539               ELSIF p_short_name = 'ELCVBU' THEN
1540                  l_rslt_elmt := ben_ext_person.g_elig_cvg_bnft_uom;
1541               ELSIF p_short_name = 'ELCVCM' THEN
1542                  l_rslt_elmt := ben_ext_person.g_elig_cvg_calc_mthd;
1543               ELSIF p_short_name = 'ELCVDA' THEN
1544                  l_rslt_elmt :=
1545                     apply_format_mask(ben_ext_person.g_elig_cvg_dfl_amt, p_frmt_mask_cd);
1546               ELSIF p_short_name = 'ELCVDF' THEN
1547                  l_rslt_elmt := ben_ext_person.g_elig_cvg_dfl_flg;
1548               ELSIF p_short_name = 'ELCVIN' THEN
1549                  l_rslt_elmt :=
1550                    apply_format_mask(ben_ext_person.g_elig_cvg_inc_amt, p_frmt_mask_cd);
1551               ELSIF p_short_name = 'ELCVMN' THEN
1552                  l_rslt_elmt :=
1553                    apply_format_mask(ben_ext_person.g_elig_cvg_min_amt, p_frmt_mask_cd);
1554               ELSIF p_short_name = 'ELCVMX' THEN
1555                  l_rslt_elmt :=
1556                    apply_format_mask(ben_ext_person.g_elig_cvg_max_amt, p_frmt_mask_cd);
1557               ELSIF p_short_name = 'ELCVOR' THEN
1558                  l_rslt_elmt :=
1559                    apply_format_mask(ben_ext_person.g_elig_cvg_seq_no, p_frmt_mask_cd);
1560               ELSIF p_short_name = 'ELDSC' THEN
1561                  l_rslt_elmt := ben_ext_person.g_element_description;
1562               ELSIF p_short_name = 'ELECS' THEN
1563                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1564                    ben_ext_person.g_element_entry_costing,
1565                    to_char(ben_ext_person.g_element_entry_costing_id));
1566               ELSIF p_short_name = 'ELEED' THEN
1567                  if ben_ext_person.g_element_entry_eff_end_date = hr_api.g_eot then
1568                     l_rslt_elmt := null ;
1569                  else
1570                     l_rslt_elmt := apply_format_mask(ben_ext_person.g_element_entry_eff_end_date,
1571                                    p_frmt_mask_cd);
1572                  end if ;
1573               ELSIF p_short_name = 'ELEID' THEN
1574                  l_rslt_elmt :=
1575                     apply_format_mask(ben_ext_person.g_element_entry_id, p_frmt_mask_cd);
1576               ELSIF p_short_name = 'ELENM' THEN
1577                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1578                    ben_ext_person.g_elig_lfevt_name,
1579                    to_char(ben_ext_person.g_elig_ler_id));
1580               ELSIF p_short_name = 'ELENTDT' THEN
1581                 l_rslt_elmt :=
1582                    apply_format_mask(ben_ext_person.g_elig_lfevt_note_dt, p_frmt_mask_cd);
1583               ELSIF p_short_name = 'ELEOCRDT' THEN
1584                   l_rslt_elmt :=
1585                    apply_format_mask(ben_ext_person.g_elig_lfevt_ocrd_dt, p_frmt_mask_cd);
1586               ELSIF p_short_name = 'ELERS' THEN
1587                   l_rslt_elmt := ben_ext_person.g_element_entry_reason;
1588               ELSIF p_short_name = 'ELESD' THEN
1589                   l_rslt_elmt :=
1590                    apply_format_mask(ben_ext_person.g_element_entry_eff_start_date,p_frmt_mask_cd);
1591               ELSIF p_short_name = 'ELVESDT' THEN
1592                   l_rslt_elmt := apply_format_mask(ben_ext_person.g_element_eev_eff_strt_date,p_frmt_mask_cd);
1593                    hr_utility.set_location('eeveffdate '||ben_ext_person.g_element_eev_eff_strt_date  ,99);
1594 
1595                ELSIF p_short_name = 'ELVEEDT' THEN
1596                     if ben_ext_person.g_element_eev_eff_end_date = hr_api.g_eot then
1597                        l_rslt_elmt := null ;
1598                     else
1599                         l_rslt_elmt := apply_format_mask(ben_ext_person.g_element_eev_eff_end_date,p_frmt_mask_cd);
1600                      end if ;
1601                    hr_utility.set_location('eeveffdate '||ben_ext_person.g_element_eev_eff_end_date  ,99);
1602                 ELSIF p_short_name = 'ELESTS' THEN
1603                   l_rslt_elmt := ben_ext_person.g_elig_lfevt_status;
1604                 ELSIF p_short_name = 'ELEVL' THEN
1605                   -- checking whether numeric formating applicable
1606                   l_number := 'Y';
1607                   -- begin bug# 2247340
1608                   -- the modification made above as part of 2197144 doesn't check for negative number
1609                   DECLARE
1610                   	 ln_is_number number;
1611                   BEGIN
1612                      ln_is_number := to_number(ben_ext_person.g_element_entry_value);
1613                      l_number := 'Y' ;
1614                   EXCEPTION
1615                      when value_error then
1616                       l_number := 'N';
1617                   END;
1618                   -- end bug# 2247340
1619 
1620 
1621                   -- if the value is a pure number then
1622                   if l_number = 'Y' then
1623                     -- call numeric formatting
1624                     l_rslt_elmt := apply_format_mask(to_number(ben_ext_person.g_element_entry_value), p_frmt_mask_cd);
1625                   else
1626                     -- else do not format, just pass the value
1627                     l_rslt_elmt := ben_ext_person.g_element_entry_value;
1628                   end if;
1629 
1630                 ELSIF p_short_name = 'ELICU' THEN
1631                    l_rslt_elmt := ben_ext_person.g_element_input_currency_code;
1632                 ELSIF p_short_name = 'ELIVNM' THEN
1633                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1634                      ben_ext_person.g_element_input_value_name,
1635                      to_char(ben_ext_person.g_element_input_value_id));
1636                 ELSIF p_short_name = 'ELIVSQ' THEN
1637                    l_rslt_elmt :=
1638                      apply_format_mask(ben_ext_person.g_element_input_value_sequence,p_frmt_mask_cd);
1639                 ELSIF p_short_name = 'ELIVUN' THEN
1640                    l_rslt_elmt := ben_ext_person.g_element_input_value_units;
1641                 ELSIF p_short_name = 'ELNM' THEN
1642                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1643                      ben_ext_person.g_element_name,
1644                      to_char(ben_ext_person.g_element_id));
1645                 ELSIF p_short_name = 'ELOCU' THEN
1646                    l_rslt_elmt := ben_ext_person.g_element_output_currency_code;
1647                 ELSIF p_short_name = 'ELOS' THEN
1648                    l_rslt_elmt :=
1649                      apply_format_mask(ben_ext_person.g_elig_los_val, p_frmt_mask_cd);
1650                 ELSIF p_short_name = 'ELOSUOM' THEN
1651                    l_rslt_elmt := ben_ext_person.g_elig_los_uom;
1652                 ELSIF p_short_name = 'ELPCL' THEN
1653                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1654                      ben_ext_person.g_element_classification_name,
1655                      to_char(ben_ext_person.g_element_classification_id));
1656                 ELSIF p_short_name = 'ELPTY' THEN
1657                    l_rslt_elmt := ben_ext_person.g_element_processing_type;
1658                 ELSIF p_short_name = 'ELRNM' THEN
1659                    l_rslt_elmt := ben_ext_person.g_element_reporting_name;
1660                 ELSIF p_short_name = 'ELSRL' THEN
1661                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1662                      ben_ext_person.g_element_skip_rule,
1663                      to_char(ben_ext_person.g_element_skip_rule_id));
1664                 END IF;
1665             elsif p_two_char_substr = 'EM' then
1666                 IF p_short_name = 'EMAXAMT' THEN
1667                    l_rslt_elmt :=
1668                      apply_format_mask(ben_ext_person.g_elig_max_amt, p_frmt_mask_cd);
1669                 ELSIF p_short_name = 'EMINAMT' THEN
1670                    l_rslt_elmt :=
1671                      apply_format_mask(ben_ext_person.g_elig_min_amt, p_frmt_mask_cd);
1672                 ELSIF p_short_name = 'EMPBU' THEN
1673                   l_rslt_elmt := ben_ext_person.g_employee_barg_unit;
1674                 ELSIF p_short_name = 'EMPCATG' THEN
1675                   l_rslt_elmt := ben_ext_person.g_employee_category;
1676                 ELSIF p_short_name = 'EMPGR' THEN
1677                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1678                      ben_ext_person.g_employee_grade,
1679                      to_char(ben_ext_person.g_employee_grade_id));
1680                 ELSIF p_short_name = 'EMPLOC' THEN
1681                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1682                      ben_ext_person.g_location_code,
1683                      to_char(ben_ext_person.g_location_id));
1684 
1685                 ELSIF p_short_name = 'EMPLOCADR1' then
1686                       l_rslt_elmt := ben_ext_person.g_location_addr1;
1687                 ELSIF p_short_name = 'EMPLOCADR2' then
1688                       l_rslt_elmt := ben_ext_person.g_location_addr2;
1689                 ELSIF p_short_name = 'EMPLOCADR3' then
1690                       l_rslt_elmt := ben_ext_person.g_location_addr3;
1691                 ELSIF p_short_name = 'EMPLOCTWN' then
1692                       l_rslt_elmt := ben_ext_person.g_location_city;
1693                 ELSIF p_short_name = 'EMPLOCNTRY' then
1694                       l_rslt_elmt := ben_ext_person.g_location_country;
1695                 ELSIF p_short_name = 'EMPLOZIP' then
1696                       l_rslt_elmt := ben_ext_person.g_location_zip;
1697                 ELSIF p_short_name = 'EMPLOCRG1' then
1698                       l_rslt_elmt := ben_ext_person.g_location_region1;
1699                 ELSIF p_short_name = 'EMPLOCRG2' then
1700                       l_rslt_elmt := ben_ext_person.g_location_region2;
1701                 ELSIF p_short_name = 'EMPLOCRG3' then
1702                       l_rslt_elmt := ben_ext_person.g_location_region3;
1703                 ELSIF p_short_name = 'EMPNO' THEN
1704                   l_rslt_elmt := ben_ext_person.g_employee_number;
1705                 ELSIF p_short_name = 'EMPORG' THEN
1706                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1707                      ben_ext_person.g_employee_organization,
1708                     to_char(ben_ext_person.g_employee_organization_id));
1709 
1710                --- organization addr 1
1711                ELSIF p_short_name = 'EMPORADDL1' THEN
1712                   l_rslt_elmt := ben_ext_person.g_org_location_addr1;
1713                ELSIF p_short_name = 'EMPORADDL2' THEN
1714                   l_rslt_elmt := ben_ext_person.g_org_location_addr2;
1715                ELSIF p_short_name = 'EMPORADDL3' THEN
1716                   l_rslt_elmt := ben_ext_person.g_org_location_addr3;
1717                ELSIF p_short_name = 'EMPORADDCTY' THEN
1718                   l_rslt_elmt := ben_ext_person.g_org_location_city;
1719                ELSIF p_short_name = 'EMPORADDCNT' THEN
1720                   l_rslt_elmt := ben_ext_person.g_org_location_country;
1721                ELSIF p_short_name = 'EMPORADDZIP' THEN
1722                   l_rslt_elmt := ben_ext_person.g_org_location_zip;
1723                ELSIF p_short_name = 'EMPORADDRG1' THEN
1724                   l_rslt_elmt := ben_ext_person.g_org_location_region1;
1725                ELSIF p_short_name = 'EMPORADDRG2' THEN
1726                   l_rslt_elmt := ben_ext_person.g_org_location_region2;
1727                ELSIF p_short_name = 'EMPORADDRG3' THEN
1728                   l_rslt_elmt := ben_ext_person.g_org_location_region3;
1729                ELSIF p_short_name = 'EMPORADDPH' THEN
1730                   l_rslt_elmt := ben_ext_person.g_org_location_phone;
1731                 ---
1732                 ELSIF p_short_name = 'EMPST' THEN
1733                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1734                      ben_ext_person.g_employee_status,
1735                      to_char(ben_ext_person.g_employee_status_id));
1736                 ELSIF p_short_name = 'EMPASID' then
1737                      l_rslt_elmt := ben_ext_person.g_assignment_id ;
1738                 ELSIF p_short_name = 'EMPASTY' then
1739                       hr_utility.set_location(' EMPASTY ' || ben_ext_person.g_asg_type, 99 );
1740                      l_rslt_elmt := ben_ext_person.g_asg_type;
1741                 end if;
1742              elsif p_two_char_substr = 'EN' then
1743                 IF p_short_name = 'ENDDT' THEN
1744                    l_rslt_elmt := apply_format_mask(ben_extract.g_ext_end_dt,p_frmt_mask_cd);
1745                 end if;
1746             elsif p_two_char_substr = 'EO' then
1747                 IF p_short_name = 'EOIPFLX01' THEN
1748                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_01;
1749                 ELSIF p_short_name = 'EOIPFLX02' THEN
1750                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_02;
1751                 ELSIF p_short_name = 'EOIPFLX03' THEN
1752                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_03;
1753                 ELSIF p_short_name = 'EOIPFLX04' THEN
1754                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_04;
1755                 ELSIF p_short_name = 'EOIPFLX05' THEN
1756                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_05;
1757                 ELSIF p_short_name = 'EOIPFLX06' THEN
1758                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_06;
1759                 ELSIF p_short_name = 'EOIPFLX07' THEN
1760                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_07;
1761                 ELSIF p_short_name = 'EOIPFLX08' THEN
1762                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_08;
1763                 ELSIF p_short_name = 'EOIPFLX09' THEN
1764                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_09;
1765                 ELSIF p_short_name = 'EOIPFLX10' THEN
1766                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_10;
1767                 ELSIF p_short_name = 'EOIPSQNUM' THEN
1768                   l_rslt_elmt :=
1769                   apply_format_mask(ben_ext_person.g_elig_oip_seq_num, p_frmt_mask_cd);
1770                 ELSIF p_short_name = 'EOPTFLX01' THEN
1771                   l_rslt_elmt := ben_ext_person.g_elig_opt_flex_01;
1772                 ELSIF p_short_name = 'EOPTFLX02' THEN
1773                   l_rslt_elmt := ben_ext_person.g_elig_opt_flex_02;
1774                 ELSIF p_short_name = 'EOPTFLX03' THEN
1775                   l_rslt_elmt := ben_ext_person.g_elig_opt_flex_03;
1776                 ELSIF p_short_name = 'EOPTFLX04' THEN
1777                   l_rslt_elmt := ben_ext_person.g_elig_opt_flex_04;
1778                 ELSIF p_short_name = 'EOPTFLX05' THEN
1779                   l_rslt_elmt := ben_ext_person.g_elig_opt_flex_05;
1780                 ELSIF p_short_name = 'EOPTFLX06' THEN
1781                   l_rslt_elmt := ben_ext_person.g_elig_opt_flex_06;
1782                 ELSIF p_short_name = 'EOPTFLX07' THEN
1783                   l_rslt_elmt := ben_ext_person.g_elig_opt_flex_07;
1784                 ELSIF p_short_name = 'EOPTFLX08' THEN
1785                   l_rslt_elmt := ben_ext_person.g_elig_opt_flex_08;
1786                 ELSIF p_short_name = 'EOPTFLX09' THEN
1787                   l_rslt_elmt := ben_ext_person.g_elig_opt_flex_09;
1788                 ELSIF p_short_name = 'EOPTFLX10' THEN
1789                   l_rslt_elmt := ben_ext_person.g_elig_opt_in_pl_flex_10;
1790                 ELSIF p_short_name = 'EOPTNM' THEN
1791                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1792                      ben_ext_person.g_elig_opt_name,
1793                      to_char(ben_ext_person.g_elig_opt_id));
1794                 ELSIF p_short_name = 'EOPTSEQ' THEN
1795                    l_rslt_elmt :=
1796                    apply_format_mask(ben_ext_person.g_elig_opt_ord_no, p_frmt_mask_cd);
1797                 -- 2732104
1798                 ELSIF p_short_name = 'EOPTFDNM'   then
1799                   l_rslt_elmt := ben_ext_person.g_elig_opt_fd_name ;
1800                 ELSIF p_short_name = 'EOPTFDCD'   then
1801                       l_rslt_elmt :=  ben_ext_person.g_elig_opt_fd_code;
1802                 ELSIF p_short_name = 'EOTPFDNM' then
1803                       l_rslt_elmt :=  ben_ext_person.g_elig_pl_typ_fd_name	;
1804                 ELSIF p_short_name = 'EOTPFDCD' then
1805                       l_rslt_elmt :=  ben_ext_person.g_elig_pl_typ_fd_code	;
1806                 ELSIF p_short_name = 'EOOPFDNM' then
1807                       l_rslt_elmt :=   ben_ext_person.g_elig_opt_pl_fd_name;
1808                 ELSIF p_short_name = 'EOOPFDCD' then
1809                       l_rslt_elmt :=   ben_ext_person.g_elig_opt_pl_fd_code	;
1810                 ELSIF p_short_name = 'EOPPFDNM' then
1811                        l_rslt_elmt :=  ben_ext_person.g_elig_pl_pgm_fd_name	;
1812                 ELSIF p_short_name = 'EOPPFDCD' then
1813                        l_rslt_elmt :=  ben_ext_person.g_elig_pl_pgm_fd_code	;
1814                 ELSIF p_short_name = 'EOYPFDNM' then
1815                        l_rslt_elmt :=  ben_ext_person.g_elig_pl_typ_pgm_fd_name;
1816                 ELSIF p_short_name = 'EOYPFDCD' then
1817                    l_rslt_elmt := ben_ext_person.g_elig_pl_typ_pgm_fd_code;
1818                 END IF;
1819 
1820             elsif p_two_char_substr = 'EP' then
1821                 IF p_short_name = 'EPCTFLTM' THEN
1822                    l_rslt_elmt :=
1823                    apply_format_mask(ben_ext_person.g_elig_pct_fl_tm, p_frmt_mask_cd);
1824                 --
1825                 -- Eligible Dependents
1826                 --
1827                 ELSIF p_short_name = 'EPGMFLX01' THEN
1828                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_01;
1829                 ELSIF p_short_name = 'EPGMFLX02' THEN
1830                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_02;
1831                 ELSIF p_short_name = 'EPGMFLX03' THEN
1832                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_03;
1833                 ELSIF p_short_name = 'EPGMFLX04' THEN
1834                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_04;
1835                 ELSIF p_short_name = 'EPGMFLX05' THEN
1836                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_05;
1837                 ELSIF p_short_name = 'EPGMFLX06' THEN
1838                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_06;
1839                 ELSIF p_short_name = 'EPGMFLX07' THEN
1840                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_07;
1841                 ELSIF p_short_name = 'EPGMFLX08' THEN
1842                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_08;
1843                 ELSIF p_short_name = 'EPGMFLX09' THEN
1844                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_09;
1845                 ELSIF p_short_name = 'EPGMFLX10' THEN
1846                   l_rslt_elmt := ben_ext_person.g_elig_pgm_flex_10;
1847                 ELSIF p_short_name = 'EPIPFLX01' THEN
1848                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_01;
1849                 ELSIF p_short_name = 'EPIPFLX02' THEN
1850                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_02;
1851                 ELSIF p_short_name = 'EPIPFLX03' THEN
1852                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_03;
1853                 ELSIF p_short_name = 'EPIPFLX04' THEN
1854                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_04;
1855                 ELSIF p_short_name = 'EPIPFLX05' THEN
1856                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_05;
1857                 ELSIF p_short_name = 'EPIPFLX06' THEN
1858                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_06;
1859                 ELSIF p_short_name = 'EPIPFLX07' THEN
1860                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_07;
1861                 ELSIF p_short_name = 'EPIPFLX08' THEN
1862                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_08;
1863                 ELSIF p_short_name = 'EPIPFLX09' THEN
1864                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_09;
1865                 ELSIF p_short_name = 'EPIPFLX10' THEN
1866                   l_rslt_elmt := ben_ext_person.g_elig_pl_in_pgm_flex_10;
1867                 ELSIF p_short_name = 'EPIPSQNUM' THEN
1868                   l_rslt_elmt :=
1869                   apply_format_mask(ben_ext_person.g_elig_pip_seq_num, p_frmt_mask_cd);
1870                 ELSIF p_short_name = 'EPLFLX01' THEN
1871                    l_rslt_elmt := ben_ext_person.g_elig_plan_flex_01;
1872                 ELSIF p_short_name = 'EPLFLX02' THEN
1873                   l_rslt_elmt := ben_ext_person.g_elig_plan_flex_02;
1874                 ELSIF p_short_name = 'EPLFLX03' THEN
1875                   l_rslt_elmt := ben_ext_person.g_elig_plan_flex_03;
1876                 ELSIF p_short_name = 'EPLFLX04' THEN
1877                   l_rslt_elmt := ben_ext_person.g_elig_plan_flex_04;
1878                 ELSIF p_short_name = 'EPLFLX05' THEN
1879                   l_rslt_elmt := ben_ext_person.g_elig_plan_flex_05;
1880                 ELSIF p_short_name = 'EPLFLX06' THEN
1881                   l_rslt_elmt := ben_ext_person.g_elig_plan_flex_06;
1882                 ELSIF p_short_name = 'EPLFLX07' THEN
1883                   l_rslt_elmt := ben_ext_person.g_elig_plan_flex_07;
1884                 ELSIF p_short_name = 'EPLFLX08' THEN
1885                   l_rslt_elmt := ben_ext_person.g_elig_plan_flex_08;
1886                 ELSIF p_short_name = 'EPLFLX09' THEN
1887                   l_rslt_elmt := ben_ext_person.g_elig_plan_flex_09;
1888                 ELSIF p_short_name = 'EPLFLX10' THEN
1889                   l_rslt_elmt := ben_ext_person.g_elig_plan_flex_10;
1890                 ELSIF p_short_name = 'EPLNM' THEN
1891                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1892                     ben_ext_person.g_elig_pl_name,to_char(ben_ext_person.g_elig_pl_id));
1893                 ELSIF p_short_name = 'EPLSEQ' THEN
1894                    l_rslt_elmt :=
1895                      apply_format_mask(ben_ext_person.g_elig_pl_ord_no, p_frmt_mask_cd);
1896                 ELSIF p_short_name = 'EPLSQNUM' THEN
1897                   l_rslt_elmt :=
1898                     apply_format_mask(ben_ext_person.g_elig_pl_seq_num, p_frmt_mask_cd);
1899                 ELSIF p_short_name = 'EPLTFLX01' THEN
1900                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_01;
1901                 ELSIF p_short_name = 'EPLTFLX02' THEN
1902                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_02;
1903                 ELSIF p_short_name = 'EPLTFLX03' THEN
1904                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_03;
1905                 ELSIF p_short_name = 'EPLTFLX04' THEN
1906                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_04;
1907                 ELSIF p_short_name = 'EPLTFLX05' THEN
1908                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_05;
1909                 ELSIF p_short_name = 'EPLTFLX06' THEN
1910                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_06;
1911                 ELSIF p_short_name = 'EPLTFLX07' THEN
1912                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_07;
1913                 ELSIF p_short_name = 'EPLTFLX08' THEN
1914                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_08;
1915                 ELSIF p_short_name = 'EPLTFLX09' THEN
1916                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_09;
1917                 ELSIF p_short_name = 'EPLTFLX10' THEN
1918                   l_rslt_elmt := ben_ext_person.g_elig_ptp_flex_10;
1919                 ELSIF p_short_name = 'EPLTYPNM' THEN
1920                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1921                      ben_ext_person.g_elig_pl_typ_name,to_char(ben_ext_person.g_elig_pl_typ_id));
1922                   l_rslt_elmt := ben_ext_person.g_elig_pl_typ_name;
1923                 ELSIF p_short_name = 'EPLYRENDT' THEN
1924                   l_rslt_elmt :=
1925                     apply_format_mask(ben_ext_person.g_elig_pl_yr_enddt, p_frmt_mask_cd);
1926                 ELSIF p_short_name = 'EPLYRSTDT' THEN
1927                   l_rslt_elmt :=
1928                     apply_format_mask(ben_ext_person.g_elig_pl_yr_strdt, p_frmt_mask_cd);
1929                 ELSIF p_short_name = 'EPRGNM' THEN
1930                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1931                      ben_ext_person.g_elig_program_name ,to_char(ben_ext_person.g_elig_program_id));
1932                 ELSIF p_short_name = 'EPTPSQNUM' THEN
1933                   l_rslt_elmt :=
1934                    apply_format_mask(ben_ext_person.g_elig_ptp_seq_num, p_frmt_mask_cd);
1935                     ----2559743
1936                 ELSIF p_short_name = 'EPLFDNM' then
1937                            l_rslt_elmt :=    ben_ext_person.g_elig_pl_fd_name ;
1938                 ELSIF p_short_name = 'EPLFDCD'   then
1939                            l_rslt_elmt :=    ben_ext_person.g_elig_pl_fd_code ;
1940                 ELSIF p_short_name = 'EPRFDNM'   then
1941                        l_rslt_elmt :=    ben_ext_person.g_elig_pgm_fd_name;
1942                 ELSIF p_short_name = 'EPRFDCD'   then
1943                        l_rslt_elmt :=   ben_ext_person.g_elig_pgm_fd_code ;
1944                     ----
1945                 END IF;
1946 
1947             elsif p_two_char_substr in ('ER','ET','EU') then
1948                 IF p_short_name = 'EREETOTDS' THEN
1949                    l_rslt_elmt :=
1950                    apply_format_mask(ben_ext_person.g_elig_ee_ttl_distribution, p_frmt_mask_cd);
1951                 ELSIF p_short_name = 'ERERTOTDS' THEN
1952                    l_rslt_elmt :=
1953                     apply_format_mask(ben_ext_person.g_elig_er_ttl_distribution, p_frmt_mask_cd);
1954                 ELSIF p_short_name = 'ERPGRPNM' THEN
1955                   l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
1956                       ben_ext_person.g_elig_rpt_group_name,to_char(ben_ext_person.g_elig_rpt_group_id));
1957                 ELSIF p_short_name = 'ERTOTORT' THEN
1958                    l_rslt_elmt :=
1959                    apply_format_mask(ben_ext_person.g_elig_ttl_other_rate, p_frmt_mask_cd);
1960                 --- CWB  2832419
1961                 --Eligible Rate - CWB Distribution Budget
1962                 ELSIF p_short_name = 'ERCWBDSBD' THEN
1963                       l_rslt_elmt :=
1964                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_dst_bdgt , p_frmt_mask_cd);
1965                 --Eligible Rate - CWB Misc Rate 1
1966                 ELSIF p_short_name = 'ERCWBMSR1' THEN
1967                       l_rslt_elmt :=
1968                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_misc_rate_1 , p_frmt_mask_cd);
1969                 --ligible Rate - CWB Eligible Salary
1970                 ELSIF p_short_name = 'ERCWBELSL' THEN
1971                       l_rslt_elmt :=
1972                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_elig_salary , p_frmt_mask_cd);
1973                 --Eligible Rate - CWB Misc Rate 2
1974                 ELSIF p_short_name = 'ERCWBMSR2' THEN
1975                       l_rslt_elmt :=
1976                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_misc_rate_2 , p_frmt_mask_cd);
1977                 --Eligible Rate - CWB Grant Price
1978                 ELSIF p_short_name = 'ERCWBGRPR' THEN
1979                       l_rslt_elmt :=
1980                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_grant_price , p_frmt_mask_cd);
1981                 --Eligible Rate - CWB Other Salary
1982                 ELSIF p_short_name = 'ERCWBOTSL' THEN
1983                       l_rslt_elmt :=
1984                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_other_salary , p_frmt_mask_cd);
1985                 --Eligible Rate - CWB Reserve
1986                 ELSIF p_short_name = 'ERCWBRSRV' THEN
1987                       l_rslt_elmt :=
1988                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_reserve , p_frmt_mask_cd);
1989                 --Eligible Rate - CWB Recommended Amount
1990                 ELSIF p_short_name = 'ERCWBRCAM' THEN
1991                       l_rslt_elmt :=
1992                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_recomond_amt  , p_frmt_mask_cd);
1993                 --Eligible Rate - CWB Stated Salary
1994                 ELSIF p_short_name = 'ERCWBSTSL' THEN
1995                       l_rslt_elmt :=
1996                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_stated_salary , p_frmt_mask_cd);
1997                 --Eligible Rate - CWB Total Compensation
1998                 ELSIF p_short_name = 'ERCWBTTCM' THEN
1999                       l_rslt_elmt :=
2000                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_tot_compensation  , p_frmt_mask_cd);
2001                 --Eligible Rate - CWB Worksheet Budget
2002                 ELSIF p_short_name = 'ERCWBWSBD' THEN
2003                       l_rslt_elmt :=
2004                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_worksheet_bdgt , p_frmt_mask_cd);
2005                 --Eligible Rate - CWB Worksheet Amount
2006                 ELSIF p_short_name = 'ERCWBWSAM' THEN
2007                       l_rslt_elmt :=
2008                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_elig_salary , p_frmt_mask_cd);
2009                 --Eligible Rate - CWB Misc Rate 3
2010                 ELSIF p_short_name = 'ERCWBMSR3' THEN
2011                       l_rslt_elmt :=
2012                       apply_format_mask(ben_ext_person.g_elig_ee_cwb_misc_rate_3  , p_frmt_mask_cd);
2013                 ELSIF p_short_name = 'ETOTPRAMT' THEN
2014                   l_rslt_elmt :=
2015                   apply_format_mask(ben_ext_person.g_elig_total_premium_amt, p_frmt_mask_cd);
2016                 ELSIF p_short_name = 'ETOTPRUOM' THEN
2017                   l_rslt_elmt := ben_ext_person.g_elig_total_premium_uom;
2018                 ELSIF p_short_name = 'EUOM' tHEN
2019                    l_rslt_elmt := ben_ext_person.g_elig_uom;
2020                 END IF;
2021             end if;
2022             --
2023             -- Payroll
2024             --
2025       elsif p_one_char_substr = 'F' then
2026             IF p_short_name = 'FILLER' THEN
2027               l_rslt_elmt := null;
2028             ELSIF p_short_name = 'FSTNM' THEN
2029               l_rslt_elmt := ben_ext_person.g_first_name;
2030             ELSIF p_short_name = 'FULNM' THEN
2031               l_rslt_elmt := ben_ext_person.g_full_name;
2032             end if;
2033       elsif p_one_char_substr = 'L' then
2034             IF p_short_name = 'LERFLX01' THEN
2035               l_rslt_elmt := ben_ext_person.g_ler_attr_1;
2036             ELSIF p_short_name = 'LERFLX02' THEN
2037               l_rslt_elmt := ben_ext_person.g_ler_attr_2;
2038             ELSIF p_short_name = 'LERFLX03' THEN
2039               l_rslt_elmt := ben_ext_person.g_ler_attr_3;
2040             ELSIF p_short_name = 'LERFLX04' THEN
2041               l_rslt_elmt := ben_ext_person.g_ler_attr_4;
2042             ELSIF p_short_name = 'LERFLX05' THEN
2043               l_rslt_elmt := ben_ext_person.g_ler_attr_5;
2044             ELSIF p_short_name = 'LERFLX06' THEN
2045               l_rslt_elmt := ben_ext_person.g_ler_attr_6;
2046             ELSIF p_short_name = 'LERFLX07' THEN
2047               l_rslt_elmt := ben_ext_person.g_ler_attr_7;
2048             ELSIF p_short_name = 'LERFLX08' THEN
2049               l_rslt_elmt := ben_ext_person.g_ler_attr_8;
2050             ELSIF p_short_name = 'LERFLX09' THEN
2051               l_rslt_elmt := ben_ext_person.g_ler_attr_9;
2052             ELSIF p_short_name = 'LERFLX10' THEN
2053               l_rslt_elmt := ben_ext_person.g_ler_attr_10;
2054             ELSIF p_short_name = 'LSTNM' THEN
2055               l_rslt_elmt := ben_ext_person.g_last_name;
2056             end if;
2057      elsif p_one_char_substr = 'M' then
2058             IF p_short_name = 'MIDNM' THEN
2059               l_rslt_elmt := ben_ext_person.g_middle_names;
2060             ELSIF p_short_name = 'MLAD1' THEN
2061               l_rslt_elmt := ben_ext_person.g_mail_address_line_1;
2062             ELSIF p_short_name = 'MLAD2' THEN
2063               l_rslt_elmt := ben_ext_person.g_mail_address_line_2;
2064             ELSIF p_short_name = 'MLAD3' THEN
2065               l_rslt_elmt := ben_ext_person.g_mail_address_line_3;
2066             ELSIF p_short_name = 'MLADRDT' THEN
2067               l_rslt_elmt :=
2068               apply_format_mask(ben_ext_person.g_mail_address_date, p_frmt_mask_cd);
2069             --
2070             ELSIF p_short_name = 'MLCNTY' THEN -- Fix for Bug 2593220
2071               l_rslt_elmt := nvl(hr_general.DECODE_FND_COMM_LOOKUP(l_lookup_type,
2072                                  ben_ext_person.g_mail_county),
2073                                  ben_ext_person.g_mail_county);
2074               --l_rslt_elmt := ben_ext_person.g_mail_county;   -- End of fix, Bug 2593220
2075             ELSIF p_short_name = 'MLCRY' THEN
2076               l_rslt_elmt := ben_ext_person.g_mail_country;
2077             ELSIF p_short_name = 'MLCTY' THEN
2078               l_rslt_elmt := ben_ext_person.g_mail_city;
2079             ELSIF p_short_name = 'MLREG3' THEN
2080               l_rslt_elmt := ben_ext_person.g_mail_region_3;
2081             ELSIF p_short_name = 'MLSTA' THEN
2082               l_rslt_elmt := ben_ext_person.g_mail_state;
2083             ELSIF p_short_name = 'MLZIP' THEN
2084               l_rslt_elmt := ben_ext_person.g_mail_postal_code;
2085             ELSIF p_short_name = 'MRTL' THEN
2086               l_rslt_elmt := ben_ext_person.g_marital_status;
2087             end if;
2088       elsif p_one_char_substr = 'N' then
2089             IF p_short_name = 'NATID' THEN
2090               l_rslt_elmt :=
2091               apply_format_mask(ben_ext_person.g_national_identifier, p_frmt_mask_cd);
2092             ELSIF p_short_name = 'NMSFX' THEN
2093               l_rslt_elmt := ben_ext_person.g_suffix;
2094             ELSIF p_short_name = 'NMPREFIX' THEN
2095               l_rslt_elmt := ben_ext_person.g_prefix;
2096             end if;
2097 
2098      elsif p_one_char_substr = 'O' then
2099 
2100             IF p_short_name = 'OIPLFLX01' THEN
2101               l_rslt_elmt := ben_ext_person.g_oipl_attr_1;
2102             ELSIF p_short_name = 'OIPLFLX02' THEN
2103               l_rslt_elmt := ben_ext_person.g_oipl_attr_2;
2104             ELSIF p_short_name = 'OIPLFLX03' THEN
2105               l_rslt_elmt := ben_ext_person.g_oipl_attr_3;
2106             ELSIF p_short_name = 'OIPLFLX04' THEN
2107               l_rslt_elmt := ben_ext_person.g_oipl_attr_4;
2108             ELSIF p_short_name = 'OIPLFLX05' THEN
2109               l_rslt_elmt := ben_ext_person.g_oipl_attr_5;
2110             ELSIF p_short_name = 'OIPLFLX06' THEN
2111               l_rslt_elmt := ben_ext_person.g_oipl_attr_6;
2112             ELSIF p_short_name = 'OIPLFLX07' THEN
2113               l_rslt_elmt := ben_ext_person.g_oipl_attr_7;
2114             ELSIF p_short_name = 'OIPLFLX08' THEN
2115               l_rslt_elmt := ben_ext_person.g_oipl_attr_8;
2116             ELSIF p_short_name = 'OIPLFLX09' THEN
2117               l_rslt_elmt := ben_ext_person.g_oipl_attr_9;
2118             ELSIF p_short_name = 'OIPLFLX10' THEN
2119               l_rslt_elmt := ben_ext_person.g_oipl_attr_10;
2120             ELSIF p_short_name = 'OTL_TC_START_DATE' THEN
2121               l_rslt_elmt := apply_format_mask
2122                (hxc_ext_timecard.OTL_TC_START_DATE, p_frmt_mask_cd);
2123             ELSIF p_short_name = 'OTL_TC_END_DATE' THEN
2124               l_rslt_elmt := apply_format_mask
2125                (hxc_ext_timecard.OTL_TC_END_DATE, p_frmt_mask_cd);
2126             ELSIF p_short_name = 'OTL_TC_STATUS' THEN
2127               l_rslt_elmt := hxc_ext_timecard.OTL_TC_STATUS;
2128             ELSIF p_short_name = 'OTL_TC_COMMENTS' THEN
2129               l_rslt_elmt := hxc_ext_timecard.OTL_TC_COMMENTS;
2130             ELSIF p_short_name = 'OTL_TC_DELTED' THEN
2131               l_rslt_elmt := hxc_ext_timecard.OTL_TC_DELTED;
2132             ELSIF p_short_name = 'OTL_DAY' THEN
2133               l_rslt_elmt := apply_format_mask
2134                (hxc_ext_timecard.OTL_DAY, p_frmt_mask_cd);
2135             ELSIF p_short_name = 'OTL_DAY_COMMENTS' THEN
2136               l_rslt_elmt := hxc_ext_timecard.OTL_DAY_COMMENTS;
2137             ELSIF p_short_name = 'OTL_MEASURE' THEN
2138               l_rslt_elmt := hxc_ext_timecard.OTL_MEASURE;
2139             ELSIF p_short_name = 'OTL_DAY_START' THEN
2140               l_rslt_elmt := apply_format_mask
2141                (hxc_ext_timecard.OTL_DAY_START, p_frmt_mask_cd);
2142             ELSIF p_short_name = 'OTL_DAY_STOP' THEN
2143               l_rslt_elmt := apply_format_mask
2144                (hxc_ext_timecard.OTL_DAY_STOP, p_frmt_mask_cd);
2145             ELSIF p_short_name = 'OTL_PA_SYS_LINK_FUNCN' THEN
2146               l_rslt_elmt := hxc_ext_timecard.OTL_PA_SYS_LINK_FUNCN;
2147             ELSIF p_short_name = 'OTL_PA_BILLABLE_FLAG' THEN
2148               l_rslt_elmt := hxc_ext_timecard.OTL_PA_BILLABLE_FLAG;
2149             ELSIF p_short_name = 'OTL_PA_TASK' THEN
2150               l_rslt_elmt := hxc_ext_timecard.OTL_PA_TASK;
2151             ELSIF p_short_name = 'OTL_PA_PROJECT' THEN
2152               l_rslt_elmt := hxc_ext_timecard.OTL_PA_PROJECT;
2153             ELSIF p_short_name = 'OTL_PA_EXPENDITURE_TYPE' THEN
2154               l_rslt_elmt := hxc_ext_timecard.OTL_PA_EXPENDITURE_TYPE;
2155             ELSIF p_short_name = 'OTL_PA_EXPENDITURE_COMMENT' THEN
2156               l_rslt_elmt := hxc_ext_timecard.OTL_PA_EXPENDITURE_COMMENT;
2157             ELSIF p_short_name = 'OTL_PAY_ELEMENT_NAME' THEN
2158               l_rslt_elmt := hxc_ext_timecard.OTL_PAY_ELEMENT_NAME;
2159             ELSIF p_short_name = 'OTL_PAY_COST_CENTRE' THEN
2160               l_rslt_elmt := hxc_ext_timecard.OTL_PAY_COST_CENTRE;
2161             ELSIF p_short_name = 'OTL_PO_NUMBER' THEN
2162               l_rslt_elmt := hxc_ext_timecard.OTL_PO_NUMBER;
2163             ELSIF p_short_name = 'OTL_PO_LINE_ID' THEN
2164               l_rslt_elmt := hxc_ext_timecard.OTL_PO_LINE_ID;
2165             ELSIF p_short_name = 'OTL_PO_PRICE_TYPE' THEN
2166               l_rslt_elmt := hxc_ext_timecard.OTL_PO_PRICE_TYPE;
2167             ELSIF p_short_name = 'OTL_ALIAS_ELEMENTS_EXP_SLF' THEN
2168               l_rslt_elmt := hxc_ext_timecard.OTL_ALIAS_ELEMENTS_EXP_SLF;
2169             ELSIF p_short_name = 'OTL_ALIAS_EXPENDITURE_ELEMENTS' THEN
2170               l_rslt_elmt := hxc_ext_timecard.OTL_ALIAS_EXPENDITURE_ELEMENTS;
2171             ELSIF p_short_name = 'OTL_ALIAS_EXPENDITURE_TYPES' THEN
2172               l_rslt_elmt := hxc_ext_timecard.OTL_ALIAS_EXPENDITURE_TYPES;
2173             ELSIF p_short_name = 'OTL_ALIAS_LOCATIONS' THEN
2174               l_rslt_elmt := hxc_ext_timecard.OTL_ALIAS_LOCATIONS;
2175             ELSIF p_short_name = 'OTL_ALIAS_PAYROLL_ELEMENTS' THEN
2176               l_rslt_elmt := hxc_ext_timecard.OTL_ALIAS_PAYROLL_ELEMENTS;
2177             ELSIF p_short_name = 'OTL_ALIAS_PROJECTS' THEN
2178               l_rslt_elmt := hxc_ext_timecard.OTL_ALIAS_PROJECTS;
2179             ELSIF p_short_name = 'OTL_ALIAS_TASKS' THEN
2180               l_rslt_elmt := hxc_ext_timecard.OTL_ALIAS_TASKS;
2181             ELSIF p_short_name = 'OTL_ALIAS_RATE_TYPE_EXP_SLF' THEN
2182               l_rslt_elmt := hxc_ext_timecard.OTL_ALIAS_RATE_TYPE_EXP_SLF;
2183             END IF;
2184 
2185       elsif p_one_char_substr = 'P' then
2186          if p_two_char_substr = 'PA' then
2187             IF p_short_name = 'PABCRTBY' THEN
2188               l_rslt_elmt :=                              -- Fix for Bug 3870480
2189 			         decode_setup(p_data_elmt_typ_cd,
2190 				                  get_name(ben_ext_person.g_abs_created_by),
2191 							      ben_ext_person.g_abs_created_by);
2192             ELSIF p_short_name = 'PABCRTDT' THEN
2193               l_rslt_elmt :=
2194                   apply_format_mask(ben_ext_person.g_abs_creation_date, p_frmt_mask_cd);
2195             --
2196             -- Flex Credit
2197             --
2198             ELSIF p_short_name = 'PABLSTUPBY' THEN       -- Fix for Bug 3870480
2199               l_rslt_elmt :=
2200                      decode_setup(p_data_elmt_typ_cd,
2201 				                  get_name(ben_ext_person.g_abs_last_updated_by),
2202 								  ben_ext_person.g_abs_last_updated_by);
2203             ELSIF p_short_name = 'PABLSTUPDT' THEN
2204               l_rslt_elmt :=
2205                  apply_format_mask(ben_ext_person.g_abs_last_update_date, p_frmt_mask_cd);
2206             ELSIF p_short_name = 'PABLSTUPLG' THEN
2207                   l_rslt_elmt :=
2208                   apply_format_mask(ben_ext_person.g_abs_last_update_login, p_frmt_mask_cd);
2209 
2210             ELSIF p_short_name = 'PABSCAT' THEN
2211               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2212                     ben_ext_person.g_abs_category_name,ben_ext_person.g_abs_category);
2213                     ---bug1374208 l_rslt_elmt:=apply_format_mask(ben_ext_person.g_abs_category,p_frmt_mask_cd);
2214             ELSIF p_short_name = 'PABSDRN' THEN
2215               l_rslt_elmt := apply_format_mask(ben_ext_person.g_abs_duration,p_frmt_mask_cd);
2216             ELSIF p_short_name = 'PABSENDT' THEN
2217               l_rslt_elmt :=
2218                    apply_format_mask(ben_ext_person.g_abs_end_dt,p_frmt_mask_cd);
2219             ELSIF p_short_name = 'PABSFLX01' THEN
2220               l_rslt_elmt := ben_ext_person.g_abs_flex_01;
2221             ELSIF p_short_name = 'PABSFLX02' THEN
2222               l_rslt_elmt := ben_ext_person.g_abs_flex_02;
2223             ELSIF p_short_name = 'PABSFLX03' THEN
2224               l_rslt_elmt := ben_ext_person.g_abs_flex_03;
2225             ELSIF p_short_name = 'PABSFLX04' THEN
2226               l_rslt_elmt := ben_ext_person.g_abs_flex_04;
2227             ELSIF p_short_name = 'PABSFLX05' THEN
2228               l_rslt_elmt := ben_ext_person.g_abs_flex_05;
2229             ELSIF p_short_name = 'PABSFLX06' THEN
2230               l_rslt_elmt := ben_ext_person.g_abs_flex_06;
2231             ELSIF p_short_name = 'PABSFLX07' THEN
2232               l_rslt_elmt := ben_ext_person.g_abs_flex_07;
2233             ELSIF p_short_name = 'PABSFLX08' THEN
2234               l_rslt_elmt := ben_ext_person.g_abs_flex_08;
2235             ELSIF p_short_name = 'PABSFLX09' THEN
2236               l_rslt_elmt := ben_ext_person.g_abs_flex_09;
2237             ELSIF p_short_name = 'PABSFLX10' THEN
2238               l_rslt_elmt := ben_ext_person.g_abs_flex_10;
2239             ELSIF p_short_name = 'PABSRSN' THEN
2240 
2241                 --
2242                 -- bug 2841958, If the element type code is 'D' the reason code should
2243                 -- be sent to decode_setup and not abs_reason_id, as abs_reason_id would
2244                 -- result in the default value to be extracted for all people
2245                 --
2246                 -- l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2247                 --  ben_ext_person.g_abs_reason_name,to_char(ben_ext_person.g_abs_reason));
2248 
2249                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2250                 ben_ext_person.g_abs_reason_name,ben_ext_person.g_abs_reason_cd);
2251 
2252                 -- end of bug 2841958
2253 
2254                 --bug 1374208 l_rslt_elmt := apply_format_mask(ben_ext_person.g_abs_reason,p_frmt_mask_cd);
2255             ELSIF p_short_name = 'PABSSTDT' THEN
2256               l_rslt_elmt :=
2257                   apply_format_mask(ben_ext_person.g_abs_start_dt,p_frmt_mask_cd);
2258             ELSIF p_short_name = 'PABSTYP' THEN
2259               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2260                  ben_ext_person.g_abs_type_name,to_char(ben_ext_person.g_abs_type));
2261                   --  1374208l  l_rslt_elmt := apply_format_mask(ben_ext_person.g_abs_type,p_frmt_mask_cd);
2262             ELSIF p_short_name = 'PACRTBY' THEN
2263               l_rslt_elmt :=                             -- Fix for Bug 3870480
2264                          decode_setup(p_data_elmt_typ_cd,
2265 					                  get_name(ben_ext_person.g_asg_created_by),
2266 									  ben_ext_person.g_asg_created_by);
2267             ELSIF p_short_name = 'PACRTDT' THEN
2268               l_rslt_elmt :=
2269                    apply_format_mask(ben_ext_person.g_asg_creation_date, p_frmt_mask_cd);
2270             --
2271             ELSIF p_short_name = 'PADOT' THEN
2272               l_rslt_elmt :=
2273                   apply_format_mask(ben_ext_person.g_actual_term_date, p_frmt_mask_cd);
2274             ELSIF p_short_name = 'PALCFLX01' THEN
2275               l_rslt_elmt := ben_ext_person.g_alc_flex_01;
2276             ELSIF p_short_name = 'PALCFLX02' THEN
2277               l_rslt_elmt := ben_ext_person.g_alc_flex_02;
2278             ELSIF p_short_name = 'PALCFLX03' THEN
2279               l_rslt_elmt := ben_ext_person.g_alc_flex_03;
2280             ELSIF p_short_name = 'PALCFLX04' THEN
2281               l_rslt_elmt := ben_ext_person.g_alc_flex_04;
2282             ELSIF p_short_name = 'PALCFLX05' THEN
2283               l_rslt_elmt := ben_ext_person.g_alc_flex_05;
2284             ELSIF p_short_name = 'PALCFLX06' THEN
2285               l_rslt_elmt := ben_ext_person.g_alc_flex_06;
2286             ELSIF p_short_name = 'PALCFLX07' THEN
2287               l_rslt_elmt := ben_ext_person.g_alc_flex_07;
2288             ELSIF p_short_name = 'PALCFLX08' THEN
2289               l_rslt_elmt := ben_ext_person.g_alc_flex_08;
2290             ELSIF p_short_name = 'PALCFLX09' THEN
2291               l_rslt_elmt := ben_ext_person.g_alc_flex_09;
2292             ELSIF p_short_name = 'PALCFLX10' THEN
2293               l_rslt_elmt := ben_ext_person.g_alc_flex_10;
2294             ELSIF p_short_name = 'PALSTUPBY' THEN
2295               l_rslt_elmt :=                       -- Fix for Bug 3870480
2296                      decode_setup(p_data_elmt_typ_cd,
2297 				                  get_name(ben_ext_person.g_asg_last_updated_by),
2298 								  ben_ext_person.g_asg_last_updated_by);
2299             ELSIF p_short_name = 'PALSTUPDT' THEN
2300               l_rslt_elmt :=
2301                 apply_format_mask(ben_ext_person.g_asg_last_update_date, p_frmt_mask_cd);
2302             ELSIF p_short_name = 'PALSTUPLG' THEN
2303                  l_rslt_elmt :=
2304                 apply_format_mask(ben_ext_person.g_asg_last_update_login, p_frmt_mask_cd);
2305 
2306             ELSIF p_short_name = 'PARTFNM' THEN
2307               l_rslt_elmt :=
2308                 apply_format_mask(ben_ext_person.g_part_first_name, p_frmt_mask_cd);
2309             ELSIF p_short_name = 'PARTLNM' THEN
2310               l_rslt_elmt :=
2311                 apply_format_mask(ben_ext_person.g_part_last_name, p_frmt_mask_cd);
2312                 --
2313                 -- ASG
2314             ELSIF p_short_name = 'PARTSSN' THEN
2315               l_rslt_elmt :=
2316                   apply_format_mask(ben_ext_person.g_part_ssn,p_frmt_mask_cd);
2317             ELSIF p_short_name = 'PASVCD' THEN
2318               l_rslt_elmt :=
2319                   apply_format_mask(ben_ext_person.g_adjusted_svc_date, p_frmt_mask_cd);
2320             END IF;
2321          elsif p_two_char_substr = 'PB' then
2322             IF p_short_name = 'PBNBDC' THEN
2323               l_rslt_elmt :=
2324                  apply_format_mask(ben_ext_person.g_benefit_bal_dfncntrbn, p_frmt_mask_cd);
2325             ELSIF p_short_name = 'PBNBPS' THEN
2326               l_rslt_elmt :=
2327                  apply_format_mask(ben_ext_person.g_benefit_bal_pension, p_frmt_mask_cd);
2328             ELSIF p_short_name = 'PBNBSL' THEN
2329               l_rslt_elmt :=
2330                  apply_format_mask(ben_ext_person.g_benefit_bal_sickleave, p_frmt_mask_cd);
2331             ELSIF p_short_name = 'PBNBVC' THEN
2332               l_rslt_elmt :=
2333                  apply_format_mask(ben_ext_person.g_benefit_bal_vacation, p_frmt_mask_cd);
2334             ELSIF p_short_name = 'PBNBWN' THEN
2335               l_rslt_elmt :=
2336                  apply_format_mask(ben_ext_person.g_benefit_bal_wellness, p_frmt_mask_cd);
2337             ELSIF p_short_name = 'PBNGFLX01' THEN
2338               l_rslt_elmt := ben_ext_person.g_bng_flex_01;
2339             ELSIF p_short_name = 'PBNGFLX02' THEN
2340               l_rslt_elmt := ben_ext_person.g_bng_flex_02;
2341             ELSIF p_short_name = 'PBNGFLX03' THEN
2342               l_rslt_elmt := ben_ext_person.g_bng_flex_03;
2343             ELSIF p_short_name = 'PBNGFLX04' THEN
2344               l_rslt_elmt := ben_ext_person.g_bng_flex_04;
2345             ELSIF p_short_name = 'PBNGFLX05' THEN
2346               l_rslt_elmt := ben_ext_person.g_bng_flex_05;
2347             ELSIF p_short_name = 'PBNGFLX06' THEN
2348               l_rslt_elmt := ben_ext_person.g_bng_flex_06;
2349             ELSIF p_short_name = 'PBNGFLX07' THEN
2350               l_rslt_elmt := ben_ext_person.g_bng_flex_07;
2351             ELSIF p_short_name = 'PBNGFLX08' THEN
2352               l_rslt_elmt := ben_ext_person.g_bng_flex_08;
2353             ELSIF p_short_name = 'PBNGFLX09' THEN
2354               l_rslt_elmt := ben_ext_person.g_bng_flex_09;
2355             ELSIF p_short_name = 'PBNGFLX10' THEN
2356               l_rslt_elmt := ben_ext_person.g_bng_flex_10;
2357             ELSIF p_short_name = 'PBNORDNM' THEN
2358               l_rslt_elmt :=
2359                 apply_format_mask(ben_ext_person.g_enrt_benefit_order_num, p_frmt_mask_cd);
2360             ELSIF p_short_name = 'PBNSTCD' THEN
2361               l_rslt_elmt := ben_ext_person.g_bnft_stat_cd;
2362             ELSIF p_short_name = 'PBASSAL' then
2363                l_rslt_elmt := apply_format_mask(ben_ext_person.g_base_salary, p_frmt_mask_cd);
2364             ELSIF p_short_name = 'PBSGRP' THEN
2365                 l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2366                    ben_extract.g_proc_business_group_name,
2367                    to_char( ben_extract.g_proc_business_group_id));
2368                 --
2369 
2370             end if;
2371          elsif p_two_char_substr = 'PC' then
2372             IF p_short_name = 'PCBRAENDT' THEN
2373               l_rslt_elmt := apply_format_mask(ben_ext_person.g_cbra_end_dt,p_frmt_mask_cd);
2374      	      --  Communication
2375 	      --
2376             ELSIF p_short_name = 'PCBRAENM' THEN
2377               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2378                  ben_ext_person.g_cbra_ler_name,
2379                  to_char(ben_ext_person.g_cbra_ler_id));
2380             ELSIF p_short_name = 'PCBRASTDT' THEN
2381               l_rslt_elmt := apply_format_mask(ben_ext_person.g_cbra_strt_dt,
2382 p_frmt_mask_cd);
2383             ELSIF p_short_name = 'PCO' THEN
2384               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2385                  ben_ext_person.g_payroll_costing,
2386                  to_char(ben_ext_person.g_payroll_costing_id));
2387             ELSIF p_short_name = 'PCRTBY' THEN
2388               l_rslt_elmt :=                      -- Fix for Bug 3870480
2389 			         decode_setup(p_data_elmt_typ_cd,
2390     		   	                  get_name(ben_ext_person.g_created_by),
2391 								  ben_ext_person.g_created_by);
2392             ELSIF p_short_name = 'PCRTDT' THEN
2393               l_rslt_elmt :=
2394 apply_format_mask(ben_ext_person.g_creation_date, p_frmt_mask_cd);
2395             --
2396             ELSIF p_short_name = 'PCS' THEN
2397               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2398                  ben_ext_person.g_payroll_consolidation_set,
2399                  to_char(ben_ext_person.g_payroll_consolidation_set_id));
2400             ELSIF p_short_name = 'PCVGAMT' THEN
2401               l_rslt_elmt := apply_format_mask(ben_ext_person.g_enrt_cvg_amt,
2402 p_frmt_mask_cd);
2403             --
2404             end if;
2405             elsif p_two_char_substr = 'PE' then
2406             IF p_short_name = 'PEC' THEN
2407               l_rslt_elmt := ben_ext_person.g_enrt_uom;
2408             ELSIF p_short_name = 'PEEAFTRTX' THEN
2409               l_rslt_elmt :=
2410 apply_format_mask(ben_ext_person.g_ee_after_tax_cost, p_frmt_mask_cd);
2411             ELSIF p_short_name = 'PEEPRETX' THEN
2412               l_rslt_elmt :=
2413 apply_format_mask(ben_ext_person.g_ee_pre_tax_cost, p_frmt_mask_cd);
2414             ELSIF p_short_name = 'PEETTL' THEN
2415               l_rslt_elmt := apply_format_mask(ben_ext_person.g_ee_ttl_cost,
2416 p_frmt_mask_cd);
2417             ELSIF p_short_name = 'PEICVG' THEN
2418               l_rslt_elmt :=
2419 apply_format_mask(ben_ext_person.g_enrt_int_cvg_amt, p_frmt_mask_cd);
2420             ELSIF p_short_name = 'PEIOPTNM' THEN
2421               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2422                  ben_ext_person.g_enrt_int_opt_name,
2423                  to_char(ben_ext_person.g_enrt_int_opt_id));
2424             ELSIF p_short_name = 'PEIPLNM' THEN
2425               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2426                  ben_ext_person.g_enrt_int_pl_name,
2427                  to_char(ben_ext_person.g_enrt_int_pl_id));
2428             ELSIF p_short_name = 'PELCMDDT' THEN
2429               l_rslt_elmt :=
2430 apply_format_mask(ben_ext_person.g_enrt_elec_made_dt, p_frmt_mask_cd);
2431             ELSIF p_short_name = 'PENRMTHD' THEN
2432               l_rslt_elmt := ben_ext_person.g_enrt_method;
2433             ELSIF p_short_name = 'PENROVFG' THEN
2434               l_rslt_elmt := ben_ext_person.g_enrt_ovrd_flag;
2435             ELSIF p_short_name = 'PENROVRSN' THEN
2436               l_rslt_elmt := ben_ext_person.g_enrt_ovrd_reason;
2437             ELSIF p_short_name = 'PENROVTDT' THEN
2438               l_rslt_elmt :=
2439 apply_format_mask(ben_ext_person.g_enrt_ovrd_thru_dt, p_frmt_mask_cd);
2440             ELSIF p_short_name = 'PENRRSDT' THEN
2441               l_rslt_elmt :=
2442 apply_format_mask(ben_ext_person.g_enrt_rslt_effct_strdt, p_frmt_mask_cd);
2443             ELSIF p_short_name = 'PENRSPDFG' THEN
2444               l_rslt_elmt := ben_ext_person.g_enrt_suspended_flag;
2445             ELSIF p_short_name = 'PERADJ' THEN
2446               l_rslt_elmt := ben_ext_person.g_pre_name_adjunct;
2447             ELSIF p_short_name = 'PEREML' THEN
2448               l_rslt_elmt := substr(ben_ext_person.g_email_address,1,600) ;
2449             ELSIF p_short_name = 'PERFLX01' THEN
2450               l_rslt_elmt := ben_ext_person.g_per_attr_1;
2451             ELSIF p_short_name = 'PERFLX02' THEN
2452               l_rslt_elmt := ben_ext_person.g_per_attr_2;
2453             ELSIF p_short_name = 'PERFLX03' THEN
2454               l_rslt_elmt := ben_ext_person.g_per_attr_3;
2455             ELSIF p_short_name = 'PERFLX04' THEN
2456               l_rslt_elmt := ben_ext_person.g_per_attr_4;
2457             ELSIF p_short_name = 'PERFLX05' THEN
2458               l_rslt_elmt := ben_ext_person.g_per_attr_5;
2459             ELSIF p_short_name = 'PERFLX06' THEN
2460               l_rslt_elmt := ben_ext_person.g_per_attr_6;
2461             ELSIF p_short_name = 'PERFLX07' THEN
2462               l_rslt_elmt := ben_ext_person.g_per_attr_7;
2463             ELSIF p_short_name = 'PERFLX08' THEN
2464               l_rslt_elmt := ben_ext_person.g_per_attr_8;
2465             ELSIF p_short_name = 'PERFLX09' THEN
2466               l_rslt_elmt := ben_ext_person.g_per_attr_9;
2467             ELSIF p_short_name = 'PERFLX10' THEN
2468               l_rslt_elmt := ben_ext_person.g_per_attr_10;
2469             ELSIF p_short_name = 'PERKNWN' THEN
2470               l_rslt_elmt := ben_ext_person.g_known_as;
2471             ELSIF p_short_name = 'PERLNG' THEN
2472               l_rslt_elmt := ben_ext_person.g_correspondence_language;
2473             ELSIF p_short_name = 'PERMSTP' THEN
2474               l_rslt_elmt := ben_ext_person.g_mailstop;
2475             ELSIF p_short_name = 'PERNTL' THEN
2476               l_rslt_elmt := ben_ext_person.g_nationality;
2477             ELSIF p_short_name = 'PEROHD' THEN
2478               l_rslt_elmt :=
2479 apply_format_mask(ben_ext_person.g_original_date_of_hire, p_frmt_mask_cd);
2480             ELSIF p_short_name = 'PERPDOB' THEN
2481               l_rslt_elmt := apply_format_mask(ben_ext_person.g_previous_dob,
2482 p_frmt_mask_cd);
2483             --
2484             ELSIF p_short_name = 'PERPSEX' THEN
2485                   l_rslt_elmt := ben_ext_person.g_previous_sex;
2486             -- extract dates and bus group
2487             --
2488             ELSIF p_short_name = 'PERPFST' THEN
2489               l_rslt_elmt := ben_ext_person.g_previous_first_name;
2490             ELSIF p_short_name = 'PERPLN' THEN
2491               l_rslt_elmt := ben_ext_person.g_previous_last_name;
2492             ELSIF p_short_name = 'PERPMID' THEN
2493               l_rslt_elmt := ben_ext_person.g_previous_middle_name;
2494             ELSIF p_short_name = 'PERPSSN' THEN
2495               l_rslt_elmt := apply_format_mask(ben_ext_person.g_previous_ssn,
2496 p_frmt_mask_cd);
2497             ELSIF p_short_name = 'PERPSUF' THEN
2498               l_rslt_elmt := ben_ext_person.g_previous_suffix;
2499             ELSIF p_short_name = 'PERPPRE' THEN
2500               l_rslt_elmt := ben_ext_person.g_previous_prefix;
2501             ELSIF p_short_name = 'PERTBC' THEN
2502               l_rslt_elmt :=
2503 apply_format_mask(ben_ext_person.g_uses_tobacco_flag, p_frmt_mask_cd);
2504             --
2505             ELSIF p_short_name = 'PERTTL' THEN
2506               l_rslt_elmt := apply_format_mask(ben_ext_person.g_er_ttl_cost,
2507 p_frmt_mask_cd);
2508             ELSIF p_short_name = 'PEROPMED' THEN
2509                l_rslt_elmt := ben_ext_person.g_per_information10 ;
2510             ELSIF p_short_name = 'PERETHORG' THEN
2511                l_rslt_elmt :=  ben_ext_person.g_per_information1 ;
2512             ELSIF p_short_name = 'PEVEEATC' THEN
2513               l_rslt_elmt :=
2514 apply_format_mask(ben_ext_person.g_pev_ee_after_tax_contr, p_frmt_mask_cd);
2515             ELSIF p_short_name = 'PEVEEPTC' THEN
2516               l_rslt_elmt :=
2517 apply_format_mask(ben_ext_person.g_pev_ee_pre_tax_contr, p_frmt_mask_cd);
2518             ELSIF p_short_name = 'PEVEETOTC' THEN
2519               l_rslt_elmt :=
2520 apply_format_mask(ben_ext_person.g_pev_ee_ttl_contr, p_frmt_mask_cd);
2521             ELSIF p_short_name = 'PEVEETOTD' THEN
2522               l_rslt_elmt :=
2523 apply_format_mask(ben_ext_person.g_pev_ee_ttl_distribution, p_frmt_mask_cd);
2524             ELSIF p_short_name = 'PEVERTOTC' THEN
2525               l_rslt_elmt :=
2526 apply_format_mask(ben_ext_person.g_pev_er_ttl_contr, p_frmt_mask_cd);
2527             ELSIF p_short_name = 'PEVERTOTD' THEN
2528               l_rslt_elmt :=
2529 apply_format_mask(ben_ext_person.g_pev_er_ttl_distribution, p_frmt_mask_cd);
2530             ELSIF p_short_name = 'PEVTOTOR' THEN
2531               l_rslt_elmt :=
2532 apply_format_mask(ben_ext_person.g_pev_ttl_other_rate, p_frmt_mask_cd);
2533             --
2534             -- Absence
2535             --
2536             ELSIF p_short_name = 'PERTYPE' THEN
2537                --
2538               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2539                 ben_ext_person.g_person_types ,
2540                 to_char(ben_ext_person.g_person_type_id ));
2541             --
2542             ELSIF p_short_name = 'PERSHLNM' THEN
2543 
2544               l_rslt_elmt :=  ben_ext_person.g_ESTABLISHMENT_name ;
2545             --   cwb changes
2546             --Enrollment Rate - CWB Distribution Budget
2547             ELSIF p_short_name = 'PECWBDSBD' THEN
2548                   l_rslt_elmt :=
2549                   apply_format_mask(ben_ext_person.g_er_cwb_dst_bdgt     , p_frmt_mask_cd);
2550             --Enrollment Rate - CWB Misc Rate 1
2551             ELSIF p_short_name = 'PECWBMSR1' THEN
2552                   l_rslt_elmt :=
2553                   apply_format_mask(ben_ext_person.g_er_cwb_misc_rate_1, p_frmt_mask_cd);
2554             --Enrollment Rate - CWB Eligible Salary
2555             ELSIF p_short_name = 'PECWBELSL' THEN
2556                   l_rslt_elmt :=
2557                   apply_format_mask(ben_ext_person.g_er_cwb_elig_salary, p_frmt_mask_cd);
2558             --nrollment Rate - CWB Misc Rate 2
2559             ELSIF p_short_name = 'PECWBMSR2' THEN
2560                   l_rslt_elmt :=
2561                   apply_format_mask(ben_ext_person.g_er_cwb_misc_rate_2, p_frmt_mask_cd);
2562             --Enrollment Rate - CWB Grant Price
2563             ELSIF p_short_name = 'PECWBGRPR' THEN
2564                   l_rslt_elmt :=
2565                   apply_format_mask(ben_ext_person.g_er_cwb_grant_price   , p_frmt_mask_cd);
2566             --Enrollment Rate - CWB Other Salary
2567             ELSIF p_short_name = 'PECWBOTSL' THEN
2568                   l_rslt_elmt :=
2569                   apply_format_mask(ben_ext_person.g_er_cwb_other_salary , p_frmt_mask_cd);
2570             --Enrollment Rate - CWB Reserve
2571             ELSIF p_short_name = 'PECWBRSRV' THEN
2572                    l_rslt_elmt :=
2573                    apply_format_mask(ben_ext_person.g_er_cwb_reserve , p_frmt_mask_cd);
2574             --Enrollment Rate - CWB Recommended Amount
2575             ELSIF p_short_name = 'PECWBRCAM' THEN
2576                   l_rslt_elmt :=
2577                    apply_format_mask(ben_ext_person.g_er_cwb_recomond_amt  , p_frmt_mask_cd);
2578             --Enrollment Rate - CWB Stated Salary
2579             ELSIF p_short_name = 'PECWBSTSL' THEN
2580                   l_rslt_elmt :=
2581                   apply_format_mask(ben_ext_person.g_er_cwb_stated_salary , p_frmt_mask_cd);
2582             --Enrollment Rate - CWB Total Compensation
2583             ELSIF p_short_name = 'PECWBTTCM' THEN
2584                   l_rslt_elmt :=
2585                   apply_format_mask(ben_ext_person.g_er_cwb_tot_compensation , p_frmt_mask_cd);
2586             --Enrollment Rate - CWB Worksheet Budget
2587             ELSIF p_short_name = 'PECWBWSBD' THEN
2588                   l_rslt_elmt :=
2589                   apply_format_mask(ben_ext_person.g_er_cwb_worksheet_bdgt , p_frmt_mask_cd);
2590             --Enrollment Rate - CWB Worksheet Amount
2591             ELSIF p_short_name = 'PECWBWSAM' THEN
2592                   hr_utility.set_location(' Worksheet Amount ' || ben_ext_person.g_er_cwb_worksheet_amt,991);
2593                   l_rslt_elmt :=
2594                   apply_format_mask(ben_ext_person.g_er_cwb_worksheet_amt , p_frmt_mask_cd);
2595             --Enrollment Rate - CWB Misc Rate 3
2596             ELSIF p_short_name = 'PECWBMSR3' THEN
2597                   l_rslt_elmt :=
2598                   apply_format_mask(ben_ext_person.g_er_cwb_misc_rate_3 , p_frmt_mask_cd);
2599             --Enrollment Rate - Reimbursement
2600             ELSIF p_short_name = 'PEREIMBRS' THEN
2601                   l_rslt_elmt :=
2602                   apply_format_mask(ben_ext_person.g_pev_er_reimbursement , p_frmt_mask_cd);
2603             --Enrollment Rate - Forfeited
2604             ELSIF p_short_name = 'PEFORFEIT' THEN
2605                   l_rslt_elmt :=
2606                   apply_format_mask(ben_ext_person.g_pev_er_forfeited , p_frmt_mask_cd);
2607 
2608 
2609             end if;
2610 
2611             elsif p_two_char_substr = 'PF' then
2612             IF p_short_name = 'PFLXAMT' THEN
2613               l_rslt_elmt := apply_format_mask(ben_ext_person.g_flex_amt,
2614 p_frmt_mask_cd);
2615             ELSIF p_short_name = 'PFLXCMBOPT' THEN
2616               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2617                  ben_ext_person.g_flex_cmbn_ptip_opt_name,
2618                  to_char(ben_ext_person.g_flex_cmbn_ptip_opt_id));
2619             ELSIF p_short_name = 'PFLXCMBPLN' THEN
2620               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2621                  ben_ext_person.g_flex_cmbn_plip_name,
2622                  to_char(ben_ext_person.g_flex_cmbn_plip_id));
2623             ELSIF p_short_name = 'PFLXCMBPLT' THEN
2624               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2625                  ben_ext_person.g_flex_cmbn_ptip_name,
2626                  to_char(ben_ext_person.g_flex_cmbn_ptip_id));
2627             ELSIF p_short_name = 'PFLXCREXC' THEN
2628               l_rslt_elmt :=
2629 apply_format_mask(ben_ext_person.g_flex_credit_excess, p_frmt_mask_cd);
2630             ELSIF p_short_name = 'PFLXCRFRT' THEN
2631               l_rslt_elmt :=
2632 apply_format_mask(ben_ext_person.g_flex_credit_forfited, p_frmt_mask_cd);
2633             ELSIF p_short_name = 'PFLXCRPRV' THEN
2634               l_rslt_elmt :=
2635 apply_format_mask(ben_ext_person.g_flex_credit_provided, p_frmt_mask_cd);
2636             ELSIF p_short_name = 'PFLXCRUSD' THEN
2637               l_rslt_elmt :=
2638 apply_format_mask(ben_ext_person.g_flex_credit_used, p_frmt_mask_cd);
2639             ELSIF p_short_name = 'PFLXCUR' THEN
2640               l_rslt_elmt := ben_ext_person.g_flex_currency;
2641             ELSIF p_short_name = 'PFLXOPT' THEN
2642               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2643                  ben_ext_person.g_flex_opt_name,
2644                  to_char(ben_ext_person.g_flex_opt_id));
2645             ELSIF p_short_name = 'PFLXPGM' THEN
2646               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2647                  ben_ext_person.g_flex_pgm_name,
2648                  to_char(ben_ext_person.g_flex_pgm_id));
2649             ELSIF p_short_name = 'PFLXPLN' THEN
2650               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2651                  ben_ext_person.g_flex_pl_name,
2652                  to_char(ben_ext_person.g_flex_pl_id));
2653             ELSIF p_short_name = 'PFLXPLTYP' THEN
2654               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2655                  ben_ext_person.g_flex_pl_typ_name,
2656                  to_char(ben_ext_person.g_flex_pl_typ_id));
2657             ELSIF p_short_name = 'PFLXPOOL' THEN
2658               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2659                  ben_ext_person.g_flex_bnft_pool_name,
2660                  to_char(ben_ext_person.g_flex_bnft_pool_id));
2661             --
2662             -- Covered Dependents
2663             --
2664             end if;
2665             elsif p_two_char_substr = 'PG' then
2666             IF p_short_name = 'PGMFLX01' THEN
2667               l_rslt_elmt := ben_ext_person.g_pgm_attr_1;
2668             ELSIF p_short_name = 'PGMFLX02' THEN
2669               l_rslt_elmt := ben_ext_person.g_pgm_attr_2;
2670             ELSIF p_short_name = 'PGMFLX03' THEN
2671               l_rslt_elmt := ben_ext_person.g_pgm_attr_3;
2672             ELSIF p_short_name = 'PGMFLX04' THEN
2673               l_rslt_elmt := ben_ext_person.g_pgm_attr_4;
2674             ELSIF p_short_name = 'PGMFLX05' THEN
2675               l_rslt_elmt := ben_ext_person.g_pgm_attr_5;
2676             ELSIF p_short_name = 'PGMFLX06' THEN
2677               l_rslt_elmt := ben_ext_person.g_pgm_attr_6;
2678             ELSIF p_short_name = 'PGMFLX07' THEN
2679               l_rslt_elmt := ben_ext_person.g_pgm_attr_7;
2680             ELSIF p_short_name = 'PGMFLX08' THEN
2681               l_rslt_elmt := ben_ext_person.g_pgm_attr_8;
2682             ELSIF p_short_name = 'PGMFLX09' THEN
2683               l_rslt_elmt := ben_ext_person.g_pgm_attr_9;
2684             ELSIF p_short_name = 'PGMFLX10' THEN
2685               l_rslt_elmt := ben_ext_person.g_pgm_attr_10;
2686             ELSIF p_short_name = 'PGRDFLX01' THEN
2687               l_rslt_elmt := ben_ext_person.g_grd_flex_01;
2688             ELSIF p_short_name = 'PGRDFLX02' THEN
2689               l_rslt_elmt := ben_ext_person.g_grd_flex_02;
2690             ELSIF p_short_name = 'PGRDFLX03' THEN
2691               l_rslt_elmt := ben_ext_person.g_grd_flex_03;
2692             ELSIF p_short_name = 'PGRDFLX04' THEN
2693               l_rslt_elmt := ben_ext_person.g_grd_flex_04;
2694             ELSIF p_short_name = 'PGRDFLX05' THEN
2695               l_rslt_elmt := ben_ext_person.g_grd_flex_05;
2696             ELSIF p_short_name = 'PGRDFLX06' THEN
2697               l_rslt_elmt := ben_ext_person.g_grd_flex_06;
2698             ELSIF p_short_name = 'PGRDFLX07' THEN
2699               l_rslt_elmt := ben_ext_person.g_grd_flex_07;
2700             ELSIF p_short_name = 'PGRDFLX08' THEN
2701               l_rslt_elmt := ben_ext_person.g_grd_flex_08;
2702             ELSIF p_short_name = 'PGRDFLX09' THEN
2703               l_rslt_elmt := ben_ext_person.g_grd_flex_09;
2704             ELSIF p_short_name = 'PGRDFLX10' THEN
2705               l_rslt_elmt := ben_ext_person.g_grd_flex_10;
2706             end if;
2707             elsif p_two_char_substr = 'PI' then
2708             IF p_short_name = 'PINCOVFG' THEN
2709               l_rslt_elmt := ben_ext_person.g_enrt_intrcovg_flag;
2710             end if;
2711             elsif p_two_char_substr = 'PJ' then
2712             IF p_short_name = 'PJOBFLX01' THEN
2713               l_rslt_elmt := ben_ext_person.g_job_flex_01;
2714             ELSIF p_short_name = 'PJOBFLX02' THEN
2715               l_rslt_elmt := ben_ext_person.g_job_flex_02;
2716             ELSIF p_short_name = 'PJOBFLX03' THEN
2717               l_rslt_elmt := ben_ext_person.g_job_flex_03;
2718             ELSIF p_short_name = 'PJOBFLX04' THEN
2719               l_rslt_elmt := ben_ext_person.g_job_flex_04;
2720             ELSIF p_short_name = 'PJOBFLX05' THEN
2721               l_rslt_elmt := ben_ext_person.g_job_flex_05;
2722             ELSIF p_short_name = 'PJOBFLX06' THEN
2723               l_rslt_elmt := ben_ext_person.g_job_flex_06;
2724             ELSIF p_short_name = 'PJOBFLX07' THEN
2725               l_rslt_elmt := ben_ext_person.g_job_flex_07;
2726             ELSIF p_short_name = 'PJOBFLX08' THEN
2727               l_rslt_elmt := ben_ext_person.g_job_flex_08;
2728             ELSIF p_short_name = 'PJOBFLX09' THEN
2729               l_rslt_elmt := ben_ext_person.g_job_flex_09;
2730             ELSIF p_short_name = 'PJOBFLX10' THEN
2731               l_rslt_elmt := ben_ext_person.g_job_flex_10;
2732             end if;
2733             elsif p_two_char_substr = 'PL' then
2734             IF p_short_name = 'PLDOH' THEN
2735               l_rslt_elmt :=
2736 apply_format_mask(ben_ext_person.g_last_hire_date, p_frmt_mask_cd);
2737             ELSIF p_short_name = 'PLENM' THEN
2738               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2739                  ben_ext_person.g_enrt_lfevt_name,
2740                  to_char(ben_ext_person.g_enrt_ler_id));
2741             ELSIF p_short_name = 'PLENTDT' THEN
2742               l_rslt_elmt :=
2743 apply_format_mask(ben_ext_person.g_enrt_lfevt_note_dt, p_frmt_mask_cd);
2744             ELSIF p_short_name = 'PLEOCRDT' THEN
2745               l_rslt_elmt :=
2746 apply_format_mask(ben_ext_person.g_enrt_lfevt_ocrd_dt, p_frmt_mask_cd);
2747             ELSIF p_short_name = 'PLERDT' THEN
2748                l_rslt_elmt :=
2749 apply_format_mask(ben_ext_person.g_lf_evt_ocrd_dt, p_frmt_mask_cd);
2750             ELSIF p_short_name = 'PLERNM' THEN
2751               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2752                  ben_ext_person.g_ler_name,
2753                  to_char(ben_ext_person.g_ler_id));
2754             ELSIF p_short_name = 'PLESTS' THEN
2755               l_rslt_elmt := ben_ext_person.g_enrt_lfevt_status;
2756             ELSIF p_short_name = 'PLFEVNTDT' THEN
2757                l_rslt_elmt :=
2758 apply_format_mask(ben_ext_person.g_lf_evt_note_dt, p_frmt_mask_cd);
2759             ELSIF p_short_name = 'PLFLX01' THEN
2760               l_rslt_elmt := ben_ext_person.g_pl_attr_1;
2761             ELSIF p_short_name = 'PLFLX02' THEN
2762               l_rslt_elmt := ben_ext_person.g_pl_attr_2;
2763             ELSIF p_short_name = 'PLFLX03' THEN
2764               l_rslt_elmt := ben_ext_person.g_pl_attr_3;
2765             ELSIF p_short_name = 'PLFLX04' THEN
2766               l_rslt_elmt := ben_ext_person.g_pl_attr_4;
2767             ELSIF p_short_name = 'PLFLX05' THEN
2768               l_rslt_elmt := ben_ext_person.g_pl_attr_5;
2769             ELSIF p_short_name = 'PLFLX06' THEN
2770               l_rslt_elmt := ben_ext_person.g_pl_attr_6;
2771             ELSIF p_short_name = 'PLFLX07' THEN
2772               l_rslt_elmt := ben_ext_person.g_pl_attr_7;
2773             ELSIF p_short_name = 'PLFLX08' THEN
2774               l_rslt_elmt := ben_ext_person.g_pl_attr_8;
2775             ELSIF p_short_name = 'PLFLX09' THEN
2776               l_rslt_elmt := ben_ext_person.g_pl_attr_9;
2777             ELSIF p_short_name = 'PLFLX10' THEN
2778               l_rslt_elmt := ben_ext_person.g_pl_attr_10;
2779             ELSIF p_short_name = 'PLIPFLX01' THEN
2780               l_rslt_elmt := ben_ext_person.g_plip_attr_1;
2781             ELSIF p_short_name = 'PLIPFLX02' THEN
2782               l_rslt_elmt := ben_ext_person.g_plip_attr_2;
2783             ELSIF p_short_name = 'PLIPFLX03' THEN
2784               l_rslt_elmt := ben_ext_person.g_plip_attr_3;
2785             ELSIF p_short_name = 'PLIPFLX04' THEN
2786               l_rslt_elmt := ben_ext_person.g_plip_attr_4;
2787             ELSIF p_short_name = 'PLIPFLX05' THEN
2788               l_rslt_elmt := ben_ext_person.g_plip_attr_5;
2789             ELSIF p_short_name = 'PLIPFLX06' THEN
2790               l_rslt_elmt := ben_ext_person.g_plip_attr_6;
2791             ELSIF p_short_name = 'PLIPFLX07' THEN
2792               l_rslt_elmt := ben_ext_person.g_plip_attr_7;
2793             ELSIF p_short_name = 'PLIPFLX08' THEN
2794               l_rslt_elmt := ben_ext_person.g_plip_attr_8;
2795             ELSIF p_short_name = 'PLIPFLX09' THEN
2796               l_rslt_elmt := ben_ext_person.g_plip_attr_9;
2797             ELSIF p_short_name = 'PLIPFLX10' THEN
2798               l_rslt_elmt := ben_ext_person.g_plip_attr_10;
2799             ELSIF p_short_name = 'PLSTUPBY' THEN
2800               l_rslt_elmt :=                     -- Fix for Bug 3870480
2801                      decode_setup(p_data_elmt_typ_cd,
2802 				                  get_name(ben_ext_person.g_last_updated_by),
2803 				                  ben_ext_person.g_last_updated_by);
2804             ELSIF p_short_name = 'PLSTUPDT' THEN
2805               l_rslt_elmt :=
2806 apply_format_mask(ben_ext_person.g_last_update_date, p_frmt_mask_cd);
2807             ELSIF p_short_name = 'PLSTUPLG' THEN
2808                   l_rslt_elmt :=
2809                             apply_format_mask(ben_ext_person.g_last_update_login, p_frmt_mask_cd);
2810             ELSIF p_short_name = 'PLTYPFLX01' THEN
2811               l_rslt_elmt := ben_ext_person.g_ptp_attr_1;
2812             ELSIF p_short_name = 'PLTYPFLX02' THEN
2813               l_rslt_elmt := ben_ext_person.g_ptp_attr_2;
2814             ELSIF p_short_name = 'PLTYPFLX03' THEN
2815               l_rslt_elmt := ben_ext_person.g_ptp_attr_3;
2816             ELSIF p_short_name = 'PLTYPFLX04' THEN
2817               l_rslt_elmt := ben_ext_person.g_ptp_attr_4;
2818             ELSIF p_short_name = 'PLTYPFLX05' THEN
2819               l_rslt_elmt := ben_ext_person.g_ptp_attr_5;
2820             ELSIF p_short_name = 'PLTYPFLX06' THEN
2821               l_rslt_elmt := ben_ext_person.g_ptp_attr_6;
2822             ELSIF p_short_name = 'PLTYPFLX07' THEN
2823               l_rslt_elmt := ben_ext_person.g_ptp_attr_7;
2824             ELSIF p_short_name = 'PLTYPFLX08' THEN
2825               l_rslt_elmt := ben_ext_person.g_ptp_attr_8;
2826             ELSIF p_short_name = 'PLTYPFLX09' THEN
2827               l_rslt_elmt := ben_ext_person.g_ptp_attr_9;
2828             ELSIF p_short_name = 'PLTYPFLX10' THEN
2829               l_rslt_elmt := ben_ext_person.g_ptp_attr_10;
2830             end if;
2831             elsif p_two_char_substr = 'PM'  then
2832               IF p_short_name = 'PMTPRAMT' THEN
2833                  hr_utility.set_location(' pm ' || p_short_name ,5382 );
2834                  l_rslt_elmt :=
2835 apply_format_mask(ben_ext_person.g_enrt_mntot_prem_amt, p_frmt_mask_cd);
2836               ELSIF p_short_name = 'PMTPRCRT' THEN
2837                  hr_utility.set_location(' pm ' || p_short_name ,5382 );
2838                  l_rslt_elmt :=
2839 apply_format_mask(ben_ext_person.g_enrt_mntot_prem_cramt, p_frmt_mask_cd);
2840               end if ;
2841             --
2842 
2843             elsif p_two_char_substr = 'PN'  then
2844             IF p_short_name = 'PNMLHR' THEN
2845                   l_rslt_elmt := apply_format_mask(ben_ext_person.g_asg_normal_hours, p_frmt_mask_cd);
2846             ELSIF p_short_name = 'PNMLFRQ' THEN
2847                   l_rslt_elmt := ben_ext_person.g_asg_frequency;
2848             ELSIF p_short_name = 'PNMLFTM' THEN
2849                    l_rslt_elmt := ben_ext_person.g_asg_time_normal_finish;
2850             ELSIF p_short_name = 'PNMLSTM' THEN
2851                    l_rslt_elmt := ben_ext_person.g_asg_time_normal_start;
2852             end if;
2853             --- tilak: the decode supports for null value and  default values
2854             --- so it is neccessery to call the apply_decode for null element
2855             /*
2856             if p_data_elmt_typ_cd = 'D'  then
2857                l_rslt_elmt := apply_decode
2858                                  (p_value            => l_rslt_elmt,
2859                                   p_ext_data_elmt_id => p_ext_data_elmt_id,
2860                                   p_default          => p_dflt_val,
2861                                   p_short_name       => p_short_name);
2862             end if;
2863             */
2864 
2865             elsif p_two_char_substr = 'PO' then
2866             IF p_short_name = 'POCSTDT' THEN
2867               l_rslt_elmt :=
2868                     apply_format_mask(ben_ext_person.g_enrt_orgcovg_strdt, p_frmt_mask_cd);
2869             ELSIF p_short_name = 'POCSTDTP' THEN
2870               l_rslt_elmt :=
2871                     apply_format_mask(ben_ext_person.g_enrt_prt_orgcovg_strdt, p_frmt_mask_cd);
2872             ELSIF p_short_name = 'POFNUM' THEN
2873               l_rslt_elmt := ben_ext_person.g_office_number;
2874             --
2875 
2876             ELSIF p_short_name = 'POIPSQNUM' THEN
2877               l_rslt_elmt :=
2878 apply_format_mask(ben_ext_person.g_enrt_oip_seq_num, p_frmt_mask_cd);
2879             ELSIF p_short_name = 'POPTFLX01' THEN
2880               l_rslt_elmt := ben_ext_person.g_opt_attr_1;
2881             ELSIF p_short_name = 'POPTFLX02' THEN
2882               l_rslt_elmt := ben_ext_person.g_opt_attr_2;
2883             ELSIF p_short_name = 'POPTFLX03' THEN
2884               l_rslt_elmt := ben_ext_person.g_opt_attr_3;
2885             ELSIF p_short_name = 'POPTFLX04' THEN
2886               l_rslt_elmt := ben_ext_person.g_opt_attr_4;
2887             ELSIF p_short_name = 'POPTFLX05' THEN
2888               l_rslt_elmt := ben_ext_person.g_opt_attr_5;
2889             ELSIF p_short_name = 'POPTFLX06' THEN
2890               l_rslt_elmt := ben_ext_person.g_opt_attr_6;
2891             ELSIF p_short_name = 'POPTFLX07' THEN
2892               l_rslt_elmt := ben_ext_person.g_opt_attr_7;
2893             ELSIF p_short_name = 'POPTFLX08' THEN
2894               l_rslt_elmt := ben_ext_person.g_opt_attr_8;
2895             ELSIF p_short_name = 'POPTFLX09' THEN
2896               l_rslt_elmt := ben_ext_person.g_opt_attr_9;
2897             ELSIF p_short_name = 'POPTFLX10' THEN
2898               l_rslt_elmt := ben_ext_person.g_opt_attr_10;
2899             ELSIF p_short_name = 'POPTNM' THEN
2900               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2901                  ben_ext_person.g_enrt_opt_name,
2902                  to_char(ben_ext_person.g_enrt_opt_id));
2903             ELSIF p_short_name = 'POSFLX01' THEN
2904               l_rslt_elmt := ben_ext_person.g_prs_flex_01;
2905             ELSIF p_short_name = 'POSFLX02' THEN
2906               l_rslt_elmt := ben_ext_person.g_prs_flex_02;
2907             ELSIF p_short_name = 'POSFLX03' THEN
2908               l_rslt_elmt := ben_ext_person.g_prs_flex_03;
2909             ELSIF p_short_name = 'POSFLX04' THEN
2910               l_rslt_elmt := ben_ext_person.g_prs_flex_04;
2911             ELSIF p_short_name = 'POSFLX05' THEN
2912               l_rslt_elmt := ben_ext_person.g_prs_flex_05;
2913             ELSIF p_short_name = 'POSFLX06' THEN
2914               l_rslt_elmt := ben_ext_person.g_prs_flex_06;
2915             ELSIF p_short_name = 'POSFLX07' THEN
2916               l_rslt_elmt := ben_ext_person.g_prs_flex_07;
2917             ELSIF p_short_name = 'POSFLX08' THEN
2918               l_rslt_elmt := ben_ext_person.g_prs_flex_08;
2919             ELSIF p_short_name = 'POSFLX09' THEN
2920               l_rslt_elmt := ben_ext_person.g_prs_flex_09;
2921             ELSIF p_short_name = 'POSFLX10' THEN
2922               l_rslt_elmt := ben_ext_person.g_prs_flex_10;
2923             --
2924             -- RSLT
2925             --
2926             ELSIF p_short_name = 'POPTFDNM'   then
2927                    l_rslt_elmt := ben_ext_person.g_enrt_opt_fd_name ;
2928             ELSIF p_short_name = 'POPTFDCD'  then
2929                    l_rslt_elmt := ben_ext_person.g_enrt_opt_fd_code ;
2930             end if;
2931             elsif p_two_char_substr = 'PP' then
2932             IF p_short_name = 'PPACRTBY' THEN
2933               l_rslt_elmt :=                     -- Fix for Bug 3870480
2934                      decode_setup(p_data_elmt_typ_cd,
2935 				                  get_name(ben_ext_person.g_addr_created_by),
2936 								  ben_ext_person.g_addr_created_by);
2937             ELSIF p_short_name = 'PPACRTDT' THEN
2938               l_rslt_elmt :=
2939 apply_format_mask(ben_ext_person.g_addr_creation_date, p_frmt_mask_cd);
2940             --
2941             ELSIF p_short_name = 'PPALSTUPBY' THEN
2942               l_rslt_elmt :=                    -- Fix for Bug 3870480
2943                      decode_setup(p_data_elmt_typ_cd,
2944 				                  get_name(ben_ext_person.g_addr_last_updated_by),
2945 								  ben_ext_person.g_addr_last_updated_by);
2946             ELSIF p_short_name = 'PPALSTUPDT' THEN
2947               l_rslt_elmt :=
2948 apply_format_mask(ben_ext_person.g_addr_last_update_date, p_frmt_mask_cd);
2949             ELSIF p_short_name = 'PPALSTUPLG' THEN
2950                   l_rslt_elmt :=
2951                        apply_format_mask(ben_ext_person.g_addr_last_update_login, p_frmt_mask_cd);
2952             ELSIF p_short_name = 'PPBSFLX01' THEN
2953               l_rslt_elmt := ben_ext_person.g_pbs_flex_01;
2954             ELSIF p_short_name = 'PPBSFLX02' THEN
2955               l_rslt_elmt := ben_ext_person.g_pbs_flex_02;
2956             ELSIF p_short_name = 'PPBSFLX03' THEN
2957               l_rslt_elmt := ben_ext_person.g_pbs_flex_03;
2958             ELSIF p_short_name = 'PPBSFLX04' THEN
2959               l_rslt_elmt := ben_ext_person.g_pbs_flex_04;
2960             ELSIF p_short_name = 'PPBSFLX05' THEN
2961               l_rslt_elmt := ben_ext_person.g_pbs_flex_05;
2962             ELSIF p_short_name = 'PPBSFLX06' THEN
2963               l_rslt_elmt := ben_ext_person.g_pbs_flex_06;
2964             ELSIF p_short_name = 'PPBSFLX07' THEN
2965               l_rslt_elmt := ben_ext_person.g_pbs_flex_07;
2966             ELSIF p_short_name = 'PPBSFLX08' THEN
2967               l_rslt_elmt := ben_ext_person.g_pbs_flex_08;
2968             ELSIF p_short_name = 'PPBSFLX09' THEN
2969               l_rslt_elmt := ben_ext_person.g_pbs_flex_09;
2970             ELSIF p_short_name = 'PPBSFLX10' THEN
2971               l_rslt_elmt := ben_ext_person.g_pbs_flex_10;
2972             ELSIF p_short_name = 'PPGMNM' THEN
2973               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2974                  ben_ext_person.g_enrt_pgm_name,
2975                  to_char(ben_ext_person.g_enrt_pgm_id));
2976             ELSIF p_short_name = 'PPHFX' THEN
2977               l_rslt_elmt := apply_format_mask(ben_ext_person.g_phone_fax,
2978 p_frmt_mask_cd);
2979             ELSIF p_short_name = 'PPHHM' THEN
2980               l_rslt_elmt := apply_format_mask(ben_ext_person.g_phone_home,
2981 p_frmt_mask_cd);
2982             ELSIF p_short_name = 'PPHMB' THEN
2983               l_rslt_elmt := apply_format_mask(ben_ext_person.g_phone_mobile,
2984 p_frmt_mask_cd);
2985             ELSIF p_short_name = 'PPHWK' THEN
2986               l_rslt_elmt := apply_format_mask(ben_ext_person.g_phone_work,
2987 p_frmt_mask_cd);
2988             ELSIF p_short_name = 'PPIPSQNUM' THEN
2989               l_rslt_elmt :=
2990 apply_format_mask(ben_ext_person.g_enrt_pip_seq_num, p_frmt_mask_cd);
2991             ELSIF p_short_name = 'PPLCY' THEN
2992               l_rslt_elmt := ben_ext_person.g_enrt_plcy_r_grp;
2993             ELSIF p_short_name = 'PPLNM' THEN
2994               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
2995                  ben_ext_person.g_enrt_pl_name,
2996                  to_char(ben_ext_person.g_enrt_pl_id));
2997             ELSIF p_short_name = 'PPLSQNUM' THEN
2998               l_rslt_elmt :=
2999 apply_format_mask(ben_ext_person.g_enrt_pl_seq_num, p_frmt_mask_cd);
3000             ELSIF p_short_name = 'PPLYRENDT' THEN
3001               l_rslt_elmt :=
3002 apply_format_mask(ben_ext_person.g_enrt_pl_yr_enddt, p_frmt_mask_cd);
3003             ELSIF p_short_name = 'PPLYRSTDT' THEN
3004                l_rslt_elmt :=
3005 apply_format_mask(ben_ext_person.g_enrt_pl_yr_strdt, p_frmt_mask_cd);
3006             ELSIF p_short_name = 'PPLYRSTDT' THEN
3007               l_rslt_elmt :=
3008 apply_format_mask(ben_ext_person.g_enrt_pl_yr_strdt, p_frmt_mask_cd);
3009             ---2559743
3010             ELSIF p_short_name = 'PPLFDNM'    then
3011                      l_rslt_elmt := ben_ext_person.g_enrt_pl_fd_name ;
3012             ELSIF p_short_name = 'PPLFDCD'   then
3013                       l_rslt_elmt := ben_ext_person.g_enrt_pl_fd_code ;
3014             ELSIF p_short_name = 'PPPLCPY'   then      -- cobra plan payment days
3015                   l_rslt_elmt := ben_ext_person.g_elig_cobra_payment_dys;
3016             --
3017             ELSIF p_short_name = 'PPOSFLX01' THEN
3018               l_rslt_elmt := ben_ext_person.g_pos_flex_01;
3019             ELSIF p_short_name = 'PPOSFLX02' THEN
3020               l_rslt_elmt := ben_ext_person.g_pos_flex_02;
3021             ELSIF p_short_name = 'PPOSFLX03' THEN
3022               l_rslt_elmt := ben_ext_person.g_pos_flex_03;
3023             ELSIF p_short_name = 'PPOSFLX04' THEN
3024               l_rslt_elmt := ben_ext_person.g_pos_flex_04;
3025             ELSIF p_short_name = 'PPOSFLX05' THEN
3026               l_rslt_elmt := ben_ext_person.g_pos_flex_05;
3027             ELSIF p_short_name = 'PPOSFLX06' THEN
3028               l_rslt_elmt := ben_ext_person.g_pos_flex_06;
3029             ELSIF p_short_name = 'PPOSFLX07' THEN
3030               l_rslt_elmt := ben_ext_person.g_pos_flex_07;
3031             ELSIF p_short_name = 'PPOSFLX08' THEN
3032               l_rslt_elmt := ben_ext_person.g_pos_flex_08;
3033             ELSIF p_short_name = 'PPOSFLX09' THEN
3034               l_rslt_elmt := ben_ext_person.g_pos_flex_09;
3035             ELSIF p_short_name = 'PPOSFLX10' THEN
3036                   l_rslt_elmt := ben_ext_person.g_pos_flex_10;
3037             ELSIF p_short_name = 'PPOPFDNM' then
3038 		  l_rslt_elmt := ben_ext_person.g_enrt_opt_pl_fd_name	  ;
3039             ELSIF p_short_name = 'PPOPFDCD' then
3040                   l_rslt_elmt := ben_ext_person.g_enrt_opt_pl_fd_code	  ;
3041             ELSIF p_short_name = 'PPPPFDNM' then
3042                   l_rslt_elmt := ben_ext_person.g_enrt_pl_pgm_fd_name	  ;
3043             ELSIF p_short_name = 'PPPPFDCD' then
3044                   l_rslt_elmt := ben_ext_person.g_enrt_pl_pgm_fd_code	  ;
3045             ELSIF p_short_name = 'PPYPFDNM' then
3046                   l_rslt_elmt := ben_ext_person.g_enrt_pl_typ_pgm_fd_name ;
3047             ELSIF p_short_name = 'PPYPFDCD' then
3048                   l_rslt_elmt := ben_ext_person.g_enrt_pl_typ_pgm_fd_code ;
3049             ELSIF p_short_name = 'PPPRNUM' THEN
3050                l_rslt_elmt :=
3051 apply_format_mask(ben_ext_person.g_payroll_period_number, p_frmt_mask_cd);
3052             ELSIF p_short_name = 'PPRFDNM'  then
3053                       l_rslt_elmt := ben_ext_person.g_enrt_pgm_fd_name ;
3054             ELSIF p_short_name = 'PPRFDCD' then
3055                       l_rslt_elmt := ben_ext_person.g_enrt_pgm_fd_code ;
3056             ELSIF p_short_name = 'PPREND' THEN
3057               --
3058               IF ben_ext_person.g_ppr_end_dt = to_date('31/12/4712','DD/MM/YYYY') THEN
3059                 l_rslt_elmt := null;
3060               ELSE
3061                 l_rslt_elmt := apply_format_mask
3062                       (ben_ext_person.g_ppr_end_dt, p_frmt_mask_cd);
3063               END IF;
3064               --
3065             ELSIF p_short_name = 'PPRENDT' THEN
3066                l_rslt_elmt :=
3067 apply_format_mask(ben_ext_person.g_payroll_period_enddt, p_frmt_mask_cd);
3068             ELSIF p_short_name = 'PPRIDENT' THEN
3069               l_rslt_elmt := ben_ext_person.g_ppr_ident;
3070             ELSIF p_short_name = 'PPRLFLX01' THEN
3071               l_rslt_elmt := ben_ext_person.g_prl_flex_01;
3072             ELSIF p_short_name = 'PPRLFLX02' THEN
3073               l_rslt_elmt := ben_ext_person.g_prl_flex_02;
3074             ELSIF p_short_name = 'PPRLFLX03' THEN
3075               l_rslt_elmt := ben_ext_person.g_prl_flex_03;
3076             ELSIF p_short_name = 'PPRLFLX04' THEN
3077               l_rslt_elmt := ben_ext_person.g_prl_flex_04;
3078             ELSIF p_short_name = 'PPRLFLX05' THEN
3079               l_rslt_elmt := ben_ext_person.g_prl_flex_05;
3080             ELSIF p_short_name = 'PPRLFLX06' THEN
3081               l_rslt_elmt := ben_ext_person.g_prl_flex_06;
3082             ELSIF p_short_name = 'PPRLFLX07' THEN
3083               l_rslt_elmt := ben_ext_person.g_prl_flex_07;
3084             ELSIF p_short_name = 'PPRLFLX08' THEN
3085               l_rslt_elmt := ben_ext_person.g_prl_flex_08;
3086             ELSIF p_short_name = 'PPRLFLX09' THEN
3087               l_rslt_elmt := ben_ext_person.g_prl_flex_09;
3088             ELSIF p_short_name = 'PPRLFLX10' THEN
3089               l_rslt_elmt := ben_ext_person.g_prl_flex_10;
3090             ELSIF p_short_name = 'PPRNAME' THEN
3091               l_rslt_elmt := ben_ext_person.g_ppr_name;
3092             ELSIF p_short_name = 'PPRSTDT' THEN
3093                l_rslt_elmt :=
3094 apply_format_mask(ben_ext_person.g_payroll_period_strtdt, p_frmt_mask_cd);
3095             ELSIF p_short_name = 'PPRSTRT' THEN
3096                   l_rslt_elmt := apply_format_mask
3097                      (ben_ext_person.g_ppr_strt_dt, p_frmt_mask_cd);
3098             ELSIF p_short_name = 'PPRTYP' THEN
3099               l_rslt_elmt := ben_ext_person.g_ppr_typ;
3100             ELSIF p_short_name = 'PPSCRTBY' THEN
3101               l_rslt_elmt :=                   -- Fix for Bug 3870480
3102                      decode_setup(p_data_elmt_typ_cd,
3103 				                  get_name(ben_ext_person.g_pos_created_by),
3104 								  ben_ext_person.g_pos_created_by);
3105             ELSIF p_short_name = 'PPSCRTDT' THEN
3106               l_rslt_elmt :=
3107 apply_format_mask(ben_ext_person.g_pos_creation_date, p_frmt_mask_cd);
3108             --
3109             --  Cobra
3110             ELSIF p_short_name = 'PPSLSTUPBY' THEN
3111               l_rslt_elmt :=                      -- Fix for Bug 3870480
3112                      decode_setup(p_data_elmt_typ_cd,
3113 				                  get_name(ben_ext_person.g_pos_last_updated_by),
3114 								  ben_ext_person.g_pos_last_updated_by);
3115             ELSIF p_short_name = 'PPSLSTUPDT' THEN
3116               l_rslt_elmt :=
3117 apply_format_mask(ben_ext_person.g_pos_last_update_date, p_frmt_mask_cd);
3118             ELSIF p_short_name = 'PPSLSTUPLG' THEN
3119                   l_rslt_elmt :=
3120                    apply_format_mask(ben_ext_person.g_pos_last_update_login, p_frmt_mask_cd);
3121             ELSIF p_short_name = 'PPT' THEN
3122                l_rslt_elmt := ben_ext_person.g_payroll_period_type;
3123             ELSIF p_short_name = 'PPTPNM' THEN
3124               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
3125                  ben_ext_person.g_enrt_pl_typ_name,
3126                  to_char(ben_ext_person.g_enrt_pl_typ_id));
3127             ELSIF p_short_name = 'PPTPSQNUM' THEN
3128               l_rslt_elmt :=
3129 apply_format_mask(ben_ext_person.g_enrt_ptp_seq_num, p_frmt_mask_cd);
3130               ---2559743
3131             ELSIF p_short_name = 'PPTPFDNM'   then
3132                    l_rslt_elmt := ben_ext_person.g_enrt_pl_typ_fd_name ;
3133             ELSIF p_short_name = 'PPTPFDCD'   then
3134                    l_rslt_elmt := ben_ext_person.g_enrt_pl_typ_fd_code ;
3135               ---2559743
3136             end if;
3137             elsif p_two_char_substr = 'PR' then
3138             IF p_short_name = 'PRMMOCAFX1' THEN
3139               l_rslt_elmt := ben_ext_person.g_prem_mn_costalloc_flex_01;
3140             ELSIF p_short_name = 'PRMMOCAFX2' THEN
3141               l_rslt_elmt := ben_ext_person.g_prem_mn_costalloc_flex_02;
3142             ELSIF p_short_name = 'PRMMOCAFX3' THEN
3143               l_rslt_elmt := ben_ext_person.g_prem_mn_costalloc_flex_03;
3144             ELSIF p_short_name = 'PRMMOCAFLX' THEN
3145               l_rslt_elmt :=
3146 apply_format_mask(ben_ext_person.g_prem_mn_costalloc_id, p_frmt_mask_cd);
3147             ELSIF p_short_name = 'PRMMOCANM' THEN
3148               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
3149                  ben_ext_person.g_prem_mn_costalloc_name,
3150                  to_char(ben_ext_person.g_prem_mn_costalloc_id));
3151             ELSIF p_short_name = 'PRMMOAMT' THEN
3152               l_rslt_elmt :=
3153 apply_format_mask(ben_ext_person.g_prem_mn_amt, p_frmt_mask_cd);
3154             ELSIF p_short_name = 'PRMMAADJ' THEN
3155               l_rslt_elmt := ben_ext_person.g_prem_mn_mnl_adj;
3156             ELSIF p_short_name = 'PRMMACRADJ' THEN
3157               l_rslt_elmt := ben_ext_person.g_prem_mn_cr_mnl_adj;
3158             ELSIF p_short_name = 'PRMMOCRT' THEN
3159               l_rslt_elmt :=
3160 apply_format_mask(ben_ext_person.g_prem_mn_cramt, p_frmt_mask_cd);
3161             ELSIF p_short_name = 'PRMMOUOM' THEN
3162               l_rslt_elmt := ben_ext_person.g_prem_mn_uom;
3163             ELSIF p_short_name = 'PRMTYP' THEN
3164               l_rslt_elmt := ben_ext_person.g_prem_type;
3165             ELSIF p_short_name = 'PRMYEAR' THEN
3166               l_rslt_elmt := ben_ext_person.g_prem_year;
3167               hr_utility.set_location(' year  ' ||  ben_ext_person.g_prem_year  , 5484);
3168             ELSIF p_short_name = 'PRMMNTH' THEN
3169                hr_utility.set_location(' month ' ||    ben_ext_person.g_prem_month , 119);
3170               l_rslt_elmt := ben_ext_person.g_prem_month;
3171             ELSIF p_short_name = 'PRMLUPDT' THEN
3172                 Begin                             -- to_date removed in 115.149
3173                   l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_prem_last_upd_date,
3174                                    p_frmt_mask_cd);
3175                exception
3176                   when others then
3177                   l_rslt_elmt := ben_ext_person.g_prem_last_upd_date;
3178                end  ;
3179               hr_utility.set_location(' updated date  ' ||    ben_ext_person.g_prem_last_upd_date , 119);
3180             ELSIF p_short_name = 'PRAD1' THEN
3181               l_rslt_elmt := ben_ext_person.g_prim_address_line_1;
3182             ELSIF p_short_name = 'PRAD2' THEN
3183               l_rslt_elmt := ben_ext_person.g_prim_address_line_2;
3184             ELSIF p_short_name = 'PRAD3' THEN
3185               l_rslt_elmt := ben_ext_person.g_prim_address_line_3;
3186             ELSIF p_short_name = 'PRADRDT' THEN
3187               l_rslt_elmt :=
3188 apply_format_mask(ben_ext_person.g_prim_address_date, p_frmt_mask_cd);
3189             ELSIF p_short_name = 'PRADSVA' THEN
3190               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
3191                  ben_ext_person.g_prim_addr_service_area,
3192                  to_char(ben_ext_person.g_prim_addr_sva_id));
3193             ELSIF p_short_name = 'PRCNTY' THEN -- Fix for Bug 2593220
3194               -- For UK Legislation, the County code is stored in the
3195               -- Region_1 column of per_addresses instead of County name.
3196               -- So we need to get the County name from fnd_common_lookups, for lookup_type 'GB_COUNTY'
3197 
3198               l_rslt_elmt := nvl(hr_general.DECODE_FND_COMM_LOOKUP(l_lookup_type,
3199                                  ben_ext_person.g_prim_county),
3200                                  ben_ext_person.g_prim_county);
3201               --l_rslt_elmt := ben_ext_person.g_prim_county; -- End of Fix, Bug 2593220
3202             ELSIF p_short_name = 'PRCRY' THEN
3203               l_rslt_elmt := ben_ext_person.g_prim_country;
3204             ELSIF p_short_name = 'PRCTY' THEN
3205               l_rslt_elmt := ben_ext_person.g_prim_city;
3206             ELSIF p_short_name = 'PREETOTDS' THEN
3207               l_rslt_elmt :=
3208 apply_format_mask(ben_ext_person.g_ee_ttl_distribution, p_frmt_mask_cd);
3209             ELSIF p_short_name = 'PRERTOTDS' THEN
3210               l_rslt_elmt :=
3211 apply_format_mask(ben_ext_person.g_er_ttl_distribution, p_frmt_mask_cd);
3212             ELSIF p_short_name = 'PRLSHP' THEN
3213               l_rslt_elmt := ben_ext_person.g_per_rlshp_type;
3214             ELSIF p_short_name = 'PRPGRPNM' THEN
3215               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
3216                  ben_ext_person.g_enrt_rpt_group_name,
3217                  to_char(ben_ext_person.g_enrt_rpt_group_id));
3218             ELSIF p_short_name = 'PRREG3' THEN
3219               l_rslt_elmt := ben_ext_person.g_prim_region_3;
3220             ELSIF p_short_name = 'PRSID' THEN
3221               l_rslt_elmt := apply_format_mask( ben_ext_person.g_Person_ID,p_frmt_mask_cd) ;
3222             ELSIF p_short_name = 'PRSTA' THEN
3223               l_rslt_elmt := ben_ext_person.g_prim_state;
3224             ELSIF p_short_name = 'PRSTAPR' THEN    -- ansi state
3225               l_rslt_elmt := ben_ext_person.g_prim_state_ansi;
3226             ELSIF p_short_name = 'PRTOTORT' THEN
3227               l_rslt_elmt :=
3228 apply_format_mask(ben_ext_person.g_ttl_other_rate, p_frmt_mask_cd);
3229             ---fix from fido
3230             ELSIF p_short_name = 'PRSEQ' THEN
3231                 l_rslt_elmt := apply_format_mask(ben_ext_person.g_dpnt_contact_seq_num,p_frmt_mask_cd);
3232             ----
3233             ELSIF p_short_name = 'PRTYP' THEN
3234               l_rslt_elmt := ben_ext_person.g_part_type;
3235             ELSIF p_short_name = 'PRZIP' THEN
3236               l_rslt_elmt := ben_ext_person.g_prim_postal_code;
3237              -- Participation Rate - Reimbursement
3238             ELSIF p_short_name = 'PRREIMBRS' THEN
3239                 hr_utility.set_location(' PRREIMBRS '|| ben_ext_person.g_er_reimbursement,937);
3240                   l_rslt_elmt :=
3241                  apply_format_mask(ben_ext_person.g_er_reimbursement , p_frmt_mask_cd);
3242 
3243             end if;
3244             elsif p_two_char_substr = 'PS' then
3245             IF p_short_name = 'PSTSCD' THEN
3246               l_rslt_elmt := ben_ext_person.g_enrt_status_cd;
3247             elsIF p_short_name = 'PSUPFLNM' THEN
3248               l_rslt_elmt := ben_ext_person.g_sup_full_name;
3249               --hr_utility.set_location('sup name '|| l_rslt_elmt,937);
3250             elsif p_short_name = 'PSUPEMNO' THEN
3251               l_rslt_elmt := ben_ext_person.g_sup_employee_number;
3252 
3253             end if;
3254             elsif p_two_char_substr = 'PT' then
3255             IF p_short_name = 'PTERMRS' THEN
3256               l_rslt_elmt := ben_ext_person.g_term_reason;
3257 	    --
3258             -- Flex Fields
3259             --
3260             ELSIF p_short_name = 'PTOTPRAMT' THEN
3261               l_rslt_elmt :=
3262               apply_format_mask(ben_ext_person.g_enrt_total_premium_amt, p_frmt_mask_cd);
3263             ELSIF p_short_name = 'PTOTPRUOM' THEN
3264               l_rslt_elmt := ben_ext_person.g_enrt_total_premium_uom;
3265             end if;
3266             end if;
3267       elsif p_one_char_substr = 'R' then
3268 
3269 
3270             if p_two_char_substr = 'RE' then
3271                -- this element does not have any values
3272                -- this is used to just link the record in writing
3273                IF p_short_name = 'RECLINKS' THEN
3274                   l_rslt_elmt := NULL;
3275                END IF  ;
3276 
3277             ELSIF  p_two_char_substr = 'RS' then
3278             IF p_short_name = 'RSLTFLX01' THEN
3279               l_rslt_elmt := ben_ext_person.g_enrt_attr_1;
3280             ELSIF p_short_name = 'RSLTFLX02' THEN
3281               l_rslt_elmt := ben_ext_person.g_enrt_attr_2;
3282             ELSIF p_short_name = 'RSLTFLX03' THEN
3283               l_rslt_elmt := ben_ext_person.g_enrt_attr_3;
3284             ELSIF p_short_name = 'RSLTFLX04' THEN
3285               l_rslt_elmt := ben_ext_person.g_enrt_attr_4;
3286             ELSIF p_short_name = 'RSLTFLX05' THEN
3287               l_rslt_elmt := ben_ext_person.g_enrt_attr_5;
3288             ELSIF p_short_name = 'RSLTFLX06' THEN
3289               l_rslt_elmt := ben_ext_person.g_enrt_attr_6;
3290             ELSIF p_short_name = 'RSLTFLX07' THEN
3291               l_rslt_elmt := ben_ext_person.g_enrt_attr_7;
3292             ELSIF p_short_name = 'RSLTFLX08' THEN
3293               l_rslt_elmt := ben_ext_person.g_enrt_attr_8;
3294             ELSIF p_short_name = 'RSLTFLX09' THEN
3295               l_rslt_elmt := ben_ext_person.g_enrt_attr_9;
3296             ELSIF p_short_name = 'RSLTFLX10' THEN
3297               l_rslt_elmt := ben_ext_person.g_enrt_attr_10;
3298             end if;
3299             elsif p_two_char_substr = 'RU' then
3300             IF p_short_name = 'RUNDT' THEN
3301                l_rslt_elmt := apply_format_mask(ben_extract.g_run_date,
3302 p_frmt_mask_cd);
3303             ELSIF p_short_name = 'RUNPPEDT' then
3304                   l_rslt_elmt := apply_format_mask(ben_ext_person.g_runrslt_last_pay_date,
3305 p_frmt_mask_cd);
3306 
3307             ELSIF p_short_name = 'RUNELDESC' THEN
3308                l_rslt_elmt := ben_ext_person.g_runrslt_element_description;
3309             ELSIF p_short_name = 'RUNELINCUR' THEN
3310                l_rslt_elmt := ben_ext_person.g_runrslt_input_currency;
3311             ELSIF p_short_name = 'RUNELNM' THEN
3312               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
3313                  ben_ext_person.g_runrslt_element_name,
3314                  to_char(ben_ext_person.g_runrslt_element_id));
3315             ELSIF p_short_name = 'RUNELOUCUR' THEN
3316                l_rslt_elmt := ben_ext_person.g_runrslt_output_currency;
3317             ELSIF p_short_name = 'RUNELPRCLS' THEN
3318                l_rslt_elmt := ben_ext_person.g_runrslt_classification;
3319             ELSIF p_short_name = 'RUNELPRTYP' THEN
3320                l_rslt_elmt := ben_ext_person.g_runrslt_processing_type;
3321             ELSIF p_short_name = 'RUNELRPNM' THEN
3322               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
3323                  ben_ext_person.g_runrslt_reporting_name,
3324                  to_char(ben_ext_person.g_runrslt_classification_id));
3325             ELSIF p_short_name = 'RUNELSKPRL' THEN
3326               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
3327                  ben_ext_person.g_runrslt_skip_rule,
3328                  to_char(ben_ext_person.g_runrslt_skip_rule_id));
3329             ELSIF p_short_name = 'RUNENTTYP' THEN
3330                l_rslt_elmt := ben_ext_person.g_runrslt_entry_type;
3331             ELSIF p_short_name = 'RUNIDNT' THEN
3332                l_rslt_elmt := ben_ext_person.g_runrslt_identifier;
3333             ELSIF p_short_name = 'RUNINVLNM' THEN
3334               l_rslt_elmt := decode_setup(p_data_elmt_typ_cd,
3335                  ben_ext_person.g_runrslt_input_value_name,
3336                  to_char(ben_ext_person.g_runrslt_input_value_id));
3337             ELSIF p_short_name = 'RUNINVLSQ' THEN
3338                l_rslt_elmt :=
3339 apply_format_mask(ben_ext_person.g_runrslt_input_value_sequence,
3340 p_frmt_mask_cd);
3341             ELSIF p_short_name = 'RUNINVLUNT' THEN
3342                l_rslt_elmt := ben_ext_person.g_runrslt_input_value_units;
3343             ELSIF p_short_name = 'RUNJURCD' THEN
3344                L_rslt_elmt := ben_ext_person.g_runrslt_jurisdiction_code;
3345             ELSIF p_short_name = 'RUNSRCTYP' THEN
3346                l_rslt_elmt := ben_ext_person.g_runrslt_source_type;
3347             ELSIF p_short_name = 'RUNSTAT' THEN
3348                l_rslt_elmt := ben_ext_person.g_runrslt_status;
3349             ELSIF p_short_name = 'RUNVALCHR' THEN
3350                -- run result value in characted format
3351                hr_utility.set_location (' character for run result ',98 );
3352                Begin
3353                   l_rslt_elmt :=  apply_format_mask(ben_ext_person.g_runrslt_value,
3354                                    p_frmt_mask_cd);
3355                exception
3356                   when others then
3357                   l_rslt_elmt := ben_ext_person.g_runrslt_value;
3358                end ;
3359 
3360             ELSIF p_short_name = 'RUNVALDT' THEN
3361                --l_rslt_elmt := ben_ext_person.g_runrslt_value;
3362                -- to_date raise any error then sent the value as it is
3363                hr_utility.set_location (' date  for run result ',98 );
3364                Begin          -- to_date removed in 115.149
3365                   l_rslt_elmt :=  apply_format_mask(fnd_date.chardate_to_date(ben_ext_person.g_runrslt_value ),
3366                                    p_frmt_mask_cd);
3367                exception
3368                   when others then
3369                   l_rslt_elmt := ben_ext_person.g_runrslt_value;
3370                end ;
3371             ELSIF p_short_name = 'RUNVAL' THEN
3372                --l_rslt_elmt := ben_ext_person.g_runrslt_value;
3373                -- to_number raise any error then sent the value as it is
3374                hr_utility.set_location (' number  for run result ',98 );
3375                Begin
3376                   l_rslt_elmt :=  apply_format_mask(to_number(ben_ext_person.g_runrslt_value),
3377                                    p_frmt_mask_cd);
3378                exception
3379                   when others then
3380                   l_rslt_elmt := ben_ext_person.g_runrslt_value;
3381                end ;
3382             end if;
3383            end if ;
3384       elsif p_one_char_substr = 'S' then
3385             IF p_short_name = 'SEX' THEN
3386               hr_utility.set_location('sex  '||ben_ext_person.g_sex,936);
3387               l_rslt_elmt := ben_ext_person.g_sex;
3388             ELSIF p_short_name = 'STDNT' THEN
3389               l_rslt_elmt := ben_ext_person.g_student_status;
3390             ELSIF p_short_name = 'STRTDT' THEN
3391                l_rslt_elmt := apply_format_mask(ben_extract.g_ext_strt_dt,
3392                               p_frmt_mask_cd);
3393             end if;
3394       elsif p_one_char_substr = 'T' then
3395             IF p_short_name = 'TITLE' THEN
3396               l_rslt_elmt := ben_ext_person.g_title;
3397             --
3398             end if;
3399       ELSE
3400             --
3401               ben_ext_person.g_elmt_name := g_elmt_name ;
3402               ben_ext_person.g_err_num   := 91924;
3403               ben_ext_person.g_err_name  := 'BEN_91924_EXT_INV_FLD';
3404               --raise ben_ext_person.detail_error;
3405               g_rqd_elmt_is_present := 'N' ;
3406               return null ;
3407             --
3408       END IF;
3409             --
3410 
3411       --- tilak: the decode supports for null value and  default values
3412       --- so it is neccessery to call the apply_decode for null element
3413       if p_data_elmt_typ_cd = 'D' /*and l_rslt_elmt is not null*/ then
3414 
3415           l_rslt_elmt := apply_decode
3416                              (p_value            => l_rslt_elmt,
3417                               p_ext_data_elmt_id => p_ext_data_elmt_id,
3418                               p_default          => p_dflt_val,
3419                                p_short_name       => p_short_name);
3420 
3421       end if;
3422 
3423       --since the name like lower /upper can be translated so the code is
3424       -- passsed as param not the meaning  like other format  parameters
3425       if substr(p_frmt_mask_lookup_cd,1,1) = 'C' then
3426           l_rslt_elmt := apply_format_Function(l_rslt_elmt,p_frmt_mask_lookup_cd);
3427       end if;
3428       --
3429 
3430       hr_utility.set_location(' Exiting:'||l_proc, 15);
3431       return l_rslt_elmt ;
3432 end get_element_value ;
3433 
3434 
3435 --
3436 -- ----------------------------------------------------------------------------
3437 -- |---------< Calculate_formula >---------------------------------------------|
3438 -- ----------------------------------------------------------------------------
3439 
3440 
3441 Function Calculate_formula ( p_person_id         in  number  ,
3442                              p_data_elmt_rl      in  number  ,
3443                              p_ext_per_bg_id     in  number  ,
3444                              p_String_val        in  varchar2,
3445                              p_frmt_mask_lookup_cd in varchar2,
3446                              p_frmt_mask_cd      in varchar2 ,
3447                              p_business_group_id in number   ,
3448                              p_effective_date in date ) return varchar2 is
3449 
3450   l_proc               varchar2(72) := g_package||'process_ext_recs';
3451   l_jurisdiction_code   varchar2(30);
3452   l_outputs             ff_exec.outputs_t;
3453   l_rslt_elmt               ben_ext_rslt_dtl.val_01%type  := null;
3454   l_rslt_elmt_fmt           ben_ext_rslt_dtl.val_01%type  := null;
3455 
3456   -- data element is a rule:
3457 
3458   cursor c_rule_type(p_rule_id ff_formulas_f.formula_id%type) is
3459     select formula_type_id
3460     from   ff_formulas_f
3461     where  formula_id = p_rule_id
3462     and    p_effective_date
3463            between effective_start_date
3464            and     effective_end_date;
3465 
3466 
3467   l_rule_type  c_rule_type%rowtype;
3468 
3469   cursor c_asg is
3470     select asg.assignment_id,asg.organization_id,loc.region_2
3471     from   per_all_assignments_f asg,hr_locations_all loc
3472     where  asg.person_id = p_person_id
3473     and    (asg.primary_flag = 'Y' OR  asg.assignment_type = 'A')
3474     and    asg.assignment_id = nvl(ben_ext_person.g_assignment_id,asg.assignment_id)  --1969853
3475     and    asg.location_id = loc.location_id(+)
3476     and    ben_ext_person.g_person_ext_dt
3477            between asg.effective_start_date
3478            and     asg.effective_end_date;
3479   --
3480   l_asg      c_asg%rowtype;
3481 
3482 
3483 Begin
3484   --
3485   hr_utility.set_location('Entering'||l_proc , 5) ;
3486 
3487   hr_utility.set_location(' Rule537:'||p_data_elmt_rl, 39);
3488   open  c_rule_type(p_data_elmt_rl);
3489   fetch c_rule_type into l_rule_type;
3490   close c_rule_type;
3491   --
3492   hr_utility.set_location(' Rule537:'||l_rule_type.formula_type_id, 39);
3493   open c_asg;
3494   fetch c_asg into l_asg;
3495   close c_asg;
3496    --
3497   if l_rule_type.formula_type_id = -413 then      -- Person Level rule
3498      -- Call formula initialise routine
3499      -- assignment condition is removed, with this conidtion dpnt can not be called for the formula
3500      -- user need formula to get person level data for dpnt
3501      --if l_asg.assignment_id is not null then
3502      l_outputs := benutils.formula
3503                         (p_formula_id         => p_data_elmt_rl,
3504                          p_effective_date     => ben_ext_person.g_person_ext_dt,
3505                          p_assignment_id      => l_asg.assignment_id,
3506                          p_organization_id    => l_asg.organization_id,
3507                          p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3508                          p_jurisdiction_code  => l_jurisdiction_code,
3509                          p_per_cm_id          => ben_ext_person.g_per_cm_id
3510                          ,p_param1             => 'EXT_DFN_ID'
3511                          ,p_param1_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3512                          ,p_param2             => 'EXT_RSLT_ID'
3513                          ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3514                          ,p_param3             => 'EXT_PERSON_ID'
3515                          ,p_param3_value       => to_char(nvl(ben_ext_person.g_person_id, -1))
3516                          ,p_param4             => 'EXT_PROCESS_BUSINESS_GROUP'
3517                          ,p_param4_value       =>  to_char(p_business_group_id)
3518                          ,p_param5             => 'EXT_USER_VALUE'
3519                          ,p_param5_value       =>  p_String_Val
3520                          ); --optional
3521                 --
3522                 l_rslt_elmt := l_outputs(l_outputs.first).value;
3523                 --
3524               --else
3525                 --
3526               --  l_rslt_elmt := null;
3527                  --
3528               --end if;
3529               --
3530   elsif l_rule_type.formula_type_id = -531 then  -- Enrollment Level rule
3531      -- Call formula initialise routine
3532      hr_utility.set_location('g_enrt_prtt_enrt_rslt_id' ||ben_ext_person.g_enrt_prtt_enrt_rslt_id, 886) ;
3533      l_outputs := benutils.formula
3534                                 (p_formula_id         => p_data_elmt_rl,
3535                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3536                                  p_assignment_id      => l_asg.assignment_id,
3537                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3538                                  p_pl_id              => ben_ext_person.g_enrt_pl_id,
3539                                  p_opt_id             => ben_ext_person.g_enrt_opt_id,
3540                                  p_ler_id             => ben_ext_person.g_enrt_ler_id
3541                                  --RChase pass extract definition id as input value
3542                                  ,p_param1             => 'EXT_DFN_ID'
3543                                  ,p_param1_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3544                                  ,p_param2             => 'EXT_RSLT_ID'
3545                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3546                                  /* Start of Changes for WWBUG: 1828349:  addition   */
3547                                  ,p_param3             => 'PRTT_ENRT_RSLT_ID'
3548                                  ,p_param3_value       => to_char(nvl(ben_ext_person.g_enrt_prtt_enrt_rslt_id, -1))
3549                                  /* for the ansi dpnt person id is necessary 3419446 */
3550                                  ,p_param4             => 'PRTT_ENRT_PERSON_ID'
3551                                  ,p_param4_value       => to_char(nvl(ben_ext_person.g_person_id, -1))
3552                                  ,p_param5             => 'EXT_PROCESS_BUSINESS_GROUP'
3553                                  ,p_param5_value       =>  to_char(p_business_group_id)
3554                                  ,p_param6             => 'EXT_USER_VALUE'
3555                                  ,p_param6_value       =>  p_String_Val
3556                                  );
3557  				 /* End of Changes for WWBUG: 1828349:  addition   */
3558 
3559               --
3560               l_rslt_elmt := l_outputs(l_outputs.first).value;
3561               --
3562   elsif l_rule_type.formula_type_id = -536 then  -- Eligible Level Rule
3563      -- Call formula initialise routine
3564      l_outputs := benutils.formula
3565                                 (p_formula_id         => p_data_elmt_rl,
3566                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3567                                  p_assignment_id      => l_asg.assignment_id,
3568                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3569                                  p_elig_per_elctbl_chc_id => ben_ext_person.g_elig_per_elctbl_chc_id
3570                                  --RChase pass extract definition id as input value
3571                                  ,p_param1             => 'EXT_DFN_ID'
3572                                  ,p_param1_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3573                                  ,p_param2             => 'EXT_RSLT_ID'
3574                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3575                                  ,p_param3             => 'EXT_PROCESS_BUSINESS_GROUP'
3576                                  ,p_param3_value       =>  to_char(p_business_group_id)
3577                                  ,p_param4             => 'EXT_USER_VALUE'
3578                                  ,p_param4_value       =>  p_String_Val
3579                                  );
3580               --
3581               l_rslt_elmt := l_outputs(l_outputs.first).value;
3582               --
3583   elsif l_rule_type.formula_type_id = -537 then  -- Premium Level Rule
3584      hr_utility.set_location(' Rule537:'||l_proc, 35);
3585      -- Call formula initialise routine
3586      l_outputs := benutils.formula
3587                                 (p_formula_id         => p_data_elmt_rl,
3588                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3589                                  p_assignment_id      => l_asg.assignment_id,
3590                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3591                                  p_param1             => 'PRTT_PREM_BY_MO_ID',
3592                                  p_param1_value       => to_char(ben_ext_person.g_prtt_prem_by_mo_id),
3593                                  p_param2             => 'ACTL_PREM_ID',
3594                                  p_param2_value       => to_char(ben_ext_person.g_prem_actl_prem_id)
3595                                  ,p_param3             => 'EXT_DFN_ID'
3596                                  ,p_param3_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3597                                  ,p_param4             => 'EXT_RSLT_ID'
3598                                  ,p_param4_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3599                                  ,p_param5             => 'EXT_PROCESS_BUSINESS_GROUP'
3600                                  ,p_param5_value       =>  to_char(p_business_group_id)
3601                                  ,p_param6             => 'EXT_USER_VALUE'
3602                                  ,p_param6_value       =>  p_String_Val
3603                                  );
3604               --
3605               l_rslt_elmt := l_outputs(l_outputs.first).value;
3606               --
3607   elsif l_rule_type.formula_type_id = -538 then  -- Dependnt Level Rule
3608      -- Call formula initialise routine
3609      l_outputs := benutils.formula
3610                                 (p_formula_id         => p_data_elmt_rl,
3611                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3612                                  p_assignment_id      => l_asg.assignment_id,
3613                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3614                                  p_param1             => 'ELIG_CVRD_DPNT_ID',
3615                                  p_param1_value       => to_char(ben_ext_person.g_dpnt_cvrd_dpnt_id)
3616                                  ,p_param2             => 'EXT_DFN_ID'
3617                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3618                                  ,p_param3             => 'EXT_RSLT_ID'
3619                                  ,p_param3_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3620                                  ,p_param4             => 'EXT_PROCESS_BUSINESS_GROUP'
3621                                  ,p_param4_value       =>  to_char(p_business_group_id)
3622                                  ,p_param5             => 'EXT_USER_VALUE'
3623                                  ,p_param5_value       =>  p_String_Val
3624                                  );
3625               --
3626               l_rslt_elmt := l_outputs(l_outputs.first).value;
3627               --
3628   elsif l_rule_type.formula_type_id = -539 then  -- Action Item Level Rule
3629      -- Call formula initialise routine
3630      l_outputs := benutils.formula
3631                                 (p_formula_id         => p_data_elmt_rl,
3632                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3633                                  p_assignment_id      => l_asg.assignment_id,
3634                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3635                                  p_prtt_enrt_actn_id  => ben_ext_person.g_actn_prtt_enrt_actn_id
3636                                  ,p_param1             => 'EXT_DFN_ID'
3637                                  ,p_param1_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3638                                  ,p_param2             => 'EXT_RSLT_ID'
3639                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3640                                  ,p_param3             => 'EXT_PROCESS_BUSINESS_GROUP'
3641                                  ,p_param3_value       =>  to_char(p_business_group_id)
3642                                  ,p_param4             => 'EXT_USER_VALUE'
3643                                  ,p_param4_value       =>  p_string_Val
3644                                 );
3645               --
3646               l_rslt_elmt := l_outputs(l_outputs.first).value;
3647               --
3648   elsif l_rule_type.formula_type_id = -540 then  -- Beneficiary level Rule
3649      -- Call formula initialise routine
3650      l_outputs := benutils.formula
3651                                 (p_formula_id         => p_data_elmt_rl,
3652                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3653                                  p_assignment_id      => l_asg.assignment_id,
3654                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3655                                  p_param1             => 'PL_BNF_ID',
3656                                  p_param1_value       => to_char(ben_ext_person.g_bnf_pl_bnf_id)
3657                                  ,p_param2             => 'EXT_DFN_ID'
3658                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3659                                  ,p_param3             => 'EXT_RSLT_ID'
3660                                  ,p_param3_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3661                                  ,p_param4             => 'EXT_PROCESS_BUSINESS_GROUP'
3662                                  ,p_param4_value       =>  to_char(p_business_group_id)
3663                                  ,p_param5             => 'EXT_USER_VALUE'
3664                                  ,p_param5_value       =>  p_String_Val
3665                                 );
3666               --
3667               l_rslt_elmt := l_outputs(l_outputs.first).value;
3668               --
3669   elsif l_rule_type.formula_type_id = -541 then  -- Flex credit level Rule
3670      -- Call formula initialise routine
3671      l_outputs := benutils.formula
3672                                 (p_formula_id         => p_data_elmt_rl,
3673                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3674                                  p_assignment_id      => l_asg.assignment_id,
3675                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3676                                  p_param1             => 'BNFT_PRVDR_POOL_ID',
3677                                  p_param1_value       => to_char(ben_ext_person.g_flex_bnft_pool_id)
3678                                  --RChase pass extract definition id as input value
3679                                  ,p_param2             => 'EXT_DFN_ID'
3680                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3681                                  ,p_param3             => 'EXT_RSLT_ID'
3682                                  ,p_param3_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3683                                  ,p_param4             => 'EXT_PROCESS_BUSINESS_GROUP'
3684                                  ,p_param4_value       =>  to_char(p_business_group_id)
3685                                  ,p_param5             => 'EXT_USER_VALUE'
3686                                  ,p_param5_value       =>  p_String_Val
3687                                 );
3688               --
3689               l_rslt_elmt := l_outputs(l_outputs.first).value;
3690               --
3691   elsif l_rule_type.formula_type_id = -542 then  -- payroll level Rule
3692      -- Call formula initialise routine
3693      l_outputs := benutils.formula
3694                                 (p_formula_id         => p_data_elmt_rl,
3695                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3696                                  p_assignment_id      => l_asg.assignment_id,
3697                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3698                                  p_param1             => 'ELEMENT_ENTRY_VALUE_ID',
3699                                  p_param1_value       => to_char(ben_ext_person.g_element_entry_value_id)
3700                                  --RChase pass extract definition id as input value
3701                                  ,p_param2             => 'EXT_DFN_ID'
3702                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3703                                  ,p_param3             => 'EXT_RSLT_ID'
3704                                  ,p_param3_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3705                                  ,p_param4             => 'EXT_PROCESS_BUSINESS_GROUP'
3706                                  ,p_param4_value       =>  to_char(p_business_group_id)
3707                                  ,p_param5             => 'EXT_USER_VALUE'
3708                                  ,p_param5_value       =>  p_String_Val
3709                                 );
3710               --
3711               l_rslt_elmt := l_outputs(l_outputs.first).value;
3712               --
3713   elsif l_rule_type.formula_type_id = -543 then  -- runresult level Rule
3714      -- Call formula initialise routine
3715      l_outputs := benutils.formula
3716                                 (p_formula_id         => p_data_elmt_rl,
3717                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3718                                  p_assignment_id      => l_asg.assignment_id,
3719                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3720                                  p_param1             => 'RUN_RESULT_ID',
3721                                  p_param1_value       => to_char(ben_ext_person.g_runrslt_identifier)
3722                                  --RChase pass extract definition id as input value
3723                                  ,p_param2             => 'EXT_DFN_ID'
3724                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3725                                  ,p_param3             => 'EXT_RSLT_ID'
3726                                  ,p_param3_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3727                                  ---bug : 1724999
3728                                  ,p_param4             => 'INPUT_VALUE_ID'
3729                                  ,p_param4_value       => to_char(nvl(ben_ext_person.g_runrslt_input_value_id,-1))
3730                                  ,p_param5             => 'RESULT_VALUE'
3731                                  ,p_param5_value       => ben_ext_person.g_runrslt_value
3732                                  ,p_param6             => 'EXT_PROCESS_BUSINESS_GROUP'
3733                                  ,p_param6_value       =>  to_char(p_business_group_id)
3734                                  ,p_param7             => 'EXT_USER_VALUE'
3735                                  ,p_param7_value       =>  p_String_Val
3736                                  );
3737               --
3738               l_rslt_elmt := l_outputs(l_outputs.first).value;
3739               --
3740   elsif l_rule_type.formula_type_id = -544 then  -- contact level Rule
3741      -- Call formula initialise routine
3742      l_outputs := benutils.formula
3743                                 (p_formula_id         => p_data_elmt_rl,
3744                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3745                                  p_assignment_id      => l_asg.assignment_id,
3746                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3747                                  p_param1             => 'CONTACT_RELATIONSHIP_ID',
3748                                  p_param1_value       => to_char(ben_ext_person.g_contact_rlshp_id)
3749                                  --RChase pass extract definition id as input value
3750                                  ,p_param2             => 'EXT_DFN_ID'
3751                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3752                                  ,p_param3             => 'EXT_RSLT_ID'
3753                                  ,p_param3_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3754                                  ,p_param4             => 'EXT_PROCESS_BUSINESS_GROUP'
3755                                  ,p_param4_value       =>  to_char(p_business_group_id)
3756                                  ,p_param5             => 'EXT_USER_VALUE'
3757                                  ,p_param5_value       =>  p_String_Val
3758                                 );
3759               --
3760               l_rslt_elmt := l_outputs(l_outputs.first).value;
3761               --
3762   elsif l_rule_type.formula_type_id = -545 then  -- elig dpnt level Rule
3763      -- Call formula initialise routine
3764      l_outputs := benutils.formula
3765                                 (p_formula_id         => p_data_elmt_rl,
3766                                  p_effective_date     => ben_ext_person.g_benefits_ext_dt,
3767                                  p_assignment_id      => l_asg.assignment_id,
3768                                  p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id),
3769                                  p_param1             => 'ELIG_DPNT_ID',
3770                                  p_param1_value       => to_char(ben_ext_person.g_elig_dpnt_id)
3771                                  --RChase pass extract definition id as input value
3772                                  ,p_param2             => 'EXT_DFN_ID'
3773                                  ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3774                                  ,p_param3             => 'EXT_RSLT_ID'
3775                                  ,p_param3_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3776                                  ,p_param4             => 'EXT_PROCESS_BUSINESS_GROUP'
3777                                  ,p_param4_value       =>  to_char(p_business_group_id)
3778                                  ,p_param5             => 'EXT_USER_VALUE'
3779                                  ,p_param5_value       =>  p_String_Val
3780                                );
3781               --
3782               l_rslt_elmt := l_outputs(l_outputs.first).value;
3783 
3784   elsif  l_rule_type.formula_type_id = -546 then    -- subheader level rule
3785      l_outputs := benutils.formula
3786                         (p_formula_id         => p_data_elmt_rl,
3787                          p_effective_date     => p_effective_date ,
3788                          p_business_group_id  => nvl(p_ext_per_bg_id,p_business_group_id)
3789                          ,p_param1             => 'EXT_DFN_ID'
3790                          ,p_param1_value       => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
3791                          ,p_param2             => 'EXT_RSLT_ID'
3792                          ,p_param2_value       => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
3793                          ,p_param3             => 'EXT_GROUP_VALUE_01'
3794                          ,p_param3_value       =>  ben_ext_person.g_group_elmt_value1
3795                          ,p_param4             => 'EXT_PROCESS_BUSINESS_GROUP'
3796                          ,p_param4_value       =>  to_char(p_business_group_id)
3797                          ,p_param5             => 'EXT_USER_VALUE'
3798                          ,p_param5_value       =>  p_String_Val
3799                         );
3800 
3801               l_rslt_elmt := l_outputs(l_outputs.first).value;
3802 
3803               --
3804   end if;
3805 
3806   -- format mask handling
3807   begin
3808      if substr(p_frmt_mask_lookup_cd,1,1) = 'N' then
3809         l_rslt_elmt_fmt := apply_format_mask(to_number(l_rslt_elmt), p_frmt_mask_cd);
3810         l_rslt_elmt := l_rslt_elmt_fmt;
3811      end if;
3812      if substr(p_frmt_mask_lookup_cd,1,1) = 'D' then
3813         l_rslt_elmt_fmt := apply_format_mask(fnd_date.canonical_to_date(l_rslt_elmt), p_frmt_mask_cd);
3814         l_rslt_elmt := l_rslt_elmt_fmt;
3815      end if ;
3816   exception  -- incase l_rslt_elmt is not valid for formatting, just don't format it.
3817      when others then
3818         null;
3819   end;
3820   --
3821   hr_utility.set_location('Exiting '||l_proc || ' with ' || l_rslt_elmt, 5) ;
3822   Return l_rslt_elmt ;
3823 
3824 
3825 end Calculate_formula;
3826 
3827 
3828 --
3829 -- ----------------------------------------------------------------------------
3830 -- |---------< Calcualte_calc_value >---------------------------------------------|
3831 -- ----------------------------------------------------------------------------
3832 
3833 function  Calculate_calc_value
3834                                (p_firtst_value   in number
3835                                ,p_second_value   in number
3836                                ,p_calc           in varchar2 ) return number  is
3837 l_value  number ;
3838 l_proc               varchar2(72) := g_package||'Calculate_calc_value';
3839 l_err_message        varchar2(2000) := 'Zero Divide Error' ;
3840 begin
3841   hr_utility.set_location('Entering'||l_proc, 5) ;
3842   hr_utility.set_location('p_firtst_value'||p_firtst_value, 5) ;
3843   hr_utility.set_location('p_second_value'||p_second_value, 5) ;
3844   hr_utility.set_location('p_calc '||p_calc , 5) ;
3845 
3846  if  p_calc  = 'ADD' then
3847 
3848     l_value :=  nvl(p_firtst_value,0)+ nvl(p_second_value,0) ;
3849  elsif p_calc  = 'SUB' then
3850 
3851     l_value :=  nvl(p_firtst_value,0)- nvl(p_second_value,0) ;
3852 
3853  elsif p_calc  = 'MLT' then
3854     if p_firtst_value is not null and p_second_value is not null then
3855        l_value :=  p_firtst_value* p_second_value ;
3856     elsif p_firtst_value is  null and p_second_value is  null then
3857        l_value := null ;
3858     else
3859        l_value :=  nvl(p_firtst_value,1)* nvl(p_second_value,1) ;
3860     end if ;
3861 
3862  elsif p_calc  = 'DIV' then
3863 
3864      if p_firtst_value is not null and p_second_value is not null then
3865        if p_second_value <>   0 then
3866          l_value :=  p_firtst_value/p_second_value ;
3867        else
3868            ben_ext_util.write_err
3869            (p_err_num => 92065
3870            ,p_err_name => l_err_message
3871            ,p_typ_cd => 'W'
3872            ,p_person_id => g_person_id
3873            ,p_request_id => ben_extract.g_request_id
3874            ,p_ext_rslt_id => ben_extract.g_ext_rslt_id
3875            ,p_business_group_id => ben_ext_person.g_business_group_id
3876            );
3877       --
3878 
3879           l_value := null ;
3880        end if ;
3881     elsif p_firtst_value is  null and p_second_value is  null then
3882         l_value := null ;
3883     elsif  p_firtst_value is not null then
3884         l_value :=  p_firtst_value ;
3885     else
3886         l_value := null ;
3887     end if ;
3888  end if ;
3889 
3890  hr_utility.set_location(' Exiting' ||l_value ||' :'||l_proc, 15);
3891  return l_value ;
3892 end Calculate_calc_value ;
3893 
3894 
3895 --
3896 -- ----------------------------------------------------------------------------
3897 -- |---------< get_calc_value >---------------------------------------------|
3898 -- ----------------------------------------------------------------------------
3899 function get_calc_value
3900                          (
3901                            p_seq_num              in  number
3902                          , p_ext_data_elmt_id     in  number
3903                          , p_data_elmt_typ_cd     in  varchar2
3904                          , p_name                 in  varchar2
3905                          , p_frmt_mask_cd         in  varchar2
3906                          , p_dflt_val             in  varchar2
3907                          , p_short_name           in  varchar2
3908                          , p_two_char_substr      in  varchar2
3909                          , p_one_char_substr      in  varchar2
3910                          , p_lookup_type          in  varchar2
3911                          , p_calc                 in  varchar2
3912                          , p_person_id            in  varchar2 default null
3913                          , p_ext_per_bg_id        in  number
3914                          , p_effective_date       in  date
3915                          , p_business_group_id    in  number
3916                          , p_frmt_mask_lookup_cd  in varchar2
3917                          , p_Ext_rcd_id           in number ) return varchar2 IS
3918 --
3919  l_proc               varchar2(72) := g_package||'get_calc_value';
3920  l_lookup_type varchar2(30) := p_lookup_type  ;
3921  l_number                       varchar2(1);
3922  l_max_len                      integer ;
3923 --
3924  l_rslt_elmt          varchar2(4000) ;
3925  l_rslt_calc          varchar2(4000) ;
3926  Cursor c_calc_elmt is
3927  select ewc.seq_num
3928        , xel.ext_data_elmt_id
3929        , xel.data_elmt_typ_cd
3930        , xel.data_elmt_rl
3931        , xel.name
3932        , xel.string_val
3933        , xel.dflt_val
3934        , xel.max_length_num
3935        , xel.frmt_mask_cd
3936        , xel.defined_balance_id
3937        , efl.short_name
3938        , substr(efl.short_name,1,2) two_char_substr
3939        , substr(efl.short_name,1,1) one_char_substr
3940  from ben_Ext_where_clause ewc,
3941       ben_Ext_data_elmt    xel,
3942       ben_ext_fld          efl
3943  where ewc.ext_data_elmt_id = p_ext_data_elmt_id
3944    and xel.ext_data_elmt_id = ewc.cond_ext_data_elmt_id
3945    and xel.ext_fld_id       = efl.ext_fld_id (+)  ;
3946 
3947 
3948  l_seq_num  ben_ext_data_elmt_in_rcd.seq_num%Type ;
3949 
3950  cursor c_seq (p_ext_rcd_id in number  ,
3951                p_ext_data_elmt_id in number) is
3952  select a.seq_num
3953  from ben_ext_data_elmt_in_rcd a
3954  where a.ext_rcd_id = p_ext_rcd_id
3955    and a.ext_data_elmt_id = p_ext_data_elmt_id ;
3956 
3957 begin
3958 
3959     hr_utility.set_location('Entering'||l_proc, 5);
3960     for elmt in c_calc_elmt Loop
3961 
3962         open c_seq (p_ext_rcd_id , elmt.ext_data_elmt_id) ;
3963         fetch c_seq into l_seq_num ;
3964         close c_seq ;
3965         l_rslt_calc := null ;
3966         hr_utility.set_location (' sequence number ' || l_seq_num , 99) ;
3967 
3968         if nvl(p_seq_num,-1) > nvl(l_seq_num,0) and  g_val_tab(l_seq_num) is not null then
3969            l_rslt_calc  := g_val_tab(l_seq_num) ;
3970            hr_utility.set_location (' element inprev  calc val ' || g_val_tab(l_seq_num) , 99) ;
3971 
3972         else
3973            if elmt.data_elmt_typ_cd in ('F', 'D') then
3974                l_rslt_calc := get_element_value(
3975                                 p_seq_num                 => elmt.seq_num
3976                               , p_ext_data_elmt_id        => elmt.ext_data_elmt_id
3977                               , p_data_elmt_typ_cd        => elmt.data_elmt_typ_cd
3978                               , p_name                    => elmt.name
3979                               , p_frmt_mask_cd            => null
3980                               , p_dflt_val                => elmt.dflt_val
3981                               , p_short_name              => elmt.short_name
3982                               , p_two_char_substr         => elmt.two_char_substr
3983                               , p_one_char_substr         => elmt.one_char_substr
3984                               , p_lookup_type             => p_lookup_type
3985                               );
3986             elsif elmt.data_elmt_typ_cd = 'R'then
3987                 l_rslt_calc :=  Calculate_formula
3988                                    ( p_person_id           => p_person_id ,
3989                                      p_data_elmt_rl        => elmt.data_elmt_rl ,
3990                                      p_ext_per_bg_id       => p_ext_per_bg_id  ,
3991                                      p_String_val          => elmt.string_val,
3992                                      p_frmt_mask_lookup_cd => p_frmt_mask_lookup_cd,
3993                                      p_frmt_mask_cd        => elmt.frmt_mask_cd ,
3994                                      p_business_group_id   => p_business_group_id   ,
3995                                      p_effective_date      => p_effective_date ) ;
3996             elsif elmt.data_elmt_typ_cd = 'P'then
3997 
3998                if  ben_Ext_person.g_assignment_id is not  null then
3999 
4000                    l_rslt_calc := get_pay_balance(
4001                                            p_defined_balance_id   =>  elmt.defined_balance_id
4002                                           ,p_assignment_id        =>  ben_Ext_person.g_assignment_id
4003                                           ,p_effective_date       =>  p_effective_date
4004                                           ,p_business_group_id    =>  nvl(p_ext_per_bg_id,p_business_group_id)
4005                                           ) ;
4006 
4007                else
4008                   l_rslt_calc := null ;
4009                end if ;
4010                hr_utility.set_location (' element  val ' || l_rslt_calc  , 99) ;
4011            end if ;
4012          end if ;
4013          --- check for the number
4014 
4015          Begin
4016             l_rslt_calc := to_number(l_rslt_calc) ;
4017          exception
4018             when value_error then
4019                l_rslt_calc := null ;
4020          end ;
4021 
4022          if  l_rslt_elmt is null  then
4023              l_rslt_elmt := l_rslt_calc ;
4024              hr_utility.set_location(' first calc value :  '||l_rslt_elmt, 15);
4025 
4026          else
4027             if l_rslt_calc is not null then
4028                hr_utility.set_location(' firs and sec  calc value :  '||l_rslt_elmt || '  '|| l_rslt_calc , 15);
4029                l_rslt_elmt := Calculate_calc_value
4030                                (p_firtst_value   => to_number(l_rslt_elmt)
4031                                ,p_second_value   => l_rslt_calc
4032                                ,p_calc           => p_calc ) ;
4033 
4034                hr_utility.set_location(' return calcaulated alue :  '|| l_rslt_elmt , 15);
4035 
4036             end if ;
4037          end if ;
4038 
4039     end loop ;
4040     l_rslt_elmt := apply_format_mask(to_number(l_rslt_elmt), p_frmt_mask_cd);
4041 
4042    hr_utility.set_location(' Exiting:'||l_proc, 15);
4043    return l_rslt_elmt ;
4044 end get_calc_value ;
4045 
4046 
4047 
4048 
4049 
4050 --
4051 -- ----------------------------------------------------------------------------
4052 -- |---------< process_ext_recs >---------------------------------------------|
4053 -- ----------------------------------------------------------------------------
4054 -- This procedure will process detail extract records of the given level.
4055 -- For each record of the given level it will format it's data elements as
4056 -- required and create a row in ben_ext_rslt_dtl with all the formatted values.
4057 --
4058 Procedure process_ext_recs(p_ext_rslt_id         in number,
4059                            p_ext_file_id         in number,
4060                            p_data_typ_cd         in varchar2,              -- F, C
4061                            p_ext_typ_cd          in varchar2,
4062                            p_rcd_typ_cd          in varchar2,              -- D S only
4063                            p_low_lvl_cd          in varchar2 default null, -- P, E, D
4064                            p_person_id           in number   default null,
4065                            p_chg_evt_cd          in varchar2 default null,
4066                            p_business_group_id   in number,
4067                            p_ext_per_bg_id       in number   default null ,
4068                            p_effective_date      in date
4069                            ) IS
4070 --
4071   l_proc               varchar2(72) := g_package||'process_ext_recs';
4072 --
4073   l_ext_rcd_id              number(15) := null;
4074   l_ext_rcd_in_file_id      number(15) := null;
4075   l_rslt_elmt               ben_ext_rslt_dtl.val_01%type  := null;
4076   l_rslt_elmt_fmt           ben_ext_rslt_dtl.val_01%type  := null;
4077 --
4078   l_ext_rslt_dtl_id         number(15);
4079   l_object_version_number   number(15);
4080 --
4081   l_trans_num               number(15);
4082 --
4083   l_write_rcd               varchar2(1);
4084   l_dummy                   varchar2(1);
4085 --
4086   l_prmy_sort_val           ben_ext_rslt_dtl.prmy_sort_val%type;
4087   l_scnd_sort_val           ben_ext_rslt_dtl.scnd_sort_val%type;
4088   l_thrd_sort_val           ben_ext_rslt_dtl.thrd_sort_val%type;
4089   l_exclude_this_rcd_flag   boolean := false;
4090   l_exclude_flag            boolean := false;
4091   l_lookup_type varchar2(30) := null; --Bug 2593220
4092 --
4093 
4094    l_frmt_mask_cd               hr_lookups.meaning%type ;
4095    l_two_char_substr            varchar2(2) ;
4096    l_one_char_substr            varchar2(1) ;
4097 
4098 
4099    l_ext_data_elmt_in_rcd_id_va  t_number ;
4100    l_seq_num_va                  t_number ;
4101    l_sprs_cd_va                  t_varchar2_30  ;
4102    l_strt_pos_va                 t_number  ;
4103    l_dlmtr_val_va                t_varchar2_30  ;
4104    l_rqd_flag_va                 t_varchar2_30  ;
4105    l_ext_data_elmt_id_va         t_number ;
4106    l_data_elmt_typ_cd_va         t_varchar2_30 ;
4107    l_data_elmt_rl_va             t_number ;
4108    l_name_va                     t_varchar2_600  ;
4109    l_frmt_mask_lookup_cd_va      t_varchar2_30  ;
4110    l_string_val_va               t_varchar2_600  ;
4111    l_dflt_val_va                 t_varchar2_600  ;
4112    l_max_length_num_va           t_number ;
4113    l_just_cd_va                  t_varchar2_30  ;
4114    l_short_name_va               t_varchar2_30  ;
4115    l_ttl_fnctn_cd_va             t_varchar2_30  ;
4116    l_defined_balance_id_va       t_number  ;
4117 
4118   cursor rcd_elmt_c  is
4119      select  /*+ index(b) index(c) */
4120             a.ext_data_elmt_in_rcd_id
4121            , a.seq_num
4122            , a.sprs_cd
4123            , a.strt_pos
4124            , a.dlmtr_val
4125            , a.rqd_flag
4126            , b.ext_data_elmt_id
4127            , b.data_elmt_typ_cd
4128            , b.data_elmt_rl
4129            , b.name
4130            , b.frmt_mask_cd frmt_mask_lookup_cd
4131            , b.string_val
4132            , b.dflt_val
4133            , b.max_length_num
4134            , b.just_cd
4135            , c.short_name
4136            , ttl_fnctn_cd
4137            , defined_balance_id
4138     from
4139          ben_ext_fld                 c,
4140          ben_ext_data_elmt           b,
4141          ben_ext_data_elmt_in_rcd    a
4142     where
4143          a.ext_data_elmt_id = b.ext_data_elmt_id
4144     and  a.ext_rcd_id = l_ext_rcd_id
4145     and  b.ext_fld_id = c.ext_fld_id (+)
4146     order by a.seq_num;
4147 
4148     elmt  rcd_elmt_c%rowtype ;
4149   --
4150   --
4151   cursor c_rcd_in_file_flag(p_rcd_in_id  number ) is
4152   select rqd_flag , chg_rcd_upd_flag
4153   from ben_Ext_rcd_in_file
4154   where ext_rcd_in_file_id = p_rcd_in_id ;
4155 
4156   --
4157 
4158   l_rcd_rqd_flag        varchar2(1);
4159   l_chg_rcd_upd_flag    varchar2(1);
4160   l_ext_chg_rcd_mode    varchar2(1);
4161   --
4162   l_dummy_start_date             date;
4163   l_dummy_end_date               date;
4164   l_number                       varchar2(1);
4165   l_loop_count		         number := 0;
4166   l_jurisdiction_code            varchar2(30);
4167   l_max_len                      integer ;
4168   l_rollback                     boolean ;
4169 --
4170 -- Bug fix 2197144
4171   l_decimal_counter		 number := 0;
4172   l_ext_per_bg_id                number ;
4173 --
4174 begin
4175 --
4176 
4177   hr_utility.set_location('Entering'||l_proc, 5);
4178   --
4179   g_person_id      := p_person_id;
4180 
4181   -- when subheader process the bg id is passed as parameter
4182   -- whne the detail record processed  this parameter is not
4183   -- passed
4184   l_ext_per_bg_id  := p_ext_per_bg_id  ;
4185   if p_rcd_typ_cd = 'D'  then
4186      l_ext_per_bg_id := ben_ext_person.g_business_group_id ;
4187   end if ;
4188 
4189 
4190 
4191      hr_utility.set_location('person_id '||g_person_id  , 5);
4192   -- Check for required record present
4193   --
4194   /*
4195   -- Check for required record
4196 
4197     FOR i IN
4198       ben_extract.gtt_rcd_rqd_vals.FIRST .. ben_extract.gtt_rcd_rqd_vals.LAST
4199     LOOP
4200     --
4201       IF ben_extract.gtt_rcd_rqd_vals(i).low_lvl_cd = p_low_lvl_cd
4202         OR ben_extract.gtt_rcd_rqd_vals(i).low_lvl_cd = 'NOREQDRCD'
4203       THEN
4204         ben_extract.gtt_rcd_rqd_vals(i).rcd_found := TRUE;
4205       END IF;
4206   --
4207   END LOOP;
4208   */
4209 
4210   -- For UK Legislation, set the lookup type as GB_COUNTY to
4211   -- get the County Name from fnd_common_lookups , Bug 2593220
4212 
4213   if nvl(hr_api.return_legislation_code(p_business_group_id),'NVL') = 'GB' then
4214     l_lookup_type := 'GB_COUNTY';
4215   end if;
4216 
4217   --
4218   -- assign transaction number
4219   --
4220   l_trans_num := ben_ext_person.g_trans_num;
4221   --
4222   -- This loop will be executed for each record in the extract definition
4223   -- of a given record type (Detail) and of a given level
4224   -- (Personal, Enrollment, Dependent), if applicable.
4225   --
4226   --
4227   --hr_utility.set_location(' format max ' || ben_extract.gtt_rcd_typ_vals.last,99);
4228 
4229   FOR i IN ben_extract.gtt_rcd_typ_vals.first .. ben_extract.gtt_rcd_typ_vals.last LOOP
4230     --
4231   --
4232   --hr_utility.set_location(' low level  ' ||ben_extract.gtt_rcd_typ_vals(i).low_lvl_cd,99);
4233     IF ben_extract.gtt_rcd_typ_vals(i).rcd_type_cd = p_rcd_typ_cd
4234     AND nvl(ben_extract.gtt_rcd_typ_vals(i).low_lvl_cd,' ') = nvl(p_low_lvl_cd, ' ')
4235     THEN
4236 
4237       l_write_rcd := 'Y';
4238       g_rqd_elmt_is_present := 'Y';
4239       --
4240       -- check record include/suppress condition
4241       --
4242       l_ext_rcd_id         := ben_extract.gtt_rcd_typ_vals(i).ext_rcd_id;
4243       l_ext_rcd_in_file_id := ben_extract.gtt_rcd_typ_vals(i).ext_rcd_in_file_id ;
4244       -- get the rqd flag in record level
4245       --  if the element is rquire and null skip the record
4246       --  if the record is rqd and null skipp the person
4247       open c_rcd_in_file_flag(ben_extract.gtt_rcd_typ_vals(i).ext_rcd_in_file_id) ;
4248       fetch c_rcd_in_file_flag into l_rcd_rqd_flag ,l_chg_rcd_upd_flag ;
4249       close c_rcd_in_file_flag ;
4250       -- Initialize array
4251       --
4252 
4253       hr_utility.set_location('l_rcd_rqd_flag'|| l_rcd_rqd_flag,10);
4254       g_val_tab := g_val_def;
4255       --
4256       open rcd_elmt_c ;
4257       fetch rcd_elmt_c bulk collect into
4258                l_ext_data_elmt_in_rcd_id_va   ,
4259                l_seq_num_va              ,
4260                l_sprs_cd_va               ,
4261                l_strt_pos_va              ,
4262                l_dlmtr_val_va             ,
4263                l_rqd_flag_va              ,
4264                l_ext_data_elmt_id_va     ,
4265                l_data_elmt_typ_cd_va     ,
4266                l_data_elmt_rl_va         ,
4267                l_name_va                  ,
4268                l_frmt_mask_lookup_cd_va   ,
4269                l_string_val_va            ,
4270                l_dflt_val_va              ,
4271                l_max_length_num_va       ,
4272                l_just_cd_va               ,
4273                l_short_name_va            ,
4274                l_ttl_fnctn_cd_va          ,
4275                l_defined_balance_id_va    ;
4276       close rcd_elmt_c ;
4277 
4278       for i  IN  1  .. l_ext_data_elmt_in_rcd_id_va.count
4279       LOOP
4280 
4281          l_frmt_mask_cd     := null ;
4282          l_two_char_substr  := null ;
4283          l_one_char_substr  := null ;
4284          elmt := null ;
4285 
4286 
4287          elmt.ext_data_elmt_in_rcd_id :=  l_ext_data_elmt_in_rcd_id_va(i)   ;
4288          elmt.seq_num                 :=  l_seq_num_va(i)              ;
4289          elmt.sprs_cd                 :=  l_sprs_cd_va(i)              ;
4290          elmt.strt_pos                :=  l_strt_pos_va(i)             ;
4291          elmt.dlmtr_val               :=  l_dlmtr_val_va(i)            ;
4292          elmt.rqd_flag                :=  l_rqd_flag_va(i)             ;
4293          elmt.ext_data_elmt_id        :=  l_ext_data_elmt_id_va(i)     ;
4294          elmt.data_elmt_typ_cd        :=  l_data_elmt_typ_cd_va(i)     ;
4295          elmt.data_elmt_rl            :=  l_data_elmt_rl_va(i)         ;
4296          elmt.name                    :=  l_name_va(i)                 ;
4297          elmt.frmt_mask_lookup_cd     :=  l_frmt_mask_lookup_cd_va(i)  ;
4298          elmt.string_val              :=  l_string_val_va(i)           ;
4299          elmt.dflt_val                :=  l_dflt_val_va(i)             ;
4300          elmt.max_length_num          :=  l_max_length_num_va(i)       ;
4301          elmt.just_cd                 :=  l_just_cd_va(i)              ;
4302          elmt.short_name              :=  l_short_name_va(i)           ;
4303          elmt.ttl_fnctn_cd            :=  l_ttl_fnctn_cd_va(i)         ;
4304          elmt.defined_balance_id      :=  l_defined_balance_id_va(i)   ;
4305 
4306          if elmt.frmt_mask_lookup_cd is not null then
4307            l_frmt_mask_cd := hr_general.decode_lookup('BEN_EXT_FRMT_MASK',
4308                                       elmt.frmt_mask_lookup_cd ) ;
4309          end if ;
4310 
4311          if  elmt.short_name is not null then
4312              l_two_char_substr := substr(elmt.short_name,1,2) ;
4313              l_one_char_substr := substr(elmt.short_name,1,1) ;
4314 
4315          end if ;
4316 
4317          if g_debug then
4318              hr_utility.set_location('short name '||elmt.short_name,90);
4319              hr_utility.set_location(' defined_balance_id '||elmt.defined_balance_id,90);
4320              hr_utility.set_location(' ttl_fnctn_cd '||elmt.ttl_fnctn_cd,90);
4321              hr_utility.set_location(' one_char_substr '||l_one_char_substr,90);
4322              hr_utility.set_location(' two_char_substr '||l_two_char_substr,90);
4323              hr_utility.set_location(' name '||elmt.name,90);
4324              hr_utility.set_location(' dflt_val '||elmt.dflt_val,90);
4325              hr_utility.set_location(' frmt_mask_lookup_cd '||elmt.frmt_mask_lookup_cd,90);
4326              hr_utility.set_location(' frmt_mask_cd '||l_frmt_mask_cd,90);
4327              hr_utility.set_location(' seq_num '||elmt.seq_num,90);
4328              hr_utility.set_location(' seq_num '||elmt.seq_num,90);
4329 
4330 
4331          end if ;
4332         --
4333         l_rslt_elmt := null;
4334         --
4335         -- check field include/suppress condition
4336         --
4337         g_elmt_name := elmt.name ;
4338         hr_utility.set_location('ELEMENT '||elmt.short_name,10);
4339         hr_utility.set_location('Type Code '||elmt.data_elmt_typ_cd,10);
4340 
4341         IF elmt.data_elmt_typ_cd in ('F','D') THEN
4342           --
4343           -- data element is a field:
4344              l_rslt_elmt := get_element_value(
4345                                p_seq_num                 => elmt.seq_num
4346                               , p_ext_data_elmt_id        => elmt.ext_data_elmt_id
4347                               , p_data_elmt_typ_cd        => elmt.data_elmt_typ_cd
4348                               , p_name                    => elmt.name
4349                               , p_frmt_mask_cd            => l_frmt_mask_cd
4350                               , p_dflt_val                => elmt.dflt_val
4351                               , p_short_name              => elmt.short_name
4352                               , p_two_char_substr         => l_two_char_substr
4353                               , p_one_char_substr         => l_one_char_substr
4354                               , p_lookup_type             => l_lookup_type
4355                               , p_frmt_mask_lookup_cd     => elmt.frmt_mask_lookup_cd  );
4356              --- if the requird lement is not null and return value is null exit
4357              if g_rqd_elmt_is_present = 'N' and l_rslt_elmt is  null then
4358                 exit ;
4359              end if ;
4360 
4361             --- decide the grouping element subhead
4362             if ben_ext_thread.g_ext_group_elmt1 is not null then
4363                hr_utility.set_location(' GROUP ' || ben_ext_thread.g_ext_group_elmt1 || ' / ' ||elmt.short_name , 99 ) ;
4364                if ben_ext_thread.g_ext_group_elmt1 = elmt.short_name then
4365                   ben_ext_person.g_group_elmt_value1  :=  l_rslt_elmt ;
4366                end if ;
4367                if ben_ext_thread.g_ext_group_elmt2 is not null then
4368                   if ben_ext_thread.g_ext_group_elmt2 = elmt.short_name then
4369                      ben_ext_person.g_group_elmt_value2  :=  l_rslt_elmt ;
4370                   end if ;
4371                else
4372                   if p_rcd_typ_cd = 'S' then
4373                      ben_ext_person.g_group_elmt_value2  := '   ' ;
4374                   else
4375                       ben_ext_person.g_group_elmt_value2  :=  null ;
4376                   end if ;
4377                end if ;
4378                hr_utility.set_location(' GROUP  value ' || ben_ext_person.g_group_elmt_value1  , 99 ) ;
4379             else
4380                if p_rcd_typ_cd = 'S' then
4381                   ben_ext_person.g_group_elmt_value1  :=  '   ' ;
4382                   ben_ext_person.g_group_elmt_value2  :=  '   ' ;
4383                else
4384                   ben_ext_person.g_group_elmt_value1  :=  null ;
4385                   ben_ext_person.g_group_elmt_value2  :=  null ;
4386                end if ;
4387             end if ;
4388 
4389             --
4390             if  p_rcd_typ_cd <> 'S' and ben_ext_person.g_group_elmt_value1 =  '   '  then
4391                  ben_ext_person.g_group_elmt_value1 := null;
4392                  ben_ext_person.g_group_elmt_value2 := null;
4393             end if ;
4394             if  p_rcd_typ_cd <> 'S' and ben_ext_person.g_group_elmt_value2 =  '   '  then
4395                  ben_ext_person.g_group_elmt_value2 := null;
4396             end if ;
4397             --- eof subhead
4398 
4399 
4400 
4401           ELSIF elmt.data_elmt_typ_cd  ='C' THEN
4402           --
4403           -- data element is a calcualtion:
4404              l_rslt_elmt := get_calc_value(
4405                                 p_seq_num                 => elmt.seq_num
4406                               , p_ext_data_elmt_id        => elmt.ext_data_elmt_id
4407                               , p_data_elmt_typ_cd        => elmt.data_elmt_typ_cd
4408                               , p_name                    => elmt.name
4409                               , p_frmt_mask_cd            => l_frmt_mask_cd
4410                               , p_dflt_val                => elmt.dflt_val
4411                               , p_short_name              => elmt.short_name
4412                               , p_two_char_substr         => l_two_char_substr
4413                               , p_one_char_substr         => l_one_char_substr
4414                               , p_lookup_type             => l_lookup_type
4415                               , p_calc                    => elmt.ttl_fnctn_cd
4416                               , p_person_id               => p_person_id
4417                               , p_ext_per_bg_id           => l_ext_per_bg_id
4418                               , p_effective_date          => p_effective_date
4419                               , p_business_group_id       => p_business_group_id
4420                               , p_frmt_mask_lookup_cd     => elmt.frmt_mask_lookup_cd
4421                               , p_ext_rcd_id              => l_ext_rcd_id
4422                               );
4423              --- if the requird lement is not null and return value is null exit
4424              if g_rqd_elmt_is_present = 'N' and l_rslt_elmt is  null then
4425                 exit ;
4426              end if ;
4427 
4428           --
4429           ELSIF elmt.data_elmt_typ_cd = 'R' THEN
4430           --
4431 
4432                l_rslt_elmt :=  Calculate_formula
4433                                    ( p_person_id           => p_person_id ,
4434                                      p_data_elmt_rl        => elmt.data_elmt_rl ,
4435                                      p_ext_per_bg_id       => l_ext_per_bg_id  ,
4436                                      p_String_val          => elmt.string_val,
4437                                      p_frmt_mask_lookup_cd => elmt.frmt_mask_lookup_cd,
4438                                      p_frmt_mask_cd        => l_frmt_mask_cd ,
4439                                      p_business_group_id   => p_business_group_id   ,
4440                                      p_effective_date      => p_effective_date ) ;
4441 
4442 
4443 
4444           ELSIF elmt.data_elmt_typ_cd = 'S' THEN
4445             --
4446             -- data element is a string:
4447             -- ---------------------------------------------------------
4448             l_rslt_elmt := elmt.string_val;
4449             ---if the max Lenght defined , sixe the string as per
4450             --- the max_string , the function down use the max lengh
4451             --- use the min of lenght and max lenght so format here only
4452             if   elmt.max_length_num is not null then
4453                 l_rslt_elmt := rpad(nvl(l_rslt_elmt,' '),elmt.max_length_num);
4454                 hr_utility.set_location(' string max lenght '|| l_rslt_elmt,100 );
4455             end if ;
4456 
4457           ELSIF elmt.data_elmt_typ_cd = 'P' THEN
4458             -- payroll balance
4459             hr_utility.set_location(' payroll balance id  '|| elmt.defined_balance_id  ,100 );
4460             -- l_rslt_elmt :=  '00.00';
4461             -- format mask handlinga
4462             if  ben_Ext_person.g_assignment_id is not  null then
4463                 l_rslt_elmt := get_pay_balance(
4464                                            p_defined_balance_id   =>  elmt.defined_balance_id
4465                                           ,p_assignment_id        =>  ben_Ext_person.g_assignment_id
4466                                           ,p_effective_date       =>  p_effective_date
4467                                           ,p_business_group_id    =>  nvl(l_ext_per_bg_id,p_business_group_id)
4468                                           ) ;
4469 
4470                 begin
4471                   if substr(elmt.frmt_mask_lookup_cd,1,1) = 'N' then
4472                      l_rslt_elmt_fmt := apply_format_mask(to_number(l_rslt_elmt), l_frmt_mask_cd);
4473                      l_rslt_elmt := l_rslt_elmt_fmt;
4474                   end if;
4475                   if substr(elmt.frmt_mask_lookup_cd,1,1) = 'D' then
4476                      l_rslt_elmt_fmt:=apply_format_mask(fnd_date.canonical_to_date(l_rslt_elmt),l_frmt_mask_cd);
4477                      l_rslt_elmt := l_rslt_elmt_fmt;
4478                   end if ;
4479                 exception  -- incase l_rslt_elmt is not valid for formatting, just don't format it.
4480                   when others then
4481                     null;
4482                 end;
4483             end if ;
4484             hr_utility.set_location(' payroll balance '|| l_rslt_elmt,100 );
4485 
4486           END IF;
4487             --
4488             -- if resulting data element (field) is null, substitute it with
4489             -- default value
4490             --
4491           IF elmt.data_elmt_typ_cd in ('F','R' ,'P' ) and l_rslt_elmt is null then
4492             --
4493             l_rslt_elmt := elmt.dflt_val;
4494             --
4495           END IF;
4496 
4497           ---
4498           --
4499           -- truncate data element
4500           --
4501           IF elmt.max_length_num is not null THEN
4502             --
4503             l_max_len := least (length(l_rslt_elmt),elmt.max_length_num) ;
4504             -- numbers should always trunc from the left
4505             if substr(elmt.frmt_mask_lookup_cd,1,1) = 'N' then
4506               l_rslt_elmt := SUBSTR(l_rslt_elmt, -l_max_len);
4507             else  -- everything else truncs from the right.
4508               l_rslt_elmt := SUBSTR(l_rslt_elmt, 1, elmt.max_length_num);
4509             end if;
4510             hr_utility.set_location(' after  max lenght '|| l_rslt_elmt,100 );
4511             --
4512           END IF;
4513           --
4514           --
4515           -- if data element is mandatory, but l_rslt_elmt is null then
4516           -- exit the procedure, raise detail error
4517           -- exit the record not the person
4518           IF elmt.rqd_flag = 'Y' and (l_rslt_elmt is null) then
4519             --
4520             ben_ext_person.g_elmt_name := g_elmt_name ;
4521             ben_ext_person.g_err_num := 91887;
4522             ben_ext_person.g_err_name := 'BEN_91887_EXT_RQD_DATA_ELMT';
4523             -- raise ben_ext_person.detail_error;
4524             g_rqd_elmt_is_present := 'N' ;
4525             exit ;
4526             --
4527           END IF;
4528           --
4529         g_val_tab(elmt.seq_num) := l_rslt_elmt;
4530         --
4531         --
4532         if p_data_typ_cd = 'C' then  -- changes only extract
4533           --
4534           ben_ext_adv_conditions.chg_evt_incl
4535              (p_ext_data_elmt_in_rcd_id => elmt.ext_data_elmt_in_rcd_id,
4536               p_data_elmt_seq_num => elmt.seq_num,
4537               p_chg_evt_cd => p_chg_evt_cd,
4538               p_exclude_flag => l_exclude_flag);
4539           --
4540           if l_exclude_flag = true then
4541              g_val_tab(elmt.seq_num) := null;
4542           end if;
4543           --
4544         end if;
4545         --
4546       END LOOP;
4547       --
4548       if g_rqd_elmt_is_present = 'Y' then
4549          ben_ext_adv_conditions.data_elmt_in_rcd
4550            (p_ext_rcd_id => l_ext_rcd_id,
4551             p_exclude_this_rcd_flag => l_exclude_this_rcd_flag);
4552          --
4553          if l_exclude_this_rcd_flag = true then
4554             l_write_rcd := 'N';
4555          end if;
4556            --
4557          if l_write_rcd = 'Y' then
4558            ben_ext_adv_conditions.rcd_in_file
4559               (p_ext_rcd_in_file_id => ben_extract.gtt_rcd_typ_vals(i).ext_rcd_in_file_id,
4560                p_sprs_cd => ben_extract.gtt_rcd_typ_vals(i).sprs_cd,
4561                p_exclude_this_rcd_flag => l_exclude_this_rcd_flag);
4562            --
4563            if l_exclude_this_rcd_flag = true then
4564            l_write_rcd := 'N';
4565            end if;
4566            --
4567          end if;
4568          --
4569          if l_write_rcd = 'Y' and p_data_typ_cd = 'C' then -- changes only extract
4570            ben_ext_adv_conditions.chg_evt_incl
4571                 (p_ext_rcd_in_file_id => ben_extract.gtt_rcd_typ_vals(i).ext_rcd_in_file_id,
4572                  p_rcd_seq_num => ben_extract.gtt_rcd_typ_vals(i).seq_num,
4573                  p_chg_evt_cd => p_chg_evt_cd,
4574                  p_exclude_flag => l_exclude_flag);
4575            --
4576            if l_exclude_flag = true then
4577               l_write_rcd := 'N';
4578            end if;
4579          end if;
4580          -- mandatory validation moved from the prevent duplication
4581          if l_write_rcd = 'Y' then
4582             -- check the mandatroy in seq and low level
4583             -- prevent duplication should not have any effect on
4584             -- required flag validation prevent is valdiated because the record is found
4585 
4586             FOR rci IN
4587                ben_extract.gtt_rcd_rqd_vals_seq.FIRST .. ben_extract.gtt_rcd_rqd_vals_seq.LAST
4588                LOOP
4589                --
4590                IF (   ben_extract.gtt_rcd_rqd_vals_seq(rci).low_lvl_cd = p_low_lvl_cd
4591                   and ben_extract.gtt_rcd_rqd_vals_seq(rci).seq_num    = ben_extract.gtt_rcd_typ_vals(i).seq_num
4592                   )
4593                   OR ben_extract.gtt_rcd_rqd_vals_seq(rci).low_lvl_cd = 'NOREQDRCD'
4594                   THEN
4595                   hr_utility.set_location('mandatory found' || p_low_lvl_cd , 99 );
4596                   hr_utility.set_location('mandatory found' || ben_extract.gtt_rcd_typ_vals(i).seq_num , 99 );
4597                   ben_extract.gtt_rcd_rqd_vals_seq(rci).rcd_found := TRUE;
4598                END IF;
4599             END LOOP ;
4600 
4601          end if ;
4602          --
4603 
4604          if l_write_rcd = 'Y' then
4605            ben_ext_adv_conditions.prevent_duplicates
4606              (p_ext_rslt_id => p_ext_rslt_id,
4607               p_person_id => p_person_id,
4608               p_any_or_all_cd => ben_extract.gtt_rcd_typ_vals(i).any_or_all_cd,
4609               p_ext_rcd_id => l_ext_rcd_id,
4610               p_exclude_this_rcd_flag => l_exclude_this_rcd_flag);
4611            --
4612            if l_exclude_this_rcd_flag = true then
4613               l_write_rcd := 'N';
4614            end if;
4615            --
4616          end if;
4617          --
4618          if l_write_rcd = 'Y' then
4619 
4620 
4621             --
4622              -- the following sort routine populates the l_..._sort_val fields
4623              --
4624              ben_ext_sort.main
4625                                (p_ext_rcd_in_file_id         => ben_extract.gtt_rcd_typ_vals(i).ext_rcd_in_file_id,
4626                                 p_sort1_data_elmt_in_rcd_id  => ben_extract.gtt_rcd_typ_vals(i).sort1,
4627                                 p_sort2_data_elmt_in_rcd_id  => ben_extract.gtt_rcd_typ_vals(i).sort2,
4628                                 p_sort3_data_elmt_in_rcd_id  => ben_extract.gtt_rcd_typ_vals(i).sort3,
4629                                 p_sort4_data_elmt_in_rcd_id  => ben_extract.gtt_rcd_typ_vals(i).sort4,
4630                                 p_rcd_seq_num                => ben_extract.gtt_rcd_typ_vals(i).seq_num,
4631                                 p_low_lvl_cd                 => p_low_lvl_cd,
4632 	                        p_prmy_sort_val              => l_prmy_sort_val,
4633                                 p_scnd_sort_val              => l_scnd_sort_val,
4634                                 p_thrd_sort_val              => l_thrd_sort_val);
4635 
4636 
4637             --- if the record is sub header send  space as sorting vale
4638             if  p_rcd_typ_cd = 'S'  then
4639                 l_prmy_sort_val := '   '  ;
4640                 --l_scnd_sort_val := '   '  ;
4641             end if ;
4642 
4643             --
4644             hr_utility.set_location( ' l_chg_rcd_upd_flag ' || p_data_typ_cd || ' / ' || l_chg_rcd_upd_flag, 99 ) ;
4645             l_ext_chg_rcd_mode := 'C' ;
4646             if  p_data_typ_cd  = 'C'  and  l_chg_rcd_upd_flag = 'Y'  then
4647                -- of the record to be sonsoldated for change event extract
4648 
4649                 ben_ext_adv_conditions.chg_rcd_merge
4650                          (p_ext_rslt_dtl_id            =>  l_ext_rslt_dtl_id
4651                          ,p_ext_rslt_id                =>  p_ext_rslt_id
4652                          ,p_ext_rcd_id                 =>  l_ext_rcd_id
4653                          ,p_person_id                  =>  p_person_id
4654                          ,p_business_group_id          =>  p_business_group_id
4655                          ,p_val_01                     =>  g_val_tab(1)
4656                          ,p_val_02                     =>  g_val_tab(2)
4657                          ,p_val_03                     =>  g_val_tab(3)
4658                          ,p_val_04                     =>  g_val_tab(4)
4659                          ,p_val_05                     =>  g_val_tab(5)
4660                          ,p_val_06                     =>  g_val_tab(6)
4661                          ,p_val_07                     =>  g_val_tab(7)
4662                          ,p_val_08                     =>  g_val_tab(8)
4663                          ,p_val_09                     =>  g_val_tab(9)
4664                          ,p_val_10                     =>  g_val_tab(10)
4665                          ,p_val_11                     =>  g_val_tab(11)
4666                          ,p_val_12                     =>  g_val_tab(12)
4667                          ,p_val_13                     =>  g_val_tab(13)
4668                          ,p_val_14                     =>  g_val_tab(14)
4669                          ,p_val_15                     =>  g_val_tab(15)
4670                          ,p_val_16                     =>  g_val_tab(16)
4671                          ,p_val_17                     =>  g_val_tab(17)
4672                          ,p_val_18                     =>  g_val_tab(18)
4673                          ,p_val_19                     =>  g_val_tab(19)
4674                          ,p_val_20                     =>  g_val_tab(20)
4675                          ,p_val_21                     =>  g_val_tab(21)
4676                          ,p_val_22                     =>  g_val_tab(22)
4677                          ,p_val_23                     =>  g_val_tab(23)
4678                          ,p_val_24                     =>  g_val_tab(24)
4679                          ,p_val_25                     =>  g_val_tab(25)
4680                          ,p_val_26                     =>  g_val_tab(26)
4681                          ,p_val_27                     =>  g_val_tab(27)
4682                          ,p_val_28                     =>  g_val_tab(28)
4683                          ,p_val_29                     =>  g_val_tab(29)
4684                          ,p_val_30                     =>  g_val_tab(30)
4685                          ,p_val_31                     =>  g_val_tab(31)
4686                          ,p_val_32                     =>  g_val_tab(32)
4687                          ,p_val_33                     =>  g_val_tab(33)
4688                          ,p_val_34                     =>  g_val_tab(34)
4689                          ,p_val_35                     =>  g_val_tab(35)
4690                          ,p_val_36                     =>  g_val_tab(36)
4691                          ,p_val_37                     =>  g_val_tab(37)
4692                          ,p_val_38                     =>  g_val_tab(38)
4693                          ,p_val_39                     =>  g_val_tab(39)
4694                          ,p_val_40                     =>  g_val_tab(40)
4695                          ,p_val_41                     =>  g_val_tab(41)
4696                          ,p_val_42                     =>  g_val_tab(42)
4697                          ,p_val_43                     =>  g_val_tab(43)
4698                          ,p_val_44                     =>  g_val_tab(44)
4699                          ,p_val_45                     =>  g_val_tab(45)
4700                          ,p_val_46                     =>  g_val_tab(46)
4701                          ,p_val_47                     =>  g_val_tab(47)
4702                          ,p_val_48                     =>  g_val_tab(48)
4703                          ,p_val_49                     =>  g_val_tab(49)
4704                          ,p_val_50                     =>  g_val_tab(50)
4705                          ,p_val_51                     =>  g_val_tab(51)
4706                          ,p_val_52                     =>  g_val_tab(52)
4707                          ,p_val_53                     =>  g_val_tab(53)
4708                          ,p_val_54                     =>  g_val_tab(54)
4709                          ,p_val_55                     =>  g_val_tab(55)
4710                          ,p_val_56                     =>  g_val_tab(56)
4711                          ,p_val_57                     =>  g_val_tab(57)
4712                          ,p_val_58                     =>  g_val_tab(58)
4713                          ,p_val_59                     =>  g_val_tab(59)
4714                          ,p_val_60                     =>  g_val_tab(60)
4715                          ,p_val_61                     =>  g_val_tab(61)
4716                          ,p_val_62                     =>  g_val_tab(62)
4717                          ,p_val_63                     =>  g_val_tab(63)
4718                          ,p_val_64                     =>  g_val_tab(64)
4719                          ,p_val_65                     =>  g_val_tab(65)
4720                          ,p_val_66                     =>  g_val_tab(66)
4721                          ,p_val_67                     =>  g_val_tab(67)
4722                          ,p_val_68                     =>  g_val_tab(68)
4723                          ,p_val_69                     =>  g_val_tab(69)
4724                          ,p_val_70                     =>  g_val_tab(70)
4725                          ,p_val_71                     =>  g_val_tab(71)
4726                          ,p_val_72                     =>  g_val_tab(72)
4727                          ,p_val_73                     =>  g_val_tab(73)
4728                          ,p_val_74                     =>  g_val_tab(74)
4729                          ,p_val_75                     =>  g_val_tab(75)
4730                          ,p_val_76                     =>  g_val_tab(76)
4731                          ,p_val_77                     =>  g_val_tab(77)
4732                          ,p_val_78                     =>  g_val_tab(78)
4733                          ,p_val_79                     =>  g_val_tab(79)
4734                          ,p_val_80                     =>  g_val_tab(80)
4735                          ,p_val_81                     =>  g_val_tab(81)
4736                          ,p_val_82                     =>  g_val_tab(82)
4737                          ,p_val_83                     =>  g_val_tab(83)
4738                          ,p_val_84                     =>  g_val_tab(84)
4739                          ,p_val_85                     =>  g_val_tab(85)
4740                          ,p_val_86                     =>  g_val_tab(86)
4741                          ,p_val_87                     =>  g_val_tab(87)
4742                          ,p_val_88                     =>  g_val_tab(88)
4743                          ,p_val_89                     =>  g_val_tab(89)
4744                          ,p_val_90                     =>  g_val_tab(90)
4745                          ,p_val_91                     =>  g_val_tab(91)
4746                          ,p_val_92                     =>  g_val_tab(92)
4747                          ,p_val_93                     =>  g_val_tab(93)
4748                          ,p_val_94                     =>  g_val_tab(94)
4749                          ,p_val_95                     =>  g_val_tab(95)
4750                          ,p_val_96                     =>  g_val_tab(96)
4751                          ,p_val_97                     =>  g_val_tab(97)
4752                          ,p_val_98                     =>  g_val_tab(98)
4753                          ,p_val_99                     =>  g_val_tab(99)
4754                          ,p_val_100                    =>  g_val_tab(100)
4755                          ,p_val_101                    =>  g_val_tab(101)
4756                          ,p_val_102                    =>  g_val_tab(102)
4757                          ,p_val_103                    =>  g_val_tab(103)
4758                          ,p_val_104                    =>  g_val_tab(104)
4759                          ,p_val_105                    =>  g_val_tab(105)
4760                          ,p_val_106                    =>  g_val_tab(106)
4761                          ,p_val_107                    =>  g_val_tab(107)
4762                          ,p_val_108                    =>  g_val_tab(108)
4763                          ,p_val_109                    =>  g_val_tab(109)
4764                          ,p_val_110                    =>  g_val_tab(110)
4765                          ,p_val_111                    =>  g_val_tab(111)
4766                          ,p_val_112                    =>  g_val_tab(112)
4767                          ,p_val_113                    =>  g_val_tab(113)
4768                          ,p_val_114                    =>  g_val_tab(114)
4769                          ,p_val_115                    =>  g_val_tab(115)
4770                          ,p_val_116                    =>  g_val_tab(116)
4771                          ,p_val_117                    =>  g_val_tab(117)
4772                          ,p_val_118                    =>  g_val_tab(118)
4773                          ,p_val_119                    =>  g_val_tab(119)
4774                          ,p_val_120                    =>  g_val_tab(120)
4775                          ,p_val_121                    =>  g_val_tab(121)
4776                          ,p_val_122                    =>  g_val_tab(122)
4777                          ,p_val_123                    =>  g_val_tab(123)
4778                          ,p_val_124                    =>  g_val_tab(124)
4779                          ,p_val_125                    => g_val_tab(125)
4780                          ,p_val_126                    =>  g_val_tab(126)
4781                          ,p_val_127                    =>  g_val_tab(127)
4782                          ,p_val_128                    =>  g_val_tab(128)
4783                          ,p_val_129                    =>  g_val_tab(129)
4784                          ,p_val_130                    =>  g_val_tab(130)
4785                          ,p_val_131                    =>  g_val_tab(131)
4786                          ,p_val_132                    =>  g_val_tab(132)
4787                          ,p_val_133                    =>  g_val_tab(133)
4788                          ,p_val_134                    =>  g_val_tab(134)
4789                          ,p_val_135                    =>  g_val_tab(135)
4790                          ,p_val_136                    =>  g_val_tab(136)
4791                          ,p_val_137                    =>  g_val_tab(137)
4792                          ,p_val_138                    =>  g_val_tab(138)
4793                          ,p_val_139                    =>  g_val_tab(139)
4794                          ,p_val_140                    =>  g_val_tab(140)
4795                          ,p_val_141                    =>  g_val_tab(141)
4796                          ,p_val_142                    =>  g_val_tab(142)
4797                          ,p_val_143                    =>  g_val_tab(143)
4798                          ,p_val_144                    =>  g_val_tab(144)
4799                          ,p_val_145                    =>  g_val_tab(145)
4800                          ,p_val_146                    =>  g_val_tab(146)
4801                          ,p_val_147                    =>  g_val_tab(147)
4802                          ,p_val_148                    =>  g_val_tab(148)
4803                          ,p_val_149                    =>  g_val_tab(149)
4804                          ,p_val_150                    =>  g_val_tab(150)
4805                          ,p_val_151                    =>  g_val_tab(151)
4806                          ,p_val_152                    =>  g_val_tab(152)
4807                          ,p_val_153                    =>  g_val_tab(153)
4808                          ,p_val_154                    =>  g_val_tab(154)
4809                          ,p_val_155                    =>  g_val_tab(155)
4810                          ,p_val_156                    =>  g_val_tab(156)
4811                          ,p_val_157                    =>  g_val_tab(157)
4812                          ,p_val_158                    =>  g_val_tab(158)
4813                          ,p_val_159                    =>  g_val_tab(159)
4814                          ,p_val_160                    =>  g_val_tab(160)
4815                          ,p_val_161                    =>  g_val_tab(161)
4816                          ,p_val_162                    =>  g_val_tab(162)
4817                          ,p_val_163                    =>  g_val_tab(163)
4818                          ,p_val_164                    =>  g_val_tab(164)
4819                          ,p_val_165                    =>  g_val_tab(165)
4820                          ,p_val_166                    =>  g_val_tab(166)
4821                          ,p_val_167                    =>  g_val_tab(167)
4822                          ,p_val_168                    =>  g_val_tab(168)
4823                          ,p_val_169                    => g_val_tab(169)
4824                          ,p_val_170                    =>  g_val_tab(170)
4825                          ,p_val_171                    =>  g_val_tab(171)
4826                          ,p_val_172                    =>  g_val_tab(172)
4827                          ,p_val_173                    =>  g_val_tab(173)
4828                          ,p_val_174                    =>  g_val_tab(174)
4829                          ,p_val_175                    =>  g_val_tab(175)
4830                          ,p_val_176                    =>  g_val_tab(176)
4831                          ,p_val_177                    =>  g_val_tab(177)
4832                          ,p_val_178                    =>  g_val_tab(178)
4833                          ,p_val_179                    =>  g_val_tab(179)
4834                          ,p_val_180                    =>  g_val_tab(180)
4835                          ,p_val_181                    =>  g_val_tab(181)
4836                          ,p_val_182                    =>  g_val_tab(182)
4837                          ,p_val_183                    =>  g_val_tab(183)
4838                          ,p_val_184                    =>  g_val_tab(184)
4839                          ,p_val_185                    =>  g_val_tab(185)
4840                          ,p_val_186                    =>  g_val_tab(186)
4841                          ,p_val_187                    =>  g_val_tab(187)
4842                          ,p_val_188                    =>  g_val_tab(188)
4843                          ,p_val_189                    =>  g_val_tab(189)
4844                          ,p_val_190                    =>  g_val_tab(190)
4845                          ,p_val_191                    =>  g_val_tab(191)
4846                          ,p_val_192                    =>  g_val_tab(192)
4847                          ,p_val_193                    =>  g_val_tab(193)
4848                          ,p_val_194                    =>  g_val_tab(194)
4849                          ,p_val_195                    => g_val_tab(195)
4850                          ,p_val_196                    =>  g_val_tab(196)
4851                          ,p_val_197                    =>  g_val_tab(197)
4852                          ,p_val_198                    =>  g_val_tab(198)
4853                          ,p_val_199                    =>  g_val_tab(199)
4854                          ,p_val_200                    =>  g_val_tab(200)
4855                          ,p_val_201                    =>  g_val_tab(201)
4856                          ,p_val_202                    =>  g_val_tab(202)
4857                          ,p_val_203                    =>  g_val_tab(203)
4858                          ,p_val_204                    =>  g_val_tab(204)
4859                          ,p_val_205                    =>  g_val_tab(205)
4860                          ,p_val_206                    =>  g_val_tab(206)
4861                          ,p_val_207                    =>  g_val_tab(207)
4862                          ,p_val_208                    =>  g_val_tab(208)
4863                          ,p_val_209                    =>  g_val_tab(209)
4864                          ,p_val_210                    =>  g_val_tab(210)
4865                          ,p_val_211                    =>  g_val_tab(211)
4866                          ,p_val_212                    =>  g_val_tab(212)
4867                          ,p_val_213                    =>  g_val_tab(213)
4868                          ,p_val_214                    =>  g_val_tab(214)
4869                          ,p_val_215                    =>  g_val_tab(215)
4870                          ,p_val_216                    =>  g_val_tab(216)
4871                          ,p_val_217                    =>  g_val_tab(217)
4872                          ,p_val_218                    =>  g_val_tab(218)
4873                          ,p_val_219                    =>  g_val_tab(219)
4874                          ,p_val_220                    =>  g_val_tab(220)
4875                          ,p_val_221                    =>  g_val_tab(221)
4876                          ,p_val_222                    =>  g_val_tab(222)
4877                          ,p_val_223                    =>  g_val_tab(223)
4878                          ,p_val_224                    =>  g_val_tab(224)
4879                          ,p_val_225                    =>  g_val_tab(225)
4880                          ,p_val_226                    =>  g_val_tab(226)
4881                          ,p_val_227                    =>  g_val_tab(227)
4882                          ,p_val_228                    =>  g_val_tab(228)
4883                          ,p_val_229                    =>  g_val_tab(229)
4884                          ,p_val_230                    =>  g_val_tab(230)
4885                          ,p_val_231                    =>  g_val_tab(231)
4886                          ,p_val_232                    =>  g_val_tab(232)
4887                          ,p_val_233                    =>  g_val_tab(233)
4888                          ,p_val_234                    =>  g_val_tab(234)
4889                          ,p_val_235                    =>  g_val_tab(235)
4890                          ,p_val_236                    =>  g_val_tab(236)
4891                          ,p_val_237                    =>  g_val_tab(237)
4892                          ,p_val_238                    =>  g_val_tab(238)
4893                          ,p_val_239                    =>  g_val_tab(239)
4894                          ,p_val_240                    =>  g_val_tab(240)
4895                          ,p_val_241                    =>  g_val_tab(241)
4896                          ,p_val_242                    =>  g_val_tab(242)
4897                          ,p_val_243                    =>  g_val_tab(243)
4898                          ,p_val_244                    =>  g_val_tab(244)
4899                          ,p_val_245                    =>  g_val_tab(245)
4900                          ,p_val_246                    =>  g_val_tab(246)
4901                          ,p_val_247                    =>  g_val_tab(247)
4902                          ,p_val_248                    =>  g_val_tab(248)
4903                          ,p_val_249                    =>  g_val_tab(249)
4904                          ,p_val_250                    =>  g_val_tab(250)
4905                          ,p_val_251                    =>  g_val_tab(251)
4906                          ,p_val_252                    =>  g_val_tab(252)
4907                          ,p_val_253                    =>  g_val_tab(253)
4908                          ,p_val_254                    =>  g_val_tab(254)
4909                          ,p_val_255                    =>  g_val_tab(255)
4910                          ,p_val_256                    =>  g_val_tab(256)
4911                          ,p_val_257                    =>  g_val_tab(257)
4912                          ,p_val_258                    =>  g_val_tab(258)
4913                          ,p_val_259                    =>  g_val_tab(259)
4914                          ,p_val_260                    =>  g_val_tab(260)
4915                          ,p_val_261                    =>  g_val_tab(261)
4916                          ,p_val_262                    =>  g_val_tab(262)
4917                          ,p_val_263                    =>  g_val_tab(263)
4918                          ,p_val_264                    =>  g_val_tab(264)
4919                          ,p_val_265                    =>  g_val_tab(265)
4920                          ,p_val_266                    =>  g_val_tab(266)
4921                          ,p_val_267                    =>  g_val_tab(267)
4922                          ,p_val_268                    =>  g_val_tab(268)
4923                          ,p_val_269                    =>  g_val_tab(269)
4924                          ,p_val_270                    =>  g_val_tab(270)
4925                          ,p_val_271                    =>  g_val_tab(271)
4926                          ,p_val_272                    =>  g_val_tab(272)
4927                          ,p_val_273                    =>  g_val_tab(273)
4928                          ,p_val_274                    =>  g_val_tab(274)
4929                          ,p_val_275                    =>  g_val_tab(275)
4930                          ,p_val_276                    =>  g_val_tab(276)
4931                          ,p_val_277                    =>  g_val_tab(277)
4932                          ,p_val_278                    =>  g_val_tab(278)
4933                          ,p_val_279                    =>  g_val_tab(279)
4934                          ,p_val_280                    =>  g_val_tab(280)
4935                          ,p_val_281                    =>  g_val_tab(281)
4936                          ,p_val_282                    =>  g_val_tab(282)
4937                          ,p_val_283                    =>  g_val_tab(283)
4938                          ,p_val_284                    =>  g_val_tab(284)
4939                          ,p_val_285                    =>  g_val_tab(285)
4940                          ,p_val_286                    =>  g_val_tab(286)
4941                          ,p_val_287                    =>  g_val_tab(287)
4942                          ,p_val_288                    =>  g_val_tab(288)
4943                          ,p_val_289                    =>  g_val_tab(289)
4944                          ,p_val_290                    =>  g_val_tab(290)
4945                          ,p_val_291                    =>  g_val_tab(291)
4946                          ,p_val_292                    =>  g_val_tab(292)
4947                          ,p_val_293                    =>  g_val_tab(293)
4948                          ,p_val_294                    =>  g_val_tab(294)
4949                          ,p_val_295                    =>  g_val_tab(295)
4950                          ,p_val_296                    =>  g_val_tab(296)
4951                          ,p_val_297                    =>  g_val_tab(297)
4952                          ,p_val_298                    =>  g_val_tab(298)
4953                          ,p_val_299                    =>  g_val_tab(299)
4954                          ,p_val_300                    =>  g_val_tab(300)
4955                          ,p_object_version_number      =>  l_object_version_number
4956                          ,p_ext_chg_rcd_mode           =>  l_ext_chg_rcd_mode
4957                          ,p_ext_rcd_in_file_id         =>  l_ext_rcd_in_file_id
4958                         );
4959                hr_utility.set_location(' Mode ' || l_ext_chg_rcd_mode,99 ) ;
4960             end if ;
4961 
4962             -- if change extract and update flag defined and mode is update then
4963             if  p_data_typ_cd  = 'C'  and  l_chg_rcd_upd_flag = 'Y'  and  l_ext_chg_rcd_mode = 'U' then
4964 
4965                   ben_ext_rslt_dtl_api.update_ext_rslt_dtl
4966                                 (p_validate                   =>  false
4967                                 ,p_ext_rslt_dtl_id            =>  l_ext_rslt_dtl_id
4968                                 ,p_ext_rslt_id                =>  p_ext_rslt_id
4969                                 ,p_ext_rcd_id                 =>  l_ext_rcd_id
4970                                 ,p_person_id                  =>  p_person_id
4971                                 ,p_business_group_id          =>  p_business_group_id
4972                                 ,p_val_01                     =>  g_val_tab(1)
4973                                 ,p_val_02                     =>  g_val_tab(2)
4974                                 ,p_val_03                     =>  g_val_tab(3)
4975                                 ,p_val_04                     =>  g_val_tab(4)
4976                                 ,p_val_05                     =>  g_val_tab(5)
4977                                 ,p_val_06                     =>  g_val_tab(6)
4978                                 ,p_val_07                     =>  g_val_tab(7)
4979                                 ,p_val_08                     =>  g_val_tab(8)
4980                                 ,p_val_09                     =>  g_val_tab(9)
4981                                 ,p_val_10                     =>  g_val_tab(10)
4982                                 ,p_val_11                     =>  g_val_tab(11)
4983                                 ,p_val_12                     =>  g_val_tab(12)
4984                                 ,p_val_13                     =>  g_val_tab(13)
4985                                 ,p_val_14                     =>  g_val_tab(14)
4986                                 ,p_val_15                     =>  g_val_tab(15)
4987                                 ,p_val_16                     =>  g_val_tab(16)
4988                                 ,p_val_17                     =>  g_val_tab(17)
4989                                 ,p_val_18                     =>  g_val_tab(18)
4990                                 ,p_val_19                     =>  g_val_tab(19)
4991                                 ,p_val_20                     =>  g_val_tab(20)
4992                                 ,p_val_21                     =>  g_val_tab(21)
4993                                 ,p_val_22                     =>  g_val_tab(22)
4994                                 ,p_val_23                     =>  g_val_tab(23)
4995                                 ,p_val_24                     =>  g_val_tab(24)
4996                                 ,p_val_25                     =>  g_val_tab(25)
4997                                 ,p_val_26                     =>  g_val_tab(26)
4998                                 ,p_val_27                     =>  g_val_tab(27)
4999                                 ,p_val_28                     =>  g_val_tab(28)
5000                                 ,p_val_29                     =>  g_val_tab(29)
5001                                 ,p_val_30                     =>  g_val_tab(30)
5002                                 ,p_val_31                     =>  g_val_tab(31)
5003                                 ,p_val_32                     =>  g_val_tab(32)
5004                                 ,p_val_33                     =>  g_val_tab(33)
5005                                 ,p_val_34                     =>  g_val_tab(34)
5006                                 ,p_val_35                     =>  g_val_tab(35)
5007                                 ,p_val_36                     =>  g_val_tab(36)
5008                                 ,p_val_37                     =>  g_val_tab(37)
5009                                 ,p_val_38                     =>  g_val_tab(38)
5010                                 ,p_val_39                     =>  g_val_tab(39)
5011                                 ,p_val_40                     =>  g_val_tab(40)
5012                                 ,p_val_41                     =>  g_val_tab(41)
5013                                 ,p_val_42                     =>  g_val_tab(42)
5014                                 ,p_val_43                     =>  g_val_tab(43)
5015                                 ,p_val_44                     =>  g_val_tab(44)
5016                                 ,p_val_45                     =>  g_val_tab(45)
5017                                 ,p_val_46                     =>  g_val_tab(46)
5018                                 ,p_val_47                     =>  g_val_tab(47)
5019                                 ,p_val_48                     =>  g_val_tab(48)
5020                                 ,p_val_49                     =>  g_val_tab(49)
5021                                 ,p_val_50                     =>  g_val_tab(50)
5022                                 ,p_val_51                     =>  g_val_tab(51)
5023                                 ,p_val_52                     =>  g_val_tab(52)
5024                                 ,p_val_53                     =>  g_val_tab(53)
5025                                 ,p_val_54                     =>  g_val_tab(54)
5026                                 ,p_val_55                     =>  g_val_tab(55)
5027                                 ,p_val_56                     =>  g_val_tab(56)
5028                                 ,p_val_57                     =>  g_val_tab(57)
5029                                 ,p_val_58                     =>  g_val_tab(58)
5030                                 ,p_val_59                     =>  g_val_tab(59)
5031                                 ,p_val_60                     =>  g_val_tab(60)
5032                                 ,p_val_61                     =>  g_val_tab(61)
5033                                 ,p_val_62                     =>  g_val_tab(62)
5034                                 ,p_val_63                     =>  g_val_tab(63)
5035                                 ,p_val_64                     =>  g_val_tab(64)
5036                                 ,p_val_65                     =>  g_val_tab(65)
5037                                 ,p_val_66                     =>  g_val_tab(66)
5038                                 ,p_val_67                     =>  g_val_tab(67)
5039                                 ,p_val_68                     =>  g_val_tab(68)
5040                                 ,p_val_69                     =>  g_val_tab(69)
5041                                 ,p_val_70                     =>  g_val_tab(70)
5042                                 ,p_val_71                     =>  g_val_tab(71)
5043                                 ,p_val_72                     =>  g_val_tab(72)
5044                                 ,p_val_73                     =>  g_val_tab(73)
5045                                 ,p_val_74                     =>  g_val_tab(74)
5046                                 ,p_val_75                     =>  g_val_tab(75)
5047                                 ,p_val_76                     =>  g_val_tab(76)
5048                                 ,p_val_77                     =>  g_val_tab(77)
5049                                 ,p_val_78                     =>  g_val_tab(78)
5050                                 ,p_val_79                     =>  g_val_tab(79)
5051                                 ,p_val_80                     =>  g_val_tab(80)
5052                                 ,p_val_81                     =>  g_val_tab(81)
5053                                 ,p_val_82                     =>  g_val_tab(82)
5054                                 ,p_val_83                     =>  g_val_tab(83)
5055                                 ,p_val_84                     =>  g_val_tab(84)
5056                                 ,p_val_85                     =>  g_val_tab(85)
5057                                 ,p_val_86                     =>  g_val_tab(86)
5058                                 ,p_val_87                     =>  g_val_tab(87)
5059                                 ,p_val_88                     =>  g_val_tab(88)
5060                                 ,p_val_89                     =>  g_val_tab(89)
5061                                 ,p_val_90                     =>  g_val_tab(90)
5062                                 ,p_val_91                     =>  g_val_tab(91)
5063                                 ,p_val_92                     =>  g_val_tab(92)
5064                                 ,p_val_93                     =>  g_val_tab(93)
5065                                 ,p_val_94                     =>  g_val_tab(94)
5066                                 ,p_val_95                     =>  g_val_tab(95)
5067                                 ,p_val_96                     =>  g_val_tab(96)
5068                                 ,p_val_97                     =>  g_val_tab(97)
5069                                 ,p_val_98                     =>  g_val_tab(98)
5070                                 ,p_val_99                     =>  g_val_tab(99)
5071                                 ,p_val_100                    =>  g_val_tab(100)
5072                                 ,p_val_101                    =>  g_val_tab(101)
5073                                 ,p_val_102                    =>  g_val_tab(102)
5074                                 ,p_val_103                    =>  g_val_tab(103)
5075                                 ,p_val_104                    =>  g_val_tab(104)
5076                                 ,p_val_105                    =>  g_val_tab(105)
5077                                 ,p_val_106                    =>  g_val_tab(106)
5078                                 ,p_val_107                    =>  g_val_tab(107)
5079                                 ,p_val_108                    =>  g_val_tab(108)
5080                                 ,p_val_109                    =>  g_val_tab(109)
5081                                 ,p_val_110                    =>  g_val_tab(110)
5082                                 ,p_val_111                    =>  g_val_tab(111)
5083                                 ,p_val_112                    =>  g_val_tab(112)
5084                                 ,p_val_113                    =>  g_val_tab(113)
5085                                 ,p_val_114                    =>  g_val_tab(114)
5086                                 ,p_val_115                    =>  g_val_tab(115)
5087                                 ,p_val_116                    =>  g_val_tab(116)
5088                                 ,p_val_117                    =>  g_val_tab(117)
5089                                 ,p_val_118                    =>  g_val_tab(118)
5090                                 ,p_val_119                    =>  g_val_tab(119)
5091                                 ,p_val_120                    =>  g_val_tab(120)
5092                                 ,p_val_121                    =>  g_val_tab(121)
5093                                 ,p_val_122                    =>  g_val_tab(122)
5094                                 ,p_val_123                    =>  g_val_tab(123)
5095                                 ,p_val_124                    =>  g_val_tab(124)
5096                                 ,p_val_125                    => g_val_tab(125)
5097                                 ,p_val_126                    =>  g_val_tab(126)
5098                                 ,p_val_127                    =>  g_val_tab(127)
5099                                 ,p_val_128                    =>  g_val_tab(128)
5100                                 ,p_val_129                    =>  g_val_tab(129)
5101                                 ,p_val_130                    =>  g_val_tab(130)
5102                                 ,p_val_131                    =>  g_val_tab(131)
5103                                 ,p_val_132                    =>  g_val_tab(132)
5104                                 ,p_val_133                    =>  g_val_tab(133)
5105                                 ,p_val_134                    =>  g_val_tab(134)
5106                                 ,p_val_135                    =>  g_val_tab(135)
5107                                 ,p_val_136                    =>  g_val_tab(136)
5108                                 ,p_val_137                    =>  g_val_tab(137)
5109                                 ,p_val_138                    =>  g_val_tab(138)
5110                                 ,p_val_139                    =>  g_val_tab(139)
5111                                 ,p_val_140                    =>  g_val_tab(140)
5112                                 ,p_val_141                    =>  g_val_tab(141)
5113                                 ,p_val_142                    =>  g_val_tab(142)
5114                                 ,p_val_143                    =>  g_val_tab(143)
5115                                 ,p_val_144                    =>  g_val_tab(144)
5116                                 ,p_val_145                    =>  g_val_tab(145)
5117                                 ,p_val_146                    =>  g_val_tab(146)
5118                                 ,p_val_147                    =>  g_val_tab(147)
5119                                 ,p_val_148                    =>  g_val_tab(148)
5120                                 ,p_val_149                    =>  g_val_tab(149)
5121                                 ,p_val_150                    =>  g_val_tab(150)
5122                                 ,p_val_151                    =>  g_val_tab(151)
5123                                 ,p_val_152                    =>  g_val_tab(152)
5124                                 ,p_val_153                    =>  g_val_tab(153)
5125                                 ,p_val_154                    =>  g_val_tab(154)
5126                                 ,p_val_155                    =>  g_val_tab(155)
5127                                 ,p_val_156                    =>  g_val_tab(156)
5128                                 ,p_val_157                    =>  g_val_tab(157)
5129                                 ,p_val_158                    =>  g_val_tab(158)
5130                                 ,p_val_159                    =>  g_val_tab(159)
5131                                 ,p_val_160                    =>  g_val_tab(160)
5132                                 ,p_val_161                    =>  g_val_tab(161)
5133                                 ,p_val_162                    =>  g_val_tab(162)
5134                                 ,p_val_163                    =>  g_val_tab(163)
5135                                 ,p_val_164                    =>  g_val_tab(164)
5136                                 ,p_val_165                    =>  g_val_tab(165)
5137                                 ,p_val_166                    =>  g_val_tab(166)
5138                                 ,p_val_167                    =>  g_val_tab(167)
5139                                 ,p_val_168                    =>  g_val_tab(168)
5140                                 ,p_val_169                    => g_val_tab(169)
5141                                 ,p_val_170                    =>  g_val_tab(170)
5142                                 ,p_val_171                    =>  g_val_tab(171)
5143                                 ,p_val_172                    =>  g_val_tab(172)
5144                                 ,p_val_173                    =>  g_val_tab(173)
5145                                 ,p_val_174                    =>  g_val_tab(174)
5146                                 ,p_val_175                    =>  g_val_tab(175)
5147                                 ,p_val_176                    =>  g_val_tab(176)
5148                                 ,p_val_177                    =>  g_val_tab(177)
5149                                 ,p_val_178                    =>  g_val_tab(178)
5150                                 ,p_val_179                    =>  g_val_tab(179)
5151                                 ,p_val_180                    =>  g_val_tab(180)
5152                                 ,p_val_181                    =>  g_val_tab(181)
5153                                 ,p_val_182                    =>  g_val_tab(182)
5154                                 ,p_val_183                    =>  g_val_tab(183)
5155                                 ,p_val_184                    =>  g_val_tab(184)
5156                                 ,p_val_185                    =>  g_val_tab(185)
5157                                 ,p_val_186                    =>  g_val_tab(186)
5158                                 ,p_val_187                    =>  g_val_tab(187)
5159                                 ,p_val_188                    =>  g_val_tab(188)
5160                                 ,p_val_189                    =>  g_val_tab(189)
5161                                 ,p_val_190                    =>  g_val_tab(190)
5162                                 ,p_val_191                    =>  g_val_tab(191)
5163                                 ,p_val_192                    =>  g_val_tab(192)
5164                                 ,p_val_193                    =>  g_val_tab(193)
5165                                 ,p_val_194                    =>  g_val_tab(194)
5166                                 ,p_val_195                    => g_val_tab(195)
5167                                 ,p_val_196                    =>  g_val_tab(196)
5168                                 ,p_val_197                    =>  g_val_tab(197)
5169                                 ,p_val_198                    =>  g_val_tab(198)
5170                                 ,p_val_199                    =>  g_val_tab(199)
5171                                 ,p_val_200                    =>  g_val_tab(200)
5172                                 ,p_val_201                    =>  g_val_tab(201)
5173                                 ,p_val_202                    =>  g_val_tab(202)
5174                                 ,p_val_203                    =>  g_val_tab(203)
5175                                 ,p_val_204                    =>  g_val_tab(204)
5176                                 ,p_val_205                    =>  g_val_tab(205)
5177                                 ,p_val_206                    =>  g_val_tab(206)
5178                                 ,p_val_207                    =>  g_val_tab(207)
5179                                 ,p_val_208                    =>  g_val_tab(208)
5180                                 ,p_val_209                    =>  g_val_tab(209)
5181                                 ,p_val_210                    =>  g_val_tab(210)
5182                                 ,p_val_211                    =>  g_val_tab(211)
5183                                 ,p_val_212                    =>  g_val_tab(212)
5184                                 ,p_val_213                    =>  g_val_tab(213)
5185                                 ,p_val_214                    =>  g_val_tab(214)
5186                                 ,p_val_215                    =>  g_val_tab(215)
5187                                 ,p_val_216                    =>  g_val_tab(216)
5188                                 ,p_val_217                    =>  g_val_tab(217)
5189                                 ,p_val_218                    =>  g_val_tab(218)
5190                                 ,p_val_219                    =>  g_val_tab(219)
5191                                 ,p_val_220                    =>  g_val_tab(220)
5192                                 ,p_val_221                    =>  g_val_tab(221)
5193                                 ,p_val_222                    =>  g_val_tab(222)
5194                                 ,p_val_223                    =>  g_val_tab(223)
5195                                 ,p_val_224                    =>  g_val_tab(224)
5196                                 ,p_val_225                    =>  g_val_tab(225)
5197                                 ,p_val_226                    =>  g_val_tab(226)
5198                                 ,p_val_227                    =>  g_val_tab(227)
5199                                 ,p_val_228                    =>  g_val_tab(228)
5200                                 ,p_val_229                    =>  g_val_tab(229)
5201                                 ,p_val_230                    =>  g_val_tab(230)
5202                                 ,p_val_231                    =>  g_val_tab(231)
5203                                 ,p_val_232                    =>  g_val_tab(232)
5204                                 ,p_val_233                    =>  g_val_tab(233)
5205                                 ,p_val_234                    =>  g_val_tab(234)
5206                                 ,p_val_235                    =>  g_val_tab(235)
5207                                 ,p_val_236                    =>  g_val_tab(236)
5208                                 ,p_val_237                    =>  g_val_tab(237)
5209                                 ,p_val_238                    =>  g_val_tab(238)
5210                                 ,p_val_239                    =>  g_val_tab(239)
5211                                 ,p_val_240                    =>  g_val_tab(240)
5212                                 ,p_val_241                    =>  g_val_tab(241)
5213                                 ,p_val_242                    =>  g_val_tab(242)
5214                                 ,p_val_243                    =>  g_val_tab(243)
5215                                 ,p_val_244                    =>  g_val_tab(244)
5216                                 ,p_val_245                    =>  g_val_tab(245)
5217                                 ,p_val_246                    =>  g_val_tab(246)
5218                                 ,p_val_247                    =>  g_val_tab(247)
5219                                 ,p_val_248                    =>  g_val_tab(248)
5220                                 ,p_val_249                    =>  g_val_tab(249)
5221                                 ,p_val_250                    =>  g_val_tab(250)
5222                                 ,p_val_251                    =>  g_val_tab(251)
5223                                 ,p_val_252                    =>  g_val_tab(252)
5224                                 ,p_val_253                    =>  g_val_tab(253)
5225                                 ,p_val_254                    =>  g_val_tab(254)
5226                                 ,p_val_255                    =>  g_val_tab(255)
5227                                 ,p_val_256                    =>  g_val_tab(256)
5228                                 ,p_val_257                    =>  g_val_tab(257)
5229                                 ,p_val_258                    =>  g_val_tab(258)
5230                                 ,p_val_259                    =>  g_val_tab(259)
5231                                 ,p_val_260                    =>  g_val_tab(260)
5232                                 ,p_val_261                    =>  g_val_tab(261)
5233                                 ,p_val_262                    =>  g_val_tab(262)
5234                                 ,p_val_263                    =>  g_val_tab(263)
5235                                 ,p_val_264                    =>  g_val_tab(264)
5236                                 ,p_val_265                    =>  g_val_tab(265)
5237                                 ,p_val_266                    =>  g_val_tab(266)
5238                                 ,p_val_267                    =>  g_val_tab(267)
5239                                 ,p_val_268                    =>  g_val_tab(268)
5240                                 ,p_val_269                    =>  g_val_tab(269)
5241                                 ,p_val_270                    =>  g_val_tab(270)
5242                                 ,p_val_271                    =>  g_val_tab(271)
5243                                 ,p_val_272                    =>  g_val_tab(272)
5244                                 ,p_val_273                    =>  g_val_tab(273)
5245                                 ,p_val_274                    =>  g_val_tab(274)
5246                                 ,p_val_275                    =>  g_val_tab(275)
5247                                 ,p_val_276                    =>  g_val_tab(276)
5248                                 ,p_val_277                    =>  g_val_tab(277)
5249                                 ,p_val_278                    =>  g_val_tab(278)
5250                                 ,p_val_279                    =>  g_val_tab(279)
5251                                 ,p_val_280                    =>  g_val_tab(280)
5252                                 ,p_val_281                    =>  g_val_tab(281)
5253                                 ,p_val_282                    =>  g_val_tab(282)
5254                                 ,p_val_283                    =>  g_val_tab(283)
5255                                 ,p_val_284                    =>  g_val_tab(284)
5256                                 ,p_val_285                    =>  g_val_tab(285)
5257                                 ,p_val_286                    =>  g_val_tab(286)
5258                                 ,p_val_287                    =>  g_val_tab(287)
5259                                 ,p_val_288                    =>  g_val_tab(288)
5260                                 ,p_val_289                    =>  g_val_tab(289)
5261                                 ,p_val_290                    =>  g_val_tab(290)
5262                                 ,p_val_291                    =>  g_val_tab(291)
5263                                 ,p_val_292                    =>  g_val_tab(292)
5264                                 ,p_val_293                    =>  g_val_tab(293)
5265                                 ,p_val_294                    =>  g_val_tab(294)
5266                                 ,p_val_295                    =>  g_val_tab(295)
5267                                 ,p_val_296                    =>  g_val_tab(296)
5268                                 ,p_val_297                    =>  g_val_tab(297)
5269                                 ,p_val_298                    =>  g_val_tab(298)
5270                                 ,p_val_299                    =>  g_val_tab(299)
5271                                 ,p_val_300                    =>  g_val_tab(300)
5272                                 ,p_group_val_01               =>  ben_ext_person.g_group_elmt_value1
5273                                 ,p_group_val_02               =>  ben_ext_person.g_group_elmt_value2
5274                                 ,p_ext_rcd_in_file_id         =>  l_ext_rcd_in_file_id
5275                                 ,p_object_version_number      =>  l_object_version_number
5276                                );
5277 
5278             else
5279                  -- allwasy create for non chang eextract
5280                  ben_ext_rslt_dtl_api.create_ext_rslt_dtl
5281                                 (p_validate                   =>  false
5282                                 ,p_ext_rslt_dtl_id            =>  l_ext_rslt_dtl_id
5283                                 ,p_prmy_sort_val              =>  l_prmy_sort_val
5284                                 ,p_scnd_sort_val              =>  l_scnd_sort_val
5285                                 ,p_thrd_sort_val              =>  l_thrd_sort_val
5286                                 ,p_trans_seq_num              =>  l_trans_num
5287                                 ,p_rcrd_seq_num               =>  ben_ext_person.g_rcd_seq
5288                                 ,p_ext_rslt_id                =>  p_ext_rslt_id
5289                                 ,p_ext_rcd_id                 =>  l_ext_rcd_id
5290                                 ,p_person_id                  =>  p_person_id
5291                                 ,p_business_group_id          =>  p_business_group_id
5292                                 ,p_val_01                     =>  g_val_tab(1)
5293                                 ,p_val_02                     =>  g_val_tab(2)
5294                                 ,p_val_03                     =>  g_val_tab(3)
5295                                 ,p_val_04                     =>  g_val_tab(4)
5296                                 ,p_val_05                     =>  g_val_tab(5)
5297                                 ,p_val_06                     =>  g_val_tab(6)
5298                                 ,p_val_07                     =>  g_val_tab(7)
5299                                 ,p_val_08                     =>  g_val_tab(8)
5300                                 ,p_val_09                     =>  g_val_tab(9)
5301                                 ,p_val_10                     =>  g_val_tab(10)
5302                                 ,p_val_11                     =>  g_val_tab(11)
5303                                 ,p_val_12                     =>  g_val_tab(12)
5304                                 ,p_val_13                     =>  g_val_tab(13)
5305                                 ,p_val_14                     =>  g_val_tab(14)
5306                                 ,p_val_15                     =>  g_val_tab(15)
5307                                 ,p_val_16                     =>  g_val_tab(16)
5308                                 ,p_val_17                     =>  g_val_tab(17)
5309                                 ,p_val_18                     =>  g_val_tab(18)
5310                                 ,p_val_19                     =>  g_val_tab(19)
5311                                 ,p_val_20                     =>  g_val_tab(20)
5312                                 ,p_val_21                     =>  g_val_tab(21)
5313                                 ,p_val_22                     =>  g_val_tab(22)
5314                                 ,p_val_23                     =>  g_val_tab(23)
5315                                 ,p_val_24                     =>  g_val_tab(24)
5316                                 ,p_val_25                     =>  g_val_tab(25)
5317                                 ,p_val_26                     =>  g_val_tab(26)
5318                                 ,p_val_27                     =>  g_val_tab(27)
5319                                 ,p_val_28                     =>  g_val_tab(28)
5320                                 ,p_val_29                     =>  g_val_tab(29)
5321                                 ,p_val_30                     =>  g_val_tab(30)
5322                                 ,p_val_31                     =>  g_val_tab(31)
5323                                 ,p_val_32                     =>  g_val_tab(32)
5324                                 ,p_val_33                     =>  g_val_tab(33)
5325                                 ,p_val_34                     =>  g_val_tab(34)
5326                                 ,p_val_35                     =>  g_val_tab(35)
5327                                 ,p_val_36                     =>  g_val_tab(36)
5328                                 ,p_val_37                     =>  g_val_tab(37)
5329                                 ,p_val_38                     =>  g_val_tab(38)
5330                                 ,p_val_39                     =>  g_val_tab(39)
5331                                 ,p_val_40                     =>  g_val_tab(40)
5332                                 ,p_val_41                     =>  g_val_tab(41)
5333                                 ,p_val_42                     =>  g_val_tab(42)
5334                                 ,p_val_43                     =>  g_val_tab(43)
5335                                 ,p_val_44                     =>  g_val_tab(44)
5336                                 ,p_val_45                     =>  g_val_tab(45)
5337                                 ,p_val_46                     =>  g_val_tab(46)
5338                                 ,p_val_47                     =>  g_val_tab(47)
5339                                 ,p_val_48                     =>  g_val_tab(48)
5340                                 ,p_val_49                     =>  g_val_tab(49)
5341                                 ,p_val_50                     =>  g_val_tab(50)
5342                                 ,p_val_51                     =>  g_val_tab(51)
5343                                 ,p_val_52                     =>  g_val_tab(52)
5344                                 ,p_val_53                     =>  g_val_tab(53)
5345                                 ,p_val_54                     =>  g_val_tab(54)
5346                                 ,p_val_55                     =>  g_val_tab(55)
5347                                 ,p_val_56                     =>  g_val_tab(56)
5348                                 ,p_val_57                     =>  g_val_tab(57)
5349                                 ,p_val_58                     =>  g_val_tab(58)
5350                                 ,p_val_59                     =>  g_val_tab(59)
5351                                 ,p_val_60                     =>  g_val_tab(60)
5352                                 ,p_val_61                     =>  g_val_tab(61)
5353                                 ,p_val_62                     =>  g_val_tab(62)
5354                                 ,p_val_63                     =>  g_val_tab(63)
5355                                 ,p_val_64                     =>  g_val_tab(64)
5356                                 ,p_val_65                     =>  g_val_tab(65)
5357                                 ,p_val_66                     =>  g_val_tab(66)
5358                                 ,p_val_67                     =>  g_val_tab(67)
5359                                 ,p_val_68                     =>  g_val_tab(68)
5360                                 ,p_val_69                     =>  g_val_tab(69)
5361                                 ,p_val_70                     =>  g_val_tab(70)
5362                                 ,p_val_71                     =>  g_val_tab(71)
5363                                 ,p_val_72                     =>  g_val_tab(72)
5364                                 ,p_val_73                     =>  g_val_tab(73)
5365                                 ,p_val_74                     =>  g_val_tab(74)
5366                                 ,p_val_75                     =>  g_val_tab(75)
5367                                 ,p_val_76                     =>  g_val_tab(76)
5368                                 ,p_val_77                     =>  g_val_tab(77)
5369                                 ,p_val_78                     =>  g_val_tab(78)
5370                                 ,p_val_79                     =>  g_val_tab(79)
5371                                 ,p_val_80                     =>  g_val_tab(80)
5372                                 ,p_val_81                     =>  g_val_tab(81)
5373                                 ,p_val_82                     =>  g_val_tab(82)
5374                                 ,p_val_83                     =>  g_val_tab(83)
5375                                 ,p_val_84                     =>  g_val_tab(84)
5376                                 ,p_val_85                     =>  g_val_tab(85)
5377                                 ,p_val_86                     =>  g_val_tab(86)
5378                                 ,p_val_87                     =>  g_val_tab(87)
5379                                 ,p_val_88                     =>  g_val_tab(88)
5380                                 ,p_val_89                     =>  g_val_tab(89)
5381                                 ,p_val_90                     =>  g_val_tab(90)
5382                                 ,p_val_91                     =>  g_val_tab(91)
5383                                 ,p_val_92                     =>  g_val_tab(92)
5384                                 ,p_val_93                     =>  g_val_tab(93)
5385                                 ,p_val_94                     =>  g_val_tab(94)
5386                                 ,p_val_95                     =>  g_val_tab(95)
5387                                 ,p_val_96                     =>  g_val_tab(96)
5388                                 ,p_val_97                     =>  g_val_tab(97)
5389                                 ,p_val_98                     =>  g_val_tab(98)
5390                                 ,p_val_99                     =>  g_val_tab(99)
5391                                 ,p_val_100                    =>  g_val_tab(100)
5392                                 ,p_val_101                    =>  g_val_tab(101)
5393                                 ,p_val_102                    =>  g_val_tab(102)
5394                                 ,p_val_103                    =>  g_val_tab(103)
5395                                 ,p_val_104                    =>  g_val_tab(104)
5396                                 ,p_val_105                    =>  g_val_tab(105)
5397                                 ,p_val_106                    =>  g_val_tab(106)
5398                                 ,p_val_107                    =>  g_val_tab(107)
5399                                 ,p_val_108                    =>  g_val_tab(108)
5400                                 ,p_val_109                    =>  g_val_tab(109)
5401                                 ,p_val_110                    =>  g_val_tab(110)
5402                                 ,p_val_111                    =>  g_val_tab(111)
5403                                 ,p_val_112                    =>  g_val_tab(112)
5404                                 ,p_val_113                    =>  g_val_tab(113)
5405                                 ,p_val_114                    =>  g_val_tab(114)
5406                                 ,p_val_115                    =>  g_val_tab(115)
5407                                 ,p_val_116                    =>  g_val_tab(116)
5408                                 ,p_val_117                    =>  g_val_tab(117)
5409                                 ,p_val_118                    =>  g_val_tab(118)
5410                                 ,p_val_119                    =>  g_val_tab(119)
5411                                 ,p_val_120                    =>  g_val_tab(120)
5412                                 ,p_val_121                    =>  g_val_tab(121)
5413                                 ,p_val_122                    =>  g_val_tab(122)
5414                                 ,p_val_123                    =>  g_val_tab(123)
5415                                 ,p_val_124                    =>  g_val_tab(124)
5416                                 ,p_val_125                    => g_val_tab(125)
5417                                 ,p_val_126                    =>  g_val_tab(126)
5418                                 ,p_val_127                    =>  g_val_tab(127)
5419                                 ,p_val_128                    =>  g_val_tab(128)
5420                                 ,p_val_129                    =>  g_val_tab(129)
5421                                 ,p_val_130                    =>  g_val_tab(130)
5422                                 ,p_val_131                    =>  g_val_tab(131)
5423                                 ,p_val_132                    =>  g_val_tab(132)
5424                                 ,p_val_133                    =>  g_val_tab(133)
5425                                 ,p_val_134                    =>  g_val_tab(134)
5426                                 ,p_val_135                    =>  g_val_tab(135)
5427                                 ,p_val_136                    =>  g_val_tab(136)
5428                                 ,p_val_137                    =>  g_val_tab(137)
5429                                 ,p_val_138                    =>  g_val_tab(138)
5430                                 ,p_val_139                    =>  g_val_tab(139)
5431                                 ,p_val_140                    =>  g_val_tab(140)
5432                                 ,p_val_141                    =>  g_val_tab(141)
5433                                 ,p_val_142                    =>  g_val_tab(142)
5434                                 ,p_val_143                    =>  g_val_tab(143)
5435                                 ,p_val_144                    =>  g_val_tab(144)
5436                                 ,p_val_145                    =>  g_val_tab(145)
5437                                 ,p_val_146                    =>  g_val_tab(146)
5438                                 ,p_val_147                    =>  g_val_tab(147)
5439                                 ,p_val_148                    =>  g_val_tab(148)
5440                                 ,p_val_149                    =>  g_val_tab(149)
5441                                 ,p_val_150                    =>  g_val_tab(150)
5442                                 ,p_val_151                    =>  g_val_tab(151)
5443                                 ,p_val_152                    =>  g_val_tab(152)
5444                                 ,p_val_153                    =>  g_val_tab(153)
5445                                 ,p_val_154                    =>  g_val_tab(154)
5446                                 ,p_val_155                    =>  g_val_tab(155)
5447                                 ,p_val_156                    =>  g_val_tab(156)
5448                                 ,p_val_157                    =>  g_val_tab(157)
5449                                 ,p_val_158                    =>  g_val_tab(158)
5450                                 ,p_val_159                    =>  g_val_tab(159)
5451                                 ,p_val_160                    =>  g_val_tab(160)
5452                                 ,p_val_161                    =>  g_val_tab(161)
5453                                 ,p_val_162                    =>  g_val_tab(162)
5454                                 ,p_val_163                    =>  g_val_tab(163)
5455                                 ,p_val_164                    =>  g_val_tab(164)
5456                                 ,p_val_165                    =>  g_val_tab(165)
5457                                 ,p_val_166                    =>  g_val_tab(166)
5458                                 ,p_val_167                    =>  g_val_tab(167)
5459                                 ,p_val_168                    =>  g_val_tab(168)
5460                                 ,p_val_169                    => g_val_tab(169)
5461                                 ,p_val_170                    =>  g_val_tab(170)
5462                                 ,p_val_171                    =>  g_val_tab(171)
5463                                 ,p_val_172                    =>  g_val_tab(172)
5464                                 ,p_val_173                    =>  g_val_tab(173)
5465                                 ,p_val_174                    =>  g_val_tab(174)
5466                                 ,p_val_175                    =>  g_val_tab(175)
5467                                 ,p_val_176                    =>  g_val_tab(176)
5468                                 ,p_val_177                    =>  g_val_tab(177)
5469                                 ,p_val_178                    =>  g_val_tab(178)
5470                                 ,p_val_179                    =>  g_val_tab(179)
5471                                 ,p_val_180                    =>  g_val_tab(180)
5472                                 ,p_val_181                    =>  g_val_tab(181)
5473                                 ,p_val_182                    =>  g_val_tab(182)
5474                                 ,p_val_183                    =>  g_val_tab(183)
5475                                 ,p_val_184                    =>  g_val_tab(184)
5476                                 ,p_val_185                    =>  g_val_tab(185)
5477                                 ,p_val_186                    =>  g_val_tab(186)
5478                                 ,p_val_187                    =>  g_val_tab(187)
5479                                 ,p_val_188                    =>  g_val_tab(188)
5480                                 ,p_val_189                    =>  g_val_tab(189)
5481                                 ,p_val_190                    =>  g_val_tab(190)
5482                                 ,p_val_191                    =>  g_val_tab(191)
5483                                 ,p_val_192                    =>  g_val_tab(192)
5484                                 ,p_val_193                    =>  g_val_tab(193)
5485                                 ,p_val_194                    =>  g_val_tab(194)
5486                                 ,p_val_195                    => g_val_tab(195)
5487                                 ,p_val_196                    =>  g_val_tab(196)
5488                                 ,p_val_197                    =>  g_val_tab(197)
5489                                 ,p_val_198                    =>  g_val_tab(198)
5490                                 ,p_val_199                    =>  g_val_tab(199)
5491                                 ,p_val_200                    =>  g_val_tab(200)
5492                                 ,p_val_201                    =>  g_val_tab(201)
5493                                 ,p_val_202                    =>  g_val_tab(202)
5494                                 ,p_val_203                    =>  g_val_tab(203)
5495                                 ,p_val_204                    =>  g_val_tab(204)
5496                                 ,p_val_205                    =>  g_val_tab(205)
5497                                 ,p_val_206                    =>  g_val_tab(206)
5498                                 ,p_val_207                    =>  g_val_tab(207)
5499                                 ,p_val_208                    =>  g_val_tab(208)
5500                                 ,p_val_209                    =>  g_val_tab(209)
5501                                 ,p_val_210                    =>  g_val_tab(210)
5502                                 ,p_val_211                    =>  g_val_tab(211)
5503                                 ,p_val_212                    =>  g_val_tab(212)
5504                                 ,p_val_213                    =>  g_val_tab(213)
5505                                 ,p_val_214                    =>  g_val_tab(214)
5506                                 ,p_val_215                    =>  g_val_tab(215)
5507                                 ,p_val_216                    =>  g_val_tab(216)
5508                                 ,p_val_217                    =>  g_val_tab(217)
5509                                 ,p_val_218                    =>  g_val_tab(218)
5510                                 ,p_val_219                    =>  g_val_tab(219)
5511                                 ,p_val_220                    =>  g_val_tab(220)
5512                                 ,p_val_221                    =>  g_val_tab(221)
5513                                 ,p_val_222                    =>  g_val_tab(222)
5514                                 ,p_val_223                    =>  g_val_tab(223)
5515                                 ,p_val_224                    =>  g_val_tab(224)
5516                                 ,p_val_225                    =>  g_val_tab(225)
5517                                 ,p_val_226                    =>  g_val_tab(226)
5518                                 ,p_val_227                    =>  g_val_tab(227)
5519                                 ,p_val_228                    =>  g_val_tab(228)
5520                                 ,p_val_229                    =>  g_val_tab(229)
5521                                 ,p_val_230                    =>  g_val_tab(230)
5522                                 ,p_val_231                    =>  g_val_tab(231)
5523                                 ,p_val_232                    =>  g_val_tab(232)
5524                                 ,p_val_233                    =>  g_val_tab(233)
5525                                 ,p_val_234                    =>  g_val_tab(234)
5526                                 ,p_val_235                    =>  g_val_tab(235)
5527                                 ,p_val_236                    =>  g_val_tab(236)
5528                                 ,p_val_237                    =>  g_val_tab(237)
5529                                 ,p_val_238                    =>  g_val_tab(238)
5530                                 ,p_val_239                    =>  g_val_tab(239)
5531                                 ,p_val_240                    =>  g_val_tab(240)
5532                                 ,p_val_241                    =>  g_val_tab(241)
5533                                 ,p_val_242                    =>  g_val_tab(242)
5534                                 ,p_val_243                    =>  g_val_tab(243)
5535                                 ,p_val_244                    =>  g_val_tab(244)
5536                                 ,p_val_245                    =>  g_val_tab(245)
5537                                 ,p_val_246                    =>  g_val_tab(246)
5538                                 ,p_val_247                    =>  g_val_tab(247)
5539                                 ,p_val_248                    =>  g_val_tab(248)
5540                                 ,p_val_249                    =>  g_val_tab(249)
5541                                 ,p_val_250                    =>  g_val_tab(250)
5542                                 ,p_val_251                    =>  g_val_tab(251)
5543                                 ,p_val_252                    =>  g_val_tab(252)
5544                                 ,p_val_253                    =>  g_val_tab(253)
5545                                 ,p_val_254                    =>  g_val_tab(254)
5546                                 ,p_val_255                    =>  g_val_tab(255)
5547                                 ,p_val_256                    =>  g_val_tab(256)
5548                                 ,p_val_257                    =>  g_val_tab(257)
5549                                 ,p_val_258                    =>  g_val_tab(258)
5550                                 ,p_val_259                    =>  g_val_tab(259)
5551                                 ,p_val_260                    =>  g_val_tab(260)
5552                                 ,p_val_261                    =>  g_val_tab(261)
5553                                 ,p_val_262                    =>  g_val_tab(262)
5554                                 ,p_val_263                    =>  g_val_tab(263)
5555                                 ,p_val_264                    =>  g_val_tab(264)
5556                                 ,p_val_265                    =>  g_val_tab(265)
5557                                 ,p_val_266                    =>  g_val_tab(266)
5558                                 ,p_val_267                    =>  g_val_tab(267)
5559                                 ,p_val_268                    =>  g_val_tab(268)
5560                                 ,p_val_269                    =>  g_val_tab(269)
5561                                 ,p_val_270                    =>  g_val_tab(270)
5562                                 ,p_val_271                    =>  g_val_tab(271)
5563                                 ,p_val_272                    =>  g_val_tab(272)
5564                                 ,p_val_273                    =>  g_val_tab(273)
5565                                 ,p_val_274                    =>  g_val_tab(274)
5566                                 ,p_val_275                    =>  g_val_tab(275)
5567                                 ,p_val_276                    =>  g_val_tab(276)
5568                                 ,p_val_277                    =>  g_val_tab(277)
5569                                 ,p_val_278                    =>  g_val_tab(278)
5570                                 ,p_val_279                    =>  g_val_tab(279)
5571                                 ,p_val_280                    =>  g_val_tab(280)
5572                                 ,p_val_281                    =>  g_val_tab(281)
5573                                 ,p_val_282                    =>  g_val_tab(282)
5574                                 ,p_val_283                    =>  g_val_tab(283)
5575                                 ,p_val_284                    =>  g_val_tab(284)
5576                                 ,p_val_285                    =>  g_val_tab(285)
5577                                 ,p_val_286                    =>  g_val_tab(286)
5578                                 ,p_val_287                    =>  g_val_tab(287)
5579                                 ,p_val_288                    =>  g_val_tab(288)
5580                                 ,p_val_289                    =>  g_val_tab(289)
5581                                 ,p_val_290                    =>  g_val_tab(290)
5582                                 ,p_val_291                    =>  g_val_tab(291)
5583                                 ,p_val_292                    =>  g_val_tab(292)
5584                                 ,p_val_293                    =>  g_val_tab(293)
5585                                 ,p_val_294                    =>  g_val_tab(294)
5586                                 ,p_val_295                    =>  g_val_tab(295)
5587                                 ,p_val_296                    =>  g_val_tab(296)
5588                                 ,p_val_297                    =>  g_val_tab(297)
5589                                 ,p_val_298                    =>  g_val_tab(298)
5590                                 ,p_val_299                    =>  g_val_tab(299)
5591                                 ,p_val_300                    =>  g_val_tab(300)
5592                                 ,p_group_val_01               =>  ben_ext_person.g_group_elmt_value1
5593                                 ,p_group_val_02               =>  ben_ext_person.g_group_elmt_value2
5594                                 ,p_program_id                 =>  fnd_global.conc_program_id
5595                                 ,p_program_update_date        =>  sysdate
5596                                 ,p_request_id                 =>  nvl(ben_extract.g_request_id,fnd_global.conc_request_id)
5597                                 ,p_object_version_number      =>  l_object_version_number
5598                                 ,p_ext_per_bg_id              =>  l_ext_per_bg_id
5599                                 ,p_ext_rcd_in_file_id         =>  l_ext_rcd_in_file_id
5600                                );
5601                end if ;
5602              --
5603               -- This is set to true because we want the ben_per_cm_prvdd to be updated
5604               -- only when some detail is written.
5605               -- bug 1386266
5606               --
5607               ben_ext_person.g_detail_extracted:=true;
5608               --
5609               --
5610            end if;  --write record = 'Y'
5611      /* madatory validated down   Else
5612          hr_utility.set_location(' Element not found ', 15);
5613           --- If the element is mandatory and null  and the record is mandatory
5614           --- skip the person
5615           if nvl(l_rcd_rqd_flag,'N') = 'Y' then
5616             hr_utility.set_location(' record not found ', 15) ;
5617              raise ben_ext_person.detail_error ;
5618           end if ;
5619       */
5620       end if ;
5621 
5622        --
5623   END IF;
5624     --
5625 END LOOP;
5626 
5627 --
5628   hr_utility.set_location(' Exiting:'||l_proc, 15);
5629 --
5630 end process_ext_recs;
5631 --
5632 --  The following three functions are overloaded.
5633 --  They will return a result string for a date, number or varchar data element
5634 --  that is formatted according to the format mask specified.
5635 --  These procedures do not validate the format mask.  Such validation should
5636 --  happen in the API.
5637 -- ----------------------------------------------------------------------------
5638 -- |------------------------< apply_format_mask for date >--------------------|
5639 -- ----------------------------------------------------------------------------
5640 Function apply_format_mask(p_value date, p_format_mask varchar2
5641                            )Return Varchar2 Is
5642 --
5643   l_proc 	  varchar2(72) := g_package||'apply_format_mask';
5644   l_fmt_date      ben_ext_rslt_Dtl.val_01%type  := null;
5645 
5646 --
5647 Begin
5648   --
5649   hr_utility.set_location('Entering:'||l_proc, 5);
5650   --
5651   if p_value is null then
5652     return p_value;
5653   end if;
5654 
5655   --
5656   if p_format_mask is not null then
5657     --
5658     l_fmt_date := to_char(p_value, p_format_mask);
5659     --
5660   else
5661     --
5662     l_fmt_date := to_char(p_value);
5663     --
5664   end if;
5665   --
5666   return (l_fmt_date);
5667   --
5668   hr_utility.set_location(' Exiting:'||l_proc, 15);
5669 --
5670 End apply_format_mask;
5671 --
5672 -- ----------------------------------------------------------------------------
5673 -- |------------------------< apply_format_mask for number >------------------|
5674 -- ----------------------------------------------------------------------------
5675 Function apply_format_mask(p_value number, p_format_mask varchar2
5676                            ) Return Varchar2 Is
5677 --
5678   l_proc 	  varchar2(72) := g_package||'apply_format_mask';
5679   l_fmt_num       ben_ext_rslt_Dtl.val_01%type := null;
5680   l_cd_strt       varchar2(1);
5681   l_str_value     varchar2(100);
5682   l_format        varchar2(100);
5683 --
5684 Begin
5685   --
5686   hr_utility.set_location('Entering:'||l_proc, 10);
5687   --
5688   if p_value is null then
5689     return p_value;
5690   end if;
5691   --
5692   if p_format_mask is not null then
5693   --
5694       hr_utility.set_location('format :'||p_format_mask, 10);
5695       hr_utility.set_location('value  :'||p_value , 10);
5696   -- Check for special format
5697   --
5698     if substr(p_format_mask,length(p_format_mask),1) in ('{','}') then
5699     -- check the first char of the code
5700        select substr(lookup_code,1,1) into l_cd_strt
5701        from hr_lookups
5702        where lookup_type = 'BEN_EXT_FRMT_MASK'
5703        and   meaning = p_format_mask;
5704 
5705        if l_cd_strt = 'N' then
5706 
5707           --- convert the number as per the format
5708           l_format := substr(p_format_mask,1, length(p_format_mask)-1) ;
5709           hr_utility.set_location('l_format :'||l_format , 10);
5710 
5711           l_str_value  := to_char(p_value,l_format);
5712 
5713           hr_utility.set_location('Formated number :'||l_str_value , 10);
5714 
5715           -- as per the bug 5387355 , The Last digit of the  number has to be changed
5716           -- if the number is +  then  1 to 9 changes as  A to I and 0 chages as {
5717           -- if the number is -  then  1 to 9 changes as  J to R and 0 chages as }
5718           -- as per the bug 5526107  the format changes takes place only if the number is negetive
5719           -- We have two requirement, 1 changes the format for every number
5720           --  2 changes the format only for nevetive number
5721           -- if the format mask  end with { then the first case is taken care
5722           -- if the format mask  end with } then the second case is taken care
5723           /*
5724            if substr(p_format_mask,length(p_format_mask),1) = '}' then
5725              if substr(l_str_value ,length(l_str_value),1) = '0' then
5726                 l_fmt_num := '}';
5727              else
5728                 l_fmt_num := substr(l_str_value,length(l_str_value),1);
5729              end if;
5730            else
5731           */
5732           ---
5733           l_fmt_num := '' ;
5734           if p_value >= 0  then
5735              -- Positive value changes only for { format mask
5736              if substr(p_format_mask,length(p_format_mask),1) = '{' then
5737                 select decode(substr(l_str_value,length(l_str_value),1),
5738                       '1','A','2','B','3','C','4','D','5','E','6','F','7','G','8','H','9','I','0','{')
5739                       into l_fmt_num from dual;
5740              else
5741                l_fmt_num := substr(l_str_value,-1) ;
5742              End if ;
5743           else
5744              -- change the number as positive
5745              l_str_value  := to_char(abs(p_value),l_format);
5746              select decode(substr(l_str_value,length(l_str_value),1),
5747                         '1','J','2','K','3','L','4','M','5','N','6','O','7','P','8','Q','9','R','0','}')
5748                         into l_fmt_num from dual;
5749           end if;
5750 
5751           hr_utility.set_location('non Formated value  :'||l_str_value  , 10);
5752           hr_utility.set_location('non Formated value  :'|| (length(l_str_value)-1)   , 10);
5753 
5754           l_fmt_num := substr(l_str_value ,1, (length(l_str_value)-1) )||l_fmt_num;
5755 
5756           hr_utility.set_location('Formated value  :'||l_fmt_num  , 10);
5757 
5758        end if;
5759     else   --- for {} formats
5760       --
5761       l_fmt_num := to_char(p_value, p_format_mask);
5762       --
5763     end if;
5764   --
5765   else
5766     --
5767     l_fmt_num := to_char(p_value);
5768     --
5769   end if;
5770   --
5771   return (rtrim(ltrim(l_fmt_num)));
5772   --
5773   hr_utility.set_location(' Exiting:'||l_proc, 10);
5774 --
5775 End apply_format_mask;
5776 --
5777 -- ----------------------------------------------------------------------------
5778 -- |------------------------< apply_format_mask for string >------------------|
5779 -- ----------------------------------------------------------------------------
5780 Function apply_format_mask(p_value varchar2, p_format_mask varchar2
5781                       ) Return Varchar2 Is
5782 --
5783   l_proc 	    varchar2(72) := g_package||'apply_format_mask';
5784   l_fmt_string      ben_ext_rslt_Dtl.val_01%type  := null;
5785   l_value_stripped  ben_ext_rslt_Dtl.val_01%type  := null;
5786   l_length          number;
5787   l_err_message varchar2(2000) ;
5788 --
5789 Begin
5790   --
5791   hr_utility.set_location('Entering:'||l_proc, 15);
5792   hr_utility.set_location('value :'||p_value||' - ' || p_format_mask, 15);
5793   --
5794   if p_value is null then
5795     return p_value;
5796   end if;
5797   --
5798   --error message taken in advance so it is not called every time
5799   l_err_message := get_error_msg(92065,'BEN_92065_EXT_FRMT_INVALID',g_elmt_name );
5800   --
5801   if p_format_mask is not null then
5802     --
5803     hr_utility.set_location('format mask :' || p_format_mask, 16);
5804     l_value_stripped := translate(p_value,
5805                         '1234567890 !@#$%^&*()-_+={}|:"<>?,./;''[]\`~',
5806                         '1234567890');
5807     --
5808     l_length := length(l_value_stripped);
5809     --
5810     if p_format_mask  = '999999999' then
5811       --
5812       -- can be used for SSN
5813       --
5814       if l_length > 9 then
5815       --
5816         l_fmt_string := p_value;
5817       --
5818         ben_ext_util.write_err
5819         (p_err_num => 92065
5820         ,p_err_name => l_err_message
5821         ,p_typ_cd => 'W'
5822         ,p_person_id => g_person_id
5823         ,p_request_id => ben_extract.g_request_id
5824         ,p_ext_rslt_id => ben_extract.g_ext_rslt_id
5825         ,p_business_group_id => ben_ext_person.g_business_group_id
5826         );
5827       --
5828       else
5829         l_fmt_string := l_value_stripped;
5830       end if;
5831       --
5832     elsif p_format_mask  = '999-99-9999' then
5833       --
5834       -- can be used for SSN
5835       --
5836       if l_length = 9 then
5837       --
5838         l_fmt_string := SUBSTR(l_value_stripped, 1, 3) || '-'
5839                         || SUBSTR(l_value_stripped, 4, 2) || '-'
5840                         || SUBSTR(l_value_stripped, 6);
5841       --
5842       else
5843       --
5844         l_fmt_string := p_value;
5845       --
5846         ben_ext_util.write_err
5847         (p_err_num => 92065
5848         ,p_err_name => l_err_message
5849         ,p_typ_cd => 'W'
5850         ,p_person_id => g_person_id
5851         ,p_request_id => ben_extract.g_request_id
5852         ,p_ext_rslt_id => ben_extract.g_ext_rslt_id
5853         ,p_business_group_id => ben_ext_person.g_business_group_id
5854         );
5855       --
5856       end if;
5857       --
5858     elsif p_format_mask  = '9999999999' then
5859       --
5860       -- can be used for PHONE
5861       --
5862       if l_length > 10 then
5863       --
5864         l_fmt_string := p_value;
5865       --
5866         ben_ext_util.write_err
5867         (p_err_num => 92065
5868         ,p_err_name =>l_err_message
5869         ,p_typ_cd => 'W'
5870         ,p_person_id => g_person_id
5871         ,p_request_id => ben_extract.g_request_id
5872         ,p_ext_rslt_id => ben_extract.g_ext_rslt_id
5873         ,p_business_group_id => ben_ext_person.g_business_group_id
5874         );
5875       --
5876       else
5877         l_fmt_string := l_value_stripped;
5878       end if;
5879       --
5880     elsif p_format_mask  = '999999999999999' then
5881       --
5882       -- can be used for PHONE
5883       --
5884       if l_length > 15 then
5885       --
5886         l_fmt_string := p_value;
5887       --
5888         ben_ext_util.write_err
5889         (p_err_num => 92065
5890         ,p_err_name => l_err_message
5891         ,p_typ_cd => 'W'
5892         ,p_person_id => g_person_id
5893         ,p_request_id => ben_extract.g_request_id
5894         ,p_ext_rslt_id => ben_extract.g_ext_rslt_id
5895         ,p_business_group_id => ben_ext_person.g_business_group_id
5896         );
5897       --
5898       else
5899         l_fmt_string := l_value_stripped;
5900       end if;
5901       --
5902     elsif p_format_mask = '(999)999-9999' then
5903       --
5904       if l_length = 7 then
5905         l_fmt_string := '(   )'
5906                         || SUBSTR(l_value_stripped, 1, 3) || '-'
5907                         || SUBSTR(l_value_stripped, 4);
5908       elsif l_length = 10 then
5909         l_fmt_string := '(' || SUBSTR(l_value_stripped, 1, 3) || ')'
5910                         || SUBSTR(l_value_stripped, 4, 3) || '-'
5911                         || SUBSTR(l_value_stripped, 7);
5912       else
5913         l_fmt_string := p_value;
5914       --
5915         ben_ext_util.write_err
5916         (p_err_num => 92065
5917         ,p_err_name => l_err_message
5918         ,p_typ_cd => 'W'
5919         ,p_person_id => g_person_id
5920         ,p_request_id => ben_extract.g_request_id
5921         ,p_ext_rslt_id => ben_extract.g_ext_rslt_id
5922         ,p_business_group_id => ben_ext_person.g_business_group_id
5923         );
5924       --
5925       end if;
5926     --
5927     elsif p_format_mask = '999-999-9999' then
5928       --
5929       if l_length = 7 then
5930         l_fmt_string := SUBSTR(l_value_stripped, 1, 3) || '-'
5931                         || SUBSTR(l_value_stripped, 4);
5932       elsif l_length = 10 then
5933         l_fmt_string := SUBSTR(l_value_stripped, 1, 3) || '-'
5934                         || SUBSTR(l_value_stripped, 4, 3) || '-'
5935                         || SUBSTR(l_value_stripped, 7);
5936       else
5937         l_fmt_string := p_value;
5938       --
5939         ben_ext_util.write_err
5940         (p_err_num => 92065
5941         ,p_err_name => l_err_message
5942         ,p_typ_cd => 'W'
5943         ,p_person_id => g_person_id
5944         ,p_request_id => ben_extract.g_request_id
5945         ,p_ext_rslt_id => ben_extract.g_ext_rslt_id
5946         ,p_business_group_id => ben_ext_person.g_business_group_id
5947         );
5948       --
5949       end if;
5950     --
5951      elsif p_format_mask = '+1 999 999 9999' then
5952       --
5953       if l_length = 10 then
5954         l_fmt_string := '+1 '||SUBSTR(l_value_stripped, 1, 3) || ' '
5955                         || SUBSTR(l_value_stripped, 4, 3) || ' '
5956                         || SUBSTR(l_value_stripped, 7);
5957       else
5958         l_fmt_string := p_value;
5959       --
5960         ben_ext_util.write_err
5961         (p_err_num => 92065
5962         ,p_err_name => l_err_message
5963         ,p_typ_cd => 'W'
5964         ,p_person_id => g_person_id
5965         ,p_request_id => ben_extract.g_request_id
5966         ,p_ext_rslt_id => ben_extract.g_ext_rslt_id
5967         ,p_business_group_id => ben_ext_person.g_business_group_id
5968         );
5969       --
5970       end if;
5971     --
5972 
5973     else
5974       l_fmt_string := p_value;
5975     end if;
5976     --
5977   else
5978     --
5979     l_fmt_string := p_value;
5980     --
5981     hr_utility.set_location('value :' || l_fmt_string, 16);
5982   end if;
5983   --
5984   return (rtrim(ltrim(l_fmt_string)));
5985   --
5986   hr_utility.set_location(' Exiting:'||l_proc, 15);
5987 --
5988 End apply_format_mask;
5989 
5990 -- ------------------------------------------------------------------
5991 -- |------------------------< apply_format_function >----------------|
5992 -- ------------------------------------------------------------------
5993 
5994 Function apply_format_function(p_value varchar2, p_format_mask varchar2
5995                       ) Return Varchar2 Is
5996 --
5997   l_proc            varchar2(72) := g_package||'apply_format_function';
5998   l_fmt_string      ben_ext_rslt_Dtl.val_01%type  := null;
5999   l_err_message varchar2(2000) ;
6000 --
6001 Begin
6002   --
6003   hr_utility.set_location('Entering:'||l_proc, 15);
6004   hr_utility.set_location('value :'||p_value||' - ' || p_format_mask, 15);
6005   --
6006   if p_value is null then
6007     return p_value;
6008   end if;
6009   --
6010   --error message taken in advance so it is not called every time
6011   l_err_message := get_error_msg(92065,'BEN_92065_EXT_FRMT_INVALID',g_elmt_name );
6012   --
6013 
6014   l_fmt_string := p_value;
6015   if p_format_mask is not null then
6016     --
6017      if  p_format_mask = 'CUPPER' then
6018         l_fmt_string := Upper(p_value) ;
6019      elsif  p_format_mask = 'CLOWER' then
6020         l_fmt_string := Lower(p_value) ;
6021      elsif  p_format_mask = 'CINITCAP' then
6022         l_fmt_string := InitCap(p_value) ;
6023      elsif p_format_mask = 'CALPHANO' then
6024         l_fmt_string :=  translate(p_value,
6025                         'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~`!@#$%^&*()_-+={[}]|\;:''"<,>.?/',
6026                         'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789');
6027 
6028      else
6029       --
6030       ben_ext_util.write_err
6031         (p_err_num => 92065
6032         ,p_err_name => l_err_message
6033         ,p_typ_cd => 'W'
6034         ,p_person_id => g_person_id
6035         ,p_request_id => ben_extract.g_request_id
6036         ,p_ext_rslt_id => ben_extract.g_ext_rslt_id
6037         ,p_business_group_id => ben_ext_person.g_business_group_id
6038         );
6039       --
6040       end if;
6041   end if ;
6042   hr_utility.set_location(' Exiting:'||l_proc, 15);
6043   return l_fmt_string ;
6044 end apply_format_function ;
6045 
6046 
6047 --
6048 -- ------------------------------------------------------------------
6049 -- |------------------------< sprs_or_incl >------------------------|
6050 -- ------------------------------------------------------------------
6051 --  This function will check record or data element include condition
6052 --  based on the change event being processed.  This function will
6053 --  return 'I' - include, if the condition is satisfied or
6054 --         'S' - suppress, otherwise.
6055 --
6056 Function sprs_or_incl(p_ext_rcd_in_file_id       number,
6057                       p_ext_data_elmt_in_rcd_id  number,
6058                       p_chg_evt_cd               varchar2
6059                       ) Return Varchar2 Is
6060 --
6061   l_proc          varchar2(72) := g_package||'sprs_or_incl';
6062   l_sprs_or_incl  varchar2(1) := 'S';
6063   l_dummy         varchar2(1);
6064 --
6065 cursor incl_rcd_c is
6066   select null
6067     from ben_ext_incl_chg
6068    where ext_rcd_in_file_id = p_ext_rcd_in_file_id
6069      and chg_evt_cd = p_chg_evt_cd
6070      ;
6071 --
6072 cursor incl_elmt_c is
6073   select null
6074    from ben_ext_incl_chg
6075   where ext_data_elmt_in_rcd_id = p_ext_data_elmt_in_rcd_id
6076     and chg_evt_cd = p_chg_evt_cd
6077     ;
6078 --
6079 Begin
6080   --
6081   hr_utility.set_location('Entering:'||l_proc, 5);
6082   --
6083   if p_ext_rcd_in_file_id is not null then
6084     --
6085     open incl_rcd_c;
6086     fetch incl_rcd_c into l_dummy;
6087     if incl_rcd_c%found then
6088        l_sprs_or_incl := 'I';
6089     end if;
6090     close incl_rcd_c;
6091     --
6092   elsif p_ext_data_elmt_in_rcd_id is not null then
6093      --
6094     open incl_elmt_c;
6095     fetch incl_elmt_c into l_dummy;
6096     if incl_elmt_c%found then
6097        l_sprs_or_incl := 'I';
6098     end if;
6099     close incl_elmt_c;
6100     --
6101   end if;
6102   --
6103   return (l_sprs_or_incl);
6104   --
6105   hr_utility.set_location(' Exiting:'||l_proc, 15);
6106 --
6107 End sprs_or_incl;
6108 --
6109 --
6110 --
6111 end ben_ext_fmt;