ABAP Select data from SAP table PRUP4 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 PRUP4 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 PRUP4. 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 PRUP4 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_PRUP4 TYPE STANDARD TABLE OF PRUP4, WA_PRUP4 TYPE PRUP4, 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: <PRUP4> TYPE PRUP4. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_PRUP4. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM PRUP4 INTO TABLE IT_PRUP4. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM PRUP4 * INTO TABLE @DATA(IT_PRUP42). *--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_PRUP4 INDEX 1 INTO DATA(WA_PRUP42). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_PRUP4 ASSIGNING <PRUP4>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<PRUP4>-MONAT = 1.
<PRUP4>-MONUM = 1.
<PRUP4>-JAHR = 1.
<PRUP4>-XVERS = 1.
<PRUP4>-OKPO = 1.
ENDLOOP. LOOP AT IT_PRUP4 INTO WA_PRUP4. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_PRUP4-ADDRESS, sy-vline,
WA_PRUP4-KODVID, sy-vline,
WA_PRUP4-OKVED, sy-vline,
WA_PRUP4-OKFS, sy-vline,
WA_PRUP4-OKOHX, sy-vline,
WA_PRUP4-RUK_FIO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PRUP4 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_PRUP4 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_PRUP4 INTO WA_PRUP4. *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 SXIDN, internal->external for field EMAIL CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_PRUP4-EMAIL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PRUP4-EMAIL.
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_PRUP4_STR,
MONAT TYPE STRING,
MONUM TYPE STRING,
JAHR TYPE STRING,
XVERS TYPE STRING,
OKPO TYPE STRING,
ADDRESS TYPE STRING,
KODVID TYPE STRING,
OKVED TYPE STRING,
OKFS TYPE STRING,
OKOHX TYPE STRING,
RUK_FIO TYPE STRING,
RES_DOL TYPE STRING,
RES_FIO TYPE STRING,
CONT_TEL TYPE STRING,
DOC_DATE TYPE STRING,
DOC_MONTH TYPE STRING,
DOC_YEAR TYPE STRING,
NAME_ORG TYPE STRING,
EMAIL TYPE STRING,
R2_207 TYPE STRING,
R2_208 TYPE STRING,
R2_209 TYPE STRING,
R2_210 TYPE STRING,
R2_211 TYPE STRING,
R2_212 TYPE STRING,
R2_213 TYPE STRING,
R2_214 TYPE STRING,
R2_215 TYPE STRING,
R2_216 TYPE STRING,
R2_217 TYPE STRING,
R3_318 TYPE STRING,
R3_319 TYPE STRING,
R3_320 TYPE STRING,
R3_321 TYPE STRING,
R3_322 TYPE STRING,
R3_323 TYPE STRING,
R3_324 TYPE STRING,
R3_325 TYPE STRING,
R3_326 TYPE STRING,
R3_327 TYPE STRING,
R3_328 TYPE STRING,
QUARTER TYPE STRING,
RNZ_01 TYPE STRING,
RNZ_02 TYPE STRING,
RNZ_03 TYPE STRING,
RNZ_03_1 TYPE STRING,
RNZ_04 TYPE STRING,
RNZ_05 TYPE STRING,
RNZ_06 TYPE STRING,
RNZ_07 TYPE STRING,
RNZ_08 TYPE STRING,
RNZ_09 TYPE STRING,
RNZ_10 TYPE STRING,
RNZ_11 TYPE STRING,
RNZ_12 TYPE STRING,
RNZ_13 TYPE STRING,
RNZ_14 TYPE STRING,
RNZ_15 TYPE STRING,
RNZ_16 TYPE STRING,
RNZ_17 TYPE STRING,
RNZ_18 TYPE STRING,
RNZ_19 TYPE STRING,
RNZ_20 TYPE STRING,
RNZ_21 TYPE STRING,
RNZ_22 TYPE STRING,
XVERS_LT TYPE STRING,END OF T_EKKO_STR. DATA: WA_PRUP4_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_PRUP4_STR-MONAT sy-vline
WA_PRUP4_STR-MONUM sy-vline
WA_PRUP4_STR-JAHR sy-vline
WA_PRUP4_STR-XVERS sy-vline
WA_PRUP4_STR-OKPO sy-vline
WA_PRUP4_STR-ADDRESS sy-vline
WA_PRUP4_STR-KODVID sy-vline
WA_PRUP4_STR-OKVED sy-vline
WA_PRUP4_STR-OKFS sy-vline
WA_PRUP4_STR-OKOHX sy-vline
WA_PRUP4_STR-RUK_FIO sy-vline
WA_PRUP4_STR-RES_DOL sy-vline
WA_PRUP4_STR-RES_FIO sy-vline
WA_PRUP4_STR-CONT_TEL sy-vline
WA_PRUP4_STR-DOC_DATE sy-vline
WA_PRUP4_STR-DOC_MONTH sy-vline
WA_PRUP4_STR-DOC_YEAR sy-vline
WA_PRUP4_STR-NAME_ORG sy-vline
WA_PRUP4_STR-EMAIL sy-vline
WA_PRUP4_STR-R2_207 sy-vline
WA_PRUP4_STR-R2_208 sy-vline
WA_PRUP4_STR-R2_209 sy-vline
WA_PRUP4_STR-R2_210 sy-vline
WA_PRUP4_STR-R2_211 sy-vline
WA_PRUP4_STR-R2_212 sy-vline
WA_PRUP4_STR-R2_213 sy-vline
WA_PRUP4_STR-R2_214 sy-vline
WA_PRUP4_STR-R2_215 sy-vline
WA_PRUP4_STR-R2_216 sy-vline
WA_PRUP4_STR-R2_217 sy-vline
WA_PRUP4_STR-R3_318 sy-vline
WA_PRUP4_STR-R3_319 sy-vline
WA_PRUP4_STR-R3_320 sy-vline
WA_PRUP4_STR-R3_321 sy-vline
WA_PRUP4_STR-R3_322 sy-vline
WA_PRUP4_STR-R3_323 sy-vline
WA_PRUP4_STR-R3_324 sy-vline
WA_PRUP4_STR-R3_325 sy-vline
WA_PRUP4_STR-R3_326 sy-vline
WA_PRUP4_STR-R3_327 sy-vline
WA_PRUP4_STR-R3_328 sy-vline
WA_PRUP4_STR-QUARTER sy-vline
WA_PRUP4_STR-RNZ_01 sy-vline
WA_PRUP4_STR-RNZ_02 sy-vline
WA_PRUP4_STR-RNZ_03 sy-vline
WA_PRUP4_STR-RNZ_03_1 sy-vline
WA_PRUP4_STR-RNZ_04 sy-vline
WA_PRUP4_STR-RNZ_05 sy-vline
WA_PRUP4_STR-RNZ_06 sy-vline
WA_PRUP4_STR-RNZ_07 sy-vline
WA_PRUP4_STR-RNZ_08 sy-vline
WA_PRUP4_STR-RNZ_09 sy-vline
WA_PRUP4_STR-RNZ_10 sy-vline
WA_PRUP4_STR-RNZ_11 sy-vline
WA_PRUP4_STR-RNZ_12 sy-vline
WA_PRUP4_STR-RNZ_13 sy-vline
WA_PRUP4_STR-RNZ_14 sy-vline
WA_PRUP4_STR-RNZ_15 sy-vline
WA_PRUP4_STR-RNZ_16 sy-vline
WA_PRUP4_STR-RNZ_17 sy-vline
WA_PRUP4_STR-RNZ_18 sy-vline
WA_PRUP4_STR-RNZ_19 sy-vline
WA_PRUP4_STR-RNZ_20 sy-vline
WA_PRUP4_STR-RNZ_21 sy-vline
WA_PRUP4_STR-RNZ_22 sy-vline
WA_PRUP4_STR-XVERS_LT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.