ABAP Select data from SAP table HARCXXXX 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 HARCXXXX 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 HARCXXXX. 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 HARCXXXX 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_HARCXXXX TYPE STANDARD TABLE OF HARCXXXX,
      WA_HARCXXXX TYPE HARCXXXX,
      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: <HARCXXXX> TYPE HARCXXXX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HARCXXXX
*  INTO TABLE @DATA(IT_HARCXXXX2).
*--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_HARCXXXX INDEX 1 INTO DATA(WA_HARCXXXX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_HARCXXXX ASSIGNING <HARCXXXX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<HARCXXXX>-LLMES = 1.
<HARCXXXX>-LLANO = 1.
<HARCXXXX>-LLPRI = 1.
<HARCXXXX>-F6MES = 1.
<HARCXXXX>-F6ANO = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_HARCXXXX-F6NOM, sy-vline,
WA_HARCXXXX-F6CAR, sy-vline,
WA_HARCXXXX-F6LUG, sy-vline,
WA_HARCXXXX-F6FEC, sy-vline,
WA_HARCXXXX-SIMES, sy-vline,
WA_HARCXXXX-SIANO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HARCXXXX 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_HARCXXXX 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_HARCXXXX INTO WA_HARCXXXX. *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 LLANO CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_HARCXXXX-LLANO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HARCXXXX-LLANO.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit SPDEV, internal->external for field PDEST CALL FUNCTION 'CONVERSION_EXIT_SPDEV_OUTPUT' EXPORTING input = WA_HARCXXXX-PDEST IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HARCXXXX-PDEST.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field ANPRO CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_HARCXXXX-ANPRO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HARCXXXX-ANPRO.
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_HARCXXXX_STR,
LLMES TYPE STRING,
LLANO TYPE STRING,
LLPRI TYPE STRING,
F6MES TYPE STRING,
F6ANO TYPE STRING,
F6NOM TYPE STRING,
F6CAR TYPE STRING,
F6LUG TYPE STRING,
F6FEC TYPE STRING,
SIMES TYPE STRING,
SIANO TYPE STRING,
CESOB TYPE STRING,
41MES TYPE STRING,
41ANO TYPE STRING,
41PAR TYPE STRING,
41TOD TYPE STRING,
41ACT TYPE STRING,
41DEF TYPE STRING,
41PER TYPE STRING,
41NOM TYPE STRING,
FTANO TYPE STRING,
FTGEN TYPE STRING,
FTFEC TYPE STRING,
FTGRP TYPE STRING,
FTLGT TYPE STRING,
SPOOL TYPE STRING,
BTCON TYPE STRING,
V1NOR TYPE STRING,
V1OVE TYPE STRING,
V1AMB TYPE STRING,
V1PAY TYPE STRING,
OSMES TYPE STRING,
OSANO TYPE STRING,
SNMES TYPE STRING,
SNANO TYPE STRING,
PDEST TYPE STRING,
CDEST TYPE STRING,
F6OBJ TYPE STRING,
LLOBJ TYPE STRING,
V1DAY TYPE STRING,
V1SEM TYPE STRING,
V1FEC TYPE STRING,
CDIAS TYPE STRING,
TEDIA TYPE STRING,
T1NOR TYPE STRING,
T1OVE TYPE STRING,
T1AMB TYPE STRING,
CEGRP TYPE STRING,
CEPOS TYPE STRING,
CEFUN TYPE STRING,
CECER TYPE STRING,
CETOT TYPE STRING,
CESUJ TYPE STRING,
CENOH TYPE STRING,
RETRO TYPE STRING,
NOREM TYPE STRING,
DIV30 TYPE STRING,
DISCR TYPE STRING,
ANPRO TYPE STRING,
SEMES TYPE STRING,
FEVUE TYPE STRING,
CCPRO TYPE STRING,
CCDES TYPE STRING,
LIGEN TYPE STRING,
RESGEN TYPE STRING,
FERG TYPE STRING,
TIPEM TYPE STRING,
CEOB1 TYPE STRING,
CEOB2 TYPE STRING,
CEOB3 TYPE STRING,
LSORT TYPE STRING,
DECL_LIN TYPE STRING,END OF T_EKKO_STR. DATA: WA_HARCXXXX_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_HARCXXXX_STR-LLMES sy-vline
WA_HARCXXXX_STR-LLANO sy-vline
WA_HARCXXXX_STR-LLPRI sy-vline
WA_HARCXXXX_STR-F6MES sy-vline
WA_HARCXXXX_STR-F6ANO sy-vline
WA_HARCXXXX_STR-F6NOM sy-vline
WA_HARCXXXX_STR-F6CAR sy-vline
WA_HARCXXXX_STR-F6LUG sy-vline
WA_HARCXXXX_STR-F6FEC sy-vline
WA_HARCXXXX_STR-SIMES sy-vline
WA_HARCXXXX_STR-SIANO sy-vline
WA_HARCXXXX_STR-CESOB sy-vline
WA_HARCXXXX_STR-41MES sy-vline
WA_HARCXXXX_STR-41ANO sy-vline
WA_HARCXXXX_STR-41PAR sy-vline
WA_HARCXXXX_STR-41TOD sy-vline
WA_HARCXXXX_STR-41ACT sy-vline
WA_HARCXXXX_STR-41DEF sy-vline
WA_HARCXXXX_STR-41PER sy-vline
WA_HARCXXXX_STR-41NOM sy-vline
WA_HARCXXXX_STR-FTANO sy-vline
WA_HARCXXXX_STR-FTGEN sy-vline
WA_HARCXXXX_STR-FTFEC sy-vline
WA_HARCXXXX_STR-FTGRP sy-vline
WA_HARCXXXX_STR-FTLGT sy-vline
WA_HARCXXXX_STR-SPOOL sy-vline
WA_HARCXXXX_STR-BTCON sy-vline
WA_HARCXXXX_STR-V1NOR sy-vline
WA_HARCXXXX_STR-V1OVE sy-vline
WA_HARCXXXX_STR-V1AMB sy-vline
WA_HARCXXXX_STR-V1PAY sy-vline
WA_HARCXXXX_STR-OSMES sy-vline
WA_HARCXXXX_STR-OSANO sy-vline
WA_HARCXXXX_STR-SNMES sy-vline
WA_HARCXXXX_STR-SNANO sy-vline
WA_HARCXXXX_STR-PDEST sy-vline
WA_HARCXXXX_STR-CDEST sy-vline
WA_HARCXXXX_STR-F6OBJ sy-vline
WA_HARCXXXX_STR-LLOBJ sy-vline
WA_HARCXXXX_STR-V1DAY sy-vline
WA_HARCXXXX_STR-V1SEM sy-vline
WA_HARCXXXX_STR-V1FEC sy-vline
WA_HARCXXXX_STR-CDIAS sy-vline
WA_HARCXXXX_STR-TEDIA sy-vline
WA_HARCXXXX_STR-T1NOR sy-vline
WA_HARCXXXX_STR-T1OVE sy-vline
WA_HARCXXXX_STR-T1AMB sy-vline
WA_HARCXXXX_STR-CEGRP sy-vline
WA_HARCXXXX_STR-CEPOS sy-vline
WA_HARCXXXX_STR-CEFUN sy-vline
WA_HARCXXXX_STR-CECER sy-vline
WA_HARCXXXX_STR-CETOT sy-vline
WA_HARCXXXX_STR-CESUJ sy-vline
WA_HARCXXXX_STR-CENOH sy-vline
WA_HARCXXXX_STR-RETRO sy-vline
WA_HARCXXXX_STR-NOREM sy-vline
WA_HARCXXXX_STR-DIV30 sy-vline
WA_HARCXXXX_STR-DISCR sy-vline
WA_HARCXXXX_STR-ANPRO sy-vline
WA_HARCXXXX_STR-SEMES sy-vline
WA_HARCXXXX_STR-FEVUE sy-vline
WA_HARCXXXX_STR-CCPRO sy-vline
WA_HARCXXXX_STR-CCDES sy-vline
WA_HARCXXXX_STR-LIGEN sy-vline
WA_HARCXXXX_STR-RESGEN sy-vline
WA_HARCXXXX_STR-FERG sy-vline
WA_HARCXXXX_STR-TIPEM sy-vline
WA_HARCXXXX_STR-CEOB1 sy-vline
WA_HARCXXXX_STR-CEOB2 sy-vline
WA_HARCXXXX_STR-CEOB3 sy-vline
WA_HARCXXXX_STR-LSORT sy-vline
WA_HARCXXXX_STR-DECL_LIN sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.