ABAP Select data from SAP table FIZA_S_VAT 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 FIZA_S_VAT 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 FIZA_S_VAT. 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 FIZA_S_VAT 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_FIZA_S_VAT TYPE STANDARD TABLE OF FIZA_S_VAT, WA_FIZA_S_VAT TYPE FIZA_S_VAT, 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: <FIZA_S_VAT> TYPE FIZA_S_VAT. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_FIZA_S_VAT. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM FIZA_S_VAT INTO TABLE IT_FIZA_S_VAT. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM FIZA_S_VAT * INTO TABLE @DATA(IT_FIZA_S_VAT2). *--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_FIZA_S_VAT INDEX 1 INTO DATA(WA_FIZA_S_VAT2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_FIZA_S_VAT ASSIGNING <FIZA_S_VAT>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<FIZA_S_VAT>-UNIQ_FILE = 1.
<FIZA_S_VAT>-SARS_REQST_REF = 1.
<FIZA_S_VAT>-CONT_PER_SURNAME = 1.
<FIZA_S_VAT>-TRADING_NAME = 1.
<FIZA_S_VAT>-SUPPLIER_NAME = 1.
ENDLOOP. LOOP AT IT_FIZA_S_VAT INTO WA_FIZA_S_VAT. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_FIZA_S_VAT-HASH_TOTAL, sy-vline,
WA_FIZA_S_VAT-BAS01, sy-vline,
WA_FIZA_S_VAT-BAS02, sy-vline,
WA_FIZA_S_VAT-BAS03, sy-vline,
WA_FIZA_S_VAT-BAS04, sy-vline,
WA_FIZA_S_VAT-BAS05, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FIZA_S_VAT 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_FIZA_S_VAT 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_FIZA_S_VAT INTO WA_FIZA_S_VAT. *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 AC192, internal->external for field BAS01 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS01 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS01.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS02 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS02 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS02.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS03 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS03 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS03.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS04 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS04 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS04.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS05 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS05 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS05.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS06 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS06 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS06.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS07 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS07 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS07.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS08 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS08 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS08.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS09 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS09 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS09.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS10 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS10 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS10.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS11 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS11 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS11.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS12 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS12 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS12.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS13 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS13 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS13.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS14 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS14 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS14.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS15 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS15 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS15.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS16 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS16 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS16.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS17 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS17 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS17.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS18 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS18 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS18.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS19 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS19 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS19.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS20 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS20 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS20.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS21 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS21 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS21.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS22 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS22 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS22.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS23 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS23 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS23.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS24 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS24 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS24.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS25 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS25 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS25.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC192, internal->external for field BAS26 CALL FUNCTION 'CONVERSION_EXIT_AC192_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-BAS26 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-BAS26.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SXIDN, internal->external for field EMAIL CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_FIZA_S_VAT-EMAIL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIZA_S_VAT-EMAIL.
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_FIZA_S_VAT_STR,
UNIQ_FILE TYPE STRING,
SARS_REQST_REF TYPE STRING,
CONT_PER_SURNAME TYPE STRING,
TRADING_NAME TYPE STRING,
SUPPLIER_NAME TYPE STRING,
HASH_TOTAL TYPE STRING,
BAS01 TYPE STRING,
BAS02 TYPE STRING,
BAS03 TYPE STRING,
BAS04 TYPE STRING,
BAS05 TYPE STRING,
BAS06 TYPE STRING,
BAS07 TYPE STRING,
BAS08 TYPE STRING,
BAS09 TYPE STRING,
BAS10 TYPE STRING,
BAS11 TYPE STRING,
BAS12 TYPE STRING,
BAS13 TYPE STRING,
BAS14 TYPE STRING,
BAS15 TYPE STRING,
BAS16 TYPE STRING,
BAS17 TYPE STRING,
BAS18 TYPE STRING,
BAS19 TYPE STRING,
BAS20 TYPE STRING,
BAS21 TYPE STRING,
BAS22 TYPE STRING,
BAS23 TYPE STRING,
BAS24 TYPE STRING,
BAS25 TYPE STRING,
BAS26 TYPE STRING,
BAS27 TYPE STRING,
BAS28 TYPE STRING,
BAS29 TYPE STRING,
BAS30 TYPE STRING,
BAS31 TYPE STRING,
UNIQUE_NO TYPE STRING,
QTY_GOODS_SER TYPE STRING,
UOM TYPE STRING,
DOC_NO_DESC TYPE STRING,
UNIT_PRICE TYPE STRING,
VAT_CLASS TYPE STRING,
APP_RATIO TYPE STRING,
TEST_IND TYPE STRING,
CNCT_NO_2 TYPE STRING,
FILE_VER TYPE STRING,
CHNL_IDNT TYPE STRING,
SOURCE_IND TYPE STRING,
GROUP_ID TYPE STRING,
MRN1 TYPE STRING,
MRN2 TYPE STRING,
MRN3 TYPE STRING,
SYS_DATE TYPE STRING,
EMAIL TYPE STRING,
DOC_DATE TYPE STRING,
SYS_VER TYPE STRING,END OF T_EKKO_STR. DATA: WA_FIZA_S_VAT_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_FIZA_S_VAT_STR-UNIQ_FILE sy-vline
WA_FIZA_S_VAT_STR-SARS_REQST_REF sy-vline
WA_FIZA_S_VAT_STR-CONT_PER_SURNAME sy-vline
WA_FIZA_S_VAT_STR-TRADING_NAME sy-vline
WA_FIZA_S_VAT_STR-SUPPLIER_NAME sy-vline
WA_FIZA_S_VAT_STR-HASH_TOTAL sy-vline
WA_FIZA_S_VAT_STR-BAS01 sy-vline
WA_FIZA_S_VAT_STR-BAS02 sy-vline
WA_FIZA_S_VAT_STR-BAS03 sy-vline
WA_FIZA_S_VAT_STR-BAS04 sy-vline
WA_FIZA_S_VAT_STR-BAS05 sy-vline
WA_FIZA_S_VAT_STR-BAS06 sy-vline
WA_FIZA_S_VAT_STR-BAS07 sy-vline
WA_FIZA_S_VAT_STR-BAS08 sy-vline
WA_FIZA_S_VAT_STR-BAS09 sy-vline
WA_FIZA_S_VAT_STR-BAS10 sy-vline
WA_FIZA_S_VAT_STR-BAS11 sy-vline
WA_FIZA_S_VAT_STR-BAS12 sy-vline
WA_FIZA_S_VAT_STR-BAS13 sy-vline
WA_FIZA_S_VAT_STR-BAS14 sy-vline
WA_FIZA_S_VAT_STR-BAS15 sy-vline
WA_FIZA_S_VAT_STR-BAS16 sy-vline
WA_FIZA_S_VAT_STR-BAS17 sy-vline
WA_FIZA_S_VAT_STR-BAS18 sy-vline
WA_FIZA_S_VAT_STR-BAS19 sy-vline
WA_FIZA_S_VAT_STR-BAS20 sy-vline
WA_FIZA_S_VAT_STR-BAS21 sy-vline
WA_FIZA_S_VAT_STR-BAS22 sy-vline
WA_FIZA_S_VAT_STR-BAS23 sy-vline
WA_FIZA_S_VAT_STR-BAS24 sy-vline
WA_FIZA_S_VAT_STR-BAS25 sy-vline
WA_FIZA_S_VAT_STR-BAS26 sy-vline
WA_FIZA_S_VAT_STR-BAS27 sy-vline
WA_FIZA_S_VAT_STR-BAS28 sy-vline
WA_FIZA_S_VAT_STR-BAS29 sy-vline
WA_FIZA_S_VAT_STR-BAS30 sy-vline
WA_FIZA_S_VAT_STR-BAS31 sy-vline
WA_FIZA_S_VAT_STR-UNIQUE_NO sy-vline
WA_FIZA_S_VAT_STR-QTY_GOODS_SER sy-vline
WA_FIZA_S_VAT_STR-UOM sy-vline
WA_FIZA_S_VAT_STR-DOC_NO_DESC sy-vline
WA_FIZA_S_VAT_STR-UNIT_PRICE sy-vline
WA_FIZA_S_VAT_STR-VAT_CLASS sy-vline
WA_FIZA_S_VAT_STR-APP_RATIO sy-vline
WA_FIZA_S_VAT_STR-TEST_IND sy-vline
WA_FIZA_S_VAT_STR-CNCT_NO_2 sy-vline
WA_FIZA_S_VAT_STR-FILE_VER sy-vline
WA_FIZA_S_VAT_STR-CHNL_IDNT sy-vline
WA_FIZA_S_VAT_STR-SOURCE_IND sy-vline
WA_FIZA_S_VAT_STR-GROUP_ID sy-vline
WA_FIZA_S_VAT_STR-MRN1 sy-vline
WA_FIZA_S_VAT_STR-MRN2 sy-vline
WA_FIZA_S_VAT_STR-MRN3 sy-vline
WA_FIZA_S_VAT_STR-SYS_DATE sy-vline
WA_FIZA_S_VAT_STR-EMAIL sy-vline
WA_FIZA_S_VAT_STR-DOC_DATE sy-vline
WA_FIZA_S_VAT_STR-SYS_VER sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.