Skip to Content
author's profile photo Former Member
Former Member

RTTS dynamic DB table reference, how?

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

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • Best Answer
    Posted on Jul 24, 2005 at 06:31 AM

    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

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.