ABAP Select data from SAP table J_1GAMREF 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 J_1GAMREF 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 J_1GAMREF. 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 J_1GAMREF 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_J_1GAMREF TYPE STANDARD TABLE OF J_1GAMREF,
      WA_J_1GAMREF TYPE J_1GAMREF,
      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: <J_1GAMREF> TYPE J_1GAMREF.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM J_1GAMREF
*  INTO TABLE @DATA(IT_J_1GAMREF2).
*--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_J_1GAMREF INDEX 1 INTO DATA(WA_J_1GAMREF2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_J_1GAMREF ASSIGNING <J_1GAMREF>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<J_1GAMREF>-KTOGR = 1.
<J_1GAMREF>-GRPL2 = 1.
<J_1GAMREF>-GRPL3 = 1.
<J_1GAMREF>-ANLN1 = 1.
<J_1GAMREF>-ANLN2 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_J_1GAMREF-TXT50, sy-vline,
WA_J_1GAMREF-TXA50, sy-vline,
WA_J_1GAMREF-AKTIV, sy-vline,
WA_J_1GAMREF-DEAKT, sy-vline,
WA_J_1GAMREF-SERNR, sy-vline,
WA_J_1GAMREF-LIFNR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_J_1GAMREF 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_J_1GAMREF 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_J_1GAMREF INTO WA_J_1GAMREF. *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 KTOGR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_J_1GAMREF-KTOGR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-KTOGR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit GERNR, internal->external for field SERNR CALL FUNCTION 'CONVERSION_EXIT_GERNR_OUTPUT' EXPORTING input = WA_J_1GAMREF-SERNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-SERNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit AC132, internal->external for field ANSWL CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-ANSWL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-ANSWL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field ANSWLP CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-ANSWLP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-ANSWLP.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field ANSWLM CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-ANSWLM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-ANSWLM.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field GJA_KANSW CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-GJA_KANSW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-GJA_KANSW.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field GJE_AUFW CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-GJE_AUFW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-GJE_AUFW.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field GJE_BCHWRT CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-GJE_BCHWRT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-GJE_BCHWRT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field GJE_BWGWB CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-GJE_BWGWB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-GJE_BWGWB.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field GJE_ZUSCHR CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-GJE_ZUSCHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-GJE_ZUSCHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field KAUFN CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-KAUFN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-KAUFN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field KAUFW CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-KAUFW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-KAUFW.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field KNAFA CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-KNAFA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-KNAFA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field KSAFA CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-KSAFA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-KSAFA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field SAFAP CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-SAFAP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-SAFAP.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field NAFAP CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-NAFAP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-NAFAP.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field AUFNP CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-AUFNP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-AUFNP.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field T_KNAF CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_J_1GAMREF-T_KNAF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GAMREF-T_KNAF.
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_J_1GAMREF_STR,
KTOGR TYPE STRING,
GRPL2 TYPE STRING,
GRPL3 TYPE STRING,
ANLN1 TYPE STRING,
ANLN2 TYPE STRING,
TXT50 TYPE STRING,
TXA50 TYPE STRING,
AKTIV TYPE STRING,
DEAKT TYPE STRING,
SERNR TYPE STRING,
LIFNR TYPE STRING,
LIEFE TYPE STRING,
ORD41 TYPE STRING,
ORD42 TYPE STRING,
ORD43 TYPE STRING,
ORD44 TYPE STRING,
ORDT1 TYPE STRING,
ORDT2 TYPE STRING,
ORDTX TYPE STRING,
ORDT4 TYPE STRING,
KTNAFG TYPE STRING,
KOSTL TYPE STRING,
MEINS TYPE STRING,
TYPBZ TYPE STRING,
WERKS TYPE STRING,
STORT TYPE STRING,
KTEXT TYPE STRING,
NDJAR TYPE STRING,
NDPER TYPE STRING,
AFABG TYPE STRING,
AFPROZ TYPE STRING,
DIAS_ADR TYPE STRING,
BELNR TYPE STRING,
XBLNR TYPE STRING,
INV_TAB TYPE STRING,
MENGE TYPE STRING,
ANSWL TYPE STRING,
ANSWLP TYPE STRING,
ANSWLM TYPE STRING,
GJA_KANSW TYPE STRING,
GJE_AUFW TYPE STRING,
GJE_BCHWRT TYPE STRING,
GJE_BWGWB TYPE STRING,
GJE_ZUSCHR TYPE STRING,
KAUFN TYPE STRING,
KAUFW TYPE STRING,
KNAFA TYPE STRING,
KSAFA TYPE STRING,
SAFAP TYPE STRING,
NAFAP TYPE STRING,
AUFNP TYPE STRING,
T_KNAF TYPE STRING,
XINVM TYPE STRING,
XOPVW TYPE STRING,END OF T_EKKO_STR. DATA: WA_J_1GAMREF_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_J_1GAMREF_STR-KTOGR sy-vline
WA_J_1GAMREF_STR-GRPL2 sy-vline
WA_J_1GAMREF_STR-GRPL3 sy-vline
WA_J_1GAMREF_STR-ANLN1 sy-vline
WA_J_1GAMREF_STR-ANLN2 sy-vline
WA_J_1GAMREF_STR-TXT50 sy-vline
WA_J_1GAMREF_STR-TXA50 sy-vline
WA_J_1GAMREF_STR-AKTIV sy-vline
WA_J_1GAMREF_STR-DEAKT sy-vline
WA_J_1GAMREF_STR-SERNR sy-vline
WA_J_1GAMREF_STR-LIFNR sy-vline
WA_J_1GAMREF_STR-LIEFE sy-vline
WA_J_1GAMREF_STR-ORD41 sy-vline
WA_J_1GAMREF_STR-ORD42 sy-vline
WA_J_1GAMREF_STR-ORD43 sy-vline
WA_J_1GAMREF_STR-ORD44 sy-vline
WA_J_1GAMREF_STR-ORDT1 sy-vline
WA_J_1GAMREF_STR-ORDT2 sy-vline
WA_J_1GAMREF_STR-ORDTX sy-vline
WA_J_1GAMREF_STR-ORDT4 sy-vline
WA_J_1GAMREF_STR-KTNAFG sy-vline
WA_J_1GAMREF_STR-KOSTL sy-vline
WA_J_1GAMREF_STR-MEINS sy-vline
WA_J_1GAMREF_STR-TYPBZ sy-vline
WA_J_1GAMREF_STR-WERKS sy-vline
WA_J_1GAMREF_STR-STORT sy-vline
WA_J_1GAMREF_STR-KTEXT sy-vline
WA_J_1GAMREF_STR-NDJAR sy-vline
WA_J_1GAMREF_STR-NDPER sy-vline
WA_J_1GAMREF_STR-AFABG sy-vline
WA_J_1GAMREF_STR-AFPROZ sy-vline
WA_J_1GAMREF_STR-DIAS_ADR sy-vline
WA_J_1GAMREF_STR-BELNR sy-vline
WA_J_1GAMREF_STR-XBLNR sy-vline
WA_J_1GAMREF_STR-INV_TAB sy-vline
WA_J_1GAMREF_STR-MENGE sy-vline
WA_J_1GAMREF_STR-ANSWL sy-vline
WA_J_1GAMREF_STR-ANSWLP sy-vline
WA_J_1GAMREF_STR-ANSWLM sy-vline
WA_J_1GAMREF_STR-GJA_KANSW sy-vline
WA_J_1GAMREF_STR-GJE_AUFW sy-vline
WA_J_1GAMREF_STR-GJE_BCHWRT sy-vline
WA_J_1GAMREF_STR-GJE_BWGWB sy-vline
WA_J_1GAMREF_STR-GJE_ZUSCHR sy-vline
WA_J_1GAMREF_STR-KAUFN sy-vline
WA_J_1GAMREF_STR-KAUFW sy-vline
WA_J_1GAMREF_STR-KNAFA sy-vline
WA_J_1GAMREF_STR-KSAFA sy-vline
WA_J_1GAMREF_STR-SAFAP sy-vline
WA_J_1GAMREF_STR-NAFAP sy-vline
WA_J_1GAMREF_STR-AUFNP sy-vline
WA_J_1GAMREF_STR-T_KNAF sy-vline
WA_J_1GAMREF_STR-XINVM sy-vline
WA_J_1GAMREF_STR-XOPVW sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.