ABAP Select data from SAP table RGRWD 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 RGRWD 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 RGRWD. 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 RGRWD 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_RGRWD TYPE STANDARD TABLE OF RGRWD,
      WA_RGRWD TYPE RGRWD,
      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: <RGRWD> TYPE RGRWD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RGRWD
*  INTO TABLE @DATA(IT_RGRWD2).
*--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_RGRWD INDEX 1 INTO DATA(WA_RGRWD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RGRWD ASSIGNING <RGRWD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RGRWD>-LIB = 1.
<RGRWD>-RNAME = 1.
<RGRWD>-REF_LIB = 1.
<RGRWD>-REF_RNAME = 1.
<RGRWD>-ROW_SEQNR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RGRWD-COL_SEQNR, sy-vline,
WA_RGRWD-FIELD_POS, sy-vline,
WA_RGRWD-STARTFIELD, sy-vline,
WA_RGRWD-COL_LEVEL, sy-vline,
WA_RGRWD-ROW_LEVEL, sy-vline,
WA_RGRWD-TOT_LEVEL, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RGRWD 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_RGRWD 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_RGRWD INTO WA_RGRWD. *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 LANGUAGE CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RGRWD-LANGUAGE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGRWD-LANGUAGE.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field MASTERLANG CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RGRWD-MASTERLANG IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGRWD-MASTERLANG.
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_RGRWD_STR,
LIB TYPE STRING,
RNAME TYPE STRING,
REF_LIB TYPE STRING,
REF_RNAME TYPE STRING,
ROW_SEQNR TYPE STRING,
COL_SEQNR TYPE STRING,
FIELD_POS TYPE STRING,
STARTFIELD TYPE STRING,
COL_LEVEL TYPE STRING,
ROW_LEVEL TYPE STRING,
TOT_LEVEL TYPE STRING,
PAGE_LEVEL TYPE STRING,
SPT_LEVEL TYPE STRING,
KEEP_LEVEL TYPE STRING,
UL_FLEVEL1 TYPE STRING,
UL_TLEVEL1 TYPE STRING,
UL_FLEVEL2 TYPE STRING,
UL_TLEVEL2 TYPE STRING,
FORM_PART1 TYPE STRING,
FORM_PART2 TYPE STRING,
FORM_PART3 TYPE STRING,
FORM_PART4 TYPE STRING,
VLEVEL1 TYPE STRING,
VLEVEL2 TYPE STRING,
DEFINED TYPE STRING,
LINE TYPE STRING,
TTL_LINE TYPE STRING,
HDR_LINE TYPE STRING,
FTR_LINE TYPE STRING,
END_LINE TYPE STRING,
SET_TEXT TYPE STRING,
SET_TEXT1 TYPE STRING,
FIELD_NAME TYPE STRING,
FIELD_TEXT TYPE STRING,
TABLE_TEXT TYPE STRING,
ENTRYACT TYPE STRING,
ENTRYMAX TYPE STRING,
SEL_SETNAM TYPE STRING,
RR_SETNAM TYPE STRING,
ROW_SETNAM TYPE STRING,
ROW_SET TYPE STRING,
RC_SETNAM TYPE STRING,
COL_SETNAM TYPE STRING,
COL_SET TYPE STRING,
SETCLST TYPE STRING,
RC_INACTIV TYPE STRING,
LANGUAGE TYPE STRING,
RAT_FORM1 TYPE STRING,
RAT_FORM2 TYPE STRING,
RAT_FORM3 TYPE STRING,
RAT_FORM4 TYPE STRING,
RAT_COL1 TYPE STRING,
RAT_COL2 TYPE STRING,
RAT_COL3 TYPE STRING,
RAT_COL4 TYPE STRING,
RCOLUMN1 TYPE STRING,
RCOLUMN2 TYPE STRING,
RCOLUMN3 TYPE STRING,
RCOLUMN4 TYPE STRING,
RFORMPART1 TYPE STRING,
RFORMPART2 TYPE STRING,
RFORMPART3 TYPE STRING,
RFORMPART4 TYPE STRING,
CELLUSED TYPE STRING,
AUTHGR_TXT TYPE STRING,
F_SET TYPE STRING,
F_FORMULA TYPE STRING,
F_RATIOS TYPE STRING,
ROWFORM1 TYPE STRING,
ROWFORM2 TYPE STRING,
ROWFORM3 TYPE STRING,
ROWFORM4 TYPE STRING,
R_ULSIGN_1 TYPE STRING,
R_ULSIGN_2 TYPE STRING,
R_ULSIGN_3 TYPE STRING,
R_ULSIGN_U TYPE STRING,
UL_SIGN TYPE STRING,
R_OLSIGN_1 TYPE STRING,
R_OLSIGN_2 TYPE STRING,
R_OLSIGN_3 TYPE STRING,
R_OLSIGN_U TYPE STRING,
OL_SIGN TYPE STRING,
R_RLSIGN_1 TYPE STRING,
R_RLSIGN_2 TYPE STRING,
R_RLSIGN_U TYPE STRING,
RL_SIGN TYPE STRING,
R_LLSIGN_1 TYPE STRING,
R_LLSIGN_2 TYPE STRING,
R_LLSIGN_U TYPE STRING,
LL_SIGN TYPE STRING,
MAX_LSEQNR TYPE STRING,
MAX_CSEQNR TYPE STRING,
MAX_DIMNR TYPE STRING,
COLOR1 TYPE STRING,
COLOR2 TYPE STRING,
ROW_INACT TYPE STRING,
ROW_SUPPR TYPE STRING,
SUM_FROM TYPE STRING,
SUM_TO TYPE STRING,
PFEED TYPE STRING,
PRINT_HEAD TYPE STRING,
PRINT_HEAD_TOP TYPE STRING,
PRINT_HEAD_MOP TYPE STRING,
GLOBALCELL TYPE STRING,
ORIGIN TYPE STRING,
R_TYPE_RW TYPE STRING,
R_TYPE_RP TYPE STRING,
TAB_TEXT TYPE STRING,
TRFLG TYPE STRING,
TRHIDE TYPE STRING,
TRRED TYPE STRING,
TRGREEN TYPE STRING,
TRCOL TYPE STRING,
TRMOD TYPE STRING,
TROPR TYPE STRING,
TRVAL TYPE STRING,
TRSGN TYPE STRING,
TRDET TYPE STRING,
TRFLG2 TYPE STRING,
TRHIDE2 TYPE STRING,
TRRED2 TYPE STRING,
TRGREEN2 TYPE STRING,
TRCOL2 TYPE STRING,
TRMOD2 TYPE STRING,
TROPR2 TYPE STRING,
TRVAL2 TYPE STRING,
TRSGN2 TYPE STRING,
TRDET2 TYPE STRING,
X_RELATED TYPE STRING,
X_KEEP TYPE STRING,
SHEET_SEQNR TYPE STRING,
SHEET_TEXT TYPE STRING,
R_SRMOD_0 TYPE STRING,
R_SRMOD_1 TYPE STRING,
R_SRMOD_2 TYPE STRING,
R_SRMOD1_0 TYPE STRING,
R_SRMOD1_1 TYPE STRING,
SRMOD TYPE STRING,
SRCOL TYPE STRING,
SRLEV TYPE STRING,
SRMODH TYPE STRING,
R_MULCHAR TYPE STRING,
R_MULCHAR_U TYPE STRING,
R_MULCHAR_X TYPE STRING,
MASTERLANG TYPE STRING,
PRE_SIGN TYPE STRING,
SUF_SIGN TYPE STRING,
X_REV_SIGN TYPE STRING,
SUM_MAX TYPE STRING,END OF T_EKKO_STR. DATA: WA_RGRWD_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_RGRWD_STR-LIB sy-vline
WA_RGRWD_STR-RNAME sy-vline
WA_RGRWD_STR-REF_LIB sy-vline
WA_RGRWD_STR-REF_RNAME sy-vline
WA_RGRWD_STR-ROW_SEQNR sy-vline
WA_RGRWD_STR-COL_SEQNR sy-vline
WA_RGRWD_STR-FIELD_POS sy-vline
WA_RGRWD_STR-STARTFIELD sy-vline
WA_RGRWD_STR-COL_LEVEL sy-vline
WA_RGRWD_STR-ROW_LEVEL sy-vline
WA_RGRWD_STR-TOT_LEVEL sy-vline
WA_RGRWD_STR-PAGE_LEVEL sy-vline
WA_RGRWD_STR-SPT_LEVEL sy-vline
WA_RGRWD_STR-KEEP_LEVEL sy-vline
WA_RGRWD_STR-UL_FLEVEL1 sy-vline
WA_RGRWD_STR-UL_TLEVEL1 sy-vline
WA_RGRWD_STR-UL_FLEVEL2 sy-vline
WA_RGRWD_STR-UL_TLEVEL2 sy-vline
WA_RGRWD_STR-FORM_PART1 sy-vline
WA_RGRWD_STR-FORM_PART2 sy-vline
WA_RGRWD_STR-FORM_PART3 sy-vline
WA_RGRWD_STR-FORM_PART4 sy-vline
WA_RGRWD_STR-VLEVEL1 sy-vline
WA_RGRWD_STR-VLEVEL2 sy-vline
WA_RGRWD_STR-DEFINED sy-vline
WA_RGRWD_STR-LINE sy-vline
WA_RGRWD_STR-TTL_LINE sy-vline
WA_RGRWD_STR-HDR_LINE sy-vline
WA_RGRWD_STR-FTR_LINE sy-vline
WA_RGRWD_STR-END_LINE sy-vline
WA_RGRWD_STR-SET_TEXT sy-vline
WA_RGRWD_STR-SET_TEXT1 sy-vline
WA_RGRWD_STR-FIELD_NAME sy-vline
WA_RGRWD_STR-FIELD_TEXT sy-vline
WA_RGRWD_STR-TABLE_TEXT sy-vline
WA_RGRWD_STR-ENTRYACT sy-vline
WA_RGRWD_STR-ENTRYMAX sy-vline
WA_RGRWD_STR-SEL_SETNAM sy-vline
WA_RGRWD_STR-RR_SETNAM sy-vline
WA_RGRWD_STR-ROW_SETNAM sy-vline
WA_RGRWD_STR-ROW_SET sy-vline
WA_RGRWD_STR-RC_SETNAM sy-vline
WA_RGRWD_STR-COL_SETNAM sy-vline
WA_RGRWD_STR-COL_SET sy-vline
WA_RGRWD_STR-SETCLST sy-vline
WA_RGRWD_STR-RC_INACTIV sy-vline
WA_RGRWD_STR-LANGUAGE sy-vline
WA_RGRWD_STR-RAT_FORM1 sy-vline
WA_RGRWD_STR-RAT_FORM2 sy-vline
WA_RGRWD_STR-RAT_FORM3 sy-vline
WA_RGRWD_STR-RAT_FORM4 sy-vline
WA_RGRWD_STR-RAT_COL1 sy-vline
WA_RGRWD_STR-RAT_COL2 sy-vline
WA_RGRWD_STR-RAT_COL3 sy-vline
WA_RGRWD_STR-RAT_COL4 sy-vline
WA_RGRWD_STR-RCOLUMN1 sy-vline
WA_RGRWD_STR-RCOLUMN2 sy-vline
WA_RGRWD_STR-RCOLUMN3 sy-vline
WA_RGRWD_STR-RCOLUMN4 sy-vline
WA_RGRWD_STR-RFORMPART1 sy-vline
WA_RGRWD_STR-RFORMPART2 sy-vline
WA_RGRWD_STR-RFORMPART3 sy-vline
WA_RGRWD_STR-RFORMPART4 sy-vline
WA_RGRWD_STR-CELLUSED sy-vline
WA_RGRWD_STR-AUTHGR_TXT sy-vline
WA_RGRWD_STR-F_SET sy-vline
WA_RGRWD_STR-F_FORMULA sy-vline
WA_RGRWD_STR-F_RATIOS sy-vline
WA_RGRWD_STR-ROWFORM1 sy-vline
WA_RGRWD_STR-ROWFORM2 sy-vline
WA_RGRWD_STR-ROWFORM3 sy-vline
WA_RGRWD_STR-ROWFORM4 sy-vline
WA_RGRWD_STR-R_ULSIGN_1 sy-vline
WA_RGRWD_STR-R_ULSIGN_2 sy-vline
WA_RGRWD_STR-R_ULSIGN_3 sy-vline
WA_RGRWD_STR-R_ULSIGN_U sy-vline
WA_RGRWD_STR-UL_SIGN sy-vline
WA_RGRWD_STR-R_OLSIGN_1 sy-vline
WA_RGRWD_STR-R_OLSIGN_2 sy-vline
WA_RGRWD_STR-R_OLSIGN_3 sy-vline
WA_RGRWD_STR-R_OLSIGN_U sy-vline
WA_RGRWD_STR-OL_SIGN sy-vline
WA_RGRWD_STR-R_RLSIGN_1 sy-vline
WA_RGRWD_STR-R_RLSIGN_2 sy-vline
WA_RGRWD_STR-R_RLSIGN_U sy-vline
WA_RGRWD_STR-RL_SIGN sy-vline
WA_RGRWD_STR-R_LLSIGN_1 sy-vline
WA_RGRWD_STR-R_LLSIGN_2 sy-vline
WA_RGRWD_STR-R_LLSIGN_U sy-vline
WA_RGRWD_STR-LL_SIGN sy-vline
WA_RGRWD_STR-MAX_LSEQNR sy-vline
WA_RGRWD_STR-MAX_CSEQNR sy-vline
WA_RGRWD_STR-MAX_DIMNR sy-vline
WA_RGRWD_STR-COLOR1 sy-vline
WA_RGRWD_STR-COLOR2 sy-vline
WA_RGRWD_STR-ROW_INACT sy-vline
WA_RGRWD_STR-ROW_SUPPR sy-vline
WA_RGRWD_STR-SUM_FROM sy-vline
WA_RGRWD_STR-SUM_TO sy-vline
WA_RGRWD_STR-PFEED sy-vline
WA_RGRWD_STR-PRINT_HEAD sy-vline
WA_RGRWD_STR-PRINT_HEAD_TOP sy-vline
WA_RGRWD_STR-PRINT_HEAD_MOP sy-vline
WA_RGRWD_STR-GLOBALCELL sy-vline
WA_RGRWD_STR-ORIGIN sy-vline
WA_RGRWD_STR-R_TYPE_RW sy-vline
WA_RGRWD_STR-R_TYPE_RP sy-vline
WA_RGRWD_STR-TAB_TEXT sy-vline
WA_RGRWD_STR-TRFLG sy-vline
WA_RGRWD_STR-TRHIDE sy-vline
WA_RGRWD_STR-TRRED sy-vline
WA_RGRWD_STR-TRGREEN sy-vline
WA_RGRWD_STR-TRCOL sy-vline
WA_RGRWD_STR-TRMOD sy-vline
WA_RGRWD_STR-TROPR sy-vline
WA_RGRWD_STR-TRVAL sy-vline
WA_RGRWD_STR-TRSGN sy-vline
WA_RGRWD_STR-TRDET sy-vline
WA_RGRWD_STR-TRFLG2 sy-vline
WA_RGRWD_STR-TRHIDE2 sy-vline
WA_RGRWD_STR-TRRED2 sy-vline
WA_RGRWD_STR-TRGREEN2 sy-vline
WA_RGRWD_STR-TRCOL2 sy-vline
WA_RGRWD_STR-TRMOD2 sy-vline
WA_RGRWD_STR-TROPR2 sy-vline
WA_RGRWD_STR-TRVAL2 sy-vline
WA_RGRWD_STR-TRSGN2 sy-vline
WA_RGRWD_STR-TRDET2 sy-vline
WA_RGRWD_STR-X_RELATED sy-vline
WA_RGRWD_STR-X_KEEP sy-vline
WA_RGRWD_STR-SHEET_SEQNR sy-vline
WA_RGRWD_STR-SHEET_TEXT sy-vline
WA_RGRWD_STR-R_SRMOD_0 sy-vline
WA_RGRWD_STR-R_SRMOD_1 sy-vline
WA_RGRWD_STR-R_SRMOD_2 sy-vline
WA_RGRWD_STR-R_SRMOD1_0 sy-vline
WA_RGRWD_STR-R_SRMOD1_1 sy-vline
WA_RGRWD_STR-SRMOD sy-vline
WA_RGRWD_STR-SRCOL sy-vline
WA_RGRWD_STR-SRLEV sy-vline
WA_RGRWD_STR-SRMODH sy-vline
WA_RGRWD_STR-R_MULCHAR sy-vline
WA_RGRWD_STR-R_MULCHAR_U sy-vline
WA_RGRWD_STR-R_MULCHAR_X sy-vline
WA_RGRWD_STR-MASTERLANG sy-vline
WA_RGRWD_STR-PRE_SIGN sy-vline
WA_RGRWD_STR-SUF_SIGN sy-vline
WA_RGRWD_STR-X_REV_SIGN sy-vline
WA_RGRWD_STR-SUM_MAX sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.