ABAP Select data from SAP table HRCHQSB 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 HRCHQSB 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 HRCHQSB. 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 HRCHQSB 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_HRCHQSB TYPE STANDARD TABLE OF HRCHQSB,
      WA_HRCHQSB TYPE HRCHQSB,
      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: <HRCHQSB> TYPE HRCHQSB.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HRCHQSB
*  INTO TABLE @DATA(IT_HRCHQSB2).
*--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_HRCHQSB INDEX 1 INTO DATA(WA_HRCHQSB2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_HRCHQSB ASSIGNING <HRCHQSB>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<HRCHQSB>-PERNR = 1.
<HRCHQSB>-AHVNR = 1.
<HRCHQSB>-AHVNRX = 1.
<HRCHQSB>-SPRSL = 1.
<HRCHQSB>-KOPIE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_HRCHQSB-TITEL1, sy-vline,
WA_HRCHQSB-TITEL2, sy-vline,
WA_HRCHQSB-TITEL3, sy-vline,
WA_HRCHQSB-TITEL4, sy-vline,
WA_HRCHQSB-ANRED, sy-vline,
WA_HRCHQSB-NAME, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HRCHQSB 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_HRCHQSB 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_HRCHQSB INTO WA_HRCHQSB. *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 AHVNR, internal->external for field AHVNR CALL FUNCTION 'CONVERSION_EXIT_AHVNR_OUTPUT' EXPORTING input = WA_HRCHQSB-AHVNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRCHQSB-AHVNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field SPRSL CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_HRCHQSB-SPRSL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRCHQSB-SPRSL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit PDATE, internal->external for field GBDAT CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT' EXPORTING input = WA_HRCHQSB-GBDAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRCHQSB-GBDAT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field ARJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_HRCHQSB-ARJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRCHQSB-ARJAHR.
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_HRCHQSB_STR,
PERNR TYPE STRING,
AHVNR TYPE STRING,
AHVNRX TYPE STRING,
SPRSL TYPE STRING,
KOPIE TYPE STRING,
TITEL1 TYPE STRING,
TITEL2 TYPE STRING,
TITEL3 TYPE STRING,
TITEL4 TYPE STRING,
ANRED TYPE STRING,
NAME TYPE STRING,
NAME2 TYPE STRING,
ANVORN TYPE STRING,
KNAME TYPE STRING,
STRAS TYPE STRING,
PSTLZ TYPE STRING,
ORT01 TYPE STRING,
PLORT TYPE STRING,
WKANT TYPE STRING,
WKATX TYPE STRING,
LAND1 TYPE STRING,
LANDX TYPE STRING,
ORTLA TYPE STRING,
ARBOR TYPE STRING,
ABTLX TYPE STRING,
GBDAT TYPE STRING,
FTEXT TYPE STRING,
KITXT TYPE STRING,
KTEXT TYPE STRING,
ANZKD TYPE STRING,
FANAM TYPE STRING,
FAVOR TYPE STRING,
KAFANA TYPE STRING,
FAFIR TYPE STRING,
ARJAHR TYPE STRING,
BEGDA TYPE STRING,
ENDDA TYPE STRING,
AZATG TYPE STRING,
KANTO TYPE STRING,
KATXT TYPE STRING,
GEMND TYPE STRING,
GETXT TYPE STRING,
QSTTAB TYPE STRING,
QSTTXTL TYPE STRING,
QSTTXTK TYPE STRING,
QSTPROZ TYPE STRING,
STBASIS1 TYPE STRING,
STBASIS2 TYPE STRING,
STBASIS3 TYPE STRING,
STBASIS4 TYPE STRING,
STBETR1 TYPE STRING,
STBETR2 TYPE STRING,
STBETR3 TYPE STRING,
STBETR4 TYPE STRING,
TTLBETR1 TYPE STRING,
TTLBETR2 TYPE STRING,
TTLBETR3 TYPE STRING,
TTLBETR4 TYPE STRING,
PFLZULA TYPE STRING,
NPFZULA TYPE STRING,
STCURR TYPE STRING,
ABSTAG TYPE STRING,
ABRNR TYPE STRING,
AGNAME TYPE STRING,
AGNAME2 TYPE STRING,
AGSTRAS TYPE STRING,
AGPLZNR TYPE STRING,
AGORT01 TYPE STRING,
AGPLORT TYPE STRING,
AGKANTO TYPE STRING,
AGKANTX TYPE STRING,
AGSACHP TYPE STRING,
AGTELNO TYPE STRING,
AUSDT TYPE STRING,
ORTDT TYPE STRING,
DTEXT1 TYPE STRING,
DTEXT2 TYPE STRING,
DTEXT3 TYPE STRING,
DTEXT4 TYPE STRING,
BTEXT1 TYPE STRING,
BTEXT2 TYPE STRING,
BTEXT3 TYPE STRING,
BTEXT4 TYPE STRING,END OF T_EKKO_STR. DATA: WA_HRCHQSB_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_HRCHQSB_STR-PERNR sy-vline
WA_HRCHQSB_STR-AHVNR sy-vline
WA_HRCHQSB_STR-AHVNRX sy-vline
WA_HRCHQSB_STR-SPRSL sy-vline
WA_HRCHQSB_STR-KOPIE sy-vline
WA_HRCHQSB_STR-TITEL1 sy-vline
WA_HRCHQSB_STR-TITEL2 sy-vline
WA_HRCHQSB_STR-TITEL3 sy-vline
WA_HRCHQSB_STR-TITEL4 sy-vline
WA_HRCHQSB_STR-ANRED sy-vline
WA_HRCHQSB_STR-NAME sy-vline
WA_HRCHQSB_STR-NAME2 sy-vline
WA_HRCHQSB_STR-ANVORN sy-vline
WA_HRCHQSB_STR-KNAME sy-vline
WA_HRCHQSB_STR-STRAS sy-vline
WA_HRCHQSB_STR-PSTLZ sy-vline
WA_HRCHQSB_STR-ORT01 sy-vline
WA_HRCHQSB_STR-PLORT sy-vline
WA_HRCHQSB_STR-WKANT sy-vline
WA_HRCHQSB_STR-WKATX sy-vline
WA_HRCHQSB_STR-LAND1 sy-vline
WA_HRCHQSB_STR-LANDX sy-vline
WA_HRCHQSB_STR-ORTLA sy-vline
WA_HRCHQSB_STR-ARBOR sy-vline
WA_HRCHQSB_STR-ABTLX sy-vline
WA_HRCHQSB_STR-GBDAT sy-vline
WA_HRCHQSB_STR-FTEXT sy-vline
WA_HRCHQSB_STR-KITXT sy-vline
WA_HRCHQSB_STR-KTEXT sy-vline
WA_HRCHQSB_STR-ANZKD sy-vline
WA_HRCHQSB_STR-FANAM sy-vline
WA_HRCHQSB_STR-FAVOR sy-vline
WA_HRCHQSB_STR-KAFANA sy-vline
WA_HRCHQSB_STR-FAFIR sy-vline
WA_HRCHQSB_STR-ARJAHR sy-vline
WA_HRCHQSB_STR-BEGDA sy-vline
WA_HRCHQSB_STR-ENDDA sy-vline
WA_HRCHQSB_STR-AZATG sy-vline
WA_HRCHQSB_STR-KANTO sy-vline
WA_HRCHQSB_STR-KATXT sy-vline
WA_HRCHQSB_STR-GEMND sy-vline
WA_HRCHQSB_STR-GETXT sy-vline
WA_HRCHQSB_STR-QSTTAB sy-vline
WA_HRCHQSB_STR-QSTTXTL sy-vline
WA_HRCHQSB_STR-QSTTXTK sy-vline
WA_HRCHQSB_STR-QSTPROZ sy-vline
WA_HRCHQSB_STR-STBASIS1 sy-vline
WA_HRCHQSB_STR-STBASIS2 sy-vline
WA_HRCHQSB_STR-STBASIS3 sy-vline
WA_HRCHQSB_STR-STBASIS4 sy-vline
WA_HRCHQSB_STR-STBETR1 sy-vline
WA_HRCHQSB_STR-STBETR2 sy-vline
WA_HRCHQSB_STR-STBETR3 sy-vline
WA_HRCHQSB_STR-STBETR4 sy-vline
WA_HRCHQSB_STR-TTLBETR1 sy-vline
WA_HRCHQSB_STR-TTLBETR2 sy-vline
WA_HRCHQSB_STR-TTLBETR3 sy-vline
WA_HRCHQSB_STR-TTLBETR4 sy-vline
WA_HRCHQSB_STR-PFLZULA sy-vline
WA_HRCHQSB_STR-NPFZULA sy-vline
WA_HRCHQSB_STR-STCURR sy-vline
WA_HRCHQSB_STR-ABSTAG sy-vline
WA_HRCHQSB_STR-ABRNR sy-vline
WA_HRCHQSB_STR-AGNAME sy-vline
WA_HRCHQSB_STR-AGNAME2 sy-vline
WA_HRCHQSB_STR-AGSTRAS sy-vline
WA_HRCHQSB_STR-AGPLZNR sy-vline
WA_HRCHQSB_STR-AGORT01 sy-vline
WA_HRCHQSB_STR-AGPLORT sy-vline
WA_HRCHQSB_STR-AGKANTO sy-vline
WA_HRCHQSB_STR-AGKANTX sy-vline
WA_HRCHQSB_STR-AGSACHP sy-vline
WA_HRCHQSB_STR-AGTELNO sy-vline
WA_HRCHQSB_STR-AUSDT sy-vline
WA_HRCHQSB_STR-ORTDT sy-vline
WA_HRCHQSB_STR-DTEXT1 sy-vline
WA_HRCHQSB_STR-DTEXT2 sy-vline
WA_HRCHQSB_STR-DTEXT3 sy-vline
WA_HRCHQSB_STR-DTEXT4 sy-vline
WA_HRCHQSB_STR-BTEXT1 sy-vline
WA_HRCHQSB_STR-BTEXT2 sy-vline
WA_HRCHQSB_STR-BTEXT3 sy-vline
WA_HRCHQSB_STR-BTEXT4 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.