ABAP Select data from SAP table RJHA900 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 RJHA900 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 RJHA900. 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 RJHA900 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_RJHA900 TYPE STANDARD TABLE OF RJHA900,
      WA_RJHA900 TYPE RJHA900,
      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: <RJHA900> TYPE RJHA900.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RJHA900
*  INTO TABLE @DATA(IT_RJHA9002).
*--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_RJHA900 INDEX 1 INTO DATA(WA_RJHA9002).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RJHA900 ASSIGNING <RJHA900>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RJHA900>-AVM_NR = 1.
<RJHA900>-POS_NR = 1.
<RJHA900>-UPOS_NR = 1.
<RJHA900>-EIN_NR = 1.
<RJHA900>-AENVERS_NR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RJHA900-STATUSK, sy-vline,
WA_RJHA900-STATUSPROD, sy-vline,
WA_RJHA900-STATUSPLAZ, sy-vline,
WA_RJHA900-MOTIV, sy-vline,
WA_RJHA900-MOTIVID, sy-vline,
WA_RJHA900-BELEGEINH, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RJHA900 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_RJHA900 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_RJHA900 INTO WA_RJHA900. *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 AVM_NR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RJHA900-AVM_NR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RJHA900-AVM_NR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field AZART_AREA CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RJHA900-AZART_AREA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RJHA900-AZART_AREA.
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_RJHA900_STR,
AVM_NR TYPE STRING,
POS_NR TYPE STRING,
UPOS_NR TYPE STRING,
EIN_NR TYPE STRING,
AENVERS_NR TYPE STRING,
STATUSK TYPE STRING,
STATUSPROD TYPE STRING,
STATUSPLAZ TYPE STRING,
MOTIV TYPE STRING,
MOTIVID TYPE STRING,
BELEGEINH TYPE STRING,
VAUSGB TYPE STRING,
E_TERMIN TYPE STRING,
INHK_PLAZ TYPE STRING,
INHK_SOVER TYPE STRING,
FARB_SEITE TYPE STRING,
PLAZ_SEITE TYPE STRING,
PLAZ_SB TYPE STRING,
PLAZ_POS TYPE STRING,
PLAZ_SLAGE TYPE STRING,
PLAZ_ART TYPE STRING,
E_HEFT TYPE STRING,
E_BELEINH TYPE STRING,
XANNSCHLAB TYPE STRING,
XSTPLAZ TYPE STRING,
XBELICHTET TYPE STRING,
XERSCH TYPE STRING,
TEXTSPITZE TYPE STRING,
KENNZIFFER TYPE STRING,
STICHW TYPE STRING,
INSERENT TYPE STRING,
INS_NAME TYPE STRING,
CHIFFRE_NR TYPE STRING,
MARK TYPE STRING,
MOTIVSTAT TYPE STRING,
AZART_GEST TYPE STRING,
MOTAENVNR TYPE STRING,
AZFARB_IST TYPE STRING,
GRUNFARBEI TYPE STRING,
FARBNAME1I TYPE STRING,
FARBTYP1_I TYPE STRING,
FARBNAME2I TYPE STRING,
FARBTYP2_I TYPE STRING,
FARBNAME3I TYPE STRING,
FARBTYP3_I TYPE STRING,
HOEHE_ITMM TYPE STRING,
BREITEITMM TYPE STRING,
HOEHE_T_IS TYPE STRING,
BREITE_T_I TYPE STRING,
BREITE_I TYPE STRING,
BREITE_IEH TYPE STRING,
HOEHE_I TYPE STRING,
HOEHE_I_EH TYPE STRING,
BREITE_T TYPE STRING,
BREITE_TEH TYPE STRING,
HOEHE_T TYPE STRING,
HOEHE_T_EH TYPE STRING,
NUTZFL_ANT TYPE STRING,
ANZSPALT_I TYPE STRING,
ANZWORT1_I TYPE STRING,
ANZWORT2_I TYPE STRING,
ANZZEIL1_I TYPE STRING,
ANZZEIL2_I TYPE STRING,
ANZZEICH_I TYPE STRING,
ZUS_MENGE TYPE STRING,
ZUS_BERECH TYPE STRING,
SEITE_FSP TYPE STRING,
TYPO_NR_IS TYPE STRING,
RAHMENTYPI TYPE STRING,
RAHMENSTAI TYPE STRING,
RAHMENEINH TYPE STRING,
INVERSKNZI TYPE STRING,
RASTER_IST TYPE STRING,
BILOZ_ANZ TYPE STRING,
XMOTPROD TYPE STRING,
XEINT2TEC TYPE STRING,
AZART_AREA TYPE STRING,
XERSCH_NOT_CHNGBL TYPE STRING,END OF T_EKKO_STR. DATA: WA_RJHA900_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_RJHA900_STR-AVM_NR sy-vline
WA_RJHA900_STR-POS_NR sy-vline
WA_RJHA900_STR-UPOS_NR sy-vline
WA_RJHA900_STR-EIN_NR sy-vline
WA_RJHA900_STR-AENVERS_NR sy-vline
WA_RJHA900_STR-STATUSK sy-vline
WA_RJHA900_STR-STATUSPROD sy-vline
WA_RJHA900_STR-STATUSPLAZ sy-vline
WA_RJHA900_STR-MOTIV sy-vline
WA_RJHA900_STR-MOTIVID sy-vline
WA_RJHA900_STR-BELEGEINH sy-vline
WA_RJHA900_STR-VAUSGB sy-vline
WA_RJHA900_STR-E_TERMIN sy-vline
WA_RJHA900_STR-INHK_PLAZ sy-vline
WA_RJHA900_STR-INHK_SOVER sy-vline
WA_RJHA900_STR-FARB_SEITE sy-vline
WA_RJHA900_STR-PLAZ_SEITE sy-vline
WA_RJHA900_STR-PLAZ_SB sy-vline
WA_RJHA900_STR-PLAZ_POS sy-vline
WA_RJHA900_STR-PLAZ_SLAGE sy-vline
WA_RJHA900_STR-PLAZ_ART sy-vline
WA_RJHA900_STR-E_HEFT sy-vline
WA_RJHA900_STR-E_BELEINH sy-vline
WA_RJHA900_STR-XANNSCHLAB sy-vline
WA_RJHA900_STR-XSTPLAZ sy-vline
WA_RJHA900_STR-XBELICHTET sy-vline
WA_RJHA900_STR-XERSCH sy-vline
WA_RJHA900_STR-TEXTSPITZE sy-vline
WA_RJHA900_STR-KENNZIFFER sy-vline
WA_RJHA900_STR-STICHW sy-vline
WA_RJHA900_STR-INSERENT sy-vline
WA_RJHA900_STR-INS_NAME sy-vline
WA_RJHA900_STR-CHIFFRE_NR sy-vline
WA_RJHA900_STR-MARK sy-vline
WA_RJHA900_STR-MOTIVSTAT sy-vline
WA_RJHA900_STR-AZART_GEST sy-vline
WA_RJHA900_STR-MOTAENVNR sy-vline
WA_RJHA900_STR-AZFARB_IST sy-vline
WA_RJHA900_STR-GRUNFARBEI sy-vline
WA_RJHA900_STR-FARBNAME1I sy-vline
WA_RJHA900_STR-FARBTYP1_I sy-vline
WA_RJHA900_STR-FARBNAME2I sy-vline
WA_RJHA900_STR-FARBTYP2_I sy-vline
WA_RJHA900_STR-FARBNAME3I sy-vline
WA_RJHA900_STR-FARBTYP3_I sy-vline
WA_RJHA900_STR-HOEHE_ITMM sy-vline
WA_RJHA900_STR-BREITEITMM sy-vline
WA_RJHA900_STR-HOEHE_T_IS sy-vline
WA_RJHA900_STR-BREITE_T_I sy-vline
WA_RJHA900_STR-BREITE_I sy-vline
WA_RJHA900_STR-BREITE_IEH sy-vline
WA_RJHA900_STR-HOEHE_I sy-vline
WA_RJHA900_STR-HOEHE_I_EH sy-vline
WA_RJHA900_STR-BREITE_T sy-vline
WA_RJHA900_STR-BREITE_TEH sy-vline
WA_RJHA900_STR-HOEHE_T sy-vline
WA_RJHA900_STR-HOEHE_T_EH sy-vline
WA_RJHA900_STR-NUTZFL_ANT sy-vline
WA_RJHA900_STR-ANZSPALT_I sy-vline
WA_RJHA900_STR-ANZWORT1_I sy-vline
WA_RJHA900_STR-ANZWORT2_I sy-vline
WA_RJHA900_STR-ANZZEIL1_I sy-vline
WA_RJHA900_STR-ANZZEIL2_I sy-vline
WA_RJHA900_STR-ANZZEICH_I sy-vline
WA_RJHA900_STR-ZUS_MENGE sy-vline
WA_RJHA900_STR-ZUS_BERECH sy-vline
WA_RJHA900_STR-SEITE_FSP sy-vline
WA_RJHA900_STR-TYPO_NR_IS sy-vline
WA_RJHA900_STR-RAHMENTYPI sy-vline
WA_RJHA900_STR-RAHMENSTAI sy-vline
WA_RJHA900_STR-RAHMENEINH sy-vline
WA_RJHA900_STR-INVERSKNZI sy-vline
WA_RJHA900_STR-RASTER_IST sy-vline
WA_RJHA900_STR-BILOZ_ANZ sy-vline
WA_RJHA900_STR-XMOTPROD sy-vline
WA_RJHA900_STR-XEINT2TEC sy-vline
WA_RJHA900_STR-AZART_AREA sy-vline
WA_RJHA900_STR-XERSCH_NOT_CHNGBL sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.