ABAP Select data from SAP table FSH_PROI_PROT_S 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 FSH_PROI_PROT_S 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 FSH_PROI_PROT_S. 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 FSH_PROI_PROT_S 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_FSH_PROI_PROT_S TYPE STANDARD TABLE OF FSH_PROI_PROT_S, WA_FSH_PROI_PROT_S TYPE FSH_PROI_PROT_S, 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: <FSH_PROI_PROT_S> TYPE FSH_PROI_PROT_S. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_FSH_PROI_PROT_S. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM FSH_PROI_PROT_S INTO TABLE IT_FSH_PROI_PROT_S. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM FSH_PROI_PROT_S * INTO TABLE @DATA(IT_FSH_PROI_PROT_S2). *--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_FSH_PROI_PROT_S INDEX 1 INTO DATA(WA_FSH_PROI_PROT_S2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_FSH_PROI_PROT_S ASSIGNING <FSH_PROI_PROT_S>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<FSH_PROI_PROT_S>-DOCNUM = 1.
<FSH_PROI_PROT_S>-DOCTYP = 1.
<FSH_PROI_PROT_S>-ERNAM = 1.
<FSH_PROI_PROT_S>-USED_BY = 1.
<FSH_PROI_PROT_S>-DATUM = 1.
ENDLOOP. LOOP AT IT_FSH_PROI_PROT_S INTO WA_FSH_PROI_PROT_S. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_FSH_PROI_PROT_S-UZEIT, sy-vline,
WA_FSH_PROI_PROT_S-ARMOD, sy-vline,
WA_FSH_PROI_PROT_S-ARBEZ, sy-vline,
WA_FSH_PROI_PROT_S-ARTYP, sy-vline,
WA_FSH_PROI_PROT_S-REFND, sy-vline,
WA_FSH_PROI_PROT_S-FISTA, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FSH_PROI_PROT_S 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_FSH_PROI_PROT_S 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_FSH_PROI_PROT_S INTO WA_FSH_PROI_PROT_S. *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 ALPHA, internal->external for field GRREQ CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FSH_PROI_PROT_S-GRREQ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FSH_PROI_PROT_S-GRREQ.
WRITE:/ 'New Value:', ld_input.
*Conversion exit MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_FSH_PROI_PROT_S-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FSH_PROI_PROT_S-MATNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field KUNNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FSH_PROI_PROT_S-KUNNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FSH_PROI_PROT_S-KUNNR.
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_FSH_PROI_PROT_S_STR,
DOCNUM TYPE STRING,
DOCTYP TYPE STRING,
ERNAM TYPE STRING,
USED_BY TYPE STRING,
DATUM TYPE STRING,
UZEIT TYPE STRING,
ARMOD TYPE STRING,
ARBEZ TYPE STRING,
ARTYP TYPE STRING,
REFND TYPE STRING,
FISTA TYPE STRING,
SOREG TYPE STRING,
GRREG TYPE STRING,
GRFND TYPE STRING,
OTDBD TYPE STRING,
OTDBS TYPE STRING,
RELEASE_CHECK TYPE STRING,
BDREG TYPE STRING,
BSREG TYPE STRING,
REREG TYPE STRING,
FIREG TYPE STRING,
ARULE TYPE STRING,
LOREG TYPE STRING,
LFREG TYPE STRING,
BATCH_CHK TYPE STRING,
LGONR_CHK TYPE STRING,
RSCAT_CHK TYPE STRING,
RSCAT_SORT TYPE STRING,
CANCEL_CHK TYPE STRING,
RQDAT TYPE STRING,
STDAT TYPE STRING,
DELIV_SCHED TYPE STRING,
SOSTK TYPE STRING,
SEASONS TYPE STRING,
EBEST TYPE STRING,
SMCHB TYPE STRING,
SHPNO TYPE STRING,
STLOC TYPE STRING,
EORDR TYPE STRING,
STO TYPE STRING,
RESERVE_G TYPE STRING,
ORFUL_G TYPE STRING,
PERCT_G TYPE STRING,
RESULT_G TYPE STRING,
RESERVE_SO TYPE STRING,
ORFUL_SO TYPE STRING,
PERCT_SO TYPE STRING,
RESULT_SO TYPE STRING,
RESERVE_DG TYPE STRING,
ORFUL_DG TYPE STRING,
PERCT_DG TYPE STRING,
BLANK_DG TYPE STRING,
RESULT_DG TYPE STRING,
RESERVE_GA TYPE STRING,
ORFUL_GA TYPE STRING,
PERCT_GA TYPE STRING,
RESULT_GA TYPE STRING,
RESERVE_I TYPE STRING,
ORFUL_I TYPE STRING,
PERCT_I TYPE STRING,
RESULT_I TYPE STRING,
RESERVE_SL TYPE STRING,
ORFUL_SL TYPE STRING,
PERCT_SL TYPE STRING,
RESULT_SL TYPE STRING,
MAXQU_SL TYPE STRING,
FSH_BOMCORR TYPE STRING,
RESERVE_BOM TYPE STRING,
ORFUL_BOM TYPE STRING,
PERCT_BOM TYPE STRING,
RESULT_BOM TYPE STRING,
FSH_VASCORR TYPE STRING,
RESERVE_VAS TYPE STRING,
ORFUL_VAS TYPE STRING,
PERCT_VAS TYPE STRING,
RESULT_VAS TYPE STRING,
RESERVE_SC TYPE STRING,
ORFUL_SC TYPE STRING,
PERCT_SC TYPE STRING,
BLANK_SC TYPE STRING,
RESULT_SC TYPE STRING,
SEASON_IND TYPE STRING,
RESERVE_OSL TYPE STRING,
ORFUL_OSL TYPE STRING,
PERCT_OSL TYPE STRING,
BLANK_OSL TYPE STRING,
RESULT_OSL TYPE STRING,
RESERVE_LD TYPE STRING,
ORFUL_LD TYPE STRING,
PERCT_LD TYPE STRING,
RESULT_LD TYPE STRING,
PERCT_COR TYPE STRING,
FR_IND TYPE STRING,
PERCT_CORELD TYPE STRING,
STODATE TYPE STRING,
KRDCK TYPE STRING,
FIFO TYPE STRING,
SPREAD TYPE STRING,
RELEASE_QTY TYPE STRING,
LFACT TYPE STRING,
LFPST TYPE STRING,
CDTCK TYPE STRING,
SEACK TYPE STRING,
CDDAY TYPE STRING,
PROINAME TYPE STRING,
PROIDATE TYPE STRING,
MTTYP TYPE STRING,
APPLI TYPE STRING,
MTMOD TYPE STRING,
SAVE_LOG TYPE STRING,
LFNUM TYPE STRING,
GRREQ TYPE STRING,
AUFNR TYPE STRING,
POSNR TYPE STRING,
ETENR TYPE STRING,
BDART TYPE STRING,
WERKS TYPE STRING,
MATNR TYPE STRING,
KUNNR TYPE STRING,
GRKOR TYPE STRING,
LNGR TYPE STRING,
CLASS TYPE STRING,
MAREA TYPE STRING,
MSGID TYPE STRING,
MSGNO TYPE STRING,
MSGTY TYPE STRING,
MSGV1 TYPE STRING,
MSGV2 TYPE STRING,
MSGV3 TYPE STRING,
MSGV4 TYPE STRING,
MSGTXT TYPE STRING,END OF T_EKKO_STR. DATA: WA_FSH_PROI_PROT_S_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_FSH_PROI_PROT_S_STR-DOCNUM sy-vline
WA_FSH_PROI_PROT_S_STR-DOCTYP sy-vline
WA_FSH_PROI_PROT_S_STR-ERNAM sy-vline
WA_FSH_PROI_PROT_S_STR-USED_BY sy-vline
WA_FSH_PROI_PROT_S_STR-DATUM sy-vline
WA_FSH_PROI_PROT_S_STR-UZEIT sy-vline
WA_FSH_PROI_PROT_S_STR-ARMOD sy-vline
WA_FSH_PROI_PROT_S_STR-ARBEZ sy-vline
WA_FSH_PROI_PROT_S_STR-ARTYP sy-vline
WA_FSH_PROI_PROT_S_STR-REFND sy-vline
WA_FSH_PROI_PROT_S_STR-FISTA sy-vline
WA_FSH_PROI_PROT_S_STR-SOREG sy-vline
WA_FSH_PROI_PROT_S_STR-GRREG sy-vline
WA_FSH_PROI_PROT_S_STR-GRFND sy-vline
WA_FSH_PROI_PROT_S_STR-OTDBD sy-vline
WA_FSH_PROI_PROT_S_STR-OTDBS sy-vline
WA_FSH_PROI_PROT_S_STR-RELEASE_CHECK sy-vline
WA_FSH_PROI_PROT_S_STR-BDREG sy-vline
WA_FSH_PROI_PROT_S_STR-BSREG sy-vline
WA_FSH_PROI_PROT_S_STR-REREG sy-vline
WA_FSH_PROI_PROT_S_STR-FIREG sy-vline
WA_FSH_PROI_PROT_S_STR-ARULE sy-vline
WA_FSH_PROI_PROT_S_STR-LOREG sy-vline
WA_FSH_PROI_PROT_S_STR-LFREG sy-vline
WA_FSH_PROI_PROT_S_STR-BATCH_CHK sy-vline
WA_FSH_PROI_PROT_S_STR-LGONR_CHK sy-vline
WA_FSH_PROI_PROT_S_STR-RSCAT_CHK sy-vline
WA_FSH_PROI_PROT_S_STR-RSCAT_SORT sy-vline
WA_FSH_PROI_PROT_S_STR-CANCEL_CHK sy-vline
WA_FSH_PROI_PROT_S_STR-RQDAT sy-vline
WA_FSH_PROI_PROT_S_STR-STDAT sy-vline
WA_FSH_PROI_PROT_S_STR-DELIV_SCHED sy-vline
WA_FSH_PROI_PROT_S_STR-SOSTK sy-vline
WA_FSH_PROI_PROT_S_STR-SEASONS sy-vline
WA_FSH_PROI_PROT_S_STR-EBEST sy-vline
WA_FSH_PROI_PROT_S_STR-SMCHB sy-vline
WA_FSH_PROI_PROT_S_STR-SHPNO sy-vline
WA_FSH_PROI_PROT_S_STR-STLOC sy-vline
WA_FSH_PROI_PROT_S_STR-EORDR sy-vline
WA_FSH_PROI_PROT_S_STR-STO sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_G sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_G sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_G sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_G sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_SO sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_SO sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_SO sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_SO sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_DG sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_DG sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_DG sy-vline
WA_FSH_PROI_PROT_S_STR-BLANK_DG sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_DG sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_GA sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_GA sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_GA sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_GA sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_I sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_I sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_I sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_I sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_SL sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_SL sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_SL sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_SL sy-vline
WA_FSH_PROI_PROT_S_STR-MAXQU_SL sy-vline
WA_FSH_PROI_PROT_S_STR-FSH_BOMCORR sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_BOM sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_BOM sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_BOM sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_BOM sy-vline
WA_FSH_PROI_PROT_S_STR-FSH_VASCORR sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_VAS sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_VAS sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_VAS sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_VAS sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_SC sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_SC sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_SC sy-vline
WA_FSH_PROI_PROT_S_STR-BLANK_SC sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_SC sy-vline
WA_FSH_PROI_PROT_S_STR-SEASON_IND sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_OSL sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_OSL sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_OSL sy-vline
WA_FSH_PROI_PROT_S_STR-BLANK_OSL sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_OSL sy-vline
WA_FSH_PROI_PROT_S_STR-RESERVE_LD sy-vline
WA_FSH_PROI_PROT_S_STR-ORFUL_LD sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_LD sy-vline
WA_FSH_PROI_PROT_S_STR-RESULT_LD sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_COR sy-vline
WA_FSH_PROI_PROT_S_STR-FR_IND sy-vline
WA_FSH_PROI_PROT_S_STR-PERCT_CORELD sy-vline
WA_FSH_PROI_PROT_S_STR-STODATE sy-vline
WA_FSH_PROI_PROT_S_STR-KRDCK sy-vline
WA_FSH_PROI_PROT_S_STR-FIFO sy-vline
WA_FSH_PROI_PROT_S_STR-SPREAD sy-vline
WA_FSH_PROI_PROT_S_STR-RELEASE_QTY sy-vline
WA_FSH_PROI_PROT_S_STR-LFACT sy-vline
WA_FSH_PROI_PROT_S_STR-LFPST sy-vline
WA_FSH_PROI_PROT_S_STR-CDTCK sy-vline
WA_FSH_PROI_PROT_S_STR-SEACK sy-vline
WA_FSH_PROI_PROT_S_STR-CDDAY sy-vline
WA_FSH_PROI_PROT_S_STR-PROINAME sy-vline
WA_FSH_PROI_PROT_S_STR-PROIDATE sy-vline
WA_FSH_PROI_PROT_S_STR-MTTYP sy-vline
WA_FSH_PROI_PROT_S_STR-APPLI sy-vline
WA_FSH_PROI_PROT_S_STR-MTMOD sy-vline
WA_FSH_PROI_PROT_S_STR-SAVE_LOG sy-vline
WA_FSH_PROI_PROT_S_STR-LFNUM sy-vline
WA_FSH_PROI_PROT_S_STR-GRREQ sy-vline
WA_FSH_PROI_PROT_S_STR-AUFNR sy-vline
WA_FSH_PROI_PROT_S_STR-POSNR sy-vline
WA_FSH_PROI_PROT_S_STR-ETENR sy-vline
WA_FSH_PROI_PROT_S_STR-BDART sy-vline
WA_FSH_PROI_PROT_S_STR-WERKS sy-vline
WA_FSH_PROI_PROT_S_STR-MATNR sy-vline
WA_FSH_PROI_PROT_S_STR-KUNNR sy-vline
WA_FSH_PROI_PROT_S_STR-GRKOR sy-vline
WA_FSH_PROI_PROT_S_STR-LNGR sy-vline
WA_FSH_PROI_PROT_S_STR-CLASS sy-vline
WA_FSH_PROI_PROT_S_STR-MAREA sy-vline
WA_FSH_PROI_PROT_S_STR-MSGID sy-vline
WA_FSH_PROI_PROT_S_STR-MSGNO sy-vline
WA_FSH_PROI_PROT_S_STR-MSGTY sy-vline
WA_FSH_PROI_PROT_S_STR-MSGV1 sy-vline
WA_FSH_PROI_PROT_S_STR-MSGV2 sy-vline
WA_FSH_PROI_PROT_S_STR-MSGV3 sy-vline
WA_FSH_PROI_PROT_S_STR-MSGV4 sy-vline
WA_FSH_PROI_PROT_S_STR-MSGTXT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.