ABAP Select data from SAP table VISCRIPT 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 VISCRIPT 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 VISCRIPT. 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 VISCRIPT 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_VISCRIPT TYPE STANDARD TABLE OF VISCRIPT,
      WA_VISCRIPT TYPE VISCRIPT,
      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: <VISCRIPT> TYPE VISCRIPT.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VISCRIPT
*  INTO TABLE @DATA(IT_VISCRIPT2).
*--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_VISCRIPT INDEX 1 INTO DATA(WA_VISCRIPT2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VISCRIPT ASSIGNING <VISCRIPT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VISCRIPT>-ANRED_MIET = 1.
<VISCRIPT>-NAME1_MIET = 1.
<VISCRIPT>-STRAS_MIET = 1.
<VISCRIPT>-LAND1_MIET = 1.
<VISCRIPT>-PSTLZ_MIET = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VISCRIPT-ORT01_MIET, sy-vline,
WA_VISCRIPT-RETURNDATE, sy-vline,
WA_VISCRIPT-KAUTARTTXT, sy-vline,
WA_VISCRIPT-ZAHLWTXT, sy-vline,
WA_VISCRIPT-ERHBTR, sy-vline,
WA_VISCRIPT-DRUCKDTM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VISCRIPT 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_VISCRIPT 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_VISCRIPT INTO WA_VISCRIPT. *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 GJAHR, internal->external for field ZFBJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_VISCRIPT-ZFBJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VISCRIPT-ZFBJAHR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ISOLA, internal->external for field SPRSLRCP CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_VISCRIPT-SPRSLRCP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VISCRIPT-SPRSLRCP.
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_VISCRIPT_STR,
ANRED_MIET TYPE STRING,
NAME1_MIET TYPE STRING,
STRAS_MIET TYPE STRING,
LAND1_MIET TYPE STRING,
PSTLZ_MIET TYPE STRING,
ORT01_MIET TYPE STRING,
RETURNDATE TYPE STRING,
KAUTARTTXT TYPE STRING,
ZAHLWTXT TYPE STRING,
ERHBTR TYPE STRING,
DRUCKDTM TYPE STRING,
ZAHLWEGTXT TYPE STRING,
RPROMHG TYPE STRING,
WAERS TYPE STRING,
ISOCD TYPE STRING,
MGKZIFFER TYPE STRING,
MIETJAHRE TYPE STRING,
OPTJAHRE TYPE STRING,
ZFBMONAT TYPE STRING,
ZFBJAHR TYPE STRING,
BTKLNULL TYPE STRING,
RCHNNG TYPE STRING,
BINDDIFF TYPE STRING,
OPTRDJ TYPE STRING,
CNT_MV TYPE STRING,
DGKUE TYPE STRING,
MZST TYPE STRING,
LTTRDATE TYPE STRING,
KUNNR TYPE STRING,
JKBLL TYPE STRING,
JKOBLLST TYPE STRING,
JSGTXT TYPE STRING,
SPRSLRCP TYPE STRING,
BSALDO TYPE STRING,
HWAERS TYPE STRING,
BSALDOH TYPE STRING,
KOBLBEG TYPE STRING,
KOBLEND TYPE STRING,
JOPVORH TYPE STRING,
JAPVORH TYPE STRING,
JKOBLMHN TYPE STRING,
IHPZS TYPE STRING,
IHPZSALT TYPE STRING,
ITEUR TYPE STRING,
ITEURALT TYPE STRING,
JWBNLHD TYPE STRING,
JWBNLMML TYPE STRING,
JWBNLSUM TYPE STRING,
JWBNLRA TYPE STRING,
JKUENDCH TYPE STRING,
JREPETPR TYPE STRING,
DERSTDRUCK TYPE STRING,
DMELD01V TYPE STRING,
DMELD01B TYPE STRING,
DGULTAB TYPE STRING,
DGULTBIS TYPE STRING,
DOPVON TYPE STRING,
DOPBIS TYPE STRING,
DAPVON TYPE STRING,
DAPBIS TYPE STRING,
SWHRKNDCUK TYPE STRING,
XKWHRKCUK TYPE STRING,
XLWHRKCUK TYPE STRING,
DEXCHCUK TYPE STRING,
DINVFROM TYPE STRING,
DINVTO TYPE STRING,
JFLATRATE TYPE STRING,
JDONT_ARCH TYPE STRING,
DDATE TYPE STRING,END OF T_EKKO_STR. DATA: WA_VISCRIPT_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_VISCRIPT_STR-ANRED_MIET sy-vline
WA_VISCRIPT_STR-NAME1_MIET sy-vline
WA_VISCRIPT_STR-STRAS_MIET sy-vline
WA_VISCRIPT_STR-LAND1_MIET sy-vline
WA_VISCRIPT_STR-PSTLZ_MIET sy-vline
WA_VISCRIPT_STR-ORT01_MIET sy-vline
WA_VISCRIPT_STR-RETURNDATE sy-vline
WA_VISCRIPT_STR-KAUTARTTXT sy-vline
WA_VISCRIPT_STR-ZAHLWTXT sy-vline
WA_VISCRIPT_STR-ERHBTR sy-vline
WA_VISCRIPT_STR-DRUCKDTM sy-vline
WA_VISCRIPT_STR-ZAHLWEGTXT sy-vline
WA_VISCRIPT_STR-RPROMHG sy-vline
WA_VISCRIPT_STR-WAERS sy-vline
WA_VISCRIPT_STR-ISOCD sy-vline
WA_VISCRIPT_STR-MGKZIFFER sy-vline
WA_VISCRIPT_STR-MIETJAHRE sy-vline
WA_VISCRIPT_STR-OPTJAHRE sy-vline
WA_VISCRIPT_STR-ZFBMONAT sy-vline
WA_VISCRIPT_STR-ZFBJAHR sy-vline
WA_VISCRIPT_STR-BTKLNULL sy-vline
WA_VISCRIPT_STR-RCHNNG sy-vline
WA_VISCRIPT_STR-BINDDIFF sy-vline
WA_VISCRIPT_STR-OPTRDJ sy-vline
WA_VISCRIPT_STR-CNT_MV sy-vline
WA_VISCRIPT_STR-DGKUE sy-vline
WA_VISCRIPT_STR-MZST sy-vline
WA_VISCRIPT_STR-LTTRDATE sy-vline
WA_VISCRIPT_STR-KUNNR sy-vline
WA_VISCRIPT_STR-JKBLL sy-vline
WA_VISCRIPT_STR-JKOBLLST sy-vline
WA_VISCRIPT_STR-JSGTXT sy-vline
WA_VISCRIPT_STR-SPRSLRCP sy-vline
WA_VISCRIPT_STR-BSALDO sy-vline
WA_VISCRIPT_STR-HWAERS sy-vline
WA_VISCRIPT_STR-BSALDOH sy-vline
WA_VISCRIPT_STR-KOBLBEG sy-vline
WA_VISCRIPT_STR-KOBLEND sy-vline
WA_VISCRIPT_STR-JOPVORH sy-vline
WA_VISCRIPT_STR-JAPVORH sy-vline
WA_VISCRIPT_STR-JKOBLMHN sy-vline
WA_VISCRIPT_STR-IHPZS sy-vline
WA_VISCRIPT_STR-IHPZSALT sy-vline
WA_VISCRIPT_STR-ITEUR sy-vline
WA_VISCRIPT_STR-ITEURALT sy-vline
WA_VISCRIPT_STR-JWBNLHD sy-vline
WA_VISCRIPT_STR-JWBNLMML sy-vline
WA_VISCRIPT_STR-JWBNLSUM sy-vline
WA_VISCRIPT_STR-JWBNLRA sy-vline
WA_VISCRIPT_STR-JKUENDCH sy-vline
WA_VISCRIPT_STR-JREPETPR sy-vline
WA_VISCRIPT_STR-DERSTDRUCK sy-vline
WA_VISCRIPT_STR-DMELD01V sy-vline
WA_VISCRIPT_STR-DMELD01B sy-vline
WA_VISCRIPT_STR-DGULTAB sy-vline
WA_VISCRIPT_STR-DGULTBIS sy-vline
WA_VISCRIPT_STR-DOPVON sy-vline
WA_VISCRIPT_STR-DOPBIS sy-vline
WA_VISCRIPT_STR-DAPVON sy-vline
WA_VISCRIPT_STR-DAPBIS sy-vline
WA_VISCRIPT_STR-SWHRKNDCUK sy-vline
WA_VISCRIPT_STR-XKWHRKCUK sy-vline
WA_VISCRIPT_STR-XLWHRKCUK sy-vline
WA_VISCRIPT_STR-DEXCHCUK sy-vline
WA_VISCRIPT_STR-DINVFROM sy-vline
WA_VISCRIPT_STR-DINVTO sy-vline
WA_VISCRIPT_STR-JFLATRATE sy-vline
WA_VISCRIPT_STR-JDONT_ARCH sy-vline
WA_VISCRIPT_STR-DDATE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.