ABAP Select data from SAP table BAPIVBRKCRM_SD 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 BAPIVBRKCRM_SD 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 BAPIVBRKCRM_SD. 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 BAPIVBRKCRM_SD 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_BAPIVBRKCRM_SD TYPE STANDARD TABLE OF BAPIVBRKCRM_SD,
      WA_BAPIVBRKCRM_SD TYPE BAPIVBRKCRM_SD,
      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: <BAPIVBRKCRM_SD> TYPE BAPIVBRKCRM_SD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM BAPIVBRKCRM_SD
*  INTO TABLE @DATA(IT_BAPIVBRKCRM_SD2).
*--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_BAPIVBRKCRM_SD INDEX 1 INTO DATA(WA_BAPIVBRKCRM_SD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_BAPIVBRKCRM_SD ASSIGNING <BAPIVBRKCRM_SD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<BAPIVBRKCRM_SD>-SALESORG = 1.
<BAPIVBRKCRM_SD>-DISTR_CHAN = 1.
<BAPIVBRKCRM_SD>-DIVISION = 1.
<BAPIVBRKCRM_SD>-DOC_TYPE = 1.
<BAPIVBRKCRM_SD>-ORDBILLTYP = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_BAPIVBRKCRM_SD-BILL_CATEGORY, sy-vline,
WA_BAPIVBRKCRM_SD-ITEM_CATEG, sy-vline,
WA_BAPIVBRKCRM_SD-BILL_DATE, sy-vline,
WA_BAPIVBRKCRM_SD-SOLD_TO_GUID, sy-vline,
WA_BAPIVBRKCRM_SD-BILL_TO_GUID, sy-vline,
WA_BAPIVBRKCRM_SD-PAYER_GUID, sy-vline.
ENDLOOP. *Add any further fields from structure WA_BAPIVBRKCRM_SD 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_BAPIVBRKCRM_SD 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_BAPIVBRKCRM_SD INTO WA_BAPIVBRKCRM_SD. *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 AUART, internal->external for field DOC_TYPE CALL FUNCTION 'CONVERSION_EXIT_AUART_OUTPUT' EXPORTING input = WA_BAPIVBRKCRM_SD-DOC_TYPE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPIVBRKCRM_SD-DOC_TYPE.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit MATN5, internal->external for field MATERIAL CALL FUNCTION 'CONVERSION_EXIT_MATN5_OUTPUT' EXPORTING input = WA_BAPIVBRKCRM_SD-MATERIAL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPIVBRKCRM_SD-MATERIAL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATNL, internal->external for field MATERIAL_EXTERNAL CALL FUNCTION 'CONVERSION_EXIT_MATNL_OUTPUT' EXPORTING input = WA_BAPIVBRKCRM_SD-MATERIAL_EXTERNAL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPIVBRKCRM_SD-MATERIAL_EXTERNAL.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit EXCRT, internal->external for field EXCHANGE_RATE CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_BAPIVBRKCRM_SD-EXCHANGE_RATE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPIVBRKCRM_SD-EXCHANGE_RATE.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

*Conversion exit MATN1, internal->external for field MATERIAL_LONG CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_BAPIVBRKCRM_SD-MATERIAL_LONG IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPIVBRKCRM_SD-MATERIAL_LONG.
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_BAPIVBRKCRM_SD_STR,
SALESORG TYPE STRING,
DISTR_CHAN TYPE STRING,
DIVISION TYPE STRING,
DOC_TYPE TYPE STRING,
ORDBILLTYP TYPE STRING,
BILL_CATEGORY TYPE STRING,
ITEM_CATEG TYPE STRING,
BILL_DATE TYPE STRING,
SOLD_TO_GUID TYPE STRING,
BILL_TO_GUID TYPE STRING,
PAYER_GUID TYPE STRING,
SHIP_TO_GUID TYPE STRING,
PLANT TYPE STRING,
REF_DOC TYPE STRING,
REF_DOC_IT TYPE STRING,
MATERIAL TYPE STRING,
MATERIAL_GUID TYPE STRING,
MATERIAL_EXTERNAL TYPE STRING,
REQ_QTY TYPE STRING,
CURRENCY TYPE STRING,
NO_MATMAST TYPE STRING,
PROD_HIER TYPE STRING,
SALES_UNIT TYPE STRING,
ORIGINDOC TYPE STRING,
ITEM TYPE STRING,
CREATED_BY TYPE STRING,
CR_ON TYPE STRING,
REC_TIME TYPE STRING,
REF_DOC_NO TYPE STRING,
CONSOLID_CRIT TYPE STRING,
EXCHG_RATE TYPE STRING,
INCOTERMS1 TYPE STRING,
INCOTERMS2 TYPE STRING,
EXCHANGE_RATE TYPE STRING,
PMNTTRMS TYPE STRING,
PRIC_PROC TYPE STRING,
PYMT_METH TYPE STRING,
PAYMT_REF TYPE STRING,
HG_LV_ITEM TYPE STRING,
ITEM_TYPE TYPE STRING,
CUST_GROUP TYPE STRING,
GROSS_WT TYPE STRING,
NET_WEIGHT TYPE STRING,
UNIT_OF_WT TYPE STRING,
LOG_SYSTEM TYPE STRING,
PRC_INDICATOR TYPE STRING,
PRICE_GRP TYPE STRING,
PRICE_LIST TYPE STRING,
PRICE_DATE TYPE STRING,
MAT_PR_GRP TYPE STRING,
SERV_DATE TYPE STRING,
VAT_CNTRY TYPE STRING,
TAX_DEPART_CTY TYPE STRING,
BASE_UOM TYPE STRING,
DISPUTE_IF_TYPE TYPE STRING,
TAXJURCODE TYPE STRING,
COMP_CODE TYPE STRING,
BS_IDENT TYPE STRING,
FIX_VAL_DY TYPE STRING,
TAXM1 TYPE STRING,
TAXM2 TYPE STRING,
TAXM3 TYPE STRING,
TAXM4 TYPE STRING,
TAXM5 TYPE STRING,
TAXM6 TYPE STRING,
TAXM7 TYPE STRING,
TAXM8 TYPE STRING,
TAXM9 TYPE STRING,
DB_CR_IND TYPE STRING,
REVERSAL TYPE STRING,
CNC_REF_DOC TYPE STRING,
CNC_REF_DOC_IT TYPE STRING,
USE_ACCMAN TYPE STRING,
PRC_GROUP1 TYPE STRING,
PRC_GROUP2 TYPE STRING,
PRC_GROUP3 TYPE STRING,
PRC_GROUP4 TYPE STRING,
PRC_GROUP5 TYPE STRING,
CLAIMS_TAXATION TYPE STRING,
ALLOC_NMBR TYPE STRING,
PADAT TYPE STRING,
OBJTYPE TYPE STRING,
CANCEL_FLAG TYPE STRING,
MATERIAL_LONG TYPE STRING,END OF T_EKKO_STR. DATA: WA_BAPIVBRKCRM_SD_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_BAPIVBRKCRM_SD_STR-SALESORG sy-vline
WA_BAPIVBRKCRM_SD_STR-DISTR_CHAN sy-vline
WA_BAPIVBRKCRM_SD_STR-DIVISION sy-vline
WA_BAPIVBRKCRM_SD_STR-DOC_TYPE sy-vline
WA_BAPIVBRKCRM_SD_STR-ORDBILLTYP sy-vline
WA_BAPIVBRKCRM_SD_STR-BILL_CATEGORY sy-vline
WA_BAPIVBRKCRM_SD_STR-ITEM_CATEG sy-vline
WA_BAPIVBRKCRM_SD_STR-BILL_DATE sy-vline
WA_BAPIVBRKCRM_SD_STR-SOLD_TO_GUID sy-vline
WA_BAPIVBRKCRM_SD_STR-BILL_TO_GUID sy-vline
WA_BAPIVBRKCRM_SD_STR-PAYER_GUID sy-vline
WA_BAPIVBRKCRM_SD_STR-SHIP_TO_GUID sy-vline
WA_BAPIVBRKCRM_SD_STR-PLANT sy-vline
WA_BAPIVBRKCRM_SD_STR-REF_DOC sy-vline
WA_BAPIVBRKCRM_SD_STR-REF_DOC_IT sy-vline
WA_BAPIVBRKCRM_SD_STR-MATERIAL sy-vline
WA_BAPIVBRKCRM_SD_STR-MATERIAL_GUID sy-vline
WA_BAPIVBRKCRM_SD_STR-MATERIAL_EXTERNAL sy-vline
WA_BAPIVBRKCRM_SD_STR-REQ_QTY sy-vline
WA_BAPIVBRKCRM_SD_STR-CURRENCY sy-vline
WA_BAPIVBRKCRM_SD_STR-NO_MATMAST sy-vline
WA_BAPIVBRKCRM_SD_STR-PROD_HIER sy-vline
WA_BAPIVBRKCRM_SD_STR-SALES_UNIT sy-vline
WA_BAPIVBRKCRM_SD_STR-ORIGINDOC sy-vline
WA_BAPIVBRKCRM_SD_STR-ITEM sy-vline
WA_BAPIVBRKCRM_SD_STR-CREATED_BY sy-vline
WA_BAPIVBRKCRM_SD_STR-CR_ON sy-vline
WA_BAPIVBRKCRM_SD_STR-REC_TIME sy-vline
WA_BAPIVBRKCRM_SD_STR-REF_DOC_NO sy-vline
WA_BAPIVBRKCRM_SD_STR-CONSOLID_CRIT sy-vline
WA_BAPIVBRKCRM_SD_STR-EXCHG_RATE sy-vline
WA_BAPIVBRKCRM_SD_STR-INCOTERMS1 sy-vline
WA_BAPIVBRKCRM_SD_STR-INCOTERMS2 sy-vline
WA_BAPIVBRKCRM_SD_STR-EXCHANGE_RATE sy-vline
WA_BAPIVBRKCRM_SD_STR-PMNTTRMS sy-vline
WA_BAPIVBRKCRM_SD_STR-PRIC_PROC sy-vline
WA_BAPIVBRKCRM_SD_STR-PYMT_METH sy-vline
WA_BAPIVBRKCRM_SD_STR-PAYMT_REF sy-vline
WA_BAPIVBRKCRM_SD_STR-HG_LV_ITEM sy-vline
WA_BAPIVBRKCRM_SD_STR-ITEM_TYPE sy-vline
WA_BAPIVBRKCRM_SD_STR-CUST_GROUP sy-vline
WA_BAPIVBRKCRM_SD_STR-GROSS_WT sy-vline
WA_BAPIVBRKCRM_SD_STR-NET_WEIGHT sy-vline
WA_BAPIVBRKCRM_SD_STR-UNIT_OF_WT sy-vline
WA_BAPIVBRKCRM_SD_STR-LOG_SYSTEM sy-vline
WA_BAPIVBRKCRM_SD_STR-PRC_INDICATOR sy-vline
WA_BAPIVBRKCRM_SD_STR-PRICE_GRP sy-vline
WA_BAPIVBRKCRM_SD_STR-PRICE_LIST sy-vline
WA_BAPIVBRKCRM_SD_STR-PRICE_DATE sy-vline
WA_BAPIVBRKCRM_SD_STR-MAT_PR_GRP sy-vline
WA_BAPIVBRKCRM_SD_STR-SERV_DATE sy-vline
WA_BAPIVBRKCRM_SD_STR-VAT_CNTRY sy-vline
WA_BAPIVBRKCRM_SD_STR-TAX_DEPART_CTY sy-vline
WA_BAPIVBRKCRM_SD_STR-BASE_UOM sy-vline
WA_BAPIVBRKCRM_SD_STR-DISPUTE_IF_TYPE sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXJURCODE sy-vline
WA_BAPIVBRKCRM_SD_STR-COMP_CODE sy-vline
WA_BAPIVBRKCRM_SD_STR-BS_IDENT sy-vline
WA_BAPIVBRKCRM_SD_STR-FIX_VAL_DY sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXM1 sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXM2 sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXM3 sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXM4 sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXM5 sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXM6 sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXM7 sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXM8 sy-vline
WA_BAPIVBRKCRM_SD_STR-TAXM9 sy-vline
WA_BAPIVBRKCRM_SD_STR-DB_CR_IND sy-vline
WA_BAPIVBRKCRM_SD_STR-REVERSAL sy-vline
WA_BAPIVBRKCRM_SD_STR-CNC_REF_DOC sy-vline
WA_BAPIVBRKCRM_SD_STR-CNC_REF_DOC_IT sy-vline
WA_BAPIVBRKCRM_SD_STR-USE_ACCMAN sy-vline
WA_BAPIVBRKCRM_SD_STR-PRC_GROUP1 sy-vline
WA_BAPIVBRKCRM_SD_STR-PRC_GROUP2 sy-vline
WA_BAPIVBRKCRM_SD_STR-PRC_GROUP3 sy-vline
WA_BAPIVBRKCRM_SD_STR-PRC_GROUP4 sy-vline
WA_BAPIVBRKCRM_SD_STR-PRC_GROUP5 sy-vline
WA_BAPIVBRKCRM_SD_STR-CLAIMS_TAXATION sy-vline
WA_BAPIVBRKCRM_SD_STR-ALLOC_NMBR sy-vline
WA_BAPIVBRKCRM_SD_STR-PADAT sy-vline
WA_BAPIVBRKCRM_SD_STR-OBJTYPE sy-vline
WA_BAPIVBRKCRM_SD_STR-CANCEL_FLAG sy-vline
WA_BAPIVBRKCRM_SD_STR-MATERIAL_LONG sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.