ABAP Select data from SAP table WBHI_NEW 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 WBHI_NEW 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 WBHI_NEW. 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 WBHI_NEW 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_WBHI_NEW TYPE STANDARD TABLE OF WBHI_NEW,
      WA_WBHI_NEW TYPE WBHI_NEW,
      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: <WBHI_NEW> TYPE WBHI_NEW.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM WBHI_NEW
*  INTO TABLE @DATA(IT_WBHI_NEW2).
*--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_WBHI_NEW INDEX 1 INTO DATA(WA_WBHI_NEW2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_WBHI_NEW ASSIGNING <WBHI_NEW>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<WBHI_NEW>-NETWRT_IN_SDWRS = 1.
<WBHI_NEW>-PORTFOLIO = 1.
<WBHI_NEW>-PORTFOLIO_DATE = 1.
<WBHI_NEW>-TKONN_FROM = 1.
<WBHI_NEW>-TPOSN_FROM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_WBHI_NEW-TPOSN_SUB_FROM, sy-vline,
WA_WBHI_NEW-TCTYP_FROM, sy-vline,
WA_WBHI_NEW-SCENARIO, sy-vline,
WA_WBHI_NEW-ASSOC_GROUP, sy-vline,
WA_WBHI_NEW-COMPLETE, sy-vline,
WA_WBHI_NEW-IDNLF, sy-vline.
ENDLOOP. *Add any further fields from structure WA_WBHI_NEW 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_WBHI_NEW 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_WBHI_NEW INTO WA_WBHI_NEW. *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 TKONN_FROM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_WBHI_NEW-TKONN_FROM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WBHI_NEW-TKONN_FROM.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit MATN1, internal->external for field MATWA CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_WBHI_NEW-MATWA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WBHI_NEW-MATWA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit NUMCV, internal->external for field STLNR CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_WBHI_NEW-STLNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WBHI_NEW-STLNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field PMATN CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_WBHI_NEW-PMATN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WBHI_NEW-PMATN.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ABPSP, internal->external for field PS_PSP_PNR CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_WBHI_NEW-PS_PSP_PNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WBHI_NEW-PS_PSP_PNR.
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_WBHI_NEW_STR,
NETWRT_IN_SDWRS TYPE STRING,
PORTFOLIO TYPE STRING,
PORTFOLIO_DATE TYPE STRING,
TKONN_FROM TYPE STRING,
TPOSN_FROM TYPE STRING,
TPOSN_SUB_FROM TYPE STRING,
TCTYP_FROM TYPE STRING,
SCENARIO TYPE STRING,
ASSOC_GROUP TYPE STRING,
COMPLETE TYPE STRING,
IDNLF TYPE STRING,
NETWRT_IN_WAERS TYPE STRING,
TKONN_FROM_2 TYPE STRING,
TPOSN_FROM_2 TYPE STRING,
TPOSN_SUB_FROM_2 TYPE STRING,
TCTYP_FROM_2 TYPE STRING,
MATWA TYPE STRING,
CHANGE_INFOS TYPE STRING,
KZWI1 TYPE STRING,
KZWI2 TYPE STRING,
KZWI3 TYPE STRING,
KZWI4 TYPE STRING,
KZWI5 TYPE STRING,
KZWI6 TYPE STRING,
KZWI1D TYPE STRING,
KZWI2D TYPE STRING,
KZWI3D TYPE STRING,
KZWI4D TYPE STRING,
KZWI5D TYPE STRING,
KZWI6D TYPE STRING,
UEPOS TYPE STRING,
WUVPRS TYPE STRING,
KMPMG TYPE STRING,
FMENG TYPE STRING,
STDAT TYPE STRING,
STLTY TYPE STRING,
STLNR TYPE STRING,
STKEY TYPE STRING,
KMPMG_SD TYPE STRING,
PMATN TYPE STRING,
VKAUS TYPE STRING,
POSEX TYPE STRING,
PS_PSP_PNR TYPE STRING,
EFFWR_SD TYPE STRING,
EFFWR_MM TYPE STRING,
COMMODITY TYPE STRING,
SKTOF_SD TYPE STRING,
SKTOF_MM TYPE STRING,
PRED_NUMBER TYPE STRING,
PRED_ITEM_NUMBER TYPE STRING,
PRED_DOC_TYPE TYPE STRING,
MWSBP_MM TYPE STRING,
MWSBP_SD TYPE STRING,
HEDGING_RELEVANT TYPE STRING,
COND_CON_ALG TYPE STRING,
CONSOLIDATED TYPE STRING,
CCOMP TYPE STRING,
SETT_MODE TYPE STRING,
RESLO TYPE STRING,
BLOCK_CODE TYPE STRING,
ROUTE_MM TYPE STRING,
VSTEL_MM TYPE STRING,
VSBED_MM TYPE STRING,
TXJCD_MM TYPE STRING,
ABFOR TYPE STRING,
TAX_COUNTRY_MM TYPE STRING,
EMCSI TYPE STRING,
SLCSI TYPE STRING,
EMCSO TYPE STRING,
SLCSO TYPE STRING,
TOTAL_LCCSI TYPE STRING,
TOTAL_LCCSO TYPE STRING,END OF T_EKKO_STR. DATA: WA_WBHI_NEW_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_WBHI_NEW_STR-NETWRT_IN_SDWRS sy-vline
WA_WBHI_NEW_STR-PORTFOLIO sy-vline
WA_WBHI_NEW_STR-PORTFOLIO_DATE sy-vline
WA_WBHI_NEW_STR-TKONN_FROM sy-vline
WA_WBHI_NEW_STR-TPOSN_FROM sy-vline
WA_WBHI_NEW_STR-TPOSN_SUB_FROM sy-vline
WA_WBHI_NEW_STR-TCTYP_FROM sy-vline
WA_WBHI_NEW_STR-SCENARIO sy-vline
WA_WBHI_NEW_STR-ASSOC_GROUP sy-vline
WA_WBHI_NEW_STR-COMPLETE sy-vline
WA_WBHI_NEW_STR-IDNLF sy-vline
WA_WBHI_NEW_STR-NETWRT_IN_WAERS sy-vline
WA_WBHI_NEW_STR-TKONN_FROM_2 sy-vline
WA_WBHI_NEW_STR-TPOSN_FROM_2 sy-vline
WA_WBHI_NEW_STR-TPOSN_SUB_FROM_2 sy-vline
WA_WBHI_NEW_STR-TCTYP_FROM_2 sy-vline
WA_WBHI_NEW_STR-MATWA sy-vline
WA_WBHI_NEW_STR-CHANGE_INFOS sy-vline
WA_WBHI_NEW_STR-KZWI1 sy-vline
WA_WBHI_NEW_STR-KZWI2 sy-vline
WA_WBHI_NEW_STR-KZWI3 sy-vline
WA_WBHI_NEW_STR-KZWI4 sy-vline
WA_WBHI_NEW_STR-KZWI5 sy-vline
WA_WBHI_NEW_STR-KZWI6 sy-vline
WA_WBHI_NEW_STR-KZWI1D sy-vline
WA_WBHI_NEW_STR-KZWI2D sy-vline
WA_WBHI_NEW_STR-KZWI3D sy-vline
WA_WBHI_NEW_STR-KZWI4D sy-vline
WA_WBHI_NEW_STR-KZWI5D sy-vline
WA_WBHI_NEW_STR-KZWI6D sy-vline
WA_WBHI_NEW_STR-UEPOS sy-vline
WA_WBHI_NEW_STR-WUVPRS sy-vline
WA_WBHI_NEW_STR-KMPMG sy-vline
WA_WBHI_NEW_STR-FMENG sy-vline
WA_WBHI_NEW_STR-STDAT sy-vline
WA_WBHI_NEW_STR-STLTY sy-vline
WA_WBHI_NEW_STR-STLNR sy-vline
WA_WBHI_NEW_STR-STKEY sy-vline
WA_WBHI_NEW_STR-KMPMG_SD sy-vline
WA_WBHI_NEW_STR-PMATN sy-vline
WA_WBHI_NEW_STR-VKAUS sy-vline
WA_WBHI_NEW_STR-POSEX sy-vline
WA_WBHI_NEW_STR-PS_PSP_PNR sy-vline
WA_WBHI_NEW_STR-EFFWR_SD sy-vline
WA_WBHI_NEW_STR-EFFWR_MM sy-vline
WA_WBHI_NEW_STR-COMMODITY sy-vline
WA_WBHI_NEW_STR-SKTOF_SD sy-vline
WA_WBHI_NEW_STR-SKTOF_MM sy-vline
WA_WBHI_NEW_STR-PRED_NUMBER sy-vline
WA_WBHI_NEW_STR-PRED_ITEM_NUMBER sy-vline
WA_WBHI_NEW_STR-PRED_DOC_TYPE sy-vline
WA_WBHI_NEW_STR-MWSBP_MM sy-vline
WA_WBHI_NEW_STR-MWSBP_SD sy-vline
WA_WBHI_NEW_STR-HEDGING_RELEVANT sy-vline
WA_WBHI_NEW_STR-COND_CON_ALG sy-vline
WA_WBHI_NEW_STR-CONSOLIDATED sy-vline
WA_WBHI_NEW_STR-CCOMP sy-vline
WA_WBHI_NEW_STR-SETT_MODE sy-vline
WA_WBHI_NEW_STR-RESLO sy-vline
WA_WBHI_NEW_STR-BLOCK_CODE sy-vline
WA_WBHI_NEW_STR-ROUTE_MM sy-vline
WA_WBHI_NEW_STR-VSTEL_MM sy-vline
WA_WBHI_NEW_STR-VSBED_MM sy-vline
WA_WBHI_NEW_STR-TXJCD_MM sy-vline
WA_WBHI_NEW_STR-ABFOR sy-vline
WA_WBHI_NEW_STR-TAX_COUNTRY_MM sy-vline
WA_WBHI_NEW_STR-EMCSI sy-vline
WA_WBHI_NEW_STR-SLCSI sy-vline
WA_WBHI_NEW_STR-EMCSO sy-vline
WA_WBHI_NEW_STR-SLCSO sy-vline
WA_WBHI_NEW_STR-TOTAL_LCCSI sy-vline
WA_WBHI_NEW_STR-TOTAL_LCCSO sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.