ABAP Select data from SAP table TRDABE into internal table

Get Example source ABAP code based on a different SAP table
  

Below is a number of ABAP code snippets to demonstrate how to select data from SAP TRDABE table and store it within an internal table, including using the newer @DATA inline declaration methods. It also shows you various ways to process this data using ABAP work area, inline declaration or field symbols including executing all the relevant CONVERSION_EXIT routines specific to TRDABE. See here for more generic Select statement tips.

Sometimes data within SAP is stored within the database table in a different format to what it is displayed to the user. These input/output conversation FM routines are what translates the data between the two formats.

There is also a full declaration of the TRDABE table where each field has a char/string type for you to simply copy and paste. This allows you to use processing that is only available to these field types such as the CONCATENATE statement.

DATA: IT_TRDABE TYPE STANDARD TABLE OF TRDABE,
      WA_TRDABE TYPE TRDABE,
      GD_STR TYPE STRING.

DATA: lo_typedescr type REF TO cl_abap_typedescr.
DATA: lv_fieldname type fieldname.

FIELD-SYMBOLS: <FIELD> TYPE any.
FIELD-SYMBOLS: <TRDABE> TYPE TRDABE.

*Process all fields in table header/work area as string values
  PERFORM process_as_string_field_values CHANGING wa_TRDABE.

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM TRDABE
  INTO TABLE IT_TRDABE.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM TRDABE
*  INTO TABLE @DATA(IT_TRDABE2).
*--Further methods of using ABAP code to  select data from SAP database tables

*You can also declare the header/work area using the in-line DATA declaration method
READ TABLE IT_TRDABE INDEX 1 INTO DATA(WA_TRDABE2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_TRDABE ASSIGNING <TRDABE>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<TRDABE>-BUKRS = 1.
<TRDABE>-RANL = 1.
<TRDABE>-MANDT = 1.
<TRDABE>-STYPE = 1.
<TRDABE>-SKOART = 1.
ENDLOOP.

LOOP AT IT_TRDABE INTO WA_TRDABE.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_TRDABE-SBEWART, sy-vline,
WA_TRDABE-VVSBBEZ, sy-vline,
WA_TRDABE-SPLANIST, sy-vline,
WA_TRDABE-RPARTNR, sy-vline,
WA_TRDABE-DBUDAT, sy-vline,
WA_TRDABE-DBLDAT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_TRDABE you want to display... WRITE:/ sy-uline. * Aternatively use generic code to Write field values (and NAME) to screen report DO. ASSIGN COMPONENT sy-index OF STRUCTURE wa_TRDABE TO <field>. IF sy-subrc <> 0. EXIT. ENDIF. WRITE:/ 'Field Value', <field>, sy-vline. gd_str = <field> . lo_typedescr ?= CL_ABAP_DATADESCR=>DESCRIBE_BY_DATA( <field> ). lv_fieldname = lo_typedescr->GET_RELATIVE_NAME( ). WRITE:/ 'Field Name', lv_fieldname. ENDDO. *Redo loop but convert all fields from internal to out value LOOP AT IT_TRDABE INTO WA_TRDABE. *Write horizonal line to screen report. WRITE:/ sy-uline. *Convert all fields to display/output versions using conversion routines PERFORM convert_all_field_values CHANGING wa_EKKO. ENDLOOP. *&---------------------------------------------------------------------* *& Form convert_all_field_values *&---------------------------------------------------------------------* FORM convert_all_field_values CHANGING p_EKKO LIKE wa_EKKO. DATA: ld_input(1000) TYPE c, ld_output(1000) TYPE C.

*Conversion exit ALPHA, internal->external for field RANL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_TRDABE-RANL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TRDABE-RANL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field RPARTNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_TRDABE-RPARTNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TRDABE-RPARTNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field RBELKPFD CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_TRDABE-RBELKPFD IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TRDABE-RBELKPFD.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field RSOLL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_TRDABE-RSOLL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TRDABE-RSOLL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field RHABEN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_TRDABE-RHABEN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TRDABE-RHABEN.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_TRDABE_STR,
BUKRS TYPE STRING,
RANL TYPE STRING,
MANDT TYPE STRING,
STYPE TYPE STRING,
SKOART TYPE STRING,
SBEWART TYPE STRING,
VVSBBEZ TYPE STRING,
SPLANIST TYPE STRING,
RPARTNR TYPE STRING,
DBUDAT TYPE STRING,
DBLDAT TYPE STRING,
DVALUT TYPE STRING,
DFAELL TYPE STRING,
DDISPO TYPE STRING,
DVERRECH TYPE STRING,
SINCL TYPE STRING,
SINCLVERR TYPE STRING,
SINCLBIS TYPE STRING,
SEXCLVON TYPE STRING,
NO_SINCL_CHANGE TYPE STRING,
DBERVON TYPE STRING,
DBERBIS TYPE STRING,
BHWHR TYPE STRING,
N_BHWHR TYPE STRING,
BBWHR TYPE STRING,
N_BBWHR TYPE STRING,
SBWHR TYPE STRING,
BNWHR TYPE STRING,
N_BNWHR TYPE STRING,
SNWHR TYPE STRING,
BCWHR TYPE STRING,
N_BCWHR TYPE STRING,
SCWHR TYPE STRING,
BBASIS TYPE STRING,
N_BBASIS TYPE STRING,
SZEGEN TYPE STRING,
RBELKPFD TYPE STRING,
DGUEL_KK TYPE STRING,
DGUEL_KP TYPE STRING,
DBPERIOD TYPE STRING,
SPAEXCL TYPE STRING,
SPAULT TYPE STRING,
DEPERIOD TYPE STRING,
SPEINCL TYPE STRING,
SPEULT TYPE STRING,
SZBMETH TYPE STRING,
SREFBEW TYPE STRING,
RREFKONT TYPE STRING,
GSBER TYPE STRING,
ZAHLS TYPE STRING,
MANSP TYPE STRING,
RSOLL TYPE STRING,
RHABEN TYPE STRING,
SWOHER TYPE STRING,
STICHTAG TYPE STRING,
OP_BBWHR TYPE STRING,
N_OP_BBWHR TYPE STRING,
OP_BHWHR TYPE STRING,
N_OP_BHWHR TYPE STRING,
OP_BNWHR TYPE STRING,
N_OP_BNWHR TYPE STRING,
OP_BCWHR TYPE STRING,
N_OP_BCWHR TYPE STRING,
OP_DDISPO TYPE STRING,
OP_DBUDAT TYPE STRING,
SSTORNO TYPE STRING,
SSTOGRD TYPE STRING,
SZART TYPE STRING,
KURS2 TYPE STRING,
N_KURS2 TYPE STRING,
ZLSCH TYPE STRING,
DFAELL_OLD_EXT TYPE STRING,
DDISPO_OLD_EXT TYPE STRING,
RBO_EXT TYPE STRING,
SVORGANG TYPE STRING,
ABASTAGE TYPE STRING,
PKOND TYPE STRING,
N_PKOND TYPE STRING,
DPKOND TYPE STRING,
SSTCKKZ_X TYPE STRING,
JSOFVERR_X TYPE STRING,
HKTID TYPE STRING,
HBKID TYPE STRING,
DZFEST TYPE STRING,END OF T_EKKO_STR. DATA: WA_TRDABE_STR type T_EKKO_STR. DATA: ld_text TYPE string. LOOP AT IT_EKKO INTO WA_EKKO. MOVE-CORRESPONDING wa_EKKO TO WA_EKKO_STR. CONCATENATE: sy-vline
WA_TRDABE_STR-BUKRS sy-vline
WA_TRDABE_STR-RANL sy-vline
WA_TRDABE_STR-MANDT sy-vline
WA_TRDABE_STR-STYPE sy-vline
WA_TRDABE_STR-SKOART sy-vline
WA_TRDABE_STR-SBEWART sy-vline
WA_TRDABE_STR-VVSBBEZ sy-vline
WA_TRDABE_STR-SPLANIST sy-vline
WA_TRDABE_STR-RPARTNR sy-vline
WA_TRDABE_STR-DBUDAT sy-vline
WA_TRDABE_STR-DBLDAT sy-vline
WA_TRDABE_STR-DVALUT sy-vline
WA_TRDABE_STR-DFAELL sy-vline
WA_TRDABE_STR-DDISPO sy-vline
WA_TRDABE_STR-DVERRECH sy-vline
WA_TRDABE_STR-SINCL sy-vline
WA_TRDABE_STR-SINCLVERR sy-vline
WA_TRDABE_STR-SINCLBIS sy-vline
WA_TRDABE_STR-SEXCLVON sy-vline
WA_TRDABE_STR-NO_SINCL_CHANGE sy-vline
WA_TRDABE_STR-DBERVON sy-vline
WA_TRDABE_STR-DBERBIS sy-vline
WA_TRDABE_STR-BHWHR sy-vline
WA_TRDABE_STR-N_BHWHR sy-vline
WA_TRDABE_STR-BBWHR sy-vline
WA_TRDABE_STR-N_BBWHR sy-vline
WA_TRDABE_STR-SBWHR sy-vline
WA_TRDABE_STR-BNWHR sy-vline
WA_TRDABE_STR-N_BNWHR sy-vline
WA_TRDABE_STR-SNWHR sy-vline
WA_TRDABE_STR-BCWHR sy-vline
WA_TRDABE_STR-N_BCWHR sy-vline
WA_TRDABE_STR-SCWHR sy-vline
WA_TRDABE_STR-BBASIS sy-vline
WA_TRDABE_STR-N_BBASIS sy-vline
WA_TRDABE_STR-SZEGEN sy-vline
WA_TRDABE_STR-RBELKPFD sy-vline
WA_TRDABE_STR-DGUEL_KK sy-vline
WA_TRDABE_STR-DGUEL_KP sy-vline
WA_TRDABE_STR-DBPERIOD sy-vline
WA_TRDABE_STR-SPAEXCL sy-vline
WA_TRDABE_STR-SPAULT sy-vline
WA_TRDABE_STR-DEPERIOD sy-vline
WA_TRDABE_STR-SPEINCL sy-vline
WA_TRDABE_STR-SPEULT sy-vline
WA_TRDABE_STR-SZBMETH sy-vline
WA_TRDABE_STR-SREFBEW sy-vline
WA_TRDABE_STR-RREFKONT sy-vline
WA_TRDABE_STR-GSBER sy-vline
WA_TRDABE_STR-ZAHLS sy-vline
WA_TRDABE_STR-MANSP sy-vline
WA_TRDABE_STR-RSOLL sy-vline
WA_TRDABE_STR-RHABEN sy-vline
WA_TRDABE_STR-SWOHER sy-vline
WA_TRDABE_STR-STICHTAG sy-vline
WA_TRDABE_STR-OP_BBWHR sy-vline
WA_TRDABE_STR-N_OP_BBWHR sy-vline
WA_TRDABE_STR-OP_BHWHR sy-vline
WA_TRDABE_STR-N_OP_BHWHR sy-vline
WA_TRDABE_STR-OP_BNWHR sy-vline
WA_TRDABE_STR-N_OP_BNWHR sy-vline
WA_TRDABE_STR-OP_BCWHR sy-vline
WA_TRDABE_STR-N_OP_BCWHR sy-vline
WA_TRDABE_STR-OP_DDISPO sy-vline
WA_TRDABE_STR-OP_DBUDAT sy-vline
WA_TRDABE_STR-SSTORNO sy-vline
WA_TRDABE_STR-SSTOGRD sy-vline
WA_TRDABE_STR-SZART sy-vline
WA_TRDABE_STR-KURS2 sy-vline
WA_TRDABE_STR-N_KURS2 sy-vline
WA_TRDABE_STR-ZLSCH sy-vline
WA_TRDABE_STR-DFAELL_OLD_EXT sy-vline
WA_TRDABE_STR-DDISPO_OLD_EXT sy-vline
WA_TRDABE_STR-RBO_EXT sy-vline
WA_TRDABE_STR-SVORGANG sy-vline
WA_TRDABE_STR-ABASTAGE sy-vline
WA_TRDABE_STR-PKOND sy-vline
WA_TRDABE_STR-N_PKOND sy-vline
WA_TRDABE_STR-DPKOND sy-vline
WA_TRDABE_STR-SSTCKKZ_X sy-vline
WA_TRDABE_STR-JSOFVERR_X sy-vline
WA_TRDABE_STR-HKTID sy-vline
WA_TRDABE_STR-HBKID sy-vline
WA_TRDABE_STR-DZFEST sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.