ABAP Select data from SAP table FKKINV_BW_EXTRACT00 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 FKKINV_BW_EXTRACT00 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 FKKINV_BW_EXTRACT00. 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 FKKINV_BW_EXTRACT00 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_FKKINV_BW_EXTRACT00 TYPE STANDARD TABLE OF FKKINV_BW_EXTRACT00,
      WA_FKKINV_BW_EXTRACT00 TYPE FKKINV_BW_EXTRACT00,
      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: <FKKINV_BW_EXTRACT00> TYPE FKKINV_BW_EXTRACT00.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM FKKINV_BW_EXTRACT00
*  INTO TABLE @DATA(IT_FKKINV_BW_EXTRACT002).
*--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_FKKINV_BW_EXTRACT00 INDEX 1 INTO DATA(WA_FKKINV_BW_EXTRACT002).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_FKKINV_BW_EXTRACT00 ASSIGNING <FKKINV_BW_EXTRACT00>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<FKKINV_BW_EXTRACT00>-APPLK = 1.
<FKKINV_BW_EXTRACT00>-INV_PROCESS = 1.
<FKKINV_BW_EXTRACT00>-FIKEY = 1.
<FKKINV_BW_EXTRACT00>-BUDAT = 1.
<FKKINV_BW_EXTRACT00>-PERIOD = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_FKKINV_BW_EXTRACT00-PERIV, sy-vline,
WA_FKKINV_BW_EXTRACT00-XREVERSAL, sy-vline,
WA_FKKINV_BW_EXTRACT00-INVDOC_CRDATE, sy-vline,
WA_FKKINV_BW_EXTRACT00-INVDOC_DOCTYPE, sy-vline,
WA_FKKINV_BW_EXTRACT00-INV_TYPE, sy-vline,
WA_FKKINV_BW_EXTRACT00-INV_CATEGORY, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FKKINV_BW_EXTRACT00 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_FKKINV_BW_EXTRACT00 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_FKKINV_BW_EXTRACT00 INTO WA_FKKINV_BW_EXTRACT00. *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 SRCDOCNO CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FKKINV_BW_EXTRACT00-SRCDOCNO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FKKINV_BW_EXTRACT00-SRCDOCNO.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

*Conversion exit CUNIT, internal->external for field MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_FKKINV_BW_EXTRACT00-MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FKKINV_BW_EXTRACT00-MEINS.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit CUNIT, internal->external for field BIT_QTY_UNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_FKKINV_BW_EXTRACT00-BIT_QTY_UNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FKKINV_BW_EXTRACT00-BIT_QTY_UNIT.
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_FKKINV_BW_EXTRACT00_STR,
APPLK TYPE STRING,
INV_PROCESS TYPE STRING,
FIKEY TYPE STRING,
BUDAT TYPE STRING,
PERIOD TYPE STRING,
PERIV TYPE STRING,
XREVERSAL TYPE STRING,
INVDOC_CRDATE TYPE STRING,
INVDOC_DOCTYPE TYPE STRING,
INV_TYPE TYPE STRING,
INV_CATEGORY TYPE STRING,
INVDOCNO TYPE STRING,
INVDOCITEM TYPE STRING,
INVPERCAT TYPE STRING,
INVPERIOD TYPE STRING,
INVPERIOD_FROM TYPE STRING,
SRCDOCCAT TYPE STRING,
SRCDOCNO TYPE STRING,
SRCDOCTYPE TYPE STRING,
BILLDOCNO TYPE STRING,
BILLDOCITEM TYPE STRING,
REVERSALITEM TYPE STRING,
REFDOCNO TYPE STRING,
LOG_SYSTEM TYPE STRING,
SRCPROCESS TYPE STRING,
DATE_FROM TYPE STRING,
DATE_TO TYPE STRING,
BUKRS TYPE STRING,
SPART TYPE STRING,
GPART TYPE STRING,
VKONT TYPE STRING,
MDCAT TYPE STRING,
VTREF TYPE STRING,
SUBAP TYPE STRING,
ABWVK TYPE STRING,
CITY_CODE TYPE STRING,
CITYP_CODE TYPE STRING,
STREETCODE TYPE STRING,
COUNTRY TYPE STRING,
REGION TYPE STRING,
KOFIZ TYPE STRING,
HVORG TYPE STRING,
TVORG TYPE STRING,
POSTREL TYPE STRING,
WAERS TYPE STRING,
BETRW TYPE STRING,
STRKZ TYPE STRING,
MWSKZ TYPE STRING,
TXJCD TYPE STRING,
STTAX TYPE STRING,
STAKZ TYPE STRING,
MEINS TYPE STRING,
MENGE TYPE STRING,
BILLAC_TYPE TYPE STRING,
HKONT TYPE STRING,
GSBER TYPE STRING,
SEGMENT TYPE STRING,
PRCTR TYPE STRING,
AUFNR TYPE STRING,
KOSTL TYPE STRING,
SRCTATYPE TYPE STRING,
SRCTAID TYPE STRING,
BITPACKUUID TYPE STRING,
BITPACKCNO TYPE STRING,
BITCAT TYPE STRING,
SUBPROCESS TYPE STRING,
BITTYPE TYPE STRING,
BIT_AMOUNT TYPE STRING,
BIT_CURR TYPE STRING,
BIT_QUANTITY TYPE STRING,
BIT_QTY_UNIT TYPE STRING,
UPDMOD TYPE STRING,END OF T_EKKO_STR. DATA: WA_FKKINV_BW_EXTRACT00_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_FKKINV_BW_EXTRACT00_STR-APPLK sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INV_PROCESS sy-vline
WA_FKKINV_BW_EXTRACT00_STR-FIKEY sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BUDAT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-PERIOD sy-vline
WA_FKKINV_BW_EXTRACT00_STR-PERIV sy-vline
WA_FKKINV_BW_EXTRACT00_STR-XREVERSAL sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INVDOC_CRDATE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INVDOC_DOCTYPE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INV_TYPE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INV_CATEGORY sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INVDOCNO sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INVDOCITEM sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INVPERCAT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INVPERIOD sy-vline
WA_FKKINV_BW_EXTRACT00_STR-INVPERIOD_FROM sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SRCDOCCAT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SRCDOCNO sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SRCDOCTYPE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BILLDOCNO sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BILLDOCITEM sy-vline
WA_FKKINV_BW_EXTRACT00_STR-REVERSALITEM sy-vline
WA_FKKINV_BW_EXTRACT00_STR-REFDOCNO sy-vline
WA_FKKINV_BW_EXTRACT00_STR-LOG_SYSTEM sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SRCPROCESS sy-vline
WA_FKKINV_BW_EXTRACT00_STR-DATE_FROM sy-vline
WA_FKKINV_BW_EXTRACT00_STR-DATE_TO sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BUKRS sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SPART sy-vline
WA_FKKINV_BW_EXTRACT00_STR-GPART sy-vline
WA_FKKINV_BW_EXTRACT00_STR-VKONT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-MDCAT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-VTREF sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SUBAP sy-vline
WA_FKKINV_BW_EXTRACT00_STR-ABWVK sy-vline
WA_FKKINV_BW_EXTRACT00_STR-CITY_CODE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-CITYP_CODE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-STREETCODE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-COUNTRY sy-vline
WA_FKKINV_BW_EXTRACT00_STR-REGION sy-vline
WA_FKKINV_BW_EXTRACT00_STR-KOFIZ sy-vline
WA_FKKINV_BW_EXTRACT00_STR-HVORG sy-vline
WA_FKKINV_BW_EXTRACT00_STR-TVORG sy-vline
WA_FKKINV_BW_EXTRACT00_STR-POSTREL sy-vline
WA_FKKINV_BW_EXTRACT00_STR-WAERS sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BETRW sy-vline
WA_FKKINV_BW_EXTRACT00_STR-STRKZ sy-vline
WA_FKKINV_BW_EXTRACT00_STR-MWSKZ sy-vline
WA_FKKINV_BW_EXTRACT00_STR-TXJCD sy-vline
WA_FKKINV_BW_EXTRACT00_STR-STTAX sy-vline
WA_FKKINV_BW_EXTRACT00_STR-STAKZ sy-vline
WA_FKKINV_BW_EXTRACT00_STR-MEINS sy-vline
WA_FKKINV_BW_EXTRACT00_STR-MENGE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BILLAC_TYPE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-HKONT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-GSBER sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SEGMENT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-PRCTR sy-vline
WA_FKKINV_BW_EXTRACT00_STR-AUFNR sy-vline
WA_FKKINV_BW_EXTRACT00_STR-KOSTL sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SRCTATYPE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SRCTAID sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BITPACKUUID sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BITPACKCNO sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BITCAT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-SUBPROCESS sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BITTYPE sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BIT_AMOUNT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BIT_CURR sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BIT_QUANTITY sy-vline
WA_FKKINV_BW_EXTRACT00_STR-BIT_QTY_UNIT sy-vline
WA_FKKINV_BW_EXTRACT00_STR-UPDMOD sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.