DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_EXT_FMT

Source


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