ABAP Select data from SAP table FTBALE 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 FTBALE 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 FTBALE. 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 FTBALE 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_FTBALE TYPE STANDARD TABLE OF FTBALE,
      WA_FTBALE TYPE FTBALE,
      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: <FTBALE> TYPE FTBALE.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM FTBALE
*  INTO TABLE @DATA(IT_FTBALE2).
*--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_FTBALE INDEX 1 INTO DATA(WA_FTBALE2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_FTBALE ASSIGNING <FTBALE>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<FTBALE>-LOGSYS = 1.
<FTBALE>-MESCOD = 1.
<FTBALE>-OBLAND = 1.
<FTBALE>-OBT615 = 1.
<FTBALE>-OBT618 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_FTBALE-OBT616, sy-vline,
WA_FTBALE-OBT605, sy-vline,
WA_FTBALE-OBT604ST, sy-vline,
WA_FTBALE-OBT604CU, sy-vline,
WA_FTBALE-OBT604STW, sy-vline,
WA_FTBALE-OBT604W, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FTBALE 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_FTBALE 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_FTBALE INTO WA_FTBALE. *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 LOGSYS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FTBALE-LOGSYS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FTBALE-LOGSYS.
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_FTBALE_STR,
LOGSYS TYPE STRING,
MESCOD TYPE STRING,
OBLAND TYPE STRING,
OBT615 TYPE STRING,
OBT618 TYPE STRING,
OBT616 TYPE STRING,
OBT605 TYPE STRING,
OBT604ST TYPE STRING,
OBT604CU TYPE STRING,
OBT604STW TYPE STRING,
OBT604W TYPE STRING,
OBT604Y TYPE STRING,
OBT609G TYPE STRING,
OBT610C TYPE STRING,
OBT618K TYPE STRING,
OBT605K TYPE STRING,
OBT610K TYPE STRING,
OBT610D TYPE STRING,
OBT610A TYPE STRING,
OBT610FK TYPE STRING,
OBT610FD TYPE STRING,
OBT610FA TYPE STRING,
OBT610KN TYPE STRING,
OBT610PN TYPE STRING,
OBT610LG TYPE STRING,
OBT610LGZ TYPE STRING,
OBT604C TYPE STRING,
OBT610PA TYPE STRING,
OBT610NA TYPE STRING,
OBT610VA TYPE STRING,
OBT612N TYPE STRING,
OBT612P TYPE STRING,
OBT612B TYPE STRING,END OF T_EKKO_STR. DATA: WA_FTBALE_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_FTBALE_STR-LOGSYS sy-vline
WA_FTBALE_STR-MESCOD sy-vline
WA_FTBALE_STR-OBLAND sy-vline
WA_FTBALE_STR-OBT615 sy-vline
WA_FTBALE_STR-OBT618 sy-vline
WA_FTBALE_STR-OBT616 sy-vline
WA_FTBALE_STR-OBT605 sy-vline
WA_FTBALE_STR-OBT604ST sy-vline
WA_FTBALE_STR-OBT604CU sy-vline
WA_FTBALE_STR-OBT604STW sy-vline
WA_FTBALE_STR-OBT604W sy-vline
WA_FTBALE_STR-OBT604Y sy-vline
WA_FTBALE_STR-OBT609G sy-vline
WA_FTBALE_STR-OBT610C sy-vline
WA_FTBALE_STR-OBT618K sy-vline
WA_FTBALE_STR-OBT605K sy-vline
WA_FTBALE_STR-OBT610K sy-vline
WA_FTBALE_STR-OBT610D sy-vline
WA_FTBALE_STR-OBT610A sy-vline
WA_FTBALE_STR-OBT610FK sy-vline
WA_FTBALE_STR-OBT610FD sy-vline
WA_FTBALE_STR-OBT610FA sy-vline
WA_FTBALE_STR-OBT610KN sy-vline
WA_FTBALE_STR-OBT610PN sy-vline
WA_FTBALE_STR-OBT610LG sy-vline
WA_FTBALE_STR-OBT610LGZ sy-vline
WA_FTBALE_STR-OBT604C sy-vline
WA_FTBALE_STR-OBT610PA sy-vline
WA_FTBALE_STR-OBT610NA sy-vline
WA_FTBALE_STR-OBT610VA sy-vline
WA_FTBALE_STR-OBT612N sy-vline
WA_FTBALE_STR-OBT612P sy-vline
WA_FTBALE_STR-OBT612B sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.