4 Replies Latest reply: Jul 25, 2005 8:26 PM by Bruce Tjosvold RSS

RTTS dynamic DB table reference, how?

Bruce Tjosvold
Currently Being Moderated

Hello all,

 

Here is a very simple program that will capture and write a list of the fields and their definitions of a database table that I have explicitly assigned to a variable using the type statement.  I have been playing with this code and attempting to dynamically associate a database table structure with a variable, and then using that variable to assign it's structure to a <FS>.  Everything that I tried generated a syntax error.

 

Could somebody please tell me what syntax I need to dynamically associate a database structure with a variable, versus statically?

 

This is the code.

 

data: dr_dref       type ref to data,

      rf_descr_ref  type ref to cl_abap_typedescr .

 

data: <b>wa_vbap type vbak</b>.          " DB table reference

field-symbols: <fs> type any.

 

start-of-selection.

 

  do.

  • Assign every field of this structure to the untyped  field symbol.

    assign component sy-index of structure <b>WA_vbap</b> to <fs>. 

    if sy-subrc ne 0.

      exit.

    endif.

 

    call method cl_abap_typedescr=>describe_by_data

      EXPORTING

        p_data      = <fs>

      RECEIVING

        p_descr_ref = rf_descr_ref.

 

    write: / sy-index, rf_descr_ref->type_kind,

             rf_descr_ref->length,

             rf_descr_ref->absolute_name+6.

  enddo.

 

Thanks

Bruce

  • Re: RTTS dynamic DB table reference, how?
    Durairaj Athavan Raja
    Currently Being Moderated

    here is the code sample. I guess this is what you wanted. right?

     

    REPORT  YRTTS.
    type-pools : abap.
    data: wa_vbak type vbak .
    data : it_details type abap_compdescr_tab,
    wa_comp type abap_compdescr.
    
    data : ref_descr type ref to cl_abap_structdescr.
    
    ref_descr ?= cl_abap_typedescr=>describe_by_data( wa_vbak ).
    it_details[] = ref_descr->components[].
    
    break-point .

     

    Regards

    Raja

    • Re: RTTS dynamic DB table reference, how?
      Bruce Tjosvold
      Currently Being Moderated

      Durairaj,

       

      Your code is still explicitly associating a database tablename with a variable.  Your code populates an internal table with the database table fields and attributes, just the way I wanted.  But, I want to be able to associate the database table name at runtime rather than hard coding it in the program.

       

      What do I need to change in your code to dynamically associate a database table name?  Everything I tried previously failed the syntax check.

       

      data: wa_vbak type vbak .

       

      Thanks

      Bruce

Actions