ABAP Select data from SAP table T399D 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 T399D 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 T399D. 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 T399D 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_T399D TYPE STANDARD TABLE OF T399D,
      WA_T399D TYPE T399D,
      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: <T399D> TYPE T399D.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM T399D
*  INTO TABLE @DATA(IT_T399D2).
*--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_T399D INDEX 1 INTO DATA(WA_T399D2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_T399D ASSIGNING <T399D>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<T399D>-MANDT = 1.
<T399D>-WERKS = 1.
<T399D>-FIXPA = 1.
<T399D>-FIXBA = 1.
<T399D>-FIXBE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_T399D-UMTHZ, sy-vline,
WA_T399D-VWVOR, sy-vline,
WA_T399D-VWVER, sy-vline,
WA_T399D-PLAHZ, sy-vline,
WA_T399D-NKPAF, sy-vline,
WA_T399D-NKBAN, sy-vline.
ENDLOOP. *Add any further fields from structure WA_T399D 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_T399D 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_T399D INTO WA_T399D. *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_T399D_STR,
MANDT TYPE STRING,
WERKS TYPE STRING,
FIXPA TYPE STRING,
FIXBA TYPE STRING,
FIXBE TYPE STRING,
UMTHZ TYPE STRING,
VWVOR TYPE STRING,
VWVER TYPE STRING,
PLAHZ TYPE STRING,
NKPAF TYPE STRING,
NKBAN TYPE STRING,
PSBAN TYPE STRING,
NKDIS TYPE STRING,
NKRES TYPE STRING,
PSRES TYPE STRING,
BZTEK TYPE STRING,
EREKG TYPE STRING,
ERDSG TYPE STRING,
MXBST TYPE STRING,
MXPLA TYPE STRING,
ANZLS TYPE STRING,
MXSTA TYPE STRING,
CSLID TYPE STRING,
KTAGE TYPE STRING,
KWOCH TYPE STRING,
KMONA TYPE STRING,
KFLPR TYPE STRING,
KMRPP TYPE STRING,
MRRPP TYPE STRING,
KRAST TYPE STRING,
PRAST TYPE STRING,
FIXFA TYPE STRING,
APLSL TYPE STRING,
LIFKZ TYPE STRING,
GTERM TYPE STRING,
KZDRB TYPE STRING,
KNTBE TYPE STRING,
KNTBU TYPE STRING,
KTDBU TYPE STRING,
KZMAL TYPE STRING,
KZUMB TYPE STRING,
FIXQM TYPE STRING,
XFAN1 TYPE STRING,
XFAN2 TYPE STRING,
XFAN3 TYPE STRING,
PRREG TYPE STRING,
AUART TYPE STRING,
FIXLA TYPE STRING,
RPRRG TYPE STRING,
FEDIS TYPE STRING,
REFWK TYPE STRING,
SIMPL TYPE STRING,
SELFE TYPE STRING,
SELBE TYPE STRING,
SELQM TYPE STRING,
SELBA TYPE STRING,
SELPA TYPE STRING,
SELZR TYPE STRING,
NKSBD TYPE STRING,
VERTR TYPE STRING,
AUAR2 TYPE STRING,
NKSAF TYPE STRING,
WAKHZ TYPE STRING,
EXSGT TYPE STRING,
BESAL TYPE STRING,
KASTL TYPE STRING,
NKCRQ TYPE STRING,
SEREP TYPE STRING,
IKDPL TYPE STRING,
SELSB TYPE STRING,
NFVBC TYPE STRING,
COMPM TYPE STRING,
DBEPL TYPE STRING,
SELPZ TYPE STRING,
SELLA TYPE STRING,
SBUFF TYPE STRING,
SELIW TYPE STRING,
DSADA TYPE STRING,
EVAPR TYPE STRING,END OF T_EKKO_STR. DATA: WA_T399D_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_T399D_STR-MANDT sy-vline
WA_T399D_STR-WERKS sy-vline
WA_T399D_STR-FIXPA sy-vline
WA_T399D_STR-FIXBA sy-vline
WA_T399D_STR-FIXBE sy-vline
WA_T399D_STR-UMTHZ sy-vline
WA_T399D_STR-VWVOR sy-vline
WA_T399D_STR-VWVER sy-vline
WA_T399D_STR-PLAHZ sy-vline
WA_T399D_STR-NKPAF sy-vline
WA_T399D_STR-NKBAN sy-vline
WA_T399D_STR-PSBAN sy-vline
WA_T399D_STR-NKDIS sy-vline
WA_T399D_STR-NKRES sy-vline
WA_T399D_STR-PSRES sy-vline
WA_T399D_STR-BZTEK sy-vline
WA_T399D_STR-EREKG sy-vline
WA_T399D_STR-ERDSG sy-vline
WA_T399D_STR-MXBST sy-vline
WA_T399D_STR-MXPLA sy-vline
WA_T399D_STR-ANZLS sy-vline
WA_T399D_STR-MXSTA sy-vline
WA_T399D_STR-CSLID sy-vline
WA_T399D_STR-KTAGE sy-vline
WA_T399D_STR-KWOCH sy-vline
WA_T399D_STR-KMONA sy-vline
WA_T399D_STR-KFLPR sy-vline
WA_T399D_STR-KMRPP sy-vline
WA_T399D_STR-MRRPP sy-vline
WA_T399D_STR-KRAST sy-vline
WA_T399D_STR-PRAST sy-vline
WA_T399D_STR-FIXFA sy-vline
WA_T399D_STR-APLSL sy-vline
WA_T399D_STR-LIFKZ sy-vline
WA_T399D_STR-GTERM sy-vline
WA_T399D_STR-KZDRB sy-vline
WA_T399D_STR-KNTBE sy-vline
WA_T399D_STR-KNTBU sy-vline
WA_T399D_STR-KTDBU sy-vline
WA_T399D_STR-KZMAL sy-vline
WA_T399D_STR-KZUMB sy-vline
WA_T399D_STR-FIXQM sy-vline
WA_T399D_STR-XFAN1 sy-vline
WA_T399D_STR-XFAN2 sy-vline
WA_T399D_STR-XFAN3 sy-vline
WA_T399D_STR-PRREG sy-vline
WA_T399D_STR-AUART sy-vline
WA_T399D_STR-FIXLA sy-vline
WA_T399D_STR-RPRRG sy-vline
WA_T399D_STR-FEDIS sy-vline
WA_T399D_STR-REFWK sy-vline
WA_T399D_STR-SIMPL sy-vline
WA_T399D_STR-SELFE sy-vline
WA_T399D_STR-SELBE sy-vline
WA_T399D_STR-SELQM sy-vline
WA_T399D_STR-SELBA sy-vline
WA_T399D_STR-SELPA sy-vline
WA_T399D_STR-SELZR sy-vline
WA_T399D_STR-NKSBD sy-vline
WA_T399D_STR-VERTR sy-vline
WA_T399D_STR-AUAR2 sy-vline
WA_T399D_STR-NKSAF sy-vline
WA_T399D_STR-WAKHZ sy-vline
WA_T399D_STR-EXSGT sy-vline
WA_T399D_STR-BESAL sy-vline
WA_T399D_STR-KASTL sy-vline
WA_T399D_STR-NKCRQ sy-vline
WA_T399D_STR-SEREP sy-vline
WA_T399D_STR-IKDPL sy-vline
WA_T399D_STR-SELSB sy-vline
WA_T399D_STR-NFVBC sy-vline
WA_T399D_STR-COMPM sy-vline
WA_T399D_STR-DBEPL sy-vline
WA_T399D_STR-SELPZ sy-vline
WA_T399D_STR-SELLA sy-vline
WA_T399D_STR-SBUFF sy-vline
WA_T399D_STR-SELIW sy-vline
WA_T399D_STR-DSADA sy-vline
WA_T399D_STR-EVAPR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.