ABAP Select data from SAP table VIEINHWJ 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 VIEINHWJ 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 VIEINHWJ. 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 VIEINHWJ 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_VIEINHWJ TYPE STANDARD TABLE OF VIEINHWJ,
      WA_VIEINHWJ TYPE VIEINHWJ,
      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: <VIEINHWJ> TYPE VIEINHWJ.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VIEINHWJ
*  INTO TABLE @DATA(IT_VIEINHWJ2).
*--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_VIEINHWJ INDEX 1 INTO DATA(WA_VIEINHWJ2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VIEINHWJ ASSIGNING <VIEINHWJ>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VIEINHWJ>-MANDT = 1.
<VIEINHWJ>-INTRENO = 1.
<VIEINHWJ>-EINHWYEAR = 1.
<VIEINHWJ>-EINHWYEAREND = 1.
<VIEINHWJ>-EINHWDATE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VIEINHWJ-EINHWERT, sy-vline,
WA_VIEINHWJ-EINHWERTWAER, sy-vline,
WA_VIEINHWJ-EINHWERT2, sy-vline,
WA_VIEINHWJ-EINHWERTWAER2, sy-vline,
WA_VIEINHWJ-STEUERMBETRAG, sy-vline,
WA_VIEINHWJ-STEUERMWAEHR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VIEINHWJ 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_VIEINHWJ 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_VIEINHWJ INTO WA_VIEINHWJ. *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 GJAHR, internal->external for field EINHWYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_VIEINHWJ-EINHWYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIEINHWJ-EINHWYEAR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

*Conversion exit CUNIT, internal->external for field FEINS_UNL CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_VIEINHWJ-FEINS_UNL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIEINHWJ-FEINS_UNL.
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_VIEINHWJ_STR,
MANDT TYPE STRING,
INTRENO TYPE STRING,
EINHWYEAR TYPE STRING,
EINHWYEAREND TYPE STRING,
EINHWDATE TYPE STRING,
EINHWERT TYPE STRING,
EINHWERTWAER TYPE STRING,
EINHWERT2 TYPE STRING,
EINHWERTWAER2 TYPE STRING,
STEUERMBETRAG TYPE STRING,
STEUERMWAEHR TYPE STRING,
STEUERMBETRAG2 TYPE STRING,
STEUERMWAEHR2 TYPE STRING,
EINHWBEWG TYPE STRING,
EINHWBEWGWAEH TYPE STRING,
EINHWBEWG2 TYPE STRING,
EINHWBEWGWAEH2 TYPE STRING,
FLAECHE TYPE STRING,
FEINS TYPE STRING,
GRART TYPE STRING,
LAGE1 TYPE STRING,
LAGE2 TYPE STRING,
SUCH TYPE STRING,
LAGE1_MC TYPE STRING,
LAGE2_MC TYPE STRING,
SUCH_MC TYPE STRING,
EIGENTUEMER TYPE STRING,
SFEART_EW TYPE STRING,
SBV_EW TYPE STRING,
SVFART_EW TYPE STRING,
FLAECHE_ZONE1 TYPE STRING,
FEINS1 TYPE STRING,
WERT_ZONE1 TYPE STRING,
WERT1WAEHR TYPE STRING,
FLAECHE_ZONE2 TYPE STRING,
FEINS2 TYPE STRING,
WERT_ZONE2 TYPE STRING,
WERT2WAEHR TYPE STRING,
FLAECHE_ZONE3 TYPE STRING,
FEINS3 TYPE STRING,
WERT_ZONE3 TYPE STRING,
WERT3WAEHR TYPE STRING,
BODWERT TYPE STRING,
BODWAEHR TYPE STRING,
GEBWERT TYPE STRING,
GEBWERTWAEHR TYPE STRING,
AUANWERT TYPE STRING,
AUANWERTWAEHR TYPE STRING,
AUSGSWERT TYPE STRING,
AUSGSWERTWAEHR TYPE STRING,
WERTZAHL TYPE STRING,
BODANT TYPE STRING,
BODANTWAEHR TYPE STRING,
GEBANT TYPE STRING,
GEBANTWAEHR TYPE STRING,
FLAECHE_LW TYPE STRING,
FEINS_LW TYPE STRING,
FLAECHE_HOF TYPE STRING,
FEINS_HOF TYPE STRING,
FLAECHE_FORST TYPE STRING,
FEINS_FORST TYPE STRING,
FLAECHE_GERING TYPE STRING,
FEINS_GERING TYPE STRING,
FLAECHE_UNL TYPE STRING,
FEINS_UNL TYPE STRING,
USCHBETRAG TYPE STRING,
USCHBETRAGWAEHR TYPE STRING,END OF T_EKKO_STR. DATA: WA_VIEINHWJ_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_VIEINHWJ_STR-MANDT sy-vline
WA_VIEINHWJ_STR-INTRENO sy-vline
WA_VIEINHWJ_STR-EINHWYEAR sy-vline
WA_VIEINHWJ_STR-EINHWYEAREND sy-vline
WA_VIEINHWJ_STR-EINHWDATE sy-vline
WA_VIEINHWJ_STR-EINHWERT sy-vline
WA_VIEINHWJ_STR-EINHWERTWAER sy-vline
WA_VIEINHWJ_STR-EINHWERT2 sy-vline
WA_VIEINHWJ_STR-EINHWERTWAER2 sy-vline
WA_VIEINHWJ_STR-STEUERMBETRAG sy-vline
WA_VIEINHWJ_STR-STEUERMWAEHR sy-vline
WA_VIEINHWJ_STR-STEUERMBETRAG2 sy-vline
WA_VIEINHWJ_STR-STEUERMWAEHR2 sy-vline
WA_VIEINHWJ_STR-EINHWBEWG sy-vline
WA_VIEINHWJ_STR-EINHWBEWGWAEH sy-vline
WA_VIEINHWJ_STR-EINHWBEWG2 sy-vline
WA_VIEINHWJ_STR-EINHWBEWGWAEH2 sy-vline
WA_VIEINHWJ_STR-FLAECHE sy-vline
WA_VIEINHWJ_STR-FEINS sy-vline
WA_VIEINHWJ_STR-GRART sy-vline
WA_VIEINHWJ_STR-LAGE1 sy-vline
WA_VIEINHWJ_STR-LAGE2 sy-vline
WA_VIEINHWJ_STR-SUCH sy-vline
WA_VIEINHWJ_STR-LAGE1_MC sy-vline
WA_VIEINHWJ_STR-LAGE2_MC sy-vline
WA_VIEINHWJ_STR-SUCH_MC sy-vline
WA_VIEINHWJ_STR-EIGENTUEMER sy-vline
WA_VIEINHWJ_STR-SFEART_EW sy-vline
WA_VIEINHWJ_STR-SBV_EW sy-vline
WA_VIEINHWJ_STR-SVFART_EW sy-vline
WA_VIEINHWJ_STR-FLAECHE_ZONE1 sy-vline
WA_VIEINHWJ_STR-FEINS1 sy-vline
WA_VIEINHWJ_STR-WERT_ZONE1 sy-vline
WA_VIEINHWJ_STR-WERT1WAEHR sy-vline
WA_VIEINHWJ_STR-FLAECHE_ZONE2 sy-vline
WA_VIEINHWJ_STR-FEINS2 sy-vline
WA_VIEINHWJ_STR-WERT_ZONE2 sy-vline
WA_VIEINHWJ_STR-WERT2WAEHR sy-vline
WA_VIEINHWJ_STR-FLAECHE_ZONE3 sy-vline
WA_VIEINHWJ_STR-FEINS3 sy-vline
WA_VIEINHWJ_STR-WERT_ZONE3 sy-vline
WA_VIEINHWJ_STR-WERT3WAEHR sy-vline
WA_VIEINHWJ_STR-BODWERT sy-vline
WA_VIEINHWJ_STR-BODWAEHR sy-vline
WA_VIEINHWJ_STR-GEBWERT sy-vline
WA_VIEINHWJ_STR-GEBWERTWAEHR sy-vline
WA_VIEINHWJ_STR-AUANWERT sy-vline
WA_VIEINHWJ_STR-AUANWERTWAEHR sy-vline
WA_VIEINHWJ_STR-AUSGSWERT sy-vline
WA_VIEINHWJ_STR-AUSGSWERTWAEHR sy-vline
WA_VIEINHWJ_STR-WERTZAHL sy-vline
WA_VIEINHWJ_STR-BODANT sy-vline
WA_VIEINHWJ_STR-BODANTWAEHR sy-vline
WA_VIEINHWJ_STR-GEBANT sy-vline
WA_VIEINHWJ_STR-GEBANTWAEHR sy-vline
WA_VIEINHWJ_STR-FLAECHE_LW sy-vline
WA_VIEINHWJ_STR-FEINS_LW sy-vline
WA_VIEINHWJ_STR-FLAECHE_HOF sy-vline
WA_VIEINHWJ_STR-FEINS_HOF sy-vline
WA_VIEINHWJ_STR-FLAECHE_FORST sy-vline
WA_VIEINHWJ_STR-FEINS_FORST sy-vline
WA_VIEINHWJ_STR-FLAECHE_GERING sy-vline
WA_VIEINHWJ_STR-FEINS_GERING sy-vline
WA_VIEINHWJ_STR-FLAECHE_UNL sy-vline
WA_VIEINHWJ_STR-FEINS_UNL sy-vline
WA_VIEINHWJ_STR-USCHBETRAG sy-vline
WA_VIEINHWJ_STR-USCHBETRAGWAEHR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.