ABAP Select data from SAP table PSKRL_1 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 PSKRL_1 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 PSKRL_1. 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 PSKRL_1 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_PSKRL_1 TYPE STANDARD TABLE OF PSKRL_1,
      WA_PSKRL_1 TYPE PSKRL_1,
      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: <PSKRL_1> TYPE PSKRL_1.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PSKRL_1
*  INTO TABLE @DATA(IT_PSKRL_12).
*--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_PSKRL_1 INDEX 1 INTO DATA(WA_PSKRL_12).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PSKRL_1 ASSIGNING <PSKRL_1>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PSKRL_1>-RL = 1.
<PSKRL_1>-ZC = 1.
<PSKRL_1>-PERNR = 1.
<PSKRL_1>-IDENT = 1.
<PSKRL_1>-DATUM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PSKRL_1-CAS, sy-vline,
WA_PSKRL_1-TYPRL, sy-vline,
WA_PSKRL_1-ZC, sy-vline,
WA_PSKRL_1-TYPFO, sy-vline,
WA_PSKRL_1-FOSTAT, sy-vline,
WA_PSKRL_1-ZAKLU, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PSKRL_1 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_PSKRL_1 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_PSKRL_1 INTO WA_PSKRL_1. *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 DATNA CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT' EXPORTING input = WA_PSKRL_1-DATNA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PSKRL_1-DATNA.
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_PSKRL_1_STR,
RL TYPE STRING,
ZC TYPE STRING,
PERNR TYPE STRING,
IDENT TYPE STRING,
DATUM TYPE STRING,
CAS TYPE STRING,
TYPRL TYPE STRING,
ZC TYPE STRING,
TYPFO TYPE STRING,
FOSTAT TYPE STRING,
ZAKLU TYPE STRING,
ICP TYPE STRING,
RC_CPP TYPE STRING,
PRIEZ TYPE STRING,
MENO TYPE STRING,
TITUL TYPE STRING,
TITZA TYPE STRING,
POHLA TYPE STRING,
PREDPRIEZ TYPE STRING,
POHLA_CHANGE TYPE STRING,
DOPLU TYPE STRING,
RODPR TYPE STRING,
DATNA TYPE STRING,
MIENA TYPE STRING,
STATP TYPE STRING,
STATNARODENIA TYPE STRING,
CUDZINEC TYPE STRING,
RODST TYPE STRING,
TYPDO TYPE STRING,
DATDO TYPE STRING,
DATUK TYPE STRING,
DATSP TYPE STRING,
RODCI TYPE STRING,
ICPV TYPE STRING,
DOHOD TYPE STRING,
CPP TYPE STRING,
SSNST TYPE STRING,
TYPZEC TYPE STRING,
TYDOC TYPE STRING,
ZADOC TYPE STRING,
DOVDP TYPE STRING,
POMER TYPE STRING,
SUCAS TYPE STRING,
PA7O2 TYPE STRING,
ADRES TYPE STRING,
ULICA TYPE STRING,
SUPCI TYPE STRING,
ORICI TYPE STRING,
PSC TYPE STRING,
OBEC TYPE STRING,
ZIP TYPE STRING,
STAT TYPE STRING,
ADRES2 TYPE STRING,
ULICA TYPE STRING,
SUPCI TYPE STRING,
ORICI TYPE STRING,
PSC TYPE STRING,
OBEC TYPE STRING,
ZIP TYPE STRING,
STAT TYPE STRING,
BANKS TYPE STRING,
BANKA TYPE STRING,
BANKL TYPE STRING,
BANKS TYPE STRING,
BANKN TYPE STRING,
IBAN TYPE STRING,
KONTA TYPE STRING,
TELEFON TYPE STRING,
FAX TYPE STRING,
EMAIL TYPE STRING,
KONTA2 TYPE STRING,
TELEFON TYPE STRING,
FAX TYPE STRING,
EMAIL TYPE STRING,
PRERU TYPE STRING,
DATVZ TYPE STRING,
DOVOD TYPE STRING,
DATZA TYPE STRING,
KRATK TYPE STRING,
ZACMD TYPE STRING,
KONMD TYPE STRING,
MDZAK TYPE STRING,
HIRE TYPE STRING,
FIRE TYPE STRING,
VYMZA TYPE STRING,
MD_RD TYPE STRING,
DATPO TYPE STRING,
EVENT TYPE STRING,
HIRE TYPE STRING,
FIRE TYPE STRING,
0002 TYPE STRING,
0006 TYPE STRING,
0009 TYPE STRING,
2001 TYPE STRING,
ZRUP TYPE STRING,
HAND TYPE STRING,
BUKRS TYPE STRING,
WERKS TYPE STRING,
PERSG TYPE STRING,
BTRTL TYPE STRING,
RESE1 TYPE STRING,
RESE2 TYPE STRING,
ZL TYPE STRING,
ICZ TYPE STRING,
ICO TYPE STRING,
DIC TYPE STRING,
ICO_OR_DIC TYPE STRING,
NAZOV TYPE STRING,
NAZOV2 TYPE STRING,
RCFO TYPE STRING,
CPP TYPE STRING,
RC_OR_CPP TYPE STRING,
TYPZL TYPE STRING,
KONTA TYPE STRING,
TELEFON TYPE STRING,
FAX TYPE STRING,
EMAIL TYPE STRING,
ADRES TYPE STRING,
ULICA TYPE STRING,
SUPCI TYPE STRING,
ORICI TYPE STRING,
PSC TYPE STRING,
OBEC TYPE STRING,
ZIP TYPE STRING,
STAT TYPE STRING,
ZOSTA TYPE STRING,
RL1 TYPE STRING,
PERNR TYPE STRING,
DATNP TYPE STRING,
DATIP TYPE STRING,
DTZRP TYPE STRING,
DATND TYPE STRING,
PRAPO TYPE STRING,
RESE1 TYPE STRING,
RESE2 TYPE STRING,
RESE3 TYPE STRING,
RESED TYPE STRING,END OF T_EKKO_STR. DATA: WA_PSKRL_1_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_PSKRL_1_STR-RL sy-vline
WA_PSKRL_1_STR-ZC sy-vline
WA_PSKRL_1_STR-PERNR sy-vline
WA_PSKRL_1_STR-IDENT sy-vline
WA_PSKRL_1_STR-DATUM sy-vline
WA_PSKRL_1_STR-CAS sy-vline
WA_PSKRL_1_STR-TYPRL sy-vline
WA_PSKRL_1_STR-ZC sy-vline
WA_PSKRL_1_STR-TYPFO sy-vline
WA_PSKRL_1_STR-FOSTAT sy-vline
WA_PSKRL_1_STR-ZAKLU sy-vline
WA_PSKRL_1_STR-ICP sy-vline
WA_PSKRL_1_STR-RC_CPP sy-vline
WA_PSKRL_1_STR-PRIEZ sy-vline
WA_PSKRL_1_STR-MENO sy-vline
WA_PSKRL_1_STR-TITUL sy-vline
WA_PSKRL_1_STR-TITZA sy-vline
WA_PSKRL_1_STR-POHLA sy-vline
WA_PSKRL_1_STR-PREDPRIEZ sy-vline
WA_PSKRL_1_STR-POHLA_CHANGE sy-vline
WA_PSKRL_1_STR-DOPLU sy-vline
WA_PSKRL_1_STR-RODPR sy-vline
WA_PSKRL_1_STR-DATNA sy-vline
WA_PSKRL_1_STR-MIENA sy-vline
WA_PSKRL_1_STR-STATP sy-vline
WA_PSKRL_1_STR-STATNARODENIA sy-vline
WA_PSKRL_1_STR-CUDZINEC sy-vline
WA_PSKRL_1_STR-RODST sy-vline
WA_PSKRL_1_STR-TYPDO sy-vline
WA_PSKRL_1_STR-DATDO sy-vline
WA_PSKRL_1_STR-DATUK sy-vline
WA_PSKRL_1_STR-DATSP sy-vline
WA_PSKRL_1_STR-RODCI sy-vline
WA_PSKRL_1_STR-ICPV sy-vline
WA_PSKRL_1_STR-DOHOD sy-vline
WA_PSKRL_1_STR-CPP sy-vline
WA_PSKRL_1_STR-SSNST sy-vline
WA_PSKRL_1_STR-TYPZEC sy-vline
WA_PSKRL_1_STR-TYDOC sy-vline
WA_PSKRL_1_STR-ZADOC sy-vline
WA_PSKRL_1_STR-DOVDP sy-vline
WA_PSKRL_1_STR-POMER sy-vline
WA_PSKRL_1_STR-SUCAS sy-vline
WA_PSKRL_1_STR-PA7O2 sy-vline
WA_PSKRL_1_STR-ADRES sy-vline
WA_PSKRL_1_STR-ULICA sy-vline
WA_PSKRL_1_STR-SUPCI sy-vline
WA_PSKRL_1_STR-ORICI sy-vline
WA_PSKRL_1_STR-PSC sy-vline
WA_PSKRL_1_STR-OBEC sy-vline
WA_PSKRL_1_STR-ZIP sy-vline
WA_PSKRL_1_STR-STAT sy-vline
WA_PSKRL_1_STR-ADRES2 sy-vline
WA_PSKRL_1_STR-ULICA sy-vline
WA_PSKRL_1_STR-SUPCI sy-vline
WA_PSKRL_1_STR-ORICI sy-vline
WA_PSKRL_1_STR-PSC sy-vline
WA_PSKRL_1_STR-OBEC sy-vline
WA_PSKRL_1_STR-ZIP sy-vline
WA_PSKRL_1_STR-STAT sy-vline
WA_PSKRL_1_STR-BANKS sy-vline
WA_PSKRL_1_STR-BANKA sy-vline
WA_PSKRL_1_STR-BANKL sy-vline
WA_PSKRL_1_STR-BANKS sy-vline
WA_PSKRL_1_STR-BANKN sy-vline
WA_PSKRL_1_STR-IBAN sy-vline
WA_PSKRL_1_STR-KONTA sy-vline
WA_PSKRL_1_STR-TELEFON sy-vline
WA_PSKRL_1_STR-FAX sy-vline
WA_PSKRL_1_STR-EMAIL sy-vline
WA_PSKRL_1_STR-KONTA2 sy-vline
WA_PSKRL_1_STR-TELEFON sy-vline
WA_PSKRL_1_STR-FAX sy-vline
WA_PSKRL_1_STR-EMAIL sy-vline
WA_PSKRL_1_STR-PRERU sy-vline
WA_PSKRL_1_STR-DATVZ sy-vline
WA_PSKRL_1_STR-DOVOD sy-vline
WA_PSKRL_1_STR-DATZA sy-vline
WA_PSKRL_1_STR-KRATK sy-vline
WA_PSKRL_1_STR-ZACMD sy-vline
WA_PSKRL_1_STR-KONMD sy-vline
WA_PSKRL_1_STR-MDZAK sy-vline
WA_PSKRL_1_STR-HIRE sy-vline
WA_PSKRL_1_STR-FIRE sy-vline
WA_PSKRL_1_STR-VYMZA sy-vline
WA_PSKRL_1_STR-MD_RD sy-vline
WA_PSKRL_1_STR-DATPO sy-vline
WA_PSKRL_1_STR-EVENT sy-vline
WA_PSKRL_1_STR-HIRE sy-vline
WA_PSKRL_1_STR-FIRE sy-vline
WA_PSKRL_1_STR-0002 sy-vline
WA_PSKRL_1_STR-0006 sy-vline
WA_PSKRL_1_STR-0009 sy-vline
WA_PSKRL_1_STR-2001 sy-vline
WA_PSKRL_1_STR-ZRUP sy-vline
WA_PSKRL_1_STR-HAND sy-vline
WA_PSKRL_1_STR-BUKRS sy-vline
WA_PSKRL_1_STR-WERKS sy-vline
WA_PSKRL_1_STR-PERSG sy-vline
WA_PSKRL_1_STR-BTRTL sy-vline
WA_PSKRL_1_STR-RESE1 sy-vline
WA_PSKRL_1_STR-RESE2 sy-vline
WA_PSKRL_1_STR-ZL sy-vline
WA_PSKRL_1_STR-ICZ sy-vline
WA_PSKRL_1_STR-ICO sy-vline
WA_PSKRL_1_STR-DIC sy-vline
WA_PSKRL_1_STR-ICO_OR_DIC sy-vline
WA_PSKRL_1_STR-NAZOV sy-vline
WA_PSKRL_1_STR-NAZOV2 sy-vline
WA_PSKRL_1_STR-RCFO sy-vline
WA_PSKRL_1_STR-CPP sy-vline
WA_PSKRL_1_STR-RC_OR_CPP sy-vline
WA_PSKRL_1_STR-TYPZL sy-vline
WA_PSKRL_1_STR-KONTA sy-vline
WA_PSKRL_1_STR-TELEFON sy-vline
WA_PSKRL_1_STR-FAX sy-vline
WA_PSKRL_1_STR-EMAIL sy-vline
WA_PSKRL_1_STR-ADRES sy-vline
WA_PSKRL_1_STR-ULICA sy-vline
WA_PSKRL_1_STR-SUPCI sy-vline
WA_PSKRL_1_STR-ORICI sy-vline
WA_PSKRL_1_STR-PSC sy-vline
WA_PSKRL_1_STR-OBEC sy-vline
WA_PSKRL_1_STR-ZIP sy-vline
WA_PSKRL_1_STR-STAT sy-vline
WA_PSKRL_1_STR-ZOSTA sy-vline
WA_PSKRL_1_STR-RL1 sy-vline
WA_PSKRL_1_STR-PERNR sy-vline
WA_PSKRL_1_STR-DATNP sy-vline
WA_PSKRL_1_STR-DATIP sy-vline
WA_PSKRL_1_STR-DTZRP sy-vline
WA_PSKRL_1_STR-DATND sy-vline
WA_PSKRL_1_STR-PRAPO sy-vline
WA_PSKRL_1_STR-RESE1 sy-vline
WA_PSKRL_1_STR-RESE2 sy-vline
WA_PSKRL_1_STR-RESE3 sy-vline
WA_PSKRL_1_STR-RESED sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.