ABAP Select data from SAP table RKSB1 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 RKSB1 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 RKSB1. 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 RKSB1 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_RKSB1 TYPE STANDARD TABLE OF RKSB1,
      WA_RKSB1 TYPE RKSB1,
      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: <RKSB1> TYPE RKSB1.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RKSB1
*  INTO TABLE @DATA(IT_RKSB12).
*--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_RKSB1 INDEX 1 INTO DATA(WA_RKSB12).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RKSB1 ASSIGNING <RKSB1>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RKSB1>-LEDNR = 1.
<RKSB1>-WRTTV = 1.
<RKSB1>-VERSV = 1.
<RKSB1>-VERSB = 1.
<RKSB1>-WRTTB = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RKSB1-VRGNV, sy-vline,
WA_RKSB1-VRGNB, sy-vline,
WA_RKSB1-KOKRS, sy-vline,
WA_RKSB1-WRTTP, sy-vline,
WA_RKSB1-VERSN, sy-vline,
WA_RKSB1-KOSTV, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RKSB1 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_RKSB1 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_RKSB1 INTO WA_RKSB1. *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 LEDNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RKSB1-LEDNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSB1-LEDNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

*Conversion exit ABPSN, internal->external for field PROJV CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT' EXPORTING input = WA_RKSB1-PROJV IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSB1-PROJV.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSN, internal->external for field PRPSV CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT' EXPORTING input = WA_RKSB1-PRPSV IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSB1-PRPSV.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSN, internal->external for field PRGRU CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT' EXPORTING input = WA_RKSB1-PRGRU IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSB1-PRGRU.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_RKSB1-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSB1-MATNR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit NUMCV, internal->external for field NW_VORNR CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_RKSB1-NW_VORNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSB1-NW_VORNR.
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_RKSB1_STR,
LEDNR TYPE STRING,
WRTTV TYPE STRING,
VERSV TYPE STRING,
VERSB TYPE STRING,
WRTTB TYPE STRING,
VRGNV TYPE STRING,
VRGNB TYPE STRING,
KOKRS TYPE STRING,
WRTTP TYPE STRING,
VERSN TYPE STRING,
KOSTV TYPE STRING,
KSGRU TYPE STRING,
PRZNR TYPE STRING,
PHINR TYPE STRING,
PERIV TYPE STRING,
PERIB TYPE STRING,
GJAHV TYPE STRING,
GJAHB TYPE STRING,
AUFTV TYPE STRING,
AUFGR TYPE STRING,
PROJV TYPE STRING,
PRPSV TYPE STRING,
PRGRU TYPE STRING,
KSTRG TYPE STRING,
KDAUF TYPE STRING,
KDPOS TYPE STRING,
SAUFN TYPE STRING,
FIPOV TYPE STRING,
FIPOB TYPE STRING,
WERKS TYPE STRING,
MATNR TYPE STRING,
VERID TYPE STRING,
INCOR TYPE STRING,
INCNETZ TYPE STRING,
HIERA TYPE STRING,
KSTRV TYPE STRING,
KAGRU TYPE STRING,
BUPEV TYPE STRING,
BUPEB TYPE STRING,
BUDTB TYPE STRING,
BUDTV TYPE STRING,
ZHLDTV TYPE STRING,
ZHLDTB TYPE STRING,
BLDTV TYPE STRING,
BLDTB TYPE STRING,
KTEXT TYPE STRING,
LTEXT TYPE STRING,
SRTFO TYPE STRING,
STREP TYPE STRING,
STRSB TYPE STRING,
STRTD TYPE STRING,
STRTK TYPE STRING,
STRTS TYPE STRING,
TEXT1 TYPE STRING,
TEXT2 TYPE STRING,
TEXT3 TYPE STRING,
SUVAR TYPE STRING,
VARNR TYPE STRING,
CPAGE TYPE STRING,
TPAGE TYPE STRING,
XDESC TYPE STRING,
XDKZS TYPE STRING,
XJA TYPE STRING,
XMDEB TYPE STRING,
XMKRD TYPE STRING,
XNEIN TYPE STRING,
XSFSW TYPE STRING,
XSTRG TYPE STRING,
XSUCH TYPE STRING,
XSUMA TYPE STRING,
XZUSA TYPE STRING,
BISSL TYPE STRING,
VONSL TYPE STRING,
ZUART TYPE STRING,
TRVOG TYPE STRING,
XDOCUMENT TYPE STRING,
NW_AUFNR TYPE STRING,
NW_VORNR TYPE STRING,
AUFL_HIER TYPE STRING,
AUFL_AUFT TYPE STRING,
FM_OPEN TYPE STRING,
AFABE TYPE STRING,
IM_LOCK TYPE STRING,
OMWST TYPE STRING,
KASETID TYPE STRING,
KSSETID TYPE STRING,
ORSETID TYPE STRING,
BPSETID TYPE STRING,
LASETID TYPE STRING,
SETID TYPE STRING,END OF T_EKKO_STR. DATA: WA_RKSB1_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_RKSB1_STR-LEDNR sy-vline
WA_RKSB1_STR-WRTTV sy-vline
WA_RKSB1_STR-VERSV sy-vline
WA_RKSB1_STR-VERSB sy-vline
WA_RKSB1_STR-WRTTB sy-vline
WA_RKSB1_STR-VRGNV sy-vline
WA_RKSB1_STR-VRGNB sy-vline
WA_RKSB1_STR-KOKRS sy-vline
WA_RKSB1_STR-WRTTP sy-vline
WA_RKSB1_STR-VERSN sy-vline
WA_RKSB1_STR-KOSTV sy-vline
WA_RKSB1_STR-KSGRU sy-vline
WA_RKSB1_STR-PRZNR sy-vline
WA_RKSB1_STR-PHINR sy-vline
WA_RKSB1_STR-PERIV sy-vline
WA_RKSB1_STR-PERIB sy-vline
WA_RKSB1_STR-GJAHV sy-vline
WA_RKSB1_STR-GJAHB sy-vline
WA_RKSB1_STR-AUFTV sy-vline
WA_RKSB1_STR-AUFGR sy-vline
WA_RKSB1_STR-PROJV sy-vline
WA_RKSB1_STR-PRPSV sy-vline
WA_RKSB1_STR-PRGRU sy-vline
WA_RKSB1_STR-KSTRG sy-vline
WA_RKSB1_STR-KDAUF sy-vline
WA_RKSB1_STR-KDPOS sy-vline
WA_RKSB1_STR-SAUFN sy-vline
WA_RKSB1_STR-FIPOV sy-vline
WA_RKSB1_STR-FIPOB sy-vline
WA_RKSB1_STR-WERKS sy-vline
WA_RKSB1_STR-MATNR sy-vline
WA_RKSB1_STR-VERID sy-vline
WA_RKSB1_STR-INCOR sy-vline
WA_RKSB1_STR-INCNETZ sy-vline
WA_RKSB1_STR-HIERA sy-vline
WA_RKSB1_STR-KSTRV sy-vline
WA_RKSB1_STR-KAGRU sy-vline
WA_RKSB1_STR-BUPEV sy-vline
WA_RKSB1_STR-BUPEB sy-vline
WA_RKSB1_STR-BUDTB sy-vline
WA_RKSB1_STR-BUDTV sy-vline
WA_RKSB1_STR-ZHLDTV sy-vline
WA_RKSB1_STR-ZHLDTB sy-vline
WA_RKSB1_STR-BLDTV sy-vline
WA_RKSB1_STR-BLDTB sy-vline
WA_RKSB1_STR-KTEXT sy-vline
WA_RKSB1_STR-LTEXT sy-vline
WA_RKSB1_STR-SRTFO sy-vline
WA_RKSB1_STR-STREP sy-vline
WA_RKSB1_STR-STRSB sy-vline
WA_RKSB1_STR-STRTD sy-vline
WA_RKSB1_STR-STRTK sy-vline
WA_RKSB1_STR-STRTS sy-vline
WA_RKSB1_STR-TEXT1 sy-vline
WA_RKSB1_STR-TEXT2 sy-vline
WA_RKSB1_STR-TEXT3 sy-vline
WA_RKSB1_STR-SUVAR sy-vline
WA_RKSB1_STR-VARNR sy-vline
WA_RKSB1_STR-CPAGE sy-vline
WA_RKSB1_STR-TPAGE sy-vline
WA_RKSB1_STR-XDESC sy-vline
WA_RKSB1_STR-XDKZS sy-vline
WA_RKSB1_STR-XJA sy-vline
WA_RKSB1_STR-XMDEB sy-vline
WA_RKSB1_STR-XMKRD sy-vline
WA_RKSB1_STR-XNEIN sy-vline
WA_RKSB1_STR-XSFSW sy-vline
WA_RKSB1_STR-XSTRG sy-vline
WA_RKSB1_STR-XSUCH sy-vline
WA_RKSB1_STR-XSUMA sy-vline
WA_RKSB1_STR-XZUSA sy-vline
WA_RKSB1_STR-BISSL sy-vline
WA_RKSB1_STR-VONSL sy-vline
WA_RKSB1_STR-ZUART sy-vline
WA_RKSB1_STR-TRVOG sy-vline
WA_RKSB1_STR-XDOCUMENT sy-vline
WA_RKSB1_STR-NW_AUFNR sy-vline
WA_RKSB1_STR-NW_VORNR sy-vline
WA_RKSB1_STR-AUFL_HIER sy-vline
WA_RKSB1_STR-AUFL_AUFT sy-vline
WA_RKSB1_STR-FM_OPEN sy-vline
WA_RKSB1_STR-AFABE sy-vline
WA_RKSB1_STR-IM_LOCK sy-vline
WA_RKSB1_STR-OMWST sy-vline
WA_RKSB1_STR-KASETID sy-vline
WA_RKSB1_STR-KSSETID sy-vline
WA_RKSB1_STR-ORSETID sy-vline
WA_RKSB1_STR-BPSETID sy-vline
WA_RKSB1_STR-LASETID sy-vline
WA_RKSB1_STR-SETID sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.