SAP S411 ABAP Select data from SAP table
Below is a number of ABAP code snippets to demonstrate how to select data from SAP S411 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 S411. 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 S411 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_S411 TYPE STANDARD TABLE OF S411,
WA_S411 TYPE S411,
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: <S411> TYPE S411.
*Process all fields in table header/work area as string values
PERFORM process_as_string_field_values CHANGING wa_S411.
SELECT *
*restrict ABAP select to first 10 rows
UP TO 10 ROWS
FROM S411
INTO TABLE IT_S411.
*Select data and declare internal table using in-line method @DATA
*SELECT *
* FROM S411
* INTO TABLE @DATA(IT_S4112).
*--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_S411 INDEX 1 INTO DATA(WA_S4112).
*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_S411 ASSIGNING <S411>.
*To update a field value using a field symbol simply change the value via the field symbol pointer<S411>-MANDT = 1.
<S411>-SSOUR = 1.
<S411>-VRSIO = 1.
<S411>-SPMON = 1.
<S411>-SPTAG = 1.
ENDLOOP. LOOP AT IT_S411 INTO WA_S411. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_S411-SPWOC, sy-vline,
WA_S411-SPBUP, sy-vline,
WA_S411-WERKS, sy-vline,
WA_S411-MATNR, sy-vline,
WA_S411-PERIV, sy-vline,
WA_S411-VWDAT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_S411 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_S411 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_S411 INTO WA_S411. *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 PERI, internal->external for field SPMON CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT' EXPORTING input = WA_S411-SPMON IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_S411-SPMON.
WRITE:/ 'New Value:', ld_input.
*Conversion exit PERI, internal->external for field SPWOC CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT' EXPORTING input = WA_S411-SPWOC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_S411-SPWOC.
WRITE:/ 'New Value:', ld_input.
*Conversion exit PERI, internal->external for field SPBUP CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT' EXPORTING input = WA_S411-SPBUP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_S411-SPBUP.
WRITE:/ 'New Value:', ld_input.
*Conversion exit MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_S411-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_S411-MATNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_S411-MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_S411-MEINS.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field BASME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_S411-BASME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_S411-BASME.
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_S411_STR,
MANDT TYPE STRING,
SSOUR TYPE STRING,
VRSIO TYPE STRING,
SPMON TYPE STRING,
SPTAG TYPE STRING,
SPWOC TYPE STRING,
SPBUP TYPE STRING,
WERKS TYPE STRING,
MATNR TYPE STRING,
PERIV TYPE STRING,
VWDAT TYPE STRING,
MEINS TYPE STRING,
BASME TYPE STRING,
FIELD0001 TYPE STRING,
FIELD0010 TYPE STRING,
FIELD0011 TYPE STRING,
FIELD0012 TYPE STRING,
FIELD0013 TYPE STRING,
FIELD0014 TYPE STRING,
FIELD0015 TYPE STRING,
FIELD0016 TYPE STRING,
FIELD0017 TYPE STRING,
FIELD0018 TYPE STRING,
FIELD0019 TYPE STRING,
FIELD0002 TYPE STRING,
FIELD0020 TYPE STRING,
FIELD0021 TYPE STRING,
FIELD0022 TYPE STRING,
FIELD0003 TYPE STRING,
FIELD0004 TYPE STRING,
FIELD0005 TYPE STRING,
FIELD0006 TYPE STRING,
FIELD0007 TYPE STRING,
FIELD0008 TYPE STRING,
FIELD0009 TYPE STRING,
FIELD0023 TYPE STRING,
FIELD0024 TYPE STRING,
FIELD0025 TYPE STRING,
FIELD0026 TYPE STRING,
FIELD0027 TYPE STRING,
FIELD0028 TYPE STRING,
FIELD0029 TYPE STRING,
FIELD0030 TYPE STRING,
FIELD0031 TYPE STRING,
FIELD0032 TYPE STRING,
FIELD0033 TYPE STRING,
FIELD0034 TYPE STRING,
FIELD0035 TYPE STRING,
FIELD0036 TYPE STRING,
FIELD0037 TYPE STRING,
FIELD0038 TYPE STRING,
FIELD0039 TYPE STRING,
FIELD0040 TYPE STRING,
FIELD0041 TYPE STRING,
FIELD0042 TYPE STRING,
FIELD0043 TYPE STRING,
FIELD0044 TYPE STRING,
FIELD0045 TYPE STRING,
FIELD0046 TYPE STRING,
FIELD0047 TYPE STRING,
FIELD0048 TYPE STRING,
FIELD0049 TYPE STRING,
FIELD0050 TYPE STRING,
FIELD0051 TYPE STRING,
FIELD0052 TYPE STRING,
FIELD0053 TYPE STRING,
FIELD0054 TYPE STRING,
FIELD0055 TYPE STRING,
FIELD0056 TYPE STRING,
FIELD0057 TYPE STRING,
FIELD0058 TYPE STRING,
FIELD0059 TYPE STRING,
FIELD0060 TYPE STRING,
FIELD0061 TYPE STRING,
FIELD0062 TYPE STRING,
FIELD0063 TYPE STRING,
FIELD0064 TYPE STRING,
FIELD0065 TYPE STRING,
FIELD0066 TYPE STRING,
FIELD0067 TYPE STRING,
FIELD0068 TYPE STRING,
FIELD0069 TYPE STRING,
FIELD0070 TYPE STRING,
FIELD0071 TYPE STRING,
FIELD0072 TYPE STRING,
FIELD0073 TYPE STRING,
FIELD0074 TYPE STRING,
FIELD0075 TYPE STRING,
FIELD0076 TYPE STRING,
FIELD0077 TYPE STRING,
FIELD0078 TYPE STRING,
FIELD0079 TYPE STRING,
FIELD0080 TYPE STRING,
FIELD0081 TYPE STRING,
FIELD0082 TYPE STRING,
FIELD0083 TYPE STRING,
FIELD0085 TYPE STRING,
FIELD0086 TYPE STRING,
FIELD0087 TYPE STRING,
FIELD0088 TYPE STRING,
FIELD0089 TYPE STRING,
FIELD0090 TYPE STRING,
FIELD0091 TYPE STRING,
FIELD0092 TYPE STRING,
FIELD0093 TYPE STRING,
FIELD0094 TYPE STRING,
FIELD0095 TYPE STRING,
FIELD0096 TYPE STRING,
FIELD0097 TYPE STRING,
FIELD0098 TYPE STRING,
FIELD0099 TYPE STRING,
FIELD0100 TYPE STRING,
KWMENG TYPE STRING,
FIELD0084 TYPE STRING,
MZUBB TYPE STRING,END OF T_EKKO_STR. DATA: WA_S411_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_S411_STR-MANDT sy-vline
WA_S411_STR-SSOUR sy-vline
WA_S411_STR-VRSIO sy-vline
WA_S411_STR-SPMON sy-vline
WA_S411_STR-SPTAG sy-vline
WA_S411_STR-SPWOC sy-vline
WA_S411_STR-SPBUP sy-vline
WA_S411_STR-WERKS sy-vline
WA_S411_STR-MATNR sy-vline
WA_S411_STR-PERIV sy-vline
WA_S411_STR-VWDAT sy-vline
WA_S411_STR-MEINS sy-vline
WA_S411_STR-BASME sy-vline
WA_S411_STR-FIELD0001 sy-vline
WA_S411_STR-FIELD0010 sy-vline
WA_S411_STR-FIELD0011 sy-vline
WA_S411_STR-FIELD0012 sy-vline
WA_S411_STR-FIELD0013 sy-vline
WA_S411_STR-FIELD0014 sy-vline
WA_S411_STR-FIELD0015 sy-vline
WA_S411_STR-FIELD0016 sy-vline
WA_S411_STR-FIELD0017 sy-vline
WA_S411_STR-FIELD0018 sy-vline
WA_S411_STR-FIELD0019 sy-vline
WA_S411_STR-FIELD0002 sy-vline
WA_S411_STR-FIELD0020 sy-vline
WA_S411_STR-FIELD0021 sy-vline
WA_S411_STR-FIELD0022 sy-vline
WA_S411_STR-FIELD0003 sy-vline
WA_S411_STR-FIELD0004 sy-vline
WA_S411_STR-FIELD0005 sy-vline
WA_S411_STR-FIELD0006 sy-vline
WA_S411_STR-FIELD0007 sy-vline
WA_S411_STR-FIELD0008 sy-vline
WA_S411_STR-FIELD0009 sy-vline
WA_S411_STR-FIELD0023 sy-vline
WA_S411_STR-FIELD0024 sy-vline
WA_S411_STR-FIELD0025 sy-vline
WA_S411_STR-FIELD0026 sy-vline
WA_S411_STR-FIELD0027 sy-vline
WA_S411_STR-FIELD0028 sy-vline
WA_S411_STR-FIELD0029 sy-vline
WA_S411_STR-FIELD0030 sy-vline
WA_S411_STR-FIELD0031 sy-vline
WA_S411_STR-FIELD0032 sy-vline
WA_S411_STR-FIELD0033 sy-vline
WA_S411_STR-FIELD0034 sy-vline
WA_S411_STR-FIELD0035 sy-vline
WA_S411_STR-FIELD0036 sy-vline
WA_S411_STR-FIELD0037 sy-vline
WA_S411_STR-FIELD0038 sy-vline
WA_S411_STR-FIELD0039 sy-vline
WA_S411_STR-FIELD0040 sy-vline
WA_S411_STR-FIELD0041 sy-vline
WA_S411_STR-FIELD0042 sy-vline
WA_S411_STR-FIELD0043 sy-vline
WA_S411_STR-FIELD0044 sy-vline
WA_S411_STR-FIELD0045 sy-vline
WA_S411_STR-FIELD0046 sy-vline
WA_S411_STR-FIELD0047 sy-vline
WA_S411_STR-FIELD0048 sy-vline
WA_S411_STR-FIELD0049 sy-vline
WA_S411_STR-FIELD0050 sy-vline
WA_S411_STR-FIELD0051 sy-vline
WA_S411_STR-FIELD0052 sy-vline
WA_S411_STR-FIELD0053 sy-vline
WA_S411_STR-FIELD0054 sy-vline
WA_S411_STR-FIELD0055 sy-vline
WA_S411_STR-FIELD0056 sy-vline
WA_S411_STR-FIELD0057 sy-vline
WA_S411_STR-FIELD0058 sy-vline
WA_S411_STR-FIELD0059 sy-vline
WA_S411_STR-FIELD0060 sy-vline
WA_S411_STR-FIELD0061 sy-vline
WA_S411_STR-FIELD0062 sy-vline
WA_S411_STR-FIELD0063 sy-vline
WA_S411_STR-FIELD0064 sy-vline
WA_S411_STR-FIELD0065 sy-vline
WA_S411_STR-FIELD0066 sy-vline
WA_S411_STR-FIELD0067 sy-vline
WA_S411_STR-FIELD0068 sy-vline
WA_S411_STR-FIELD0069 sy-vline
WA_S411_STR-FIELD0070 sy-vline
WA_S411_STR-FIELD0071 sy-vline
WA_S411_STR-FIELD0072 sy-vline
WA_S411_STR-FIELD0073 sy-vline
WA_S411_STR-FIELD0074 sy-vline
WA_S411_STR-FIELD0075 sy-vline
WA_S411_STR-FIELD0076 sy-vline
WA_S411_STR-FIELD0077 sy-vline
WA_S411_STR-FIELD0078 sy-vline
WA_S411_STR-FIELD0079 sy-vline
WA_S411_STR-FIELD0080 sy-vline
WA_S411_STR-FIELD0081 sy-vline
WA_S411_STR-FIELD0082 sy-vline
WA_S411_STR-FIELD0083 sy-vline
WA_S411_STR-FIELD0085 sy-vline
WA_S411_STR-FIELD0086 sy-vline
WA_S411_STR-FIELD0087 sy-vline
WA_S411_STR-FIELD0088 sy-vline
WA_S411_STR-FIELD0089 sy-vline
WA_S411_STR-FIELD0090 sy-vline
WA_S411_STR-FIELD0091 sy-vline
WA_S411_STR-FIELD0092 sy-vline
WA_S411_STR-FIELD0093 sy-vline
WA_S411_STR-FIELD0094 sy-vline
WA_S411_STR-FIELD0095 sy-vline
WA_S411_STR-FIELD0096 sy-vline
WA_S411_STR-FIELD0097 sy-vline
WA_S411_STR-FIELD0098 sy-vline
WA_S411_STR-FIELD0099 sy-vline
WA_S411_STR-FIELD0100 sy-vline
WA_S411_STR-KWMENG sy-vline
WA_S411_STR-FIELD0084 sy-vline
WA_S411_STR-MZUBB sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.
Search for further information about these or an SAP related objects