ABAP Select data from SAP table SDOKA101 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 SDOKA101 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 SDOKA101. 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 SDOKA101 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_SDOKA101 TYPE STANDARD TABLE OF SDOKA101,
      WA_SDOKA101 TYPE SDOKA101,
      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: <SDOKA101> TYPE SDOKA101.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM SDOKA101
*  INTO TABLE @DATA(IT_SDOKA1012).
*--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_SDOKA101 INDEX 1 INTO DATA(WA_SDOKA1012).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_SDOKA101 ASSIGNING <SDOKA101>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<SDOKA101>-IDCAT = 1.
<SDOKA101>-LAISO = 1.
<SDOKA101>-RFROM = 1.
<SDOKA101>-RTO = 1.
<SDOKA101>-LOCAT01 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_SDOKA101-LOCAT02, sy-vline,
WA_SDOKA101-LOCAT03, sy-vline,
WA_SDOKA101-LOCAT04, sy-vline,
WA_SDOKA101-LOCAT05, sy-vline,
WA_SDOKA101-LOCAT06, sy-vline,
WA_SDOKA101-LOCAT07, sy-vline.
ENDLOOP. *Add any further fields from structure WA_SDOKA101 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_SDOKA101 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_SDOKA101 INTO WA_SDOKA101. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_SDOKA101_STR,
IDCAT TYPE STRING,
LAISO TYPE STRING,
RFROM TYPE STRING,
RTO TYPE STRING,
LOCAT01 TYPE STRING,
LOCAT02 TYPE STRING,
LOCAT03 TYPE STRING,
LOCAT04 TYPE STRING,
LOCAT05 TYPE STRING,
LOCAT06 TYPE STRING,
LOCAT07 TYPE STRING,
LOCAT08 TYPE STRING,
LOCAT09 TYPE STRING,
LOCAT10 TYPE STRING,
LOCAT11 TYPE STRING,
VAL1_01 TYPE STRING,
VAL1_02 TYPE STRING,
VAL1_03 TYPE STRING,
VAL1_04 TYPE STRING,
VAL1_05 TYPE STRING,
VAL1_06 TYPE STRING,
VAL1_07 TYPE STRING,
VAL1_08 TYPE STRING,
VAL1_09 TYPE STRING,
VAL1_10 TYPE STRING,
VAL1_11 TYPE STRING,
VAL2_01 TYPE STRING,
VAL2_02 TYPE STRING,
VAL2_03 TYPE STRING,
VAL2_04 TYPE STRING,
VAL2_05 TYPE STRING,
VAL2_06 TYPE STRING,
VAL2_07 TYPE STRING,
VAL2_08 TYPE STRING,
VAL2_09 TYPE STRING,
VAL2_10 TYPE STRING,
VAL2_11 TYPE STRING,
CONTYP01 TYPE STRING,
CONTYP02 TYPE STRING,
CONTYP03 TYPE STRING,
CONTYP04 TYPE STRING,
CONTYP05 TYPE STRING,
CONTYP06 TYPE STRING,
CONTYP07 TYPE STRING,
CONTYP08 TYPE STRING,
CONTYP09 TYPE STRING,
CONTYP10 TYPE STRING,
CONTYP11 TYPE STRING,
TERMAC01 TYPE STRING,
TERMAC02 TYPE STRING,
TERMAC03 TYPE STRING,
TERMAC04 TYPE STRING,
TERMAC05 TYPE STRING,
TERMAC06 TYPE STRING,
TERMAC07 TYPE STRING,
TERMAC08 TYPE STRING,
TERMAC09 TYPE STRING,
TERMAC10 TYPE STRING,
TERMAC11 TYPE STRING,
TW01 TYPE STRING,
TW02 TYPE STRING,
TW03 TYPE STRING,
TW04 TYPE STRING,
TW05 TYPE STRING,
TW06 TYPE STRING,
TW07 TYPE STRING,
TW08 TYPE STRING,
TW09 TYPE STRING,
TW10 TYPE STRING,
TW11 TYPE STRING,
OP01 TYPE STRING,
OP02 TYPE STRING,
OP03 TYPE STRING,
OP04 TYPE STRING,
OP05 TYPE STRING,
OP06 TYPE STRING,
OP07 TYPE STRING,
OP08 TYPE STRING,
OP09 TYPE STRING,
OP10 TYPE STRING,
OP11 TYPE STRING,
ROWTP01 TYPE STRING,
ROWTP02 TYPE STRING,
ROWTP03 TYPE STRING,
ROWTP04 TYPE STRING,
ROWTP05 TYPE STRING,
ROWTP06 TYPE STRING,
ROWTP07 TYPE STRING,
ROWTP08 TYPE STRING,
ROWTP09 TYPE STRING,
ROWTP10 TYPE STRING,
ROWTP11 TYPE STRING,
NEAR_O01 TYPE STRING,
NEAR_O02 TYPE STRING,
NEAR_O03 TYPE STRING,
NEAR_O04 TYPE STRING,
NEAR_D01 TYPE STRING,
NEAR_D02 TYPE STRING,
NEAR_D03 TYPE STRING,
NEAR_D04 TYPE STRING,END OF T_EKKO_STR. DATA: WA_SDOKA101_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_SDOKA101_STR-IDCAT sy-vline
WA_SDOKA101_STR-LAISO sy-vline
WA_SDOKA101_STR-RFROM sy-vline
WA_SDOKA101_STR-RTO sy-vline
WA_SDOKA101_STR-LOCAT01 sy-vline
WA_SDOKA101_STR-LOCAT02 sy-vline
WA_SDOKA101_STR-LOCAT03 sy-vline
WA_SDOKA101_STR-LOCAT04 sy-vline
WA_SDOKA101_STR-LOCAT05 sy-vline
WA_SDOKA101_STR-LOCAT06 sy-vline
WA_SDOKA101_STR-LOCAT07 sy-vline
WA_SDOKA101_STR-LOCAT08 sy-vline
WA_SDOKA101_STR-LOCAT09 sy-vline
WA_SDOKA101_STR-LOCAT10 sy-vline
WA_SDOKA101_STR-LOCAT11 sy-vline
WA_SDOKA101_STR-VAL1_01 sy-vline
WA_SDOKA101_STR-VAL1_02 sy-vline
WA_SDOKA101_STR-VAL1_03 sy-vline
WA_SDOKA101_STR-VAL1_04 sy-vline
WA_SDOKA101_STR-VAL1_05 sy-vline
WA_SDOKA101_STR-VAL1_06 sy-vline
WA_SDOKA101_STR-VAL1_07 sy-vline
WA_SDOKA101_STR-VAL1_08 sy-vline
WA_SDOKA101_STR-VAL1_09 sy-vline
WA_SDOKA101_STR-VAL1_10 sy-vline
WA_SDOKA101_STR-VAL1_11 sy-vline
WA_SDOKA101_STR-VAL2_01 sy-vline
WA_SDOKA101_STR-VAL2_02 sy-vline
WA_SDOKA101_STR-VAL2_03 sy-vline
WA_SDOKA101_STR-VAL2_04 sy-vline
WA_SDOKA101_STR-VAL2_05 sy-vline
WA_SDOKA101_STR-VAL2_06 sy-vline
WA_SDOKA101_STR-VAL2_07 sy-vline
WA_SDOKA101_STR-VAL2_08 sy-vline
WA_SDOKA101_STR-VAL2_09 sy-vline
WA_SDOKA101_STR-VAL2_10 sy-vline
WA_SDOKA101_STR-VAL2_11 sy-vline
WA_SDOKA101_STR-CONTYP01 sy-vline
WA_SDOKA101_STR-CONTYP02 sy-vline
WA_SDOKA101_STR-CONTYP03 sy-vline
WA_SDOKA101_STR-CONTYP04 sy-vline
WA_SDOKA101_STR-CONTYP05 sy-vline
WA_SDOKA101_STR-CONTYP06 sy-vline
WA_SDOKA101_STR-CONTYP07 sy-vline
WA_SDOKA101_STR-CONTYP08 sy-vline
WA_SDOKA101_STR-CONTYP09 sy-vline
WA_SDOKA101_STR-CONTYP10 sy-vline
WA_SDOKA101_STR-CONTYP11 sy-vline
WA_SDOKA101_STR-TERMAC01 sy-vline
WA_SDOKA101_STR-TERMAC02 sy-vline
WA_SDOKA101_STR-TERMAC03 sy-vline
WA_SDOKA101_STR-TERMAC04 sy-vline
WA_SDOKA101_STR-TERMAC05 sy-vline
WA_SDOKA101_STR-TERMAC06 sy-vline
WA_SDOKA101_STR-TERMAC07 sy-vline
WA_SDOKA101_STR-TERMAC08 sy-vline
WA_SDOKA101_STR-TERMAC09 sy-vline
WA_SDOKA101_STR-TERMAC10 sy-vline
WA_SDOKA101_STR-TERMAC11 sy-vline
WA_SDOKA101_STR-TW01 sy-vline
WA_SDOKA101_STR-TW02 sy-vline
WA_SDOKA101_STR-TW03 sy-vline
WA_SDOKA101_STR-TW04 sy-vline
WA_SDOKA101_STR-TW05 sy-vline
WA_SDOKA101_STR-TW06 sy-vline
WA_SDOKA101_STR-TW07 sy-vline
WA_SDOKA101_STR-TW08 sy-vline
WA_SDOKA101_STR-TW09 sy-vline
WA_SDOKA101_STR-TW10 sy-vline
WA_SDOKA101_STR-TW11 sy-vline
WA_SDOKA101_STR-OP01 sy-vline
WA_SDOKA101_STR-OP02 sy-vline
WA_SDOKA101_STR-OP03 sy-vline
WA_SDOKA101_STR-OP04 sy-vline
WA_SDOKA101_STR-OP05 sy-vline
WA_SDOKA101_STR-OP06 sy-vline
WA_SDOKA101_STR-OP07 sy-vline
WA_SDOKA101_STR-OP08 sy-vline
WA_SDOKA101_STR-OP09 sy-vline
WA_SDOKA101_STR-OP10 sy-vline
WA_SDOKA101_STR-OP11 sy-vline
WA_SDOKA101_STR-ROWTP01 sy-vline
WA_SDOKA101_STR-ROWTP02 sy-vline
WA_SDOKA101_STR-ROWTP03 sy-vline
WA_SDOKA101_STR-ROWTP04 sy-vline
WA_SDOKA101_STR-ROWTP05 sy-vline
WA_SDOKA101_STR-ROWTP06 sy-vline
WA_SDOKA101_STR-ROWTP07 sy-vline
WA_SDOKA101_STR-ROWTP08 sy-vline
WA_SDOKA101_STR-ROWTP09 sy-vline
WA_SDOKA101_STR-ROWTP10 sy-vline
WA_SDOKA101_STR-ROWTP11 sy-vline
WA_SDOKA101_STR-NEAR_O01 sy-vline
WA_SDOKA101_STR-NEAR_O02 sy-vline
WA_SDOKA101_STR-NEAR_O03 sy-vline
WA_SDOKA101_STR-NEAR_O04 sy-vline
WA_SDOKA101_STR-NEAR_D01 sy-vline
WA_SDOKA101_STR-NEAR_D02 sy-vline
WA_SDOKA101_STR-NEAR_D03 sy-vline
WA_SDOKA101_STR-NEAR_D04 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.