ABAP Select data from SAP table RA02S 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 RA02S 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 RA02S. 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 RA02S 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_RA02S TYPE STANDARD TABLE OF RA02S,
      WA_RA02S TYPE RA02S,
      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: <RA02S> TYPE RA02S.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RA02S
*  INTO TABLE @DATA(IT_RA02S2).
*--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_RA02S INDEX 1 INTO DATA(WA_RA02S2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RA02S ASSIGNING <RA02S>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RA02S>-GRUANZ = 1.
<RA02S>-SICHT = 1.
<RA02S>-TXT50 = 1.
<RA02S>-LTEX1 = 1.
<RA02S>-LTEX2 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RA02S-INDEX, sy-vline,
WA_RA02S-ZKOSTL, sy-vline,
WA_RA02S-ZWERKS, sy-vline,
WA_RA02S-ZLSTAR, sy-vline,
WA_RA02S-ZGSBER, sy-vline,
WA_RA02S-ZSTORT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RA02S 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_RA02S 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_RA02S INTO WA_RA02S. *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 RANL1 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RA02S-RANL1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RA02S-RANL1.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit AC132, internal->external for field VSWRT CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_RA02S-VSWRT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RA02S-VSWRT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field GJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RA02S-GJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RA02S-GJAHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field LBARW CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_RA02S-LBARW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RA02S-LBARW.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field EQUNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RA02S-EQUNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RA02S-EQUNR.
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_RA02S_STR,
GRUANZ TYPE STRING,
SICHT TYPE STRING,
TXT50 TYPE STRING,
LTEX1 TYPE STRING,
LTEX2 TYPE STRING,
INDEX TYPE STRING,
ZKOSTL TYPE STRING,
ZWERKS TYPE STRING,
ZLSTAR TYPE STRING,
ZGSBER TYPE STRING,
ZSTORT TYPE STRING,
ZMSFAK TYPE STRING,
ZXSTIL TYPE STRING,
ZIPROJ TYPE STRING,
ZIAUFN TYPE STRING,
ZCAUFN TYPE STRING,
ZRAUMN TYPE STRING,
XTXJCD TYPE STRING,
XKFZKZ TYPE STRING,
XKOSTLV TYPE STRING,
XPERNR TYPE STRING,
FELD TYPE STRING,
FELDX TYPE STRING,
FLDBS TYPE STRING,
FELD1 TYPE STRING,
FELD2 TYPE STRING,
SEITE TYPE STRING,
MSEIT TYPE STRING,
ADATU TYPE STRING,
RANL1 TYPE STRING,
RANL2 TYPE STRING,
RBUKR TYPE STRING,
NASSETS TYPE STRING,
INVSL TYPE STRING,
VSWRT TYPE STRING,
GJAHR TYPE STRING,
XPHYS TYPE STRING,
CKTEXT TYPE STRING,
IKTEXT TYPE STRING,
LBARW TYPE STRING,
XNACH TYPE STRING,
XNEW TYPE STRING,
XKOMPL TYPE STRING,
KALSM TYPE STRING,
D145HEADER TYPE STRING,
ANLGRTXT TYPE STRING,
XAKPLA TYPE STRING,
DISL TYPE STRING,
RBUKGR TYPE STRING,
RANLGR TYPE STRING,
RANLGR2 TYPE STRING,
BUKGR TYPE STRING,
ANLGR TYPE STRING,
ANLGR2 TYPE STRING,
PERNR_TXT TYPE STRING,
XNEU_AM TYPE STRING,
XGBR_AM TYPE STRING,
XHIST TYPE STRING,
MARK1 TYPE STRING,
WAERS1 TYPE STRING,
WAERS2 TYPE STRING,
WAERS3 TYPE STRING,
TEXT_ABGSL TYPE STRING,
XDEL TYPE STRING,
ANLKL TYPE STRING,
XNOGTNI TYPE STRING,
EQUNR TYPE STRING,
EQTYP TYPE STRING,
EQART TYPE STRING,
EQUI_SYNC TYPE STRING,
EQUI_WF TYPE STRING,
EQUI_SYNC_AA TYPE STRING,
EQUI_WF_AA TYPE STRING,
SHTXT TYPE STRING,
EQANZ TYPE STRING,
EQUI_MAINTAIN TYPE STRING,END OF T_EKKO_STR. DATA: WA_RA02S_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_RA02S_STR-GRUANZ sy-vline
WA_RA02S_STR-SICHT sy-vline
WA_RA02S_STR-TXT50 sy-vline
WA_RA02S_STR-LTEX1 sy-vline
WA_RA02S_STR-LTEX2 sy-vline
WA_RA02S_STR-INDEX sy-vline
WA_RA02S_STR-ZKOSTL sy-vline
WA_RA02S_STR-ZWERKS sy-vline
WA_RA02S_STR-ZLSTAR sy-vline
WA_RA02S_STR-ZGSBER sy-vline
WA_RA02S_STR-ZSTORT sy-vline
WA_RA02S_STR-ZMSFAK sy-vline
WA_RA02S_STR-ZXSTIL sy-vline
WA_RA02S_STR-ZIPROJ sy-vline
WA_RA02S_STR-ZIAUFN sy-vline
WA_RA02S_STR-ZCAUFN sy-vline
WA_RA02S_STR-ZRAUMN sy-vline
WA_RA02S_STR-XTXJCD sy-vline
WA_RA02S_STR-XKFZKZ sy-vline
WA_RA02S_STR-XKOSTLV sy-vline
WA_RA02S_STR-XPERNR sy-vline
WA_RA02S_STR-FELD sy-vline
WA_RA02S_STR-FELDX sy-vline
WA_RA02S_STR-FLDBS sy-vline
WA_RA02S_STR-FELD1 sy-vline
WA_RA02S_STR-FELD2 sy-vline
WA_RA02S_STR-SEITE sy-vline
WA_RA02S_STR-MSEIT sy-vline
WA_RA02S_STR-ADATU sy-vline
WA_RA02S_STR-RANL1 sy-vline
WA_RA02S_STR-RANL2 sy-vline
WA_RA02S_STR-RBUKR sy-vline
WA_RA02S_STR-NASSETS sy-vline
WA_RA02S_STR-INVSL sy-vline
WA_RA02S_STR-VSWRT sy-vline
WA_RA02S_STR-GJAHR sy-vline
WA_RA02S_STR-XPHYS sy-vline
WA_RA02S_STR-CKTEXT sy-vline
WA_RA02S_STR-IKTEXT sy-vline
WA_RA02S_STR-LBARW sy-vline
WA_RA02S_STR-XNACH sy-vline
WA_RA02S_STR-XNEW sy-vline
WA_RA02S_STR-XKOMPL sy-vline
WA_RA02S_STR-KALSM sy-vline
WA_RA02S_STR-D145HEADER sy-vline
WA_RA02S_STR-ANLGRTXT sy-vline
WA_RA02S_STR-XAKPLA sy-vline
WA_RA02S_STR-DISL sy-vline
WA_RA02S_STR-RBUKGR sy-vline
WA_RA02S_STR-RANLGR sy-vline
WA_RA02S_STR-RANLGR2 sy-vline
WA_RA02S_STR-BUKGR sy-vline
WA_RA02S_STR-ANLGR sy-vline
WA_RA02S_STR-ANLGR2 sy-vline
WA_RA02S_STR-PERNR_TXT sy-vline
WA_RA02S_STR-XNEU_AM sy-vline
WA_RA02S_STR-XGBR_AM sy-vline
WA_RA02S_STR-XHIST sy-vline
WA_RA02S_STR-MARK1 sy-vline
WA_RA02S_STR-WAERS1 sy-vline
WA_RA02S_STR-WAERS2 sy-vline
WA_RA02S_STR-WAERS3 sy-vline
WA_RA02S_STR-TEXT_ABGSL sy-vline
WA_RA02S_STR-XDEL sy-vline
WA_RA02S_STR-ANLKL sy-vline
WA_RA02S_STR-XNOGTNI sy-vline
WA_RA02S_STR-EQUNR sy-vline
WA_RA02S_STR-EQTYP sy-vline
WA_RA02S_STR-EQART sy-vline
WA_RA02S_STR-EQUI_SYNC sy-vline
WA_RA02S_STR-EQUI_WF sy-vline
WA_RA02S_STR-EQUI_SYNC_AA sy-vline
WA_RA02S_STR-EQUI_WF_AA sy-vline
WA_RA02S_STR-SHTXT sy-vline
WA_RA02S_STR-EQANZ sy-vline
WA_RA02S_STR-EQUI_MAINTAIN sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.