ABAP Select data from SAP table J_1GVL_MLCOL 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_1GVL_MLCOL 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_1GVL_MLCOL. 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_1GVL_MLCOL 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_1GVL_MLCOL TYPE STANDARD TABLE OF J_1GVL_MLCOL,
      WA_J_1GVL_MLCOL TYPE J_1GVL_MLCOL,
      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_1GVL_MLCOL> TYPE J_1GVL_MLCOL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM J_1GVL_MLCOL
*  INTO TABLE @DATA(IT_J_1GVL_MLCOL2).
*--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_1GVL_MLCOL INDEX 1 INTO DATA(WA_J_1GVL_MLCOL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_J_1GVL_MLCOL ASSIGNING <J_1GVL_MLCOL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<J_1GVL_MLCOL>-SPTAG = 1.
<J_1GVL_MLCOL>-WHBCODE = 1.
<J_1GVL_MLCOL>-MATNR = 1.
<J_1GVL_MLCOL>-BWTAR = 1.
<J_1GVL_MLCOL>-WERKS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_J_1GVL_MLCOL-VLWRK, sy-vline,
WA_J_1GVL_MLCOL-LOCAT, sy-vline,
WA_J_1GVL_MLCOL-ORGN, sy-vline,
WA_J_1GVL_MLCOL-TRACT, sy-vline,
WA_J_1GVL_MLCOL-BWART, sy-vline,
WA_J_1GVL_MLCOL-SOBKZ, sy-vline.
ENDLOOP. *Add any further fields from structure WA_J_1GVL_MLCOL 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_1GVL_MLCOL 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_1GVL_MLCOL INTO WA_J_1GVL_MLCOL. *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 MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-MATNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field UMMAT CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-UMMAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-UMMAT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLIS_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLIS_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLIS_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLRM_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLRM_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLRM_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLPD_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLPD_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLPD_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLPC_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLPC_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLPC_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLAE_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLAE_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLAE_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLEE_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLEE_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLEE_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLFS_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLFS_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLFS_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLPU_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLPU_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLPU_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLGR_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLGR_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLGR_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLOI_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLOI_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLOI_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLDI_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLDI_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLDI_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLOP_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLOP_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLOP_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLOE_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLOE_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLOE_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLDO_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLDO_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLDO_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLDF_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLDF_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLDF_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLCP_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLCP_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLCP_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLCO_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLCO_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLCO_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLSL_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLSL_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLSL_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLRV_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLRV_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLRV_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLSX_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLSX_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLSX_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLGP_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLGP_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLGP_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLTR_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLTR_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLTR_VA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VLLC_VA CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_J_1GVL_MLCOL-VLLC_VA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_J_1GVL_MLCOL-VLLC_VA.
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_1GVL_MLCOL_STR,
SPTAG TYPE STRING,
WHBCODE TYPE STRING,
MATNR TYPE STRING,
BWTAR TYPE STRING,
WERKS TYPE STRING,
VLWRK TYPE STRING,
LOCAT TYPE STRING,
ORGN TYPE STRING,
TRACT TYPE STRING,
BWART TYPE STRING,
SOBKZ TYPE STRING,
KZBEW TYPE STRING,
KZZUG TYPE STRING,
KZVBR TYPE STRING,
SHKZG TYPE STRING,
UMMAT TYPE STRING,
UMBAR TYPE STRING,
UMWRK TYPE STRING,
MENGE TYPE STRING,
VLIS_VA TYPE STRING,
VLRM_VA TYPE STRING,
VLPD_VA TYPE STRING,
VLPC_VA TYPE STRING,
VLAE_VA TYPE STRING,
VLEE_VA TYPE STRING,
VLFS_VA TYPE STRING,
VLPU_VA TYPE STRING,
VLGR_VA TYPE STRING,
VLOI_VA TYPE STRING,
VLDI_VA TYPE STRING,
VLOP_VA TYPE STRING,
VLOE_VA TYPE STRING,
VLDO_VA TYPE STRING,
VLDF_VA TYPE STRING,
VLCP_VA TYPE STRING,
VLCO_VA TYPE STRING,
VLSL_VA TYPE STRING,
VLRV_VA TYPE STRING,
VLSX_VA TYPE STRING,
VLGP_VA TYPE STRING,
VLTR_VA TYPE STRING,
VLLC_VA TYPE STRING,
CF01_VA TYPE STRING,
CF02_VA TYPE STRING,
CF03_VA TYPE STRING,
CF04_VA TYPE STRING,
CF05_VA TYPE STRING,
CF06_VA TYPE STRING,
CF07_VA TYPE STRING,
CF08_VA TYPE STRING,
CF09_VA TYPE STRING,
CF10_VA TYPE STRING,END OF T_EKKO_STR. DATA: WA_J_1GVL_MLCOL_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_1GVL_MLCOL_STR-SPTAG sy-vline
WA_J_1GVL_MLCOL_STR-WHBCODE sy-vline
WA_J_1GVL_MLCOL_STR-MATNR sy-vline
WA_J_1GVL_MLCOL_STR-BWTAR sy-vline
WA_J_1GVL_MLCOL_STR-WERKS sy-vline
WA_J_1GVL_MLCOL_STR-VLWRK sy-vline
WA_J_1GVL_MLCOL_STR-LOCAT sy-vline
WA_J_1GVL_MLCOL_STR-ORGN sy-vline
WA_J_1GVL_MLCOL_STR-TRACT sy-vline
WA_J_1GVL_MLCOL_STR-BWART sy-vline
WA_J_1GVL_MLCOL_STR-SOBKZ sy-vline
WA_J_1GVL_MLCOL_STR-KZBEW sy-vline
WA_J_1GVL_MLCOL_STR-KZZUG sy-vline
WA_J_1GVL_MLCOL_STR-KZVBR sy-vline
WA_J_1GVL_MLCOL_STR-SHKZG sy-vline
WA_J_1GVL_MLCOL_STR-UMMAT sy-vline
WA_J_1GVL_MLCOL_STR-UMBAR sy-vline
WA_J_1GVL_MLCOL_STR-UMWRK sy-vline
WA_J_1GVL_MLCOL_STR-MENGE sy-vline
WA_J_1GVL_MLCOL_STR-VLIS_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLRM_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLPD_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLPC_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLAE_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLEE_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLFS_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLPU_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLGR_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLOI_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLDI_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLOP_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLOE_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLDO_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLDF_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLCP_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLCO_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLSL_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLRV_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLSX_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLGP_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLTR_VA sy-vline
WA_J_1GVL_MLCOL_STR-VLLC_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF01_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF02_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF03_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF04_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF05_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF06_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF07_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF08_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF09_VA sy-vline
WA_J_1GVL_MLCOL_STR-CF10_VA sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.