ABAP Select data from SAP table TBLP_FIND 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 TBLP_FIND 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 TBLP_FIND. 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 TBLP_FIND 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_TBLP_FIND TYPE STANDARD TABLE OF TBLP_FIND,
      WA_TBLP_FIND TYPE TBLP_FIND,
      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: <TBLP_FIND> TYPE TBLP_FIND.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM TBLP_FIND
*  INTO TABLE @DATA(IT_TBLP_FIND2).
*--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_TBLP_FIND INDEX 1 INTO DATA(WA_TBLP_FIND2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_TBLP_FIND ASSIGNING <TBLP_FIND>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<TBLP_FIND>-MANDT = 1.
<TBLP_FIND>-TLLONR = 1.
<TBLP_FIND>-TLIND = 1.
<TBLP_FIND>-POSNR_S = 1.
<TBLP_FIND>-POSNR_R = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_TBLP_FIND-MATNR, sy-vline,
WA_TBLP_FIND-MATNR_R, sy-vline,
WA_TBLP_FIND-ERFMG, sy-vline,
WA_TBLP_FIND-ERFME, sy-vline,
WA_TBLP_FIND-CHARG, sy-vline,
WA_TBLP_FIND-WERKS_S, sy-vline.
ENDLOOP. *Add any further fields from structure WA_TBLP_FIND 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_TBLP_FIND 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_TBLP_FIND INTO WA_TBLP_FIND. *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 TLIND, internal->external for field TLIND CALL FUNCTION 'CONVERSION_EXIT_TLIND_OUTPUT' EXPORTING input = WA_TBLP_FIND-TLIND IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TBLP_FIND-TLIND.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSP, internal->external for field POSNR_S CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_TBLP_FIND-POSNR_S IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TBLP_FIND-POSNR_S.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSP, internal->external for field POSNR_R CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_TBLP_FIND-POSNR_R IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TBLP_FIND-POSNR_R.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_TBLP_FIND-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TBLP_FIND-MATNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field MATNR_R CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_TBLP_FIND-MATNR_R IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TBLP_FIND-MATNR_R.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit GJAHR, internal->external for field MJAHR_TR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_TBLP_FIND-MJAHR_TR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TBLP_FIND-MJAHR_TR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit GJAHR, internal->external for field MJAHR_CA CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_TBLP_FIND-MJAHR_CA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TBLP_FIND-MJAHR_CA.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ABPSP, internal->external for field PSPNR CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_TBLP_FIND-PSPNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TBLP_FIND-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_TBLP_FIND_STR,
MANDT TYPE STRING,
TLLONR TYPE STRING,
TLIND TYPE STRING,
POSNR_S TYPE STRING,
POSNR_R TYPE STRING,
MATNR TYPE STRING,
MATNR_R TYPE STRING,
ERFMG TYPE STRING,
ERFME TYPE STRING,
CHARG TYPE STRING,
WERKS_S TYPE STRING,
LGORT_S TYPE STRING,
WERKS_R TYPE STRING,
LGORT_R TYPE STRING,
MBLNR_TR TYPE STRING,
MJAHR_TR TYPE STRING,
BELNRPR_TR TYPE STRING,
BELNRSE_TR TYPE STRING,
BELNRCM_TR TYPE STRING,
RRSNUM TYPE STRING,
RRSPOS TYPE STRING,
LPLNUM TYPE STRING,
LRSNUM TYPE STRING,
LRSPOS TYPE STRING,
MBLNR_CA TYPE STRING,
MJAHR_CA TYPE STRING,
BELNRPR_CA TYPE STRING,
BELNRSE_CA TYPE STRING,
BELNRCM_CA TYPE STRING,
BLDAT TYPE STRING,
CBACK TYPE STRING,
CMSET TYPE STRING,
USNAM TYPE STRING,
KALNR TYPE STRING,
PRICE TYPE STRING,
WOCOST TYPE STRING,
GRPS TYPE STRING,
MARKER TYPE STRING,
ERFMGO TYPE STRING,
PSPNR TYPE STRING,
DELB0 TYPE STRING,
DELNR TYPE STRING,
DEL12 TYPE STRING,
DELPS TYPE STRING,
EXTRA TYPE STRING,
DAT01 TYPE STRING,
MNG01 TYPE STRING,
MNG02 TYPE STRING,
MNG03 TYPE STRING,
MDPSX_TABIX TYPE STRING,
STOCK TYPE STRING,END OF T_EKKO_STR. DATA: WA_TBLP_FIND_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_TBLP_FIND_STR-MANDT sy-vline
WA_TBLP_FIND_STR-TLLONR sy-vline
WA_TBLP_FIND_STR-TLIND sy-vline
WA_TBLP_FIND_STR-POSNR_S sy-vline
WA_TBLP_FIND_STR-POSNR_R sy-vline
WA_TBLP_FIND_STR-MATNR sy-vline
WA_TBLP_FIND_STR-MATNR_R sy-vline
WA_TBLP_FIND_STR-ERFMG sy-vline
WA_TBLP_FIND_STR-ERFME sy-vline
WA_TBLP_FIND_STR-CHARG sy-vline
WA_TBLP_FIND_STR-WERKS_S sy-vline
WA_TBLP_FIND_STR-LGORT_S sy-vline
WA_TBLP_FIND_STR-WERKS_R sy-vline
WA_TBLP_FIND_STR-LGORT_R sy-vline
WA_TBLP_FIND_STR-MBLNR_TR sy-vline
WA_TBLP_FIND_STR-MJAHR_TR sy-vline
WA_TBLP_FIND_STR-BELNRPR_TR sy-vline
WA_TBLP_FIND_STR-BELNRSE_TR sy-vline
WA_TBLP_FIND_STR-BELNRCM_TR sy-vline
WA_TBLP_FIND_STR-RRSNUM sy-vline
WA_TBLP_FIND_STR-RRSPOS sy-vline
WA_TBLP_FIND_STR-LPLNUM sy-vline
WA_TBLP_FIND_STR-LRSNUM sy-vline
WA_TBLP_FIND_STR-LRSPOS sy-vline
WA_TBLP_FIND_STR-MBLNR_CA sy-vline
WA_TBLP_FIND_STR-MJAHR_CA sy-vline
WA_TBLP_FIND_STR-BELNRPR_CA sy-vline
WA_TBLP_FIND_STR-BELNRSE_CA sy-vline
WA_TBLP_FIND_STR-BELNRCM_CA sy-vline
WA_TBLP_FIND_STR-BLDAT sy-vline
WA_TBLP_FIND_STR-CBACK sy-vline
WA_TBLP_FIND_STR-CMSET sy-vline
WA_TBLP_FIND_STR-USNAM sy-vline
WA_TBLP_FIND_STR-KALNR sy-vline
WA_TBLP_FIND_STR-PRICE sy-vline
WA_TBLP_FIND_STR-WOCOST sy-vline
WA_TBLP_FIND_STR-GRPS sy-vline
WA_TBLP_FIND_STR-MARKER sy-vline
WA_TBLP_FIND_STR-ERFMGO sy-vline
WA_TBLP_FIND_STR-PSPNR sy-vline
WA_TBLP_FIND_STR-DELB0 sy-vline
WA_TBLP_FIND_STR-DELNR sy-vline
WA_TBLP_FIND_STR-DEL12 sy-vline
WA_TBLP_FIND_STR-DELPS sy-vline
WA_TBLP_FIND_STR-EXTRA sy-vline
WA_TBLP_FIND_STR-DAT01 sy-vline
WA_TBLP_FIND_STR-MNG01 sy-vline
WA_TBLP_FIND_STR-MNG02 sy-vline
WA_TBLP_FIND_STR-MNG03 sy-vline
WA_TBLP_FIND_STR-MDPSX_TABIX sy-vline
WA_TBLP_FIND_STR-STOCK sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.