ABAP Select data from SAP table WMB01 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 WMB01 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 WMB01. 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 WMB01 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_WMB01 TYPE STANDARD TABLE OF WMB01,
      WA_WMB01 TYPE WMB01,
      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: <WMB01> TYPE WMB01.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM WMB01
*  INTO TABLE @DATA(IT_WMB012).
*--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_WMB01 INDEX 1 INTO DATA(WA_WMB012).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_WMB01 ASSIGNING <WMB01>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<WMB01>-MANDT = 1.
<WMB01>-KVEWE = 1.
<WMB01>-KOTABNR = 1.
<WMB01>-KAPPL = 1.
<WMB01>-KSCHL = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_WMB01-VAKEY, sy-vline,
WA_WMB01-DATAB, sy-vline,
WA_WMB01-DATBI, sy-vline,
WA_WMB01-KNUMH, sy-vline,
WA_WMB01-PERKON, sy-vline,
WA_WMB01-VTEXT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_WMB01 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_WMB01 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_WMB01 INTO WA_WMB01. *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 KOTAB, internal->external for field KOTABNR CALL FUNCTION 'CONVERSION_EXIT_KOTAB_OUTPUT' EXPORTING input = WA_WMB01-KOTABNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WMB01-KOTABNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field KONMS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_WMB01-KONMS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WMB01-KONMS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field KMEIN CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_WMB01-KMEIN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WMB01-KMEIN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field KNUMA_BO CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_WMB01-KNUMA_BO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WMB01-KNUMA_BO.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field LIFNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_WMB01-LIFNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WMB01-LIFNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit PERI, internal->external for field SPMON CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT' EXPORTING input = WA_WMB01-SPMON IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WMB01-SPMON.
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_WMB01_STR,
MANDT TYPE STRING,
KVEWE TYPE STRING,
KOTABNR TYPE STRING,
KAPPL TYPE STRING,
KSCHL TYPE STRING,
VAKEY TYPE STRING,
DATAB TYPE STRING,
DATBI TYPE STRING,
KNUMH TYPE STRING,
PERKON TYPE STRING,
VTEXT TYPE STRING,
AKTEI TYPE STRING,
SUMEI TYPE STRING,
SELKZ TYPE STRING,
VAKEY1 TYPE STRING,
VAKEY2 TYPE STRING,
KZBZG TYPE STRING,
KONMS TYPE STRING,
KONWS TYPE STRING,
KMEIN TYPE STRING,
AUWRT TYPE STRING,
WAERS TYPE STRING,
WAERS_AR TYPE STRING,
KRECH TYPE STRING,
KSTBS TYPE STRING,
KAWRT TYPE STRING,
PE_KAWRT TYPE STRING,
SKONWA TYPE STRING,
KONWA TYPE STRING,
PE_KONWA TYPE STRING,
KNUMA_BO TYPE STRING,
BOART_BO TYPE STRING,
UPDKZ TYPE STRING,
MKSCHL TYPE STRING,
MKBETR TYPE STRING,
MKBETR_TXT TYPE STRING,
TABIX TYPE STRING,
TABIX_UM TYPE STRING,
MWSKZ TYPE STRING,
WERKS TYPE STRING,
LIFNR TYPE STRING,
SPMON TYPE STRING,
VRSIO TYPE STRING,
ERNAM TYPE STRING,
ERDAT TYPE STRING,
TABIX2 TYPE STRING,
TABIX3 TYPE STRING,
FIXED TYPE STRING,
UMSART TYPE STRING,
KNUMH_PER TYPE STRING,
BUKRS TYPE STRING,
NEU TYPE STRING,
KRECH_PE TYPE STRING,
KZBZG_PE TYPE STRING,
LINE_ICON TYPE STRING,
CHANGED TYPE STRING,
TOTAL TYPE STRING,END OF T_EKKO_STR. DATA: WA_WMB01_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_WMB01_STR-MANDT sy-vline
WA_WMB01_STR-KVEWE sy-vline
WA_WMB01_STR-KOTABNR sy-vline
WA_WMB01_STR-KAPPL sy-vline
WA_WMB01_STR-KSCHL sy-vline
WA_WMB01_STR-VAKEY sy-vline
WA_WMB01_STR-DATAB sy-vline
WA_WMB01_STR-DATBI sy-vline
WA_WMB01_STR-KNUMH sy-vline
WA_WMB01_STR-PERKON sy-vline
WA_WMB01_STR-VTEXT sy-vline
WA_WMB01_STR-AKTEI sy-vline
WA_WMB01_STR-SUMEI sy-vline
WA_WMB01_STR-SELKZ sy-vline
WA_WMB01_STR-VAKEY1 sy-vline
WA_WMB01_STR-VAKEY2 sy-vline
WA_WMB01_STR-KZBZG sy-vline
WA_WMB01_STR-KONMS sy-vline
WA_WMB01_STR-KONWS sy-vline
WA_WMB01_STR-KMEIN sy-vline
WA_WMB01_STR-AUWRT sy-vline
WA_WMB01_STR-WAERS sy-vline
WA_WMB01_STR-WAERS_AR sy-vline
WA_WMB01_STR-KRECH sy-vline
WA_WMB01_STR-KSTBS sy-vline
WA_WMB01_STR-KAWRT sy-vline
WA_WMB01_STR-PE_KAWRT sy-vline
WA_WMB01_STR-SKONWA sy-vline
WA_WMB01_STR-KONWA sy-vline
WA_WMB01_STR-PE_KONWA sy-vline
WA_WMB01_STR-KNUMA_BO sy-vline
WA_WMB01_STR-BOART_BO sy-vline
WA_WMB01_STR-UPDKZ sy-vline
WA_WMB01_STR-MKSCHL sy-vline
WA_WMB01_STR-MKBETR sy-vline
WA_WMB01_STR-MKBETR_TXT sy-vline
WA_WMB01_STR-TABIX sy-vline
WA_WMB01_STR-TABIX_UM sy-vline
WA_WMB01_STR-MWSKZ sy-vline
WA_WMB01_STR-WERKS sy-vline
WA_WMB01_STR-LIFNR sy-vline
WA_WMB01_STR-SPMON sy-vline
WA_WMB01_STR-VRSIO sy-vline
WA_WMB01_STR-ERNAM sy-vline
WA_WMB01_STR-ERDAT sy-vline
WA_WMB01_STR-TABIX2 sy-vline
WA_WMB01_STR-TABIX3 sy-vline
WA_WMB01_STR-FIXED sy-vline
WA_WMB01_STR-UMSART sy-vline
WA_WMB01_STR-KNUMH_PER sy-vline
WA_WMB01_STR-BUKRS sy-vline
WA_WMB01_STR-NEU sy-vline
WA_WMB01_STR-KRECH_PE sy-vline
WA_WMB01_STR-KZBZG_PE sy-vline
WA_WMB01_STR-LINE_ICON sy-vline
WA_WMB01_STR-CHANGED sy-vline
WA_WMB01_STR-TOTAL sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.