Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Field symbols

Former Member
0 Kudos
284

Hi All,

I am using field symbol to point at dynamic internal table. Now i want to fetch data based on dynamic internal table pointed by field symbol using for all entries .

The system is showing error message as when i tried to use for all entries code as

The specified type has no structure and therefore no component called "KNUMH" . . . .

BEGIN OF ty_konp,
          knumh TYPE knumh,       
          kappl TYPE kappl,     
          kbetr TYPE kbetr_kond,  
          konwa TYPE konwa,      
          kpein TYPE kpein,       
          kmein TYPE kmein,      
          loevm_ko TYPE loevm_ko, 
        END OF ty_konp.

DATA:  it_final TYPE TABLE OF ty_final,
       it_konp TYPE TABLE OF ty_konp .
start-of-selection.
    CREATE DATA dref TYPE TABLE OF (p_contab).
    ASSIGN dref->* TO <fs>.

    SELECT *
    INTO CORRESPONDING FIELDS OF TABLE <fs>
    FROM  (p_contab)  " dynamic internal table from selection screen
    WHERE kschl = p_kschl .
    IF sy-subrc NE 0 .
    ENDIF.
    IF NOT <fs> IS INITIAL.

      SELECT knumh
             kappl
             kbetr
             konwa
             kpein
             kmein
             loevm_ko
      FROM konp
      INTO CORRESPONDING FIELDS OF TABLE it_konp
      FOR ALL ENTRIES IN <fs>
      WHERE knumh = <fs>-knumh .
     if sy-subrc ne 0.
     endif.	

Please provide me with solution.

Thanks & Regards,

Sunil

1 ACCEPTED SOLUTION

former_member188685
Active Contributor
0 Kudos
201

You can do this..

DATA: CONDITION TYPE STRING.
....
....
    IF NOT <fs> IS INITIAL.
    
     CONDITION = 'KNUMH = <FS>-KNUMH'.
      SELECT knumh
             kappl
             kbetr
             konwa
             kpein
             kmein
             loevm_ko
      FROM konp
      INTO CORRESPONDING FIELDS OF TABLE it_konp
      FOR ALL ENTRIES IN <fs>
      WHERE (CONDITION).   "knumh = <fs>-knumh .
     if sy-subrc ne 0.
     endif.	
ENDIF.

it works , i checked it.

1 REPLY 1

former_member188685
Active Contributor
0 Kudos
202

You can do this..

DATA: CONDITION TYPE STRING.
....
....
    IF NOT <fs> IS INITIAL.
    
     CONDITION = 'KNUMH = <FS>-KNUMH'.
      SELECT knumh
             kappl
             kbetr
             konwa
             kpein
             kmein
             loevm_ko
      FROM konp
      INTO CORRESPONDING FIELDS OF TABLE it_konp
      FOR ALL ENTRIES IN <fs>
      WHERE (CONDITION).   "knumh = <fs>-knumh .
     if sy-subrc ne 0.
     endif.	
ENDIF.

it works , i checked it.