ABAP Select data from SAP table RPUAXXXX 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 RPUAXXXX 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 RPUAXXXX. 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 RPUAXXXX 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_RPUAXXXX TYPE STANDARD TABLE OF RPUAXXXX,
      WA_RPUAXXXX TYPE RPUAXXXX,
      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: <RPUAXXXX> TYPE RPUAXXXX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RPUAXXXX
*  INTO TABLE @DATA(IT_RPUAXXXX2).
*--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_RPUAXXXX INDEX 1 INTO DATA(WA_RPUAXXXX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RPUAXXXX ASSIGNING <RPUAXXXX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RPUAXXXX>-PROTO = 1.
<RPUAXXXX>-REQUEST = 1.
<RPUAXXXX>-DATEI = 1.
<RPUAXXXX>-SET = 1.
<RPUAXXXX>-DELETCTL = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RPUAXXXX-DTABLE_4, sy-vline,
WA_RPUAXXXX-MODUS, sy-vline,
WA_RPUAXXXX-UNDERSCO, sy-vline,
WA_RPUAXXXX-MODUS3, sy-vline,
WA_RPUAXXXX-VERS3, sy-vline,
WA_RPUAXXXX-DSN, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RPUAXXXX 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_RPUAXXXX 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_RPUAXXXX INTO WA_RPUAXXXX. *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 ISOLA, internal->external for field SPRSL CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RPUAXXXX-SPRSL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RPUAXXXX-SPRSL.
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_RPUAXXXX_STR,
PROTO TYPE STRING,
REQUEST TYPE STRING,
DATEI TYPE STRING,
SET TYPE STRING,
DELETCTL TYPE STRING,
DTABLE_4 TYPE STRING,
MODUS TYPE STRING,
UNDERSCO TYPE STRING,
MODUS3 TYPE STRING,
VERS3 TYPE STRING,
DSN TYPE STRING,
MAPNAME12 TYPE STRING,
STAT TYPE STRING,
GENERA TYPE STRING,
UNTER TYPE STRING,
STAND TYPE STRING,
GFLAG TYPE STRING,
TEST3 TYPE STRING,
XV_VZ TYPE STRING,
P_XV TYPE STRING,
DEL_ALL TYPE STRING,
VKLAS_NR TYPE STRING,
VKLAS_VA TYPE STRING,
AKLAS_NR TYPE STRING,
AKLAS_VA TYPE STRING,
KUMUL_NR TYPE STRING,
DURGL_ZE TYPE STRING,
DURGL_AW TYPE STRING,
DURGL_NR TYPE STRING,
BLANK TYPE STRING,
PROT TYPE STRING,
AUTH TYPE STRING,
AEND TYPE STRING,
CLAS TYPE STRING,
NAME TYPE STRING,
SORT TYPE STRING,
LEVL TYPE STRING,
TTOF TYPE STRING,
INTE TYPE STRING,
ATTR TYPE STRING,
ALLG TYPE STRING,
DRUCK TYPE STRING,
DIR_NAME TYPE STRING,
SEQ_FILE TYPE STRING,
TEST TYPE STRING,
METHOD TYPE STRING,
DYNPROG TYPE STRING,
ONAME TYPE STRING,
NNAME TYPE STRING,
AKTION TYPE STRING,
SPRSL TYPE STRING,
MOLGA_Z TYPE STRING,
MOLGA_Q TYPE STRING,
DEL_SPR TYPE STRING,
PROTO2 TYPE STRING,
NEW_PAGE TYPE STRING,
PE_MODU1 TYPE STRING,
PE_MODU2 TYPE STRING,
PE_MODU3 TYPE STRING,
PE_MODU4 TYPE STRING,
TEST_UMS TYPE STRING,END OF T_EKKO_STR. DATA: WA_RPUAXXXX_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_RPUAXXXX_STR-PROTO sy-vline
WA_RPUAXXXX_STR-REQUEST sy-vline
WA_RPUAXXXX_STR-DATEI sy-vline
WA_RPUAXXXX_STR-SET sy-vline
WA_RPUAXXXX_STR-DELETCTL sy-vline
WA_RPUAXXXX_STR-DTABLE_4 sy-vline
WA_RPUAXXXX_STR-MODUS sy-vline
WA_RPUAXXXX_STR-UNDERSCO sy-vline
WA_RPUAXXXX_STR-MODUS3 sy-vline
WA_RPUAXXXX_STR-VERS3 sy-vline
WA_RPUAXXXX_STR-DSN sy-vline
WA_RPUAXXXX_STR-MAPNAME12 sy-vline
WA_RPUAXXXX_STR-STAT sy-vline
WA_RPUAXXXX_STR-GENERA sy-vline
WA_RPUAXXXX_STR-UNTER sy-vline
WA_RPUAXXXX_STR-STAND sy-vline
WA_RPUAXXXX_STR-GFLAG sy-vline
WA_RPUAXXXX_STR-TEST3 sy-vline
WA_RPUAXXXX_STR-XV_VZ sy-vline
WA_RPUAXXXX_STR-P_XV sy-vline
WA_RPUAXXXX_STR-DEL_ALL sy-vline
WA_RPUAXXXX_STR-VKLAS_NR sy-vline
WA_RPUAXXXX_STR-VKLAS_VA sy-vline
WA_RPUAXXXX_STR-AKLAS_NR sy-vline
WA_RPUAXXXX_STR-AKLAS_VA sy-vline
WA_RPUAXXXX_STR-KUMUL_NR sy-vline
WA_RPUAXXXX_STR-DURGL_ZE sy-vline
WA_RPUAXXXX_STR-DURGL_AW sy-vline
WA_RPUAXXXX_STR-DURGL_NR sy-vline
WA_RPUAXXXX_STR-BLANK sy-vline
WA_RPUAXXXX_STR-PROT sy-vline
WA_RPUAXXXX_STR-AUTH sy-vline
WA_RPUAXXXX_STR-AEND sy-vline
WA_RPUAXXXX_STR-CLAS sy-vline
WA_RPUAXXXX_STR-NAME sy-vline
WA_RPUAXXXX_STR-SORT sy-vline
WA_RPUAXXXX_STR-LEVL sy-vline
WA_RPUAXXXX_STR-TTOF sy-vline
WA_RPUAXXXX_STR-INTE sy-vline
WA_RPUAXXXX_STR-ATTR sy-vline
WA_RPUAXXXX_STR-ALLG sy-vline
WA_RPUAXXXX_STR-DRUCK sy-vline
WA_RPUAXXXX_STR-DIR_NAME sy-vline
WA_RPUAXXXX_STR-SEQ_FILE sy-vline
WA_RPUAXXXX_STR-TEST sy-vline
WA_RPUAXXXX_STR-METHOD sy-vline
WA_RPUAXXXX_STR-DYNPROG sy-vline
WA_RPUAXXXX_STR-ONAME sy-vline
WA_RPUAXXXX_STR-NNAME sy-vline
WA_RPUAXXXX_STR-AKTION sy-vline
WA_RPUAXXXX_STR-SPRSL sy-vline
WA_RPUAXXXX_STR-MOLGA_Z sy-vline
WA_RPUAXXXX_STR-MOLGA_Q sy-vline
WA_RPUAXXXX_STR-DEL_SPR sy-vline
WA_RPUAXXXX_STR-PROTO2 sy-vline
WA_RPUAXXXX_STR-NEW_PAGE sy-vline
WA_RPUAXXXX_STR-PE_MODU1 sy-vline
WA_RPUAXXXX_STR-PE_MODU2 sy-vline
WA_RPUAXXXX_STR-PE_MODU3 sy-vline
WA_RPUAXXXX_STR-PE_MODU4 sy-vline
WA_RPUAXXXX_STR-TEST_UMS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.