ABAP Select data from SAP table /SAPCE/FKSI_STR_CASH_FCAT_ENH 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 /SAPCE/FKSI_STR_CASH_FCAT_ENH 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 /SAPCE/FKSI_STR_CASH_FCAT_ENH. 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 /SAPCE/FKSI_STR_CASH_FCAT_ENH 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_/SAPCE/FKSI_STR_CASH_FCAT_ENH TYPE STANDARD TABLE OF /SAPCE/FKSI_STR_CASH_FCAT_ENH,
      WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH TYPE /SAPCE/FKSI_STR_CASH_FCAT_ENH,
      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: </SAPCE/FKSI_STR_CASH_FCAT_ENH> TYPE /SAPCE/FKSI_STR_CASH_FCAT_ENH.

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

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM /SAPCE/FKSI_STR_CASH_FCAT_ENH
  INTO TABLE IT_/SAPCE/FKSI_STR_CASH_FCAT_ENH.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM /SAPCE/FKSI_STR_CASH_FCAT_ENH
*  INTO TABLE @DATA(IT_/SAPCE/FKSI_STR_CASH_FCAT_ENH2).
*--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_/SAPCE/FKSI_STR_CASH_FCAT_ENH INDEX 1 INTO DATA(WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_/SAPCE/FKSI_STR_CASH_FCAT_ENH ASSIGNING </SAPCE/FKSI_STR_CASH_FCAT_ENH>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
</SAPCE/FKSI_STR_CASH_FCAT_ENH>-SEL = 1.
</SAPCE/FKSI_STR_CASH_FCAT_ENH>-OPBEL = 1.
</SAPCE/FKSI_STR_CASH_FCAT_ENH>-GPART = 1.
</SAPCE/FKSI_STR_CASH_FCAT_ENH>-HERKF = 1.
</SAPCE/FKSI_STR_CASH_FCAT_ENH>-AWTYP = 1.
ENDLOOP.

LOOP AT IT_/SAPCE/FKSI_STR_CASH_FCAT_ENH INTO WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-XNABE, sy-vline,
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-STCEG, sy-vline,
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-XBLNR, sy-vline,
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-BLDAT, sy-vline,
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-TIME, sy-vline,
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-BUKRS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH 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_/SAPCE/FKSI_STR_CASH_FCAT_ENH 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_/SAPCE/FKSI_STR_CASH_FCAT_ENH INTO WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH. *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 OPBEL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-OPBEL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-OPBEL.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field XBLNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-XBLNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH-XBLNR.
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_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR,
SEL TYPE STRING,
OPBEL TYPE STRING,
GPART TYPE STRING,
HERKF TYPE STRING,
AWTYP TYPE STRING,
XNABE TYPE STRING,
STCEG TYPE STRING,
XBLNR TYPE STRING,
BLDAT TYPE STRING,
TIME TYPE STRING,
BUKRS TYPE STRING,
REGISTER TYPE STRING,
CUST_INFO TYPE STRING,
TAXNUM TYPE STRING,
GEBTH TYPE STRING,
SBETH_LOW TYPE STRING,
SBETH_RED2 TYPE STRING,
SBETH_HIGH TYPE STRING,
GEBTH_CASH TYPE STRING,
GEBTH_DEBIT TYPE STRING,
GEBTH_OTHER TYPE STRING,
MODIF_DATE TYPE STRING,
MODIF_TIME TYPE STRING,
MODIF_SN TYPE STRING,
MODIF_REASON TYPE STRING,
MODIF_DESC TYPE STRING,
USERNAME TYPE STRING,
GIVENNAME TYPE STRING,
NOTES TYPE STRING,
XPCPT TYPE STRING,
INVTYPE TYPE STRING,
BP_CODE TYPE STRING,
ELE_DEV_CODE TYPE STRING,
OFFICIAL_NUM TYPE STRING,
REIMBURSEMENT TYPE STRING,
GEBTH_ALL TYPE STRING,
SELLER_TAXNUM TYPE STRING,
SBETH_LOW_BASE TYPE STRING,
SBETH_RED2_BASE TYPE STRING,
SBETH_HIGH_BASE TYPE STRING,
SBETH_FLAT_BASE TYPE STRING,
SBETH_FLAT TYPE STRING,
SBETH_EXCL TYPE STRING,
SBETH_EXEMPT TYPE STRING,
SBETH_REVERSE TYPE STRING,
SBETH_NONTAX TYPE STRING,
SBETH_SPEC TYPE STRING,
OPERATOR_ID TYPE STRING,
OPERATOR_TAXID TYPE STRING,
ZOI_CODE TYPE STRING,
EOR_CODE TYPE STRING,
TRANSFER TYPE STRING,
BP_CODE_ORI TYPE STRING,
ELE_DEV_CODE_ORI TYPE STRING,
OFFICIAL_NUM_ORI TYPE STRING,
ISSUE_DATE TYPE STRING,
ISSUE_TIME TYPE STRING,
PRENUMBER TYPE STRING,
SETNUMBER TYPE STRING,
SERIALNUMBER TYPE STRING,
CHANGE_ISSUE_DATE TYPE STRING,
CHANGE_DATE TYPE STRING,
CHANGE_TIME TYPE STRING,
CHANGE_SN TYPE STRING,END OF T_EKKO_STR. DATA: WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_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_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SEL sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-OPBEL sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-GPART sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-HERKF sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-AWTYP sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-XNABE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-STCEG sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-XBLNR sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-BLDAT sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-TIME sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-BUKRS sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-REGISTER sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-CUST_INFO sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-TAXNUM sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-GEBTH sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_LOW sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_RED2 sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_HIGH sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-GEBTH_CASH sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-GEBTH_DEBIT sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-GEBTH_OTHER sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-MODIF_DATE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-MODIF_TIME sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-MODIF_SN sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-MODIF_REASON sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-MODIF_DESC sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-USERNAME sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-GIVENNAME sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-NOTES sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-XPCPT sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-INVTYPE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-BP_CODE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-ELE_DEV_CODE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-OFFICIAL_NUM sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-REIMBURSEMENT sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-GEBTH_ALL sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SELLER_TAXNUM sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_LOW_BASE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_RED2_BASE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_HIGH_BASE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_FLAT_BASE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_FLAT sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_EXCL sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_EXEMPT sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_REVERSE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_NONTAX sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SBETH_SPEC sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-OPERATOR_ID sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-OPERATOR_TAXID sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-ZOI_CODE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-EOR_CODE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-TRANSFER sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-BP_CODE_ORI sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-ELE_DEV_CODE_ORI sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-OFFICIAL_NUM_ORI sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-ISSUE_DATE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-ISSUE_TIME sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-PRENUMBER sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SETNUMBER sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-SERIALNUMBER sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-CHANGE_ISSUE_DATE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-CHANGE_DATE sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-CHANGE_TIME sy-vline
WA_/SAPCE/FKSI_STR_CASH_FCAT_ENH_STR-CHANGE_SN sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.