Skip to Content
1
May 18, 2020 at 03:10 AM

why not initial not work

408 Views

I use below code to loop an itab but the if condition can't exlude anything.

LOOP AT gt_data INTO DATA(gs_data).
     IF gs_data-rfarea is not initial.
          ...
      endif.
endloop.

But if I changed the code to

LOOP AT gt_data INTO DATA(gs_data).
     IF gs_data-rfarea <> ''.
          ...
      endif.
endloop.

And it worked. So what's the reason? Is this because the SQL which select data into itab?

Below is the SQL.

SELECT
        faglflext~rbukrs,
        faglflext~rfarea,
        faglflext~rcntr,
        cskt~ltext,
        faglflext~racct,
        skat~txt50,
        faglflext~hsl01,faglflext~hsl02,faglflext~hsl03,faglflext~hsl04,faglflext~hsl05,faglflext~hsl06,faglflext~hsl07,faglflext~hsl08,faglflext~hsl09,
    faglflext~hsl10,faglflext~hsl11,faglflext~hsl12,faglflext~hsl13,faglflext~hsl14,faglflext~hsl15,faglflext~hsl16
  INTO TABLE @DATA(gt_data)
  FROM faglflext
  LEFT JOIN skat       ON faglflext~racct = skat~saknr
  LEFT JOIN cskt ON faglflext~rcntr = cskt~kostl AND cskt~datbi = '99991231'
 WHERE faglflext~rbukrs IN @company1
   AND faglflext~ryear = @pyear
   AND faglflext~rcntr IN @costc
   AND faglflext~racct IN @acct
   AND FAGLFLEXT~rfarea in @CostP.