ABAP Select data from SAP table T869 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 T869 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 T869. 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 T869 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_T869 TYPE STANDARD TABLE OF T869,
      WA_T869 TYPE T869,
      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: <T869> TYPE T869.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM T869
*  INTO TABLE @DATA(IT_T8692).
*--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_T869 INDEX 1 INTO DATA(WA_T8692).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_T869 ASSIGNING <T869>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<T869>-MANDT = 1.
<T869>-METH = 1.
<T869>-TYPE = 1.
<T869>-VARI = 1.
<T869>-DEPLG = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_T869-PERID, sy-vline,
WA_T869-FDEP, sy-vline,
WA_T869-DITC, sy-vline,
WA_T869-DITD, sy-vline,
WA_T869-MVT1C, sy-vline,
WA_T869-MVT1D, sy-vline.
ENDLOOP. *Add any further fields from structure WA_T869 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_T869 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_T869 INTO WA_T869. *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 DITC CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_T869-DITC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_T869-DITC.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ALPHA, internal->external for field GWAMT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_T869-GWAMT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_T869-GWAMT.
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_T869_STR,
MANDT TYPE STRING,
METH TYPE STRING,
TYPE TYPE STRING,
VARI TYPE STRING,
DEPLG TYPE STRING,
PERID TYPE STRING,
FDEP TYPE STRING,
DITC TYPE STRING,
DITD TYPE STRING,
MVT1C TYPE STRING,
MVT1D TYPE STRING,
MVT2C TYPE STRING,
MVT2D TYPE STRING,
MVT3C TYPE STRING,
MVT3D TYPE STRING,
MVT4C TYPE STRING,
MVT4D TYPE STRING,
DEPC TYPE STRING,
DEPD TYPE STRING,
RLEVL TYPE STRING,
EQNEG TYPE STRING,
NOGVW TYPE STRING,
URES TYPE STRING,
RDEPRT TYPE STRING,
BGWAM TYPE STRING,
SETIN TYPE STRING,
SETEQ TYPE STRING,
ASORT TYPE STRING,
GWAMT TYPE STRING,
ACTIVE TYPE STRING,
CHECKED TYPE STRING,
DAT_CHECK TYPE STRING,
USER_CHECK TYPE STRING,
MVT5A TYPE STRING,
MVT5B TYPE STRING,
MVT5C TYPE STRING,
GWB TYPE STRING,
SETEQ2 TYPE STRING,
MSETEQ1 TYPE STRING,
MSETEQ2 TYPE STRING,
VALDB TYPE STRING,
MVT6A TYPE STRING,
NGAFLG TYPE STRING,
SETEQI1 TYPE STRING,
SETEQI2 TYPE STRING,
SETEQI3 TYPE STRING,END OF T_EKKO_STR. DATA: WA_T869_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_T869_STR-MANDT sy-vline
WA_T869_STR-METH sy-vline
WA_T869_STR-TYPE sy-vline
WA_T869_STR-VARI sy-vline
WA_T869_STR-DEPLG sy-vline
WA_T869_STR-PERID sy-vline
WA_T869_STR-FDEP sy-vline
WA_T869_STR-DITC sy-vline
WA_T869_STR-DITD sy-vline
WA_T869_STR-MVT1C sy-vline
WA_T869_STR-MVT1D sy-vline
WA_T869_STR-MVT2C sy-vline
WA_T869_STR-MVT2D sy-vline
WA_T869_STR-MVT3C sy-vline
WA_T869_STR-MVT3D sy-vline
WA_T869_STR-MVT4C sy-vline
WA_T869_STR-MVT4D sy-vline
WA_T869_STR-DEPC sy-vline
WA_T869_STR-DEPD sy-vline
WA_T869_STR-RLEVL sy-vline
WA_T869_STR-EQNEG sy-vline
WA_T869_STR-NOGVW sy-vline
WA_T869_STR-URES sy-vline
WA_T869_STR-RDEPRT sy-vline
WA_T869_STR-BGWAM sy-vline
WA_T869_STR-SETIN sy-vline
WA_T869_STR-SETEQ sy-vline
WA_T869_STR-ASORT sy-vline
WA_T869_STR-GWAMT sy-vline
WA_T869_STR-ACTIVE sy-vline
WA_T869_STR-CHECKED sy-vline
WA_T869_STR-DAT_CHECK sy-vline
WA_T869_STR-USER_CHECK sy-vline
WA_T869_STR-MVT5A sy-vline
WA_T869_STR-MVT5B sy-vline
WA_T869_STR-MVT5C sy-vline
WA_T869_STR-GWB sy-vline
WA_T869_STR-SETEQ2 sy-vline
WA_T869_STR-MSETEQ1 sy-vline
WA_T869_STR-MSETEQ2 sy-vline
WA_T869_STR-VALDB sy-vline
WA_T869_STR-MVT6A sy-vline
WA_T869_STR-NGAFLG sy-vline
WA_T869_STR-SETEQI1 sy-vline
WA_T869_STR-SETEQI2 sy-vline
WA_T869_STR-SETEQI3 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.