ABAP Select data from SAP table F150D 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 F150D 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 F150D. 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 F150D 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_F150D TYPE STANDARD TABLE OF F150D,
      WA_F150D TYPE F150D,
      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: <F150D> TYPE F150D.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM F150D
*  INTO TABLE @DATA(IT_F150D2).
*--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_F150D INDEX 1 INTO DATA(WA_F150D2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_F150D ASSIGNING <F150D>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<F150D>-MAHNG = 1.
<F150D>-WAERH = 1.
<F150D>-WAERF = 1.
<F150D>-MHNGH = 1.
<F150D>-MHNGF = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_F150D-SUFPH, sy-vline,
WA_F150D-SUFPF, sy-vline,
WA_F150D-SUPOH, sy-vline,
WA_F150D-SUPOF, sy-vline,
WA_F150D-SUZSH, sy-vline,
WA_F150D-SUZSF, sy-vline.
ENDLOOP. *Add any further fields from structure WA_F150D 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_F150D 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_F150D INTO WA_F150D. *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 AU132, internal->external for field MAHNG CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_F150D-MAHNG IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-MAHNG.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field MHNGH CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-MHNGH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-MHNGH.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field MHNGF CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-MHNGF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-MHNGF.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUFPH CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUFPH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUFPH.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUFPF CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUFPF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUFPF.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUPOH CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUPOH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUPOH.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUPOF CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUPOF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUPOF.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUZSH CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUZSH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUZSH.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUZSF CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUZSF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUZSF.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUFZH CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUFZH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUFZH.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUFZF CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUFZF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUFZF.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUOZH CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUOZH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUOZH.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SUOZF CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SUOZF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SUOZF.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SALHW CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SALHW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SALHW.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SALFW CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SALFW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SALFW.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit AC152, internal->external for field SFPZH CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SFPZH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SFPZH.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SFPZF CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SFPZF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SFPZF.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SOPZF CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SOPZF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SOPZF.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SALZF CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_F150D-SALZF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-SALZF.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field DMSOL CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_F150D-DMSOL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-DMSOL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field DMHAB CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_F150D-DMHAB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-DMHAB.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field WRSOL CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_F150D-WRSOL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-WRSOL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field WRHAB CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_F150D-WRHAB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-WRHAB.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field VVWRSB CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_F150D-VVWRSB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-VVWRSB.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field VVWRHB CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_F150D-VVWRHB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_F150D-VVWRHB.
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_F150D_STR,
MAHNG TYPE STRING,
WAERH TYPE STRING,
WAERF TYPE STRING,
MHNGH TYPE STRING,
MHNGF TYPE STRING,
SUFPH TYPE STRING,
SUFPF TYPE STRING,
SUPOH TYPE STRING,
SUPOF TYPE STRING,
SUZSH TYPE STRING,
SUZSF TYPE STRING,
SUFZH TYPE STRING,
SUFZF TYPE STRING,
SUOZH TYPE STRING,
SUOZF TYPE STRING,
SALHW TYPE STRING,
SALFW TYPE STRING,
ZEILE TYPE STRING,
KTONR TYPE STRING,
URKTO TYPE STRING,
EIKTO TYPE STRING,
ZIELD TYPE STRING,
SFPZH TYPE STRING,
SFPZF TYPE STRING,
SOPZF TYPE STRING,
SALZF TYPE STRING,
DMSOL TYPE STRING,
DMHAB TYPE STRING,
WRSOL TYPE STRING,
WRHAB TYPE STRING,
ZSABE TYPE STRING,
VVWRSB TYPE STRING,
VVWRHB TYPE STRING,END OF T_EKKO_STR. DATA: WA_F150D_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_F150D_STR-MAHNG sy-vline
WA_F150D_STR-WAERH sy-vline
WA_F150D_STR-WAERF sy-vline
WA_F150D_STR-MHNGH sy-vline
WA_F150D_STR-MHNGF sy-vline
WA_F150D_STR-SUFPH sy-vline
WA_F150D_STR-SUFPF sy-vline
WA_F150D_STR-SUPOH sy-vline
WA_F150D_STR-SUPOF sy-vline
WA_F150D_STR-SUZSH sy-vline
WA_F150D_STR-SUZSF sy-vline
WA_F150D_STR-SUFZH sy-vline
WA_F150D_STR-SUFZF sy-vline
WA_F150D_STR-SUOZH sy-vline
WA_F150D_STR-SUOZF sy-vline
WA_F150D_STR-SALHW sy-vline
WA_F150D_STR-SALFW sy-vline
WA_F150D_STR-ZEILE sy-vline
WA_F150D_STR-KTONR sy-vline
WA_F150D_STR-URKTO sy-vline
WA_F150D_STR-EIKTO sy-vline
WA_F150D_STR-ZIELD sy-vline
WA_F150D_STR-SFPZH sy-vline
WA_F150D_STR-SFPZF sy-vline
WA_F150D_STR-SOPZF sy-vline
WA_F150D_STR-SALZF sy-vline
WA_F150D_STR-DMSOL sy-vline
WA_F150D_STR-DMHAB sy-vline
WA_F150D_STR-WRSOL sy-vline
WA_F150D_STR-WRHAB sy-vline
WA_F150D_STR-ZSABE sy-vline
WA_F150D_STR-VVWRSB sy-vline
WA_F150D_STR-VVWRHB sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.