ABAP Select data from SAP table FC06GWHLST 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 FC06GWHLST 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 FC06GWHLST. 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 FC06GWHLST 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_FC06GWHLST TYPE STANDARD TABLE OF FC06GWHLST,
      WA_FC06GWHLST TYPE FC06GWHLST,
      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: <FC06GWHLST> TYPE FC06GWHLST.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM FC06GWHLST
*  INTO TABLE @DATA(IT_FC06GWHLST2).
*--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_FC06GWHLST INDEX 1 INTO DATA(WA_FC06GWHLST2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_FC06GWHLST ASSIGNING <FC06GWHLST>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<FC06GWHLST>-GWAVS = 1.
<FC06GWHLST>-BUNIT = 1.
<FC06GWHLST>-BUTXT = 1.
<FC06GWHLST>-COICU = 1.
<FC06GWHLST>-COTXT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_FC06GWHLST-BUPTR, sy-vline,
WA_FC06GWHLST-COIAC, sy-vline,
WA_FC06GWHLST-COIACTXT, sy-vline,
WA_FC06GWHLST-COINR, sy-vline,
WA_FC06GWHLST-AYEAR, sy-vline,
WA_FC06GWHLST-APERI, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FC06GWHLST 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_FC06GWHLST 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_FC06GWHLST INTO WA_FC06GWHLST. *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 GWAVS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FC06GWHLST-GWAVS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-GWAVS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AFIMC, internal->external for field BUNIT CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC06GWHLST-BUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-BUNIT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AFIMC, internal->external for field COICU CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC06GWHLST-COICU IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-COICU.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AFIMC, internal->external for field BUPTR CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC06GWHLST-BUPTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-BUPTR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit AC172, internal->external for field ABEGPYLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-ABEGPYLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-ABEGPYLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field ABEGPYGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-ABEGPYGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-ABEGPYGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field ATADGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-ATADGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-ATADGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field ABEGCYLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-ABEGCYLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-ABEGCYLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field ABEGCYGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-ABEGCYGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-ABEGCYGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field AACQLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-AACQLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-AACQLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field AACQGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-AACQGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-AACQGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field AACQTADGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-AACQTADGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-AACQTADGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field ADIVLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-ADIVLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-ADIVLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field ADIVGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-ADIVGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-ADIVGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field ADIVTADGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-ADIVTADGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-ADIVTADGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field AENDCYLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-AENDCYLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-AENDCYLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field AENDCYGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-AENDCYGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-AENDCYGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VBEGPYLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VBEGPYLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VBEGPYLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VBEGPYGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VBEGPYGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VBEGPYGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VTADGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VTADGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VTADGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VBEGCYLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VBEGCYLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VBEGCYLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VBEGCYGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VBEGCYGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VBEGCYGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VVALISLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VVALISLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VVALISLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VVALISGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VVALISGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VVALISGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VVALTADBSISGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VVALTADBSISGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VVALTADBSISGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VDIVISCYLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VDIVISCYLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VDIVISCYLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VDIVISCYGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VDIVISCYGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VDIVISCYGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VDIVISPYLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VDIVISPYLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VDIVISPYLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VDIVISPYGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VDIVISPYGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VDIVISPYGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VDIVTADBSISGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VDIVTADBSISGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VDIVTADBSISGC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VENDCYLC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VENDCYLC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VENDCYLC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VENDCYGC CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC06GWHLST-VENDCYGC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC06GWHLST-VENDCYGC.
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_FC06GWHLST_STR,
GWAVS TYPE STRING,
BUNIT TYPE STRING,
BUTXT TYPE STRING,
COICU TYPE STRING,
COTXT TYPE STRING,
BUPTR TYPE STRING,
COIAC TYPE STRING,
COIACTXT TYPE STRING,
COINR TYPE STRING,
AYEAR TYPE STRING,
APERI TYPE STRING,
CYEAR TYPE STRING,
CPERI TYPE STRING,
PGFLG TYPE STRING,
SEQNR TYPE STRING,
MLFLG TYPE STRING,
NGFLG TYPE STRING,
LCGWFLG TYPE STRING,
TIMESLOT TYPE STRING,
TIMESLOTTXT TYPE STRING,
LCKEYIE TYPE STRING,
ABEGPYLC TYPE STRING,
ABEGPYGC TYPE STRING,
ATADGC TYPE STRING,
ABEGCYLC TYPE STRING,
ABEGCYGC TYPE STRING,
AACQLC TYPE STRING,
AACQGC TYPE STRING,
AACQTADGC TYPE STRING,
ADIVLC TYPE STRING,
ADIVGC TYPE STRING,
ADIVTADGC TYPE STRING,
AENDCYLC TYPE STRING,
AENDCYGC TYPE STRING,
VBEGPYLC TYPE STRING,
VBEGPYGC TYPE STRING,
VTADGC TYPE STRING,
VBEGCYLC TYPE STRING,
VBEGCYGC TYPE STRING,
VVALISLC TYPE STRING,
VVALISGC TYPE STRING,
VVALTADBSISGC TYPE STRING,
VDIVISCYLC TYPE STRING,
VDIVISCYGC TYPE STRING,
VDIVISPYLC TYPE STRING,
VDIVISPYGC TYPE STRING,
VDIVTADBSISGC TYPE STRING,
VENDCYLC TYPE STRING,
VENDCYGC TYPE STRING,
GWPROC TYPE STRING,END OF T_EKKO_STR. DATA: WA_FC06GWHLST_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_FC06GWHLST_STR-GWAVS sy-vline
WA_FC06GWHLST_STR-BUNIT sy-vline
WA_FC06GWHLST_STR-BUTXT sy-vline
WA_FC06GWHLST_STR-COICU sy-vline
WA_FC06GWHLST_STR-COTXT sy-vline
WA_FC06GWHLST_STR-BUPTR sy-vline
WA_FC06GWHLST_STR-COIAC sy-vline
WA_FC06GWHLST_STR-COIACTXT sy-vline
WA_FC06GWHLST_STR-COINR sy-vline
WA_FC06GWHLST_STR-AYEAR sy-vline
WA_FC06GWHLST_STR-APERI sy-vline
WA_FC06GWHLST_STR-CYEAR sy-vline
WA_FC06GWHLST_STR-CPERI sy-vline
WA_FC06GWHLST_STR-PGFLG sy-vline
WA_FC06GWHLST_STR-SEQNR sy-vline
WA_FC06GWHLST_STR-MLFLG sy-vline
WA_FC06GWHLST_STR-NGFLG sy-vline
WA_FC06GWHLST_STR-LCGWFLG sy-vline
WA_FC06GWHLST_STR-TIMESLOT sy-vline
WA_FC06GWHLST_STR-TIMESLOTTXT sy-vline
WA_FC06GWHLST_STR-LCKEYIE sy-vline
WA_FC06GWHLST_STR-ABEGPYLC sy-vline
WA_FC06GWHLST_STR-ABEGPYGC sy-vline
WA_FC06GWHLST_STR-ATADGC sy-vline
WA_FC06GWHLST_STR-ABEGCYLC sy-vline
WA_FC06GWHLST_STR-ABEGCYGC sy-vline
WA_FC06GWHLST_STR-AACQLC sy-vline
WA_FC06GWHLST_STR-AACQGC sy-vline
WA_FC06GWHLST_STR-AACQTADGC sy-vline
WA_FC06GWHLST_STR-ADIVLC sy-vline
WA_FC06GWHLST_STR-ADIVGC sy-vline
WA_FC06GWHLST_STR-ADIVTADGC sy-vline
WA_FC06GWHLST_STR-AENDCYLC sy-vline
WA_FC06GWHLST_STR-AENDCYGC sy-vline
WA_FC06GWHLST_STR-VBEGPYLC sy-vline
WA_FC06GWHLST_STR-VBEGPYGC sy-vline
WA_FC06GWHLST_STR-VTADGC sy-vline
WA_FC06GWHLST_STR-VBEGCYLC sy-vline
WA_FC06GWHLST_STR-VBEGCYGC sy-vline
WA_FC06GWHLST_STR-VVALISLC sy-vline
WA_FC06GWHLST_STR-VVALISGC sy-vline
WA_FC06GWHLST_STR-VVALTADBSISGC sy-vline
WA_FC06GWHLST_STR-VDIVISCYLC sy-vline
WA_FC06GWHLST_STR-VDIVISCYGC sy-vline
WA_FC06GWHLST_STR-VDIVISPYLC sy-vline
WA_FC06GWHLST_STR-VDIVISPYGC sy-vline
WA_FC06GWHLST_STR-VDIVTADBSISGC sy-vline
WA_FC06GWHLST_STR-VENDCYLC sy-vline
WA_FC06GWHLST_STR-VENDCYGC sy-vline
WA_FC06GWHLST_STR-GWPROC sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.