ABAP Select data from SAP table PDSPL 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 PDSPL 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 PDSPL. 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 PDSPL 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_PDSPL TYPE STANDARD TABLE OF PDSPL, WA_PDSPL TYPE PDSPL, 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: <PDSPL> TYPE PDSPL. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_PDSPL. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM PDSPL INTO TABLE IT_PDSPL. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM PDSPL * INTO TABLE @DATA(IT_PDSPL2). *--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_PDSPL INDEX 1 INTO DATA(WA_PDSPL2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_PDSPL ASSIGNING <PDSPL>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<PDSPL>-MARK = 1.
<PDSPL>-NAME = 1.
<PDSPL>-PERNR = 1.
<PDSPL>-ZELLE01 = 1.
<PDSPL>-ASSIGN01 = 1.
ENDLOOP. LOOP AT IT_PDSPL INTO WA_PDSPL. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_PDSPL-BEGIN01, sy-vline,
WA_PDSPL-END01, sy-vline,
WA_PDSPL-REQUEST01, sy-vline,
WA_PDSPL-ZELLE02, sy-vline,
WA_PDSPL-ASSIGN02, sy-vline,
WA_PDSPL-BEGIN02, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PDSPL 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_PDSPL 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_PDSPL INTO WA_PDSPL. *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_PDSPL_STR,
MARK TYPE STRING,
NAME TYPE STRING,
PERNR TYPE STRING,
ZELLE01 TYPE STRING,
ASSIGN01 TYPE STRING,
BEGIN01 TYPE STRING,
END01 TYPE STRING,
REQUEST01 TYPE STRING,
ZELLE02 TYPE STRING,
ASSIGN02 TYPE STRING,
BEGIN02 TYPE STRING,
END02 TYPE STRING,
REQUEST02 TYPE STRING,
ZELLE03 TYPE STRING,
ASSIGN03 TYPE STRING,
BEGIN03 TYPE STRING,
END03 TYPE STRING,
REQUEST03 TYPE STRING,
ZELLE04 TYPE STRING,
ASSIGN04 TYPE STRING,
BEGIN04 TYPE STRING,
END04 TYPE STRING,
REQUEST04 TYPE STRING,
ZELLE05 TYPE STRING,
ASSIGN05 TYPE STRING,
BEGIN05 TYPE STRING,
END05 TYPE STRING,
REQUEST05 TYPE STRING,
ZELLE06 TYPE STRING,
ASSIGN06 TYPE STRING,
BEGIN06 TYPE STRING,
END06 TYPE STRING,
REQUEST06 TYPE STRING,
ZELLE07 TYPE STRING,
ASSIGN07 TYPE STRING,
BEGIN07 TYPE STRING,
END07 TYPE STRING,
REQUEST07 TYPE STRING,
ZELLE08 TYPE STRING,
ASSIGN08 TYPE STRING,
BEGIN08 TYPE STRING,
END08 TYPE STRING,
REQUEST08 TYPE STRING,
ZELLE09 TYPE STRING,
ASSIGN09 TYPE STRING,
BEGIN09 TYPE STRING,
END09 TYPE STRING,
REQUEST09 TYPE STRING,
ZELLE10 TYPE STRING,
ASSIGN10 TYPE STRING,
BEGIN10 TYPE STRING,
END10 TYPE STRING,
REQUEST10 TYPE STRING,
ZELLE11 TYPE STRING,
ASSIGN11 TYPE STRING,
BEGIN11 TYPE STRING,
END11 TYPE STRING,
REQUEST11 TYPE STRING,
ZELLE12 TYPE STRING,
ASSIGN12 TYPE STRING,
BEGIN12 TYPE STRING,
END12 TYPE STRING,
REQUEST12 TYPE STRING,
ZELLE13 TYPE STRING,
ASSIGN13 TYPE STRING,
BEGIN13 TYPE STRING,
END13 TYPE STRING,
REQUEST13 TYPE STRING,
ZELLE14 TYPE STRING,
ASSIGN14 TYPE STRING,
BEGIN14 TYPE STRING,
END14 TYPE STRING,
REQUEST14 TYPE STRING,
ZELLE15 TYPE STRING,
ASSIGN15 TYPE STRING,
BEGIN15 TYPE STRING,
END15 TYPE STRING,
REQUEST15 TYPE STRING,
ZELLE16 TYPE STRING,
ASSIGN16 TYPE STRING,
BEGIN16 TYPE STRING,
END16 TYPE STRING,
REQUEST16 TYPE STRING,
ZELLE17 TYPE STRING,
ASSIGN17 TYPE STRING,
BEGIN17 TYPE STRING,
END17 TYPE STRING,
REQUEST17 TYPE STRING,
ZELLE18 TYPE STRING,
ASSIGN18 TYPE STRING,
BEGIN18 TYPE STRING,
END18 TYPE STRING,
REQUEST18 TYPE STRING,
ZELLE19 TYPE STRING,
ASSIGN19 TYPE STRING,
BEGIN19 TYPE STRING,
END19 TYPE STRING,
REQUEST19 TYPE STRING,
ZELLE20 TYPE STRING,
ASSIGN20 TYPE STRING,
BEGIN20 TYPE STRING,
END20 TYPE STRING,
REQUEST20 TYPE STRING,
ZELLE21 TYPE STRING,
ASSIGN21 TYPE STRING,
BEGIN21 TYPE STRING,
END21 TYPE STRING,
REQUEST21 TYPE STRING,
ZELLE22 TYPE STRING,
ASSIGN22 TYPE STRING,
BEGIN22 TYPE STRING,
END22 TYPE STRING,
REQUEST22 TYPE STRING,
ZELLE23 TYPE STRING,
ASSIGN23 TYPE STRING,
BEGIN23 TYPE STRING,
END23 TYPE STRING,
REQUEST23 TYPE STRING,
ZELLE24 TYPE STRING,
ASSIGN24 TYPE STRING,
BEGIN24 TYPE STRING,
END24 TYPE STRING,
REQUEST24 TYPE STRING,
ZELLE25 TYPE STRING,
ASSIGN25 TYPE STRING,
BEGIN25 TYPE STRING,
END25 TYPE STRING,
REQUEST25 TYPE STRING,
ZELLE26 TYPE STRING,
ASSIGN26 TYPE STRING,
BEGIN26 TYPE STRING,
END26 TYPE STRING,
REQUEST26 TYPE STRING,
ZELLE27 TYPE STRING,
ASSIGN27 TYPE STRING,
BEGIN27 TYPE STRING,
END27 TYPE STRING,
REQUEST27 TYPE STRING,
ZELLE28 TYPE STRING,
ASSIGN28 TYPE STRING,
BEGIN28 TYPE STRING,
END28 TYPE STRING,
REQUEST28 TYPE STRING,
SHIFTGROUP TYPE STRING,END OF T_EKKO_STR. DATA: WA_PDSPL_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_PDSPL_STR-MARK sy-vline
WA_PDSPL_STR-NAME sy-vline
WA_PDSPL_STR-PERNR sy-vline
WA_PDSPL_STR-ZELLE01 sy-vline
WA_PDSPL_STR-ASSIGN01 sy-vline
WA_PDSPL_STR-BEGIN01 sy-vline
WA_PDSPL_STR-END01 sy-vline
WA_PDSPL_STR-REQUEST01 sy-vline
WA_PDSPL_STR-ZELLE02 sy-vline
WA_PDSPL_STR-ASSIGN02 sy-vline
WA_PDSPL_STR-BEGIN02 sy-vline
WA_PDSPL_STR-END02 sy-vline
WA_PDSPL_STR-REQUEST02 sy-vline
WA_PDSPL_STR-ZELLE03 sy-vline
WA_PDSPL_STR-ASSIGN03 sy-vline
WA_PDSPL_STR-BEGIN03 sy-vline
WA_PDSPL_STR-END03 sy-vline
WA_PDSPL_STR-REQUEST03 sy-vline
WA_PDSPL_STR-ZELLE04 sy-vline
WA_PDSPL_STR-ASSIGN04 sy-vline
WA_PDSPL_STR-BEGIN04 sy-vline
WA_PDSPL_STR-END04 sy-vline
WA_PDSPL_STR-REQUEST04 sy-vline
WA_PDSPL_STR-ZELLE05 sy-vline
WA_PDSPL_STR-ASSIGN05 sy-vline
WA_PDSPL_STR-BEGIN05 sy-vline
WA_PDSPL_STR-END05 sy-vline
WA_PDSPL_STR-REQUEST05 sy-vline
WA_PDSPL_STR-ZELLE06 sy-vline
WA_PDSPL_STR-ASSIGN06 sy-vline
WA_PDSPL_STR-BEGIN06 sy-vline
WA_PDSPL_STR-END06 sy-vline
WA_PDSPL_STR-REQUEST06 sy-vline
WA_PDSPL_STR-ZELLE07 sy-vline
WA_PDSPL_STR-ASSIGN07 sy-vline
WA_PDSPL_STR-BEGIN07 sy-vline
WA_PDSPL_STR-END07 sy-vline
WA_PDSPL_STR-REQUEST07 sy-vline
WA_PDSPL_STR-ZELLE08 sy-vline
WA_PDSPL_STR-ASSIGN08 sy-vline
WA_PDSPL_STR-BEGIN08 sy-vline
WA_PDSPL_STR-END08 sy-vline
WA_PDSPL_STR-REQUEST08 sy-vline
WA_PDSPL_STR-ZELLE09 sy-vline
WA_PDSPL_STR-ASSIGN09 sy-vline
WA_PDSPL_STR-BEGIN09 sy-vline
WA_PDSPL_STR-END09 sy-vline
WA_PDSPL_STR-REQUEST09 sy-vline
WA_PDSPL_STR-ZELLE10 sy-vline
WA_PDSPL_STR-ASSIGN10 sy-vline
WA_PDSPL_STR-BEGIN10 sy-vline
WA_PDSPL_STR-END10 sy-vline
WA_PDSPL_STR-REQUEST10 sy-vline
WA_PDSPL_STR-ZELLE11 sy-vline
WA_PDSPL_STR-ASSIGN11 sy-vline
WA_PDSPL_STR-BEGIN11 sy-vline
WA_PDSPL_STR-END11 sy-vline
WA_PDSPL_STR-REQUEST11 sy-vline
WA_PDSPL_STR-ZELLE12 sy-vline
WA_PDSPL_STR-ASSIGN12 sy-vline
WA_PDSPL_STR-BEGIN12 sy-vline
WA_PDSPL_STR-END12 sy-vline
WA_PDSPL_STR-REQUEST12 sy-vline
WA_PDSPL_STR-ZELLE13 sy-vline
WA_PDSPL_STR-ASSIGN13 sy-vline
WA_PDSPL_STR-BEGIN13 sy-vline
WA_PDSPL_STR-END13 sy-vline
WA_PDSPL_STR-REQUEST13 sy-vline
WA_PDSPL_STR-ZELLE14 sy-vline
WA_PDSPL_STR-ASSIGN14 sy-vline
WA_PDSPL_STR-BEGIN14 sy-vline
WA_PDSPL_STR-END14 sy-vline
WA_PDSPL_STR-REQUEST14 sy-vline
WA_PDSPL_STR-ZELLE15 sy-vline
WA_PDSPL_STR-ASSIGN15 sy-vline
WA_PDSPL_STR-BEGIN15 sy-vline
WA_PDSPL_STR-END15 sy-vline
WA_PDSPL_STR-REQUEST15 sy-vline
WA_PDSPL_STR-ZELLE16 sy-vline
WA_PDSPL_STR-ASSIGN16 sy-vline
WA_PDSPL_STR-BEGIN16 sy-vline
WA_PDSPL_STR-END16 sy-vline
WA_PDSPL_STR-REQUEST16 sy-vline
WA_PDSPL_STR-ZELLE17 sy-vline
WA_PDSPL_STR-ASSIGN17 sy-vline
WA_PDSPL_STR-BEGIN17 sy-vline
WA_PDSPL_STR-END17 sy-vline
WA_PDSPL_STR-REQUEST17 sy-vline
WA_PDSPL_STR-ZELLE18 sy-vline
WA_PDSPL_STR-ASSIGN18 sy-vline
WA_PDSPL_STR-BEGIN18 sy-vline
WA_PDSPL_STR-END18 sy-vline
WA_PDSPL_STR-REQUEST18 sy-vline
WA_PDSPL_STR-ZELLE19 sy-vline
WA_PDSPL_STR-ASSIGN19 sy-vline
WA_PDSPL_STR-BEGIN19 sy-vline
WA_PDSPL_STR-END19 sy-vline
WA_PDSPL_STR-REQUEST19 sy-vline
WA_PDSPL_STR-ZELLE20 sy-vline
WA_PDSPL_STR-ASSIGN20 sy-vline
WA_PDSPL_STR-BEGIN20 sy-vline
WA_PDSPL_STR-END20 sy-vline
WA_PDSPL_STR-REQUEST20 sy-vline
WA_PDSPL_STR-ZELLE21 sy-vline
WA_PDSPL_STR-ASSIGN21 sy-vline
WA_PDSPL_STR-BEGIN21 sy-vline
WA_PDSPL_STR-END21 sy-vline
WA_PDSPL_STR-REQUEST21 sy-vline
WA_PDSPL_STR-ZELLE22 sy-vline
WA_PDSPL_STR-ASSIGN22 sy-vline
WA_PDSPL_STR-BEGIN22 sy-vline
WA_PDSPL_STR-END22 sy-vline
WA_PDSPL_STR-REQUEST22 sy-vline
WA_PDSPL_STR-ZELLE23 sy-vline
WA_PDSPL_STR-ASSIGN23 sy-vline
WA_PDSPL_STR-BEGIN23 sy-vline
WA_PDSPL_STR-END23 sy-vline
WA_PDSPL_STR-REQUEST23 sy-vline
WA_PDSPL_STR-ZELLE24 sy-vline
WA_PDSPL_STR-ASSIGN24 sy-vline
WA_PDSPL_STR-BEGIN24 sy-vline
WA_PDSPL_STR-END24 sy-vline
WA_PDSPL_STR-REQUEST24 sy-vline
WA_PDSPL_STR-ZELLE25 sy-vline
WA_PDSPL_STR-ASSIGN25 sy-vline
WA_PDSPL_STR-BEGIN25 sy-vline
WA_PDSPL_STR-END25 sy-vline
WA_PDSPL_STR-REQUEST25 sy-vline
WA_PDSPL_STR-ZELLE26 sy-vline
WA_PDSPL_STR-ASSIGN26 sy-vline
WA_PDSPL_STR-BEGIN26 sy-vline
WA_PDSPL_STR-END26 sy-vline
WA_PDSPL_STR-REQUEST26 sy-vline
WA_PDSPL_STR-ZELLE27 sy-vline
WA_PDSPL_STR-ASSIGN27 sy-vline
WA_PDSPL_STR-BEGIN27 sy-vline
WA_PDSPL_STR-END27 sy-vline
WA_PDSPL_STR-REQUEST27 sy-vline
WA_PDSPL_STR-ZELLE28 sy-vline
WA_PDSPL_STR-ASSIGN28 sy-vline
WA_PDSPL_STR-BEGIN28 sy-vline
WA_PDSPL_STR-END28 sy-vline
WA_PDSPL_STR-REQUEST28 sy-vline
WA_PDSPL_STR-SHIFTGROUP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.