ABAP Select data from SAP table PTKXX 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 PTKXX 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 PTKXX. 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 PTKXX 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_PTKXX TYPE STANDARD TABLE OF PTKXX,
      WA_PTKXX TYPE PTKXX,
      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: <PTKXX> TYPE PTKXX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PTKXX
*  INTO TABLE @DATA(IT_PTKXX2).
*--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_PTKXX INDEX 1 INTO DATA(WA_PTKXX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PTKXX ASSIGNING <PTKXX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PTKXX>-RENUM = 1.
<PTKXX>-PERNR = 1.
<PTKXX>-REINR = 1.
<PTKXX>-PERIO = 1.
<PTKXX>-SPERI = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PTKXX-SJAHR, sy-vline,
WA_PTKXX-DATV1, sy-vline,
WA_PTKXX-DATB1, sy-vline,
WA_PTKXX-SRENR, sy-vline,
WA_PTKXX-ZORT1, sy-vline,
WA_PTKXX-ZLAND, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PTKXX 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_PTKXX 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_PTKXX INTO WA_PTKXX. *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 GJAHR, internal->external for field SJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_PTKXX-SJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTKXX-SJAHR.
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_PTKXX_STR,
RENUM TYPE STRING,
PERNR TYPE STRING,
REINR TYPE STRING,
PERIO TYPE STRING,
SPERI TYPE STRING,
SJAHR TYPE STRING,
DATV1 TYPE STRING,
DATB1 TYPE STRING,
SRENR TYPE STRING,
ZORT1 TYPE STRING,
ZLAND TYPE STRING,
KUNDE TYPE STRING,
ANTRG_1 TYPE STRING,
ANTRG_2 TYPE STRING,
ANTRG_3 TYPE STRING,
ANTRG_4 TYPE STRING,
ANTRG_5 TYPE STRING,
ABREC_0 TYPE STRING,
ABREC_1 TYPE STRING,
ABREC_2 TYPE STRING,
ABREC_3 TYPE STRING,
UEB_DFL TYPE STRING,
SELST TYPE STRING,
DIMEN TYPE STRING,
ZEILE TYPE STRING,
BETRG TYPE STRING,
PROZT TYPE STRING,
AUFRE TYPE STRING,
AUFZI TYPE STRING,
STAT1 TYPE STRING,
STAT2 TYPE STRING,
STAT3 TYPE STRING,
STAT4 TYPE STRING,
STAT5 TYPE STRING,
STAT6 TYPE STRING,
STAT7 TYPE STRING,
WA1XX TYPE STRING,
WA2XX TYPE STRING,
WA3XX TYPE STRING,
WA4XX TYPE STRING,
WAX0X TYPE STRING,
WAX1X TYPE STRING,
WAX3X TYPE STRING,
FTEXT TYPE STRING,
XNODI TYPE STRING,
XOBLG TYPE STRING,
XOPTN TYPE STRING,
XDISP TYPE STRING,
X04O1 TYPE STRING,
X04O2 TYPE STRING,
X04O3 TYPE STRING,
ANZFR TYPE STRING,
DATW1 TYPE STRING,
SUMD1 TYPE STRING,
SUMD2 TYPE STRING,
SUMD3 TYPE STRING,
SUMD4 TYPE STRING,
SUMD5 TYPE STRING,
SUMD6 TYPE STRING,
SUMD7 TYPE STRING,
BELRT TYPE STRING,
GSBET TYPE STRING,
KMGES TYPE STRING,
KMGE1 TYPE STRING,
KMGE2 TYPE STRING,
KMGE3 TYPE STRING,
KMGE4 TYPE STRING,
KMGE5 TYPE STRING,
KMGE6 TYPE STRING,
KMGE7 TYPE STRING,
KMBET TYPE STRING,
WAERS TYPE STRING,
SABKR TYPE STRING,
MEHR TYPE STRING,
PAUVS1 TYPE STRING,
PAUVS2 TYPE STRING,
PAUVS3 TYPE STRING,
DEFMWSKZ1 TYPE STRING,
DEFMWSKZ2 TYPE STRING,
HCURR0 TYPE STRING,
HCURR1 TYPE STRING,
HCURR2 TYPE STRING,
KZREA_DFW_ TYPE STRING,
KZREA_DFW_1 TYPE STRING,
KZREA_DFW_2 TYPE STRING,
KZREA_DFW_3 TYPE STRING,
KZREA_DFW_H TYPE STRING,
KZREA_DFW_B TYPE STRING,
KZREA_DFW_E TYPE STRING,
KZREA_DFW_P TYPE STRING,
KZREA_DFW_S TYPE STRING,
KZREA_DFW_R TYPE STRING,
KZREA_DFW_X TYPE STRING,
KZREA_DFW_L TYPE STRING,
KZREA_DFW_K TYPE STRING,
KZREA_DFW_M TYPE STRING,
HBETR TYPE STRING,
CTRLREC TYPE STRING,
ABWLAN TYPE STRING,
EINDOP TYPE STRING,
EINFEH TYPE STRING,
EINGEL TYPE STRING,
GESAMT TYPE STRING,
KORREK TYPE STRING,
NICGEF TYPE STRING,
HCURR3 TYPE STRING,
ANTRG00 TYPE STRING,
ANTRGFI TYPE STRING,
ANTRGHR TYPE STRING,
ANTRGDT TYPE STRING,
KZREA_DFW_A TYPE STRING,
KZREA_DFW_5 TYPE STRING,
KZREA_DFW_4 TYPE STRING,
KZREA_DFW_C TYPE STRING,
KZREA_DFW_D TYPE STRING,
KZREA_DFW_6 TYPE STRING,
KZREA_DFW_7 TYPE STRING,
KZREA_DFW_8 TYPE STRING,
KZREA_DFW_G TYPE STRING,
VERPA_TEXT TYPE STRING,
M_RECEIPTS_VALID TYPE STRING,
M_RECEIPTS_NOT_VALID TYPE STRING,
U_RECEIPTS_VALID TYPE STRING,
U_RECEIPTS_NOT_VALID TYPE STRING,
V_RECEIPTS_VALID TYPE STRING,
V_RECEIPTS_NOT_VALID TYPE STRING,
S_RECEIPTS_VALID TYPE STRING,
S_RECEIPTS_NOT_VALID TYPE STRING,
DATUM_RED_PAUSCH TYPE STRING,
PERNR_FOR_SH TYPE STRING,
VAT_RFD TYPE STRING,
ANKUNFT TYPE STRING,
ABFAHRT TYPE STRING,
KZREA_DFW_V TYPE STRING,
KZREA_DFW_W TYPE STRING,
BERKZ_DFW_1 TYPE STRING,
BERKZ_DFW_2 TYPE STRING,
BERKZ_DFW_3 TYPE STRING,
BERKZ_DFW_4 TYPE STRING,
BERKZ_DFW_5 TYPE STRING,
BERKZ_DFW_6 TYPE STRING,
BERKZ_DFW_7 TYPE STRING,
BERKZ_DFW_8 TYPE STRING,
BERKZ_DFW_9 TYPE STRING,
BERKZ_DFW_A TYPE STRING,
BERKZ_DFW_B TYPE STRING,
BERKZ_DFW_C TYPE STRING,
BERKZ_DFW_D TYPE STRING,
BERKZ_DFW_E TYPE STRING,END OF T_EKKO_STR. DATA: WA_PTKXX_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_PTKXX_STR-RENUM sy-vline
WA_PTKXX_STR-PERNR sy-vline
WA_PTKXX_STR-REINR sy-vline
WA_PTKXX_STR-PERIO sy-vline
WA_PTKXX_STR-SPERI sy-vline
WA_PTKXX_STR-SJAHR sy-vline
WA_PTKXX_STR-DATV1 sy-vline
WA_PTKXX_STR-DATB1 sy-vline
WA_PTKXX_STR-SRENR sy-vline
WA_PTKXX_STR-ZORT1 sy-vline
WA_PTKXX_STR-ZLAND sy-vline
WA_PTKXX_STR-KUNDE sy-vline
WA_PTKXX_STR-ANTRG_1 sy-vline
WA_PTKXX_STR-ANTRG_2 sy-vline
WA_PTKXX_STR-ANTRG_3 sy-vline
WA_PTKXX_STR-ANTRG_4 sy-vline
WA_PTKXX_STR-ANTRG_5 sy-vline
WA_PTKXX_STR-ABREC_0 sy-vline
WA_PTKXX_STR-ABREC_1 sy-vline
WA_PTKXX_STR-ABREC_2 sy-vline
WA_PTKXX_STR-ABREC_3 sy-vline
WA_PTKXX_STR-UEB_DFL sy-vline
WA_PTKXX_STR-SELST sy-vline
WA_PTKXX_STR-DIMEN sy-vline
WA_PTKXX_STR-ZEILE sy-vline
WA_PTKXX_STR-BETRG sy-vline
WA_PTKXX_STR-PROZT sy-vline
WA_PTKXX_STR-AUFRE sy-vline
WA_PTKXX_STR-AUFZI sy-vline
WA_PTKXX_STR-STAT1 sy-vline
WA_PTKXX_STR-STAT2 sy-vline
WA_PTKXX_STR-STAT3 sy-vline
WA_PTKXX_STR-STAT4 sy-vline
WA_PTKXX_STR-STAT5 sy-vline
WA_PTKXX_STR-STAT6 sy-vline
WA_PTKXX_STR-STAT7 sy-vline
WA_PTKXX_STR-WA1XX sy-vline
WA_PTKXX_STR-WA2XX sy-vline
WA_PTKXX_STR-WA3XX sy-vline
WA_PTKXX_STR-WA4XX sy-vline
WA_PTKXX_STR-WAX0X sy-vline
WA_PTKXX_STR-WAX1X sy-vline
WA_PTKXX_STR-WAX3X sy-vline
WA_PTKXX_STR-FTEXT sy-vline
WA_PTKXX_STR-XNODI sy-vline
WA_PTKXX_STR-XOBLG sy-vline
WA_PTKXX_STR-XOPTN sy-vline
WA_PTKXX_STR-XDISP sy-vline
WA_PTKXX_STR-X04O1 sy-vline
WA_PTKXX_STR-X04O2 sy-vline
WA_PTKXX_STR-X04O3 sy-vline
WA_PTKXX_STR-ANZFR sy-vline
WA_PTKXX_STR-DATW1 sy-vline
WA_PTKXX_STR-SUMD1 sy-vline
WA_PTKXX_STR-SUMD2 sy-vline
WA_PTKXX_STR-SUMD3 sy-vline
WA_PTKXX_STR-SUMD4 sy-vline
WA_PTKXX_STR-SUMD5 sy-vline
WA_PTKXX_STR-SUMD6 sy-vline
WA_PTKXX_STR-SUMD7 sy-vline
WA_PTKXX_STR-BELRT sy-vline
WA_PTKXX_STR-GSBET sy-vline
WA_PTKXX_STR-KMGES sy-vline
WA_PTKXX_STR-KMGE1 sy-vline
WA_PTKXX_STR-KMGE2 sy-vline
WA_PTKXX_STR-KMGE3 sy-vline
WA_PTKXX_STR-KMGE4 sy-vline
WA_PTKXX_STR-KMGE5 sy-vline
WA_PTKXX_STR-KMGE6 sy-vline
WA_PTKXX_STR-KMGE7 sy-vline
WA_PTKXX_STR-KMBET sy-vline
WA_PTKXX_STR-WAERS sy-vline
WA_PTKXX_STR-SABKR sy-vline
WA_PTKXX_STR-MEHR sy-vline
WA_PTKXX_STR-PAUVS1 sy-vline
WA_PTKXX_STR-PAUVS2 sy-vline
WA_PTKXX_STR-PAUVS3 sy-vline
WA_PTKXX_STR-DEFMWSKZ1 sy-vline
WA_PTKXX_STR-DEFMWSKZ2 sy-vline
WA_PTKXX_STR-HCURR0 sy-vline
WA_PTKXX_STR-HCURR1 sy-vline
WA_PTKXX_STR-HCURR2 sy-vline
WA_PTKXX_STR-KZREA_DFW_ sy-vline
WA_PTKXX_STR-KZREA_DFW_1 sy-vline
WA_PTKXX_STR-KZREA_DFW_2 sy-vline
WA_PTKXX_STR-KZREA_DFW_3 sy-vline
WA_PTKXX_STR-KZREA_DFW_H sy-vline
WA_PTKXX_STR-KZREA_DFW_B sy-vline
WA_PTKXX_STR-KZREA_DFW_E sy-vline
WA_PTKXX_STR-KZREA_DFW_P sy-vline
WA_PTKXX_STR-KZREA_DFW_S sy-vline
WA_PTKXX_STR-KZREA_DFW_R sy-vline
WA_PTKXX_STR-KZREA_DFW_X sy-vline
WA_PTKXX_STR-KZREA_DFW_L sy-vline
WA_PTKXX_STR-KZREA_DFW_K sy-vline
WA_PTKXX_STR-KZREA_DFW_M sy-vline
WA_PTKXX_STR-HBETR sy-vline
WA_PTKXX_STR-CTRLREC sy-vline
WA_PTKXX_STR-ABWLAN sy-vline
WA_PTKXX_STR-EINDOP sy-vline
WA_PTKXX_STR-EINFEH sy-vline
WA_PTKXX_STR-EINGEL sy-vline
WA_PTKXX_STR-GESAMT sy-vline
WA_PTKXX_STR-KORREK sy-vline
WA_PTKXX_STR-NICGEF sy-vline
WA_PTKXX_STR-HCURR3 sy-vline
WA_PTKXX_STR-ANTRG00 sy-vline
WA_PTKXX_STR-ANTRGFI sy-vline
WA_PTKXX_STR-ANTRGHR sy-vline
WA_PTKXX_STR-ANTRGDT sy-vline
WA_PTKXX_STR-KZREA_DFW_A sy-vline
WA_PTKXX_STR-KZREA_DFW_5 sy-vline
WA_PTKXX_STR-KZREA_DFW_4 sy-vline
WA_PTKXX_STR-KZREA_DFW_C sy-vline
WA_PTKXX_STR-KZREA_DFW_D sy-vline
WA_PTKXX_STR-KZREA_DFW_6 sy-vline
WA_PTKXX_STR-KZREA_DFW_7 sy-vline
WA_PTKXX_STR-KZREA_DFW_8 sy-vline
WA_PTKXX_STR-KZREA_DFW_G sy-vline
WA_PTKXX_STR-VERPA_TEXT sy-vline
WA_PTKXX_STR-M_RECEIPTS_VALID sy-vline
WA_PTKXX_STR-M_RECEIPTS_NOT_VALID sy-vline
WA_PTKXX_STR-U_RECEIPTS_VALID sy-vline
WA_PTKXX_STR-U_RECEIPTS_NOT_VALID sy-vline
WA_PTKXX_STR-V_RECEIPTS_VALID sy-vline
WA_PTKXX_STR-V_RECEIPTS_NOT_VALID sy-vline
WA_PTKXX_STR-S_RECEIPTS_VALID sy-vline
WA_PTKXX_STR-S_RECEIPTS_NOT_VALID sy-vline
WA_PTKXX_STR-DATUM_RED_PAUSCH sy-vline
WA_PTKXX_STR-PERNR_FOR_SH sy-vline
WA_PTKXX_STR-VAT_RFD sy-vline
WA_PTKXX_STR-ANKUNFT sy-vline
WA_PTKXX_STR-ABFAHRT sy-vline
WA_PTKXX_STR-KZREA_DFW_V sy-vline
WA_PTKXX_STR-KZREA_DFW_W sy-vline
WA_PTKXX_STR-BERKZ_DFW_1 sy-vline
WA_PTKXX_STR-BERKZ_DFW_2 sy-vline
WA_PTKXX_STR-BERKZ_DFW_3 sy-vline
WA_PTKXX_STR-BERKZ_DFW_4 sy-vline
WA_PTKXX_STR-BERKZ_DFW_5 sy-vline
WA_PTKXX_STR-BERKZ_DFW_6 sy-vline
WA_PTKXX_STR-BERKZ_DFW_7 sy-vline
WA_PTKXX_STR-BERKZ_DFW_8 sy-vline
WA_PTKXX_STR-BERKZ_DFW_9 sy-vline
WA_PTKXX_STR-BERKZ_DFW_A sy-vline
WA_PTKXX_STR-BERKZ_DFW_B sy-vline
WA_PTKXX_STR-BERKZ_DFW_C sy-vline
WA_PTKXX_STR-BERKZ_DFW_D sy-vline
WA_PTKXX_STR-BERKZ_DFW_E sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.