ABAP Select data from SAP table LIPSUP 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 LIPSUP 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 LIPSUP. 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 LIPSUP 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_LIPSUP TYPE STANDARD TABLE OF LIPSUP, WA_LIPSUP TYPE LIPSUP, 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: <LIPSUP> TYPE LIPSUP. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_LIPSUP. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM LIPSUP INTO TABLE IT_LIPSUP. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM LIPSUP * INTO TABLE @DATA(IT_LIPSUP2). *--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_LIPSUP INDEX 1 INTO DATA(WA_LIPSUP2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_LIPSUP ASSIGNING <LIPSUP>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<LIPSUP>-MANDT = 1.
<LIPSUP>-VBELN = 1.
<LIPSUP>-POSNR = 1.
<LIPSUP>-PSTYV = 1.
<LIPSUP>-ERNAM = 1.
ENDLOOP. LOOP AT IT_LIPSUP INTO WA_LIPSUP. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_LIPSUP-ERZET, sy-vline,
WA_LIPSUP-ERDAT, sy-vline,
WA_LIPSUP-MATNR, sy-vline,
WA_LIPSUP-WERKS, sy-vline,
WA_LIPSUP-LGORT, sy-vline,
WA_LIPSUP-CHARG, sy-vline.
ENDLOOP. *Add any further fields from structure WA_LIPSUP 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_LIPSUP 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_LIPSUP INTO WA_LIPSUP. *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 VBELN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_LIPSUP-VBELN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-VBELN.
WRITE:/ 'New Value:', ld_input.
*Conversion exit MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_LIPSUP-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-MATNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_LIPSUP-MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-MEINS.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field VRKME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_LIPSUP-VRKME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-VRKME.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field GEWEI CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_LIPSUP-GEWEI IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-GEWEI.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field VOLEH CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_LIPSUP-VOLEH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-VOLEH.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field VBELV CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_LIPSUP-VBELV IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-VBELV.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field VGBEL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_LIPSUP-VGBEL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-VGBEL.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KCGEWEI CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_LIPSUP-KCGEWEI IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-KCGEWEI.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KCVOLEH CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_LIPSUP-KCVOLEH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-KCVOLEH.
WRITE:/ 'New Value:', ld_input.
*Conversion exit KONPD, internal->external for field PSPNR CALL FUNCTION 'CONVERSION_EXIT_KONPD_OUTPUT' EXPORTING input = WA_LIPSUP-PSPNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LIPSUP-PSPNR.
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_LIPSUP_STR,
MANDT TYPE STRING,
VBELN TYPE STRING,
POSNR TYPE STRING,
PSTYV TYPE STRING,
ERNAM TYPE STRING,
ERZET TYPE STRING,
ERDAT TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
LGORT TYPE STRING,
CHARG TYPE STRING,
LFIMG TYPE STRING,
MEINS TYPE STRING,
VRKME TYPE STRING,
NTGEW TYPE STRING,
BRGEW TYPE STRING,
GEWEI TYPE STRING,
VOLUM TYPE STRING,
VOLEH TYPE STRING,
KZTLF TYPE STRING,
UEBTO TYPE STRING,
UNTTO TYPE STRING,
CHSPL TYPE STRING,
MBDAT TYPE STRING,
LGMNG TYPE STRING,
ARKTX TYPE STRING,
VBELV TYPE STRING,
POSNV TYPE STRING,
VGBEL TYPE STRING,
VGPOS TYPE STRING,
KOMKZ TYPE STRING,
LGNUM TYPE STRING,
LISPL TYPE STRING,
BWTEX TYPE STRING,
BWART TYPE STRING,
XCHPF TYPE STRING,
BWTAR TYPE STRING,
MTVFP TYPE STRING,
GRKOR TYPE STRING,
ANTLF TYPE STRING,
SOBKZ TYPE STRING,
AEDAT TYPE STRING,
VPZUO TYPE STRING,
VGTYP TYPE STRING,
BEDAR_LF TYPE STRING,
KCMENG TYPE STRING,
KCBRGEW TYPE STRING,
KCVOLUM TYPE STRING,
UECHA TYPE STRING,
ANZSN TYPE STRING,
SERAIL TYPE STRING,
KCGEWEI TYPE STRING,
KCVOLEH TYPE STRING,
SERNR TYPE STRING,
ABART TYPE STRING,
PROSA TYPE STRING,
UEPVW TYPE STRING,
KOQUI TYPE STRING,
PSPNR TYPE STRING,
WBSTA TYPE STRING,
GBSTA TYPE STRING,
KOSTA TYPE STRING,
LVSTA TYPE STRING,
UVALL TYPE STRING,
UVVLK TYPE STRING,
UVFAK TYPE STRING,
FKIVP TYPE STRING,
PKSTA TYPE STRING,
KOQUA TYPE STRING,
UVPIK TYPE STRING,
UVPAK TYPE STRING,
UVWAK TYPE STRING,
/SAPMP/LBASP TYPE STRING,END OF T_EKKO_STR. DATA: WA_LIPSUP_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_LIPSUP_STR-MANDT sy-vline
WA_LIPSUP_STR-VBELN sy-vline
WA_LIPSUP_STR-POSNR sy-vline
WA_LIPSUP_STR-PSTYV sy-vline
WA_LIPSUP_STR-ERNAM sy-vline
WA_LIPSUP_STR-ERZET sy-vline
WA_LIPSUP_STR-ERDAT sy-vline
WA_LIPSUP_STR-MATNR sy-vline
WA_LIPSUP_STR-WERKS sy-vline
WA_LIPSUP_STR-LGORT sy-vline
WA_LIPSUP_STR-CHARG sy-vline
WA_LIPSUP_STR-LFIMG sy-vline
WA_LIPSUP_STR-MEINS sy-vline
WA_LIPSUP_STR-VRKME sy-vline
WA_LIPSUP_STR-NTGEW sy-vline
WA_LIPSUP_STR-BRGEW sy-vline
WA_LIPSUP_STR-GEWEI sy-vline
WA_LIPSUP_STR-VOLUM sy-vline
WA_LIPSUP_STR-VOLEH sy-vline
WA_LIPSUP_STR-KZTLF sy-vline
WA_LIPSUP_STR-UEBTO sy-vline
WA_LIPSUP_STR-UNTTO sy-vline
WA_LIPSUP_STR-CHSPL sy-vline
WA_LIPSUP_STR-MBDAT sy-vline
WA_LIPSUP_STR-LGMNG sy-vline
WA_LIPSUP_STR-ARKTX sy-vline
WA_LIPSUP_STR-VBELV sy-vline
WA_LIPSUP_STR-POSNV sy-vline
WA_LIPSUP_STR-VGBEL sy-vline
WA_LIPSUP_STR-VGPOS sy-vline
WA_LIPSUP_STR-KOMKZ sy-vline
WA_LIPSUP_STR-LGNUM sy-vline
WA_LIPSUP_STR-LISPL sy-vline
WA_LIPSUP_STR-BWTEX sy-vline
WA_LIPSUP_STR-BWART sy-vline
WA_LIPSUP_STR-XCHPF sy-vline
WA_LIPSUP_STR-BWTAR sy-vline
WA_LIPSUP_STR-MTVFP sy-vline
WA_LIPSUP_STR-GRKOR sy-vline
WA_LIPSUP_STR-ANTLF sy-vline
WA_LIPSUP_STR-SOBKZ sy-vline
WA_LIPSUP_STR-AEDAT sy-vline
WA_LIPSUP_STR-VPZUO sy-vline
WA_LIPSUP_STR-VGTYP sy-vline
WA_LIPSUP_STR-BEDAR_LF sy-vline
WA_LIPSUP_STR-KCMENG sy-vline
WA_LIPSUP_STR-KCBRGEW sy-vline
WA_LIPSUP_STR-KCVOLUM sy-vline
WA_LIPSUP_STR-UECHA sy-vline
WA_LIPSUP_STR-ANZSN sy-vline
WA_LIPSUP_STR-SERAIL sy-vline
WA_LIPSUP_STR-KCGEWEI sy-vline
WA_LIPSUP_STR-KCVOLEH sy-vline
WA_LIPSUP_STR-SERNR sy-vline
WA_LIPSUP_STR-ABART sy-vline
WA_LIPSUP_STR-PROSA sy-vline
WA_LIPSUP_STR-UEPVW sy-vline
WA_LIPSUP_STR-KOQUI sy-vline
WA_LIPSUP_STR-PSPNR sy-vline
WA_LIPSUP_STR-WBSTA sy-vline
WA_LIPSUP_STR-GBSTA sy-vline
WA_LIPSUP_STR-KOSTA sy-vline
WA_LIPSUP_STR-LVSTA sy-vline
WA_LIPSUP_STR-UVALL sy-vline
WA_LIPSUP_STR-UVVLK sy-vline
WA_LIPSUP_STR-UVFAK sy-vline
WA_LIPSUP_STR-FKIVP sy-vline
WA_LIPSUP_STR-PKSTA sy-vline
WA_LIPSUP_STR-KOQUA sy-vline
WA_LIPSUP_STR-UVPIK sy-vline
WA_LIPSUP_STR-UVPAK sy-vline
WA_LIPSUP_STR-UVWAK sy-vline
WA_LIPSUP_STR-/SAPMP/LBASP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.