ABAP Select data from SAP table RPLXXXXX 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 RPLXXXXX 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 RPLXXXXX. 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 RPLXXXXX 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_RPLXXXXX TYPE STANDARD TABLE OF RPLXXXXX,
      WA_RPLXXXXX TYPE RPLXXXXX,
      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: <RPLXXXXX> TYPE RPLXXXXX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RPLXXXXX
*  INTO TABLE @DATA(IT_RPLXXXXX2).
*--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_RPLXXXXX INDEX 1 INTO DATA(WA_RPLXXXXX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RPLXXXXX ASSIGNING <RPLXXXXX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RPLXXXXX>-SUBTRIO = 1.
<RPLXXXXX>-RPL_ANZ = 1.
<RPLXXXXX>-BREITE = 1.
<RPLXXXXX>-HOEHE = 1.
<RPLXXXXX>-RAND = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RPLXXXXX-MAXLINES, sy-vline,
WA_RPLXXXXX-ABRECHNR, sy-vline,
WA_RPLXXXXX-KLISTE, sy-vline,
WA_RPLXXXXX-VERSION, sy-vline,
WA_RPLXXXXX-RPL_JAHR, sy-vline,
WA_RPLXXXXX-LISTART, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RPLXXXXX 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_RPLXXXXX 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_RPLXXXXX INTO WA_RPLXXXXX. *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 GJAHR, internal->external for field RPL_JAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RPLXXXXX-RPL_JAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RPLXXXXX-RPL_JAHR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit GJAHR, internal->external for field SELJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RPLXXXXX-SELJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RPLXXXXX-SELJAHR.
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_RPLXXXXX_STR,
SUBTRIO TYPE STRING,
RPL_ANZ TYPE STRING,
BREITE TYPE STRING,
HOEHE TYPE STRING,
RAND TYPE STRING,
MAXLINES TYPE STRING,
ABRECHNR TYPE STRING,
KLISTE TYPE STRING,
VERSION TYPE STRING,
RPL_JAHR TYPE STRING,
LISTART TYPE STRING,
ARMYART TYPE STRING,
REPET TYPE STRING,
TEST3 TYPE STRING,
TA_CODE TYPE STRING,
CODE TYPE STRING,
M_STUNDE TYPE STRING,
EINTRITT TYPE STRING,
AUSTRITT TYPE STRING,
DETAIL TYPE STRING,
LISTVAR TYPE STRING,
SORT TYPE STRING,
AGE1 TYPE STRING,
AGE2 TYPE STRING,
AGE3 TYPE STRING,
YOB TYPE STRING,
SORTD TYPE STRING,
SORT_HOW TYPE STRING,
ABR_NR TYPE STRING,
AK_NR TYPE STRING,
RPL_ZSNR TYPE STRING,
DTERST TYPE STRING,
P16EINDT TYPE STRING,
P16KONDT TYPE STRING,
PGM_SPOL TYPE STRING,
PGM_CNTR TYPE STRING,
PGM_DAT TYPE STRING,
PGM_TEST TYPE STRING,
PGM_QRT TYPE STRING,
PGM_JHR TYPE STRING,
PGM_ADT TYPE STRING,
SORTFLDS TYPE STRING,
DATEI TYPE STRING,
DSN01 TYPE STRING,
SPRACHE TYPE STRING,
E_DATUM TYPE STRING,
EXEMPLAR TYPE STRING,
DRUCK TYPE STRING,
QUERFUNC TYPE STRING,
FORMULAR TYPE STRING,
PAR_VARI TYPE STRING,
PAR_SOFO TYPE STRING,
ANZ_TEST TYPE STRING,
KOSTLTXT TYPE STRING,
LI_HA_UN TYPE STRING,
LI_UN_HA TYPE STRING,
LI_ERROR TYPE STRING,
LIST TYPE STRING,
HDRPREC TYPE STRING,
SUM_PAY TYPE STRING,
SORT_1 TYPE STRING,
SORT_2 TYPE STRING,
DA TYPE STRING,
FEHLT TYPE STRING,
MODUS TYPE STRING,
STICHTAG TYPE STRING,
MONAT TYPE STRING,
ABSENDER TYPE STRING,
LI_RAND TYPE STRING,
SELJAHR TYPE STRING,
LGART_ID TYPE STRING,
TEST TYPE STRING,
GRENZE TYPE STRING,
SW_SEL TYPE STRING,
SW_EDIT TYPE STRING,
UMFANG TYPE STRING,
PGM_PRIO TYPE STRING,
NEWPAGE TYPE STRING,
JUBEL TYPE STRING,
ALLMA TYPE STRING,
DYNSORT TYPE STRING,
GRUPSUM TYPE STRING,
STORNOT TYPE STRING,
KOMOK1 TYPE STRING,
KOMOK2 TYPE STRING,END OF T_EKKO_STR. DATA: WA_RPLXXXXX_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_RPLXXXXX_STR-SUBTRIO sy-vline
WA_RPLXXXXX_STR-RPL_ANZ sy-vline
WA_RPLXXXXX_STR-BREITE sy-vline
WA_RPLXXXXX_STR-HOEHE sy-vline
WA_RPLXXXXX_STR-RAND sy-vline
WA_RPLXXXXX_STR-MAXLINES sy-vline
WA_RPLXXXXX_STR-ABRECHNR sy-vline
WA_RPLXXXXX_STR-KLISTE sy-vline
WA_RPLXXXXX_STR-VERSION sy-vline
WA_RPLXXXXX_STR-RPL_JAHR sy-vline
WA_RPLXXXXX_STR-LISTART sy-vline
WA_RPLXXXXX_STR-ARMYART sy-vline
WA_RPLXXXXX_STR-REPET sy-vline
WA_RPLXXXXX_STR-TEST3 sy-vline
WA_RPLXXXXX_STR-TA_CODE sy-vline
WA_RPLXXXXX_STR-CODE sy-vline
WA_RPLXXXXX_STR-M_STUNDE sy-vline
WA_RPLXXXXX_STR-EINTRITT sy-vline
WA_RPLXXXXX_STR-AUSTRITT sy-vline
WA_RPLXXXXX_STR-DETAIL sy-vline
WA_RPLXXXXX_STR-LISTVAR sy-vline
WA_RPLXXXXX_STR-SORT sy-vline
WA_RPLXXXXX_STR-AGE1 sy-vline
WA_RPLXXXXX_STR-AGE2 sy-vline
WA_RPLXXXXX_STR-AGE3 sy-vline
WA_RPLXXXXX_STR-YOB sy-vline
WA_RPLXXXXX_STR-SORTD sy-vline
WA_RPLXXXXX_STR-SORT_HOW sy-vline
WA_RPLXXXXX_STR-ABR_NR sy-vline
WA_RPLXXXXX_STR-AK_NR sy-vline
WA_RPLXXXXX_STR-RPL_ZSNR sy-vline
WA_RPLXXXXX_STR-DTERST sy-vline
WA_RPLXXXXX_STR-P16EINDT sy-vline
WA_RPLXXXXX_STR-P16KONDT sy-vline
WA_RPLXXXXX_STR-PGM_SPOL sy-vline
WA_RPLXXXXX_STR-PGM_CNTR sy-vline
WA_RPLXXXXX_STR-PGM_DAT sy-vline
WA_RPLXXXXX_STR-PGM_TEST sy-vline
WA_RPLXXXXX_STR-PGM_QRT sy-vline
WA_RPLXXXXX_STR-PGM_JHR sy-vline
WA_RPLXXXXX_STR-PGM_ADT sy-vline
WA_RPLXXXXX_STR-SORTFLDS sy-vline
WA_RPLXXXXX_STR-DATEI sy-vline
WA_RPLXXXXX_STR-DSN01 sy-vline
WA_RPLXXXXX_STR-SPRACHE sy-vline
WA_RPLXXXXX_STR-E_DATUM sy-vline
WA_RPLXXXXX_STR-EXEMPLAR sy-vline
WA_RPLXXXXX_STR-DRUCK sy-vline
WA_RPLXXXXX_STR-QUERFUNC sy-vline
WA_RPLXXXXX_STR-FORMULAR sy-vline
WA_RPLXXXXX_STR-PAR_VARI sy-vline
WA_RPLXXXXX_STR-PAR_SOFO sy-vline
WA_RPLXXXXX_STR-ANZ_TEST sy-vline
WA_RPLXXXXX_STR-KOSTLTXT sy-vline
WA_RPLXXXXX_STR-LI_HA_UN sy-vline
WA_RPLXXXXX_STR-LI_UN_HA sy-vline
WA_RPLXXXXX_STR-LI_ERROR sy-vline
WA_RPLXXXXX_STR-LIST sy-vline
WA_RPLXXXXX_STR-HDRPREC sy-vline
WA_RPLXXXXX_STR-SUM_PAY sy-vline
WA_RPLXXXXX_STR-SORT_1 sy-vline
WA_RPLXXXXX_STR-SORT_2 sy-vline
WA_RPLXXXXX_STR-DA sy-vline
WA_RPLXXXXX_STR-FEHLT sy-vline
WA_RPLXXXXX_STR-MODUS sy-vline
WA_RPLXXXXX_STR-STICHTAG sy-vline
WA_RPLXXXXX_STR-MONAT sy-vline
WA_RPLXXXXX_STR-ABSENDER sy-vline
WA_RPLXXXXX_STR-LI_RAND sy-vline
WA_RPLXXXXX_STR-SELJAHR sy-vline
WA_RPLXXXXX_STR-LGART_ID sy-vline
WA_RPLXXXXX_STR-TEST sy-vline
WA_RPLXXXXX_STR-GRENZE sy-vline
WA_RPLXXXXX_STR-SW_SEL sy-vline
WA_RPLXXXXX_STR-SW_EDIT sy-vline
WA_RPLXXXXX_STR-UMFANG sy-vline
WA_RPLXXXXX_STR-PGM_PRIO sy-vline
WA_RPLXXXXX_STR-NEWPAGE sy-vline
WA_RPLXXXXX_STR-JUBEL sy-vline
WA_RPLXXXXX_STR-ALLMA sy-vline
WA_RPLXXXXX_STR-DYNSORT sy-vline
WA_RPLXXXXX_STR-GRUPSUM sy-vline
WA_RPLXXXXX_STR-STORNOT sy-vline
WA_RPLXXXXX_STR-KOMOK1 sy-vline
WA_RPLXXXXX_STR-KOMOK2 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.