ABAP Select data from SAP table RJHAMOTX 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 RJHAMOTX 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 RJHAMOTX. 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 RJHAMOTX 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_RJHAMOTX TYPE STANDARD TABLE OF RJHAMOTX,
      WA_RJHAMOTX TYPE RJHAMOTX,
      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: <RJHAMOTX> TYPE RJHAMOTX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RJHAMOTX
*  INTO TABLE @DATA(IT_RJHAMOTX2).
*--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_RJHAMOTX INDEX 1 INTO DATA(WA_RJHAMOTX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RJHAMOTX ASSIGNING <RJHAMOTX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RJHAMOTX>-MANDT = 1.
<RJHAMOTX>-AVM_NR = 1.
<RJHAMOTX>-MOTIV = 1.
<RJHAMOTX>-UPDATEFLAG = 1.
<RJHAMOTX>-MOTIVID = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RJHAMOTX-NOTIZ, sy-vline,
WA_RJHAMOTX-VORL_AVMNR, sy-vline,
WA_RJHAMOTX-VORL_MOTNR, sy-vline,
WA_RJHAMOTX-VORL_TECID, sy-vline,
WA_RJHAMOTX-DRVORL_NR, sy-vline,
WA_RJHAMOTX-AZART_SOND, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RJHAMOTX 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_RJHAMOTX 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_RJHAMOTX INTO WA_RJHAMOTX. *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_RJHAMOTX-AVM_NR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RJHAMOTX-AVM_NR.
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_RJHAMOTX_STR,
MANDT TYPE STRING,
AVM_NR TYPE STRING,
MOTIV TYPE STRING,
UPDATEFLAG TYPE STRING,
MOTIVID TYPE STRING,
NOTIZ TYPE STRING,
VORL_AVMNR TYPE STRING,
VORL_MOTNR TYPE STRING,
VORL_TECID TYPE STRING,
DRVORL_NR TYPE STRING,
AZART_SOND TYPE STRING,
ASOND_KOMM TYPE STRING,
AZART_GEST TYPE STRING,
AZART_FORM TYPE STRING,
AZART_AREA TYPE STRING,
AREA_UEBER TYPE STRING,
AREA_BLATT TYPE STRING,
XMOTLINKS TYPE STRING,
XMOTRECHTS TYPE STRING,
HOEHE_I TYPE STRING,
HOEHE_I_EH TYPE STRING,
BREITE_I TYPE STRING,
BREITE_IEH TYPE STRING,
HOEHE_T TYPE STRING,
HOEHE_T_EH TYPE STRING,
BREITE_T TYPE STRING,
BREITE_TEH TYPE STRING,
HOEHE_S TYPE STRING,
HOEHE_S_EH TYPE STRING,
BREITE_S TYPE STRING,
BREITE_SEH TYPE STRING,
ZUS_BERECH TYPE STRING,
ZUS_MENGE TYPE STRING,
XHOEHE_ZWI TYPE STRING,
SEITE_FSP TYPE STRING,
AZART_FARB TYPE STRING,
AZFARB_IST TYPE STRING,
GRUNFARBEN TYPE STRING,
ZUSATZFA1 TYPE STRING,
ZUSATZFA2 TYPE STRING,
ZUSATZFA3 TYPE STRING,
XSCHMFAAUF TYPE STRING,
FARBKOMM TYPE STRING,
TYPO_NR TYPE STRING,
RAHMENTYP TYPE STRING,
RAHMENSTAE TYPE STRING,
RAHMENEINH TYPE STRING,
INVERSKNZ TYPE STRING,
RASTER TYPE STRING,
TMOT_KENNZ TYPE STRING,
TMOT_NR TYPE STRING,
TMOT_BEZUG TYPE STRING,
TMOT_LAGE TYPE STRING,
TMOT_KOMM TYPE STRING,
TMOT_UEBER TYPE STRING,
STICHW TYPE STRING,
PRODH TYPE STRING,
TEXTSPITZE TYPE STRING,
ABW_TELLND TYPE STRING,
ABW_TELVW TYPE STRING,
ABW_TEL TYPE STRING,
TELEF_ART TYPE STRING,
BILOZ_KOMM TYPE STRING,
XANSCHNITT TYPE STRING,
XUEBERBUND TYPE STRING,
XCOUPON TYPE STRING,
COUPON_KNZ TYPE STRING,
COUPON_LGE TYPE STRING,
KENNZIFFER TYPE STRING,
SUJET_NR TYPE STRING,
SERVICENR TYPE STRING,
MOTEXTINF1 TYPE STRING,
MOTEXTINF2 TYPE STRING,
MOTEXTINF3 TYPE STRING,
MOTEXTINF4 TYPE STRING,
XPRNOTW TYPE STRING,
XPRINHNOTW TYPE STRING,
XKUNK_NOTW TYPE STRING,
XMOTPROD TYPE STRING,
XDIFF_SIZE TYPE STRING,
MERKMAL0 TYPE STRING,
MERKMAL1 TYPE STRING,
MERKMAL2 TYPE STRING,
MERKMAL3 TYPE STRING,
MERKMAL4 TYPE STRING,
MERKMAL5 TYPE STRING,
MERKMAL6 TYPE STRING,
MERKMAL7 TYPE STRING,
MERKMAL8 TYPE STRING,
MERKMAL9 TYPE STRING,
STYLE TYPE STRING,
TEMPLATE TYPE STRING,
SORTWORD TYPE STRING,END OF T_EKKO_STR. DATA: WA_RJHAMOTX_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_RJHAMOTX_STR-MANDT sy-vline
WA_RJHAMOTX_STR-AVM_NR sy-vline
WA_RJHAMOTX_STR-MOTIV sy-vline
WA_RJHAMOTX_STR-UPDATEFLAG sy-vline
WA_RJHAMOTX_STR-MOTIVID sy-vline
WA_RJHAMOTX_STR-NOTIZ sy-vline
WA_RJHAMOTX_STR-VORL_AVMNR sy-vline
WA_RJHAMOTX_STR-VORL_MOTNR sy-vline
WA_RJHAMOTX_STR-VORL_TECID sy-vline
WA_RJHAMOTX_STR-DRVORL_NR sy-vline
WA_RJHAMOTX_STR-AZART_SOND sy-vline
WA_RJHAMOTX_STR-ASOND_KOMM sy-vline
WA_RJHAMOTX_STR-AZART_GEST sy-vline
WA_RJHAMOTX_STR-AZART_FORM sy-vline
WA_RJHAMOTX_STR-AZART_AREA sy-vline
WA_RJHAMOTX_STR-AREA_UEBER sy-vline
WA_RJHAMOTX_STR-AREA_BLATT sy-vline
WA_RJHAMOTX_STR-XMOTLINKS sy-vline
WA_RJHAMOTX_STR-XMOTRECHTS sy-vline
WA_RJHAMOTX_STR-HOEHE_I sy-vline
WA_RJHAMOTX_STR-HOEHE_I_EH sy-vline
WA_RJHAMOTX_STR-BREITE_I sy-vline
WA_RJHAMOTX_STR-BREITE_IEH sy-vline
WA_RJHAMOTX_STR-HOEHE_T sy-vline
WA_RJHAMOTX_STR-HOEHE_T_EH sy-vline
WA_RJHAMOTX_STR-BREITE_T sy-vline
WA_RJHAMOTX_STR-BREITE_TEH sy-vline
WA_RJHAMOTX_STR-HOEHE_S sy-vline
WA_RJHAMOTX_STR-HOEHE_S_EH sy-vline
WA_RJHAMOTX_STR-BREITE_S sy-vline
WA_RJHAMOTX_STR-BREITE_SEH sy-vline
WA_RJHAMOTX_STR-ZUS_BERECH sy-vline
WA_RJHAMOTX_STR-ZUS_MENGE sy-vline
WA_RJHAMOTX_STR-XHOEHE_ZWI sy-vline
WA_RJHAMOTX_STR-SEITE_FSP sy-vline
WA_RJHAMOTX_STR-AZART_FARB sy-vline
WA_RJHAMOTX_STR-AZFARB_IST sy-vline
WA_RJHAMOTX_STR-GRUNFARBEN sy-vline
WA_RJHAMOTX_STR-ZUSATZFA1 sy-vline
WA_RJHAMOTX_STR-ZUSATZFA2 sy-vline
WA_RJHAMOTX_STR-ZUSATZFA3 sy-vline
WA_RJHAMOTX_STR-XSCHMFAAUF sy-vline
WA_RJHAMOTX_STR-FARBKOMM sy-vline
WA_RJHAMOTX_STR-TYPO_NR sy-vline
WA_RJHAMOTX_STR-RAHMENTYP sy-vline
WA_RJHAMOTX_STR-RAHMENSTAE sy-vline
WA_RJHAMOTX_STR-RAHMENEINH sy-vline
WA_RJHAMOTX_STR-INVERSKNZ sy-vline
WA_RJHAMOTX_STR-RASTER sy-vline
WA_RJHAMOTX_STR-TMOT_KENNZ sy-vline
WA_RJHAMOTX_STR-TMOT_NR sy-vline
WA_RJHAMOTX_STR-TMOT_BEZUG sy-vline
WA_RJHAMOTX_STR-TMOT_LAGE sy-vline
WA_RJHAMOTX_STR-TMOT_KOMM sy-vline
WA_RJHAMOTX_STR-TMOT_UEBER sy-vline
WA_RJHAMOTX_STR-STICHW sy-vline
WA_RJHAMOTX_STR-PRODH sy-vline
WA_RJHAMOTX_STR-TEXTSPITZE sy-vline
WA_RJHAMOTX_STR-ABW_TELLND sy-vline
WA_RJHAMOTX_STR-ABW_TELVW sy-vline
WA_RJHAMOTX_STR-ABW_TEL sy-vline
WA_RJHAMOTX_STR-TELEF_ART sy-vline
WA_RJHAMOTX_STR-BILOZ_KOMM sy-vline
WA_RJHAMOTX_STR-XANSCHNITT sy-vline
WA_RJHAMOTX_STR-XUEBERBUND sy-vline
WA_RJHAMOTX_STR-XCOUPON sy-vline
WA_RJHAMOTX_STR-COUPON_KNZ sy-vline
WA_RJHAMOTX_STR-COUPON_LGE sy-vline
WA_RJHAMOTX_STR-KENNZIFFER sy-vline
WA_RJHAMOTX_STR-SUJET_NR sy-vline
WA_RJHAMOTX_STR-SERVICENR sy-vline
WA_RJHAMOTX_STR-MOTEXTINF1 sy-vline
WA_RJHAMOTX_STR-MOTEXTINF2 sy-vline
WA_RJHAMOTX_STR-MOTEXTINF3 sy-vline
WA_RJHAMOTX_STR-MOTEXTINF4 sy-vline
WA_RJHAMOTX_STR-XPRNOTW sy-vline
WA_RJHAMOTX_STR-XPRINHNOTW sy-vline
WA_RJHAMOTX_STR-XKUNK_NOTW sy-vline
WA_RJHAMOTX_STR-XMOTPROD sy-vline
WA_RJHAMOTX_STR-XDIFF_SIZE sy-vline
WA_RJHAMOTX_STR-MERKMAL0 sy-vline
WA_RJHAMOTX_STR-MERKMAL1 sy-vline
WA_RJHAMOTX_STR-MERKMAL2 sy-vline
WA_RJHAMOTX_STR-MERKMAL3 sy-vline
WA_RJHAMOTX_STR-MERKMAL4 sy-vline
WA_RJHAMOTX_STR-MERKMAL5 sy-vline
WA_RJHAMOTX_STR-MERKMAL6 sy-vline
WA_RJHAMOTX_STR-MERKMAL7 sy-vline
WA_RJHAMOTX_STR-MERKMAL8 sy-vline
WA_RJHAMOTX_STR-MERKMAL9 sy-vline
WA_RJHAMOTX_STR-STYLE sy-vline
WA_RJHAMOTX_STR-TEMPLATE sy-vline
WA_RJHAMOTX_STR-SORTWORD sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.