ABAP Select data from SAP table BSSKOFI 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 BSSKOFI 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 BSSKOFI. 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 BSSKOFI 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_BSSKOFI TYPE STANDARD TABLE OF BSSKOFI, WA_BSSKOFI TYPE BSSKOFI, 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: <BSSKOFI> TYPE BSSKOFI. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_BSSKOFI. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM BSSKOFI INTO TABLE IT_BSSKOFI. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM BSSKOFI * INTO TABLE @DATA(IT_BSSKOFI2). *--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_BSSKOFI INDEX 1 INTO DATA(WA_BSSKOFI2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_BSSKOFI ASSIGNING <BSSKOFI>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<BSSKOFI>-APPLI = 1.
<BSSKOFI>-KTOPL = 1.
<BSSKOFI>-VORGI = 1.
<BSSKOFI>-REVER = 1.
<BSSKOFI>-BUKRS = 1.
ENDLOOP. LOOP AT IT_BSSKOFI INTO WA_BSSKOFI. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_BSSKOFI-FILL1, sy-vline,
WA_BSSKOFI-QUEL1, sy-vline,
WA_BSSKOFI-QUEL2, sy-vline,
WA_BSSKOFI-ZIEL1, sy-vline,
WA_BSSKOFI-ZIEL2, sy-vline,
WA_BSSKOFI-KTOS1, sy-vline.
ENDLOOP. *Add any further fields from structure WA_BSSKOFI 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_BSSKOFI 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_BSSKOFI INTO WA_BSSKOFI. *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 QUEL1 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BSSKOFI-QUEL1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BSSKOFI-QUEL1.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field QUEL2 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BSSKOFI-QUEL2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BSSKOFI-QUEL2.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field ZIEL1 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BSSKOFI-ZIEL1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BSSKOFI-ZIEL1.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field ZIEL2 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BSSKOFI-ZIEL2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BSSKOFI-ZIEL2.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field QUEL1B CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BSSKOFI-QUEL1B IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BSSKOFI-QUEL1B.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field QUEL2B CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BSSKOFI-QUEL2B IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BSSKOFI-QUEL2B.
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_BSSKOFI_STR,
APPLI TYPE STRING,
KTOPL TYPE STRING,
VORGI TYPE STRING,
REVER TYPE STRING,
BUKRS TYPE STRING,
FILL1 TYPE STRING,
QUEL1 TYPE STRING,
QUEL2 TYPE STRING,
ZIEL1 TYPE STRING,
ZIEL2 TYPE STRING,
KTOS1 TYPE STRING,
KTOS2 TYPE STRING,
KART1 TYPE STRING,
KART2 TYPE STRING,
BSCH1 TYPE STRING,
BSCH2 TYPE STRING,
BSCH3 TYPE STRING,
BSCH4 TYPE STRING,
MODI1 TYPE STRING,
MODI2 TYPE STRING,
MASK1 TYPE STRING,
MASK2 TYPE STRING,
KOMS1 TYPE STRING,
KOMS2 TYPE STRING,
TEXT1 TYPE STRING,
TEXT2 TYPE STRING,
SHKZ1 TYPE STRING,
SHKZ2 TYPE STRING,
BLART TYPE STRING,
SHBKZ TYPE STRING,
STOBA TYPE STRING,
SBUCHA TYPE STRING,
SHBKZ1 TYPE STRING,
SHBKZ2 TYPE STRING,
SWHR1 TYPE STRING,
SWHR2 TYPE STRING,
ATTR2 TYPE STRING,
QUEL1B TYPE STRING,
QUEL2B TYPE STRING,
EIGR1 TYPE STRING,
EIGR2 TYPE STRING,
EIGR3 TYPE STRING,
EIGR4 TYPE STRING,END OF T_EKKO_STR. DATA: WA_BSSKOFI_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_BSSKOFI_STR-APPLI sy-vline
WA_BSSKOFI_STR-KTOPL sy-vline
WA_BSSKOFI_STR-VORGI sy-vline
WA_BSSKOFI_STR-REVER sy-vline
WA_BSSKOFI_STR-BUKRS sy-vline
WA_BSSKOFI_STR-FILL1 sy-vline
WA_BSSKOFI_STR-QUEL1 sy-vline
WA_BSSKOFI_STR-QUEL2 sy-vline
WA_BSSKOFI_STR-ZIEL1 sy-vline
WA_BSSKOFI_STR-ZIEL2 sy-vline
WA_BSSKOFI_STR-KTOS1 sy-vline
WA_BSSKOFI_STR-KTOS2 sy-vline
WA_BSSKOFI_STR-KART1 sy-vline
WA_BSSKOFI_STR-KART2 sy-vline
WA_BSSKOFI_STR-BSCH1 sy-vline
WA_BSSKOFI_STR-BSCH2 sy-vline
WA_BSSKOFI_STR-BSCH3 sy-vline
WA_BSSKOFI_STR-BSCH4 sy-vline
WA_BSSKOFI_STR-MODI1 sy-vline
WA_BSSKOFI_STR-MODI2 sy-vline
WA_BSSKOFI_STR-MASK1 sy-vline
WA_BSSKOFI_STR-MASK2 sy-vline
WA_BSSKOFI_STR-KOMS1 sy-vline
WA_BSSKOFI_STR-KOMS2 sy-vline
WA_BSSKOFI_STR-TEXT1 sy-vline
WA_BSSKOFI_STR-TEXT2 sy-vline
WA_BSSKOFI_STR-SHKZ1 sy-vline
WA_BSSKOFI_STR-SHKZ2 sy-vline
WA_BSSKOFI_STR-BLART sy-vline
WA_BSSKOFI_STR-SHBKZ sy-vline
WA_BSSKOFI_STR-STOBA sy-vline
WA_BSSKOFI_STR-SBUCHA sy-vline
WA_BSSKOFI_STR-SHBKZ1 sy-vline
WA_BSSKOFI_STR-SHBKZ2 sy-vline
WA_BSSKOFI_STR-SWHR1 sy-vline
WA_BSSKOFI_STR-SWHR2 sy-vline
WA_BSSKOFI_STR-ATTR2 sy-vline
WA_BSSKOFI_STR-QUEL1B sy-vline
WA_BSSKOFI_STR-QUEL2B sy-vline
WA_BSSKOFI_STR-EIGR1 sy-vline
WA_BSSKOFI_STR-EIGR2 sy-vline
WA_BSSKOFI_STR-EIGR3 sy-vline
WA_BSSKOFI_STR-EIGR4 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.