ABAP Select data from SAP table RPLPBSQ8_ALV 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 RPLPBSQ8_ALV 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 RPLPBSQ8_ALV. 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 RPLPBSQ8_ALV 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_RPLPBSQ8_ALV TYPE STANDARD TABLE OF RPLPBSQ8_ALV,
      WA_RPLPBSQ8_ALV TYPE RPLPBSQ8_ALV,
      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: <RPLPBSQ8_ALV> TYPE RPLPBSQ8_ALV.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RPLPBSQ8_ALV
*  INTO TABLE @DATA(IT_RPLPBSQ8_ALV2).
*--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_RPLPBSQ8_ALV INDEX 1 INTO DATA(WA_RPLPBSQ8_ALV2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RPLPBSQ8_ALV ASSIGNING <RPLPBSQ8_ALV>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RPLPBSQ8_ALV>-RECTY = 1.
<RPLPBSQ8_ALV>-PERNR = 1.
<RPLPBSQ8_ALV>-BGDAT = 1.
<RPLPBSQ8_ALV>-BCGRP = 1.
<RPLPBSQ8_ALV>-ACGRP = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RPLPBSQ8_ALV-WOSTD, sy-vline,
WA_RPLPBSQ8_ALV-PERIN, sy-vline,
WA_RPLPBSQ8_ALV-ANZCO, sy-vline,
WA_RPLPBSQ8_ALV-APSJF, sy-vline,
WA_RPLPBSQ8_ALV-FILL1, sy-vline,
WA_RPLPBSQ8_ALV-GENDR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RPLPBSQ8_ALV 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_RPLPBSQ8_ALV 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_RPLPBSQ8_ALV INTO WA_RPLPBSQ8_ALV. *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 PDATE, internal->external for field BGDAT CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT' EXPORTING input = WA_RPLPBSQ8_ALV-BGDAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RPLPBSQ8_ALV-BGDAT.
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_RPLPBSQ8_ALV_STR,
RECTY TYPE STRING,
PERNR TYPE STRING,
BGDAT TYPE STRING,
BCGRP TYPE STRING,
ACGRP TYPE STRING,
WOSTD TYPE STRING,
PERIN TYPE STRING,
ANZCO TYPE STRING,
APSJF TYPE STRING,
FILL1 TYPE STRING,
GENDR TYPE STRING,
FILL2 TYPE STRING,
FILL3 TYPE STRING,
PEMIN TYPE STRING,
OEMIN TYPE STRING,
BASAL TYPE STRING,
OVTIM TYPE STRING,
SHIFT TYPE STRING,
ANNLL TYPE STRING,
MAXPB TYPE STRING,
ACPBM TYPE STRING,
MAXRB TYPE STRING,
ACTRB TYPE STRING,
PROBO TYPE STRING,
INCMA TYPE STRING,
IPRAB TYPE STRING,
GAPBA TYPE STRING,
ADRAL TYPE STRING,
QSBAL TYPE STRING,
HRDAL TYPE STRING,
FILL4 TYPE STRING,
MRASJ TYPE STRING,
MRASI TYPE STRING,
SUPER TYPE STRING,
ACTSA TYPE STRING,
PHDAP TYPE STRING,
FILL5 TYPE STRING,
EXALL TYPE STRING,
GLALL TYPE STRING,
DISAL TYPE STRING,
HLALL TYPE STRING,
FILL6 TYPE STRING,
SIGNB TYPE STRING,
INDFA TYPE STRING,
FILL7 TYPE STRING,
OTHBE TYPE STRING,
OTHDE TYPE STRING,
OSUPP TYPE STRING,
NSUPF TYPE STRING,
SUPAL TYPE STRING,
SUCON TYPE STRING,
MOTAL TYPE STRING,
CLMOT TYPE STRING,
MOTPA TYPE STRING,
COMMT TYPE STRING,
AGSNU TYPE STRING,
AGCOD TYPE STRING,END OF T_EKKO_STR. DATA: WA_RPLPBSQ8_ALV_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_RPLPBSQ8_ALV_STR-RECTY sy-vline
WA_RPLPBSQ8_ALV_STR-PERNR sy-vline
WA_RPLPBSQ8_ALV_STR-BGDAT sy-vline
WA_RPLPBSQ8_ALV_STR-BCGRP sy-vline
WA_RPLPBSQ8_ALV_STR-ACGRP sy-vline
WA_RPLPBSQ8_ALV_STR-WOSTD sy-vline
WA_RPLPBSQ8_ALV_STR-PERIN sy-vline
WA_RPLPBSQ8_ALV_STR-ANZCO sy-vline
WA_RPLPBSQ8_ALV_STR-APSJF sy-vline
WA_RPLPBSQ8_ALV_STR-FILL1 sy-vline
WA_RPLPBSQ8_ALV_STR-GENDR sy-vline
WA_RPLPBSQ8_ALV_STR-FILL2 sy-vline
WA_RPLPBSQ8_ALV_STR-FILL3 sy-vline
WA_RPLPBSQ8_ALV_STR-PEMIN sy-vline
WA_RPLPBSQ8_ALV_STR-OEMIN sy-vline
WA_RPLPBSQ8_ALV_STR-BASAL sy-vline
WA_RPLPBSQ8_ALV_STR-OVTIM sy-vline
WA_RPLPBSQ8_ALV_STR-SHIFT sy-vline
WA_RPLPBSQ8_ALV_STR-ANNLL sy-vline
WA_RPLPBSQ8_ALV_STR-MAXPB sy-vline
WA_RPLPBSQ8_ALV_STR-ACPBM sy-vline
WA_RPLPBSQ8_ALV_STR-MAXRB sy-vline
WA_RPLPBSQ8_ALV_STR-ACTRB sy-vline
WA_RPLPBSQ8_ALV_STR-PROBO sy-vline
WA_RPLPBSQ8_ALV_STR-INCMA sy-vline
WA_RPLPBSQ8_ALV_STR-IPRAB sy-vline
WA_RPLPBSQ8_ALV_STR-GAPBA sy-vline
WA_RPLPBSQ8_ALV_STR-ADRAL sy-vline
WA_RPLPBSQ8_ALV_STR-QSBAL sy-vline
WA_RPLPBSQ8_ALV_STR-HRDAL sy-vline
WA_RPLPBSQ8_ALV_STR-FILL4 sy-vline
WA_RPLPBSQ8_ALV_STR-MRASJ sy-vline
WA_RPLPBSQ8_ALV_STR-MRASI sy-vline
WA_RPLPBSQ8_ALV_STR-SUPER sy-vline
WA_RPLPBSQ8_ALV_STR-ACTSA sy-vline
WA_RPLPBSQ8_ALV_STR-PHDAP sy-vline
WA_RPLPBSQ8_ALV_STR-FILL5 sy-vline
WA_RPLPBSQ8_ALV_STR-EXALL sy-vline
WA_RPLPBSQ8_ALV_STR-GLALL sy-vline
WA_RPLPBSQ8_ALV_STR-DISAL sy-vline
WA_RPLPBSQ8_ALV_STR-HLALL sy-vline
WA_RPLPBSQ8_ALV_STR-FILL6 sy-vline
WA_RPLPBSQ8_ALV_STR-SIGNB sy-vline
WA_RPLPBSQ8_ALV_STR-INDFA sy-vline
WA_RPLPBSQ8_ALV_STR-FILL7 sy-vline
WA_RPLPBSQ8_ALV_STR-OTHBE sy-vline
WA_RPLPBSQ8_ALV_STR-OTHDE sy-vline
WA_RPLPBSQ8_ALV_STR-OSUPP sy-vline
WA_RPLPBSQ8_ALV_STR-NSUPF sy-vline
WA_RPLPBSQ8_ALV_STR-SUPAL sy-vline
WA_RPLPBSQ8_ALV_STR-SUCON sy-vline
WA_RPLPBSQ8_ALV_STR-MOTAL sy-vline
WA_RPLPBSQ8_ALV_STR-CLMOT sy-vline
WA_RPLPBSQ8_ALV_STR-MOTPA sy-vline
WA_RPLPBSQ8_ALV_STR-COMMT sy-vline
WA_RPLPBSQ8_ALV_STR-AGSNU sy-vline
WA_RPLPBSQ8_ALV_STR-AGCOD sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.