ABAP Select data from SAP table FEBPDO 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 FEBPDO 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 FEBPDO. 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 FEBPDO 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_FEBPDO TYPE STANDARD TABLE OF FEBPDO,
      WA_FEBPDO TYPE FEBPDO,
      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: <FEBPDO> TYPE FEBPDO.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM FEBPDO
*  INTO TABLE @DATA(IT_FEBPDO2).
*--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_FEBPDO INDEX 1 INTO DATA(WA_FEBPDO2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_FEBPDO ASSIGNING <FEBPDO>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<FEBPDO>-BDART = 1.
<FEBPDO>-BDANZ = 1.
<FEBPDO>-BEVALD = 1.
<FEBPDO>-BEDINP = 1.
<FEBPDO>-BEDOUT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_FEBPDO-BEPROT, sy-vline,
WA_FEBPDO-BEAUSZ, sy-vline,
WA_FEBPDO-BEPCFI, sy-vline,
WA_FEBPDO-BEUMSF, sy-vline,
WA_FEBPDO-BEDOCU, sy-vline,
WA_FEBPDO-BUDTL_EBBE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FEBPDO 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_FEBPDO 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_FEBPDO INTO WA_FEBPDO. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_FEBPDO_STR,
BDART TYPE STRING,
BDANZ TYPE STRING,
BEVALD TYPE STRING,
BEDINP TYPE STRING,
BEDOUT TYPE STRING,
BEPROT TYPE STRING,
BEAUSZ TYPE STRING,
BEPCFI TYPE STRING,
BEUMSF TYPE STRING,
BEDOCU TYPE STRING,
BUDTL_EBBE TYPE STRING,
VARIA_EBBE TYPE STRING,
USEXI_EBBE TYPE STRING,
INTFR_EBBE TYPE STRING,
EXTFR_EBBE TYPE STRING,
XGROS_EBBE TYPE STRING,
COGRS_EBBE TYPE STRING,
COINT_EBBE TYPE STRING,
COEXT_EBBE TYPE STRING,
MWSKZ_EBBE TYPE STRING,
PALGN_EBLB TYPE STRING,
PALGR_EBLB TYPE STRING,
XCALL TYPE STRING,
XCALL_EBCK TYPE STRING,
XBINPT TYPE STRING,
XDISP TYPE STRING,
XBKBU TYPE STRING,
XINVC_EBLB TYPE STRING,
LSEPA TYPE STRING,
FORMT_EBSW TYPE STRING,
FIINV_EBLB TYPE STRING,
PNUMC_EBCK TYPE STRING,
FEBFILTER1 TYPE STRING,
FEBFILTER2 TYPE STRING,
FORMT_EBFI TYPE STRING,
FORMT_EBCSB TYPE STRING,
PROCESS_CSB TYPE STRING,
X_HISTORY TYPE STRING,
FORMT_EBFIR TYPE STRING,
FORMT_EBFI_REF TYPE STRING,
VESR_CH TYPE STRING,
VASR_CH TYPE STRING,
ESR_ALT TYPE STRING,
ESR_NEU TYPE STRING,
ESR_BOTH TYPE STRING,
FORMT_EB_CH TYPE STRING,END OF T_EKKO_STR. DATA: WA_FEBPDO_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_FEBPDO_STR-BDART sy-vline
WA_FEBPDO_STR-BDANZ sy-vline
WA_FEBPDO_STR-BEVALD sy-vline
WA_FEBPDO_STR-BEDINP sy-vline
WA_FEBPDO_STR-BEDOUT sy-vline
WA_FEBPDO_STR-BEPROT sy-vline
WA_FEBPDO_STR-BEAUSZ sy-vline
WA_FEBPDO_STR-BEPCFI sy-vline
WA_FEBPDO_STR-BEUMSF sy-vline
WA_FEBPDO_STR-BEDOCU sy-vline
WA_FEBPDO_STR-BUDTL_EBBE sy-vline
WA_FEBPDO_STR-VARIA_EBBE sy-vline
WA_FEBPDO_STR-USEXI_EBBE sy-vline
WA_FEBPDO_STR-INTFR_EBBE sy-vline
WA_FEBPDO_STR-EXTFR_EBBE sy-vline
WA_FEBPDO_STR-XGROS_EBBE sy-vline
WA_FEBPDO_STR-COGRS_EBBE sy-vline
WA_FEBPDO_STR-COINT_EBBE sy-vline
WA_FEBPDO_STR-COEXT_EBBE sy-vline
WA_FEBPDO_STR-MWSKZ_EBBE sy-vline
WA_FEBPDO_STR-PALGN_EBLB sy-vline
WA_FEBPDO_STR-PALGR_EBLB sy-vline
WA_FEBPDO_STR-XCALL sy-vline
WA_FEBPDO_STR-XCALL_EBCK sy-vline
WA_FEBPDO_STR-XBINPT sy-vline
WA_FEBPDO_STR-XDISP sy-vline
WA_FEBPDO_STR-XBKBU sy-vline
WA_FEBPDO_STR-XINVC_EBLB sy-vline
WA_FEBPDO_STR-LSEPA sy-vline
WA_FEBPDO_STR-FORMT_EBSW sy-vline
WA_FEBPDO_STR-FIINV_EBLB sy-vline
WA_FEBPDO_STR-PNUMC_EBCK sy-vline
WA_FEBPDO_STR-FEBFILTER1 sy-vline
WA_FEBPDO_STR-FEBFILTER2 sy-vline
WA_FEBPDO_STR-FORMT_EBFI sy-vline
WA_FEBPDO_STR-FORMT_EBCSB sy-vline
WA_FEBPDO_STR-PROCESS_CSB sy-vline
WA_FEBPDO_STR-X_HISTORY sy-vline
WA_FEBPDO_STR-FORMT_EBFIR sy-vline
WA_FEBPDO_STR-FORMT_EBFI_REF sy-vline
WA_FEBPDO_STR-VESR_CH sy-vline
WA_FEBPDO_STR-VASR_CH sy-vline
WA_FEBPDO_STR-ESR_ALT sy-vline
WA_FEBPDO_STR-ESR_NEU sy-vline
WA_FEBPDO_STR-ESR_BOTH sy-vline
WA_FEBPDO_STR-FORMT_EB_CH sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.