ABAP Select data from SAP table LVC_S_VARI 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 LVC_S_VARI 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 LVC_S_VARI. 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 LVC_S_VARI 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_LVC_S_VARI TYPE STANDARD TABLE OF LVC_S_VARI,
      WA_LVC_S_VARI TYPE LVC_S_VARI,
      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: <LVC_S_VARI> TYPE LVC_S_VARI.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM LVC_S_VARI
*  INTO TABLE @DATA(IT_LVC_S_VARI2).
*--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_LVC_S_VARI INDEX 1 INTO DATA(WA_LVC_S_VARI2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_LVC_S_VARI ASSIGNING <LVC_S_VARI>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<LVC_S_VARI>-S_VARI = 1.
<LVC_S_VARI>-RELID = 1.
<LVC_S_VARI>-REPORT = 1.
<LVC_S_VARI>-HANDLE = 1.
<LVC_S_VARI>-LOG_GROUP = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_LVC_S_VARI-USERNAME, sy-vline,
WA_LVC_S_VARI-VARIANT, sy-vline,
WA_LVC_S_VARI-TYPE, sy-vline,
WA_LVC_S_VARI-TEXT, sy-vline,
WA_LVC_S_VARI-VERSION, sy-vline,
WA_LVC_S_VARI-ERFDAT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_LVC_S_VARI 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_LVC_S_VARI 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_LVC_S_VARI INTO WA_LVC_S_VARI. *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 ISOLA, internal->external for field LANGUAGE CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_LVC_S_VARI-LANGUAGE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LVC_S_VARI-LANGUAGE.
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_LVC_S_VARI_STR,
S_VARI TYPE STRING,
RELID TYPE STRING,
REPORT TYPE STRING,
HANDLE TYPE STRING,
LOG_GROUP TYPE STRING,
USERNAME TYPE STRING,
VARIANT TYPE STRING,
TYPE TYPE STRING,
TEXT TYPE STRING,
VERSION TYPE STRING,
ERFDAT TYPE STRING,
ERFTIME TYPE STRING,
ERFNAME TYPE STRING,
AEDAT TYPE STRING,
AETIME TYPE STRING,
AENAME TYPE STRING,
DEPENDVARS TYPE STRING,
DEFAULTVAR TYPE STRING,
INACTIVE TYPE STRING,
S_LAYO TYPE STRING,
ZEBRA TYPE STRING,
EDIT TYPE STRING,
EDIT_MODE TYPE STRING,
NO_KEYFIX TYPE STRING,
FRONTEND TYPE STRING,
OBJECT_KEY TYPE STRING,
DOC_ID TYPE STRING,
TEMPLATE TYPE STRING,
LANGUAGE TYPE STRING,
GRAPHICS TYPE STRING,
SMALLTITLE TYPE STRING,
NO_HGRIDLN TYPE STRING,
NO_VGRIDLN TYPE STRING,
NO_HEADERS TYPE STRING,
NO_MERGING TYPE STRING,
CWIDTH_OPT TYPE STRING,
TOTALS_BEF TYPE STRING,
NO_TOTARR TYPE STRING,
NO_TOTEXP TYPE STRING,
NO_ROWMOVE TYPE STRING,
NO_ROWINS TYPE STRING,
NO_COLEXPD TYPE STRING,
NO_F4 TYPE STRING,
COUNTFNAME TYPE STRING,
COL_OPT TYPE STRING,
VAL_DATA TYPE STRING,
BLOB_SCOPE TYPE STRING,
BLOB_FLAVOUR TYPE STRING,
BLOB_NAME TYPE STRING,
BLOB_KEY TYPE STRING,
BLOB_TYPE TYPE STRING,
STYLEFNAME TYPE STRING,
NO_ROWMARK TYPE STRING,
NO_TOOLBAR TYPE STRING,
GRID_TITLE TYPE STRING,
SEL_MODE TYPE STRING,
BOX_FNAME TYPE STRING,
SGL_CLK_HD TYPE STRING,
NO_TOTLINE TYPE STRING,
NUMC_TOTAL TYPE STRING,
NO_UTSPLIT TYPE STRING,
EXCP_FNAME TYPE STRING,
EXCP_ROLLN TYPE STRING,
EXCP_CONDS TYPE STRING,
EXCP_LED TYPE STRING,
EXCP_GROUP TYPE STRING,
DETAILINIT TYPE STRING,
DETAILTITL TYPE STRING,
KEYHOT TYPE STRING,
NO_AUTHOR TYPE STRING,
XIFUNCKEY TYPE STRING,
XIDIRECT TYPE STRING,
S_DRAGDROP TYPE STRING,
CNTR_DDID TYPE STRING,
GRID_DDID TYPE STRING,
COL_DDID TYPE STRING,
ROW_DDID TYPE STRING,
FIELDNAME TYPE STRING,
INFO_FNAME TYPE STRING,
CTAB_FNAME TYPE STRING,
WEBLOOK TYPE STRING,
WEBSTYLE TYPE STRING,
WEBROWS TYPE STRING,
WEBXWIDTH TYPE STRING,
WEBXHEIGHT TYPE STRING,
T_FCAT TYPE STRING,
T_SORT TYPE STRING,
T_FILT TYPE STRING,END OF T_EKKO_STR. DATA: WA_LVC_S_VARI_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_LVC_S_VARI_STR-S_VARI sy-vline
WA_LVC_S_VARI_STR-RELID sy-vline
WA_LVC_S_VARI_STR-REPORT sy-vline
WA_LVC_S_VARI_STR-HANDLE sy-vline
WA_LVC_S_VARI_STR-LOG_GROUP sy-vline
WA_LVC_S_VARI_STR-USERNAME sy-vline
WA_LVC_S_VARI_STR-VARIANT sy-vline
WA_LVC_S_VARI_STR-TYPE sy-vline
WA_LVC_S_VARI_STR-TEXT sy-vline
WA_LVC_S_VARI_STR-VERSION sy-vline
WA_LVC_S_VARI_STR-ERFDAT sy-vline
WA_LVC_S_VARI_STR-ERFTIME sy-vline
WA_LVC_S_VARI_STR-ERFNAME sy-vline
WA_LVC_S_VARI_STR-AEDAT sy-vline
WA_LVC_S_VARI_STR-AETIME sy-vline
WA_LVC_S_VARI_STR-AENAME sy-vline
WA_LVC_S_VARI_STR-DEPENDVARS sy-vline
WA_LVC_S_VARI_STR-DEFAULTVAR sy-vline
WA_LVC_S_VARI_STR-INACTIVE sy-vline
WA_LVC_S_VARI_STR-S_LAYO sy-vline
WA_LVC_S_VARI_STR-ZEBRA sy-vline
WA_LVC_S_VARI_STR-EDIT sy-vline
WA_LVC_S_VARI_STR-EDIT_MODE sy-vline
WA_LVC_S_VARI_STR-NO_KEYFIX sy-vline
WA_LVC_S_VARI_STR-FRONTEND sy-vline
WA_LVC_S_VARI_STR-OBJECT_KEY sy-vline
WA_LVC_S_VARI_STR-DOC_ID sy-vline
WA_LVC_S_VARI_STR-TEMPLATE sy-vline
WA_LVC_S_VARI_STR-LANGUAGE sy-vline
WA_LVC_S_VARI_STR-GRAPHICS sy-vline
WA_LVC_S_VARI_STR-SMALLTITLE sy-vline
WA_LVC_S_VARI_STR-NO_HGRIDLN sy-vline
WA_LVC_S_VARI_STR-NO_VGRIDLN sy-vline
WA_LVC_S_VARI_STR-NO_HEADERS sy-vline
WA_LVC_S_VARI_STR-NO_MERGING sy-vline
WA_LVC_S_VARI_STR-CWIDTH_OPT sy-vline
WA_LVC_S_VARI_STR-TOTALS_BEF sy-vline
WA_LVC_S_VARI_STR-NO_TOTARR sy-vline
WA_LVC_S_VARI_STR-NO_TOTEXP sy-vline
WA_LVC_S_VARI_STR-NO_ROWMOVE sy-vline
WA_LVC_S_VARI_STR-NO_ROWINS sy-vline
WA_LVC_S_VARI_STR-NO_COLEXPD sy-vline
WA_LVC_S_VARI_STR-NO_F4 sy-vline
WA_LVC_S_VARI_STR-COUNTFNAME sy-vline
WA_LVC_S_VARI_STR-COL_OPT sy-vline
WA_LVC_S_VARI_STR-VAL_DATA sy-vline
WA_LVC_S_VARI_STR-BLOB_SCOPE sy-vline
WA_LVC_S_VARI_STR-BLOB_FLAVOUR sy-vline
WA_LVC_S_VARI_STR-BLOB_NAME sy-vline
WA_LVC_S_VARI_STR-BLOB_KEY sy-vline
WA_LVC_S_VARI_STR-BLOB_TYPE sy-vline
WA_LVC_S_VARI_STR-STYLEFNAME sy-vline
WA_LVC_S_VARI_STR-NO_ROWMARK sy-vline
WA_LVC_S_VARI_STR-NO_TOOLBAR sy-vline
WA_LVC_S_VARI_STR-GRID_TITLE sy-vline
WA_LVC_S_VARI_STR-SEL_MODE sy-vline
WA_LVC_S_VARI_STR-BOX_FNAME sy-vline
WA_LVC_S_VARI_STR-SGL_CLK_HD sy-vline
WA_LVC_S_VARI_STR-NO_TOTLINE sy-vline
WA_LVC_S_VARI_STR-NUMC_TOTAL sy-vline
WA_LVC_S_VARI_STR-NO_UTSPLIT sy-vline
WA_LVC_S_VARI_STR-EXCP_FNAME sy-vline
WA_LVC_S_VARI_STR-EXCP_ROLLN sy-vline
WA_LVC_S_VARI_STR-EXCP_CONDS sy-vline
WA_LVC_S_VARI_STR-EXCP_LED sy-vline
WA_LVC_S_VARI_STR-EXCP_GROUP sy-vline
WA_LVC_S_VARI_STR-DETAILINIT sy-vline
WA_LVC_S_VARI_STR-DETAILTITL sy-vline
WA_LVC_S_VARI_STR-KEYHOT sy-vline
WA_LVC_S_VARI_STR-NO_AUTHOR sy-vline
WA_LVC_S_VARI_STR-XIFUNCKEY sy-vline
WA_LVC_S_VARI_STR-XIDIRECT sy-vline
WA_LVC_S_VARI_STR-S_DRAGDROP sy-vline
WA_LVC_S_VARI_STR-CNTR_DDID sy-vline
WA_LVC_S_VARI_STR-GRID_DDID sy-vline
WA_LVC_S_VARI_STR-COL_DDID sy-vline
WA_LVC_S_VARI_STR-ROW_DDID sy-vline
WA_LVC_S_VARI_STR-FIELDNAME sy-vline
WA_LVC_S_VARI_STR-INFO_FNAME sy-vline
WA_LVC_S_VARI_STR-CTAB_FNAME sy-vline
WA_LVC_S_VARI_STR-WEBLOOK sy-vline
WA_LVC_S_VARI_STR-WEBSTYLE sy-vline
WA_LVC_S_VARI_STR-WEBROWS sy-vline
WA_LVC_S_VARI_STR-WEBXWIDTH sy-vline
WA_LVC_S_VARI_STR-WEBXHEIGHT sy-vline
WA_LVC_S_VARI_STR-T_FCAT sy-vline
WA_LVC_S_VARI_STR-T_SORT sy-vline
WA_LVC_S_VARI_STR-T_FILT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.