ABAP Select data from SAP table IBKK50 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 IBKK50 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 IBKK50. 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 IBKK50 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_IBKK50 TYPE STANDARD TABLE OF IBKK50,
      WA_IBKK50 TYPE IBKK50,
      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: <IBKK50> TYPE IBKK50.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM IBKK50
*  INTO TABLE @DATA(IT_IBKK502).
*--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_IBKK50 INDEX 1 INTO DATA(WA_IBKK502).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_IBKK50 ASSIGNING <IBKK50>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<IBKK50>-BKKRS = 1.
<IBKK50>-ACNUM_INT = 1.
<IBKK50>-ACNUM_EXT = 1.
<IBKK50>-BKS = 1.
<IBKK50>-ACNUM_IBAN = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_IBKK50-PRODINT, sy-vline,
WA_IBKK50-NPRODINT, sy-vline,
WA_IBKK50-MPRODEXT, sy-vline,
WA_IBKK50-PRODEXT, sy-vline,
WA_IBKK50-NPRODEXT, sy-vline,
WA_IBKK50-VERSION, sy-vline.
ENDLOOP. *Add any further fields from structure WA_IBKK50 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_IBKK50 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_IBKK50 INTO WA_IBKK50. *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 ACNUM_INT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IBKK50-ACNUM_INT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IBKK50-ACNUM_INT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ACEXT, internal->external for field ACNUM_EXT CALL FUNCTION 'CONVERSION_EXIT_ACEXT_OUTPUT' EXPORTING input = WA_IBKK50-ACNUM_EXT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IBKK50-ACNUM_EXT.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field PARTNER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IBKK50-PARTNER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IBKK50-PARTNER.
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_IBKK50_STR,
BKKRS TYPE STRING,
ACNUM_INT TYPE STRING,
ACNUM_EXT TYPE STRING,
BKS TYPE STRING,
ACNUM_IBAN TYPE STRING,
PRODINT TYPE STRING,
NPRODINT TYPE STRING,
MPRODEXT TYPE STRING,
PRODEXT TYPE STRING,
NPRODEXT TYPE STRING,
VERSION TYPE STRING,
CONDAREA TYPE STRING,
NCONDAREA TYPE STRING,
ACKIND TYPE STRING,
ACTEXT TYPE STRING,
T_BKKRS TYPE STRING,
T_PRODINT TYPE STRING,
T_MPRODINT TYPE STRING,
T_NPRODINT TYPE STRING,
T_ACKIND2 TYPE STRING,
T_ACKIND TYPE STRING,
T_VAL_REQ TYPE STRING,
T_CHCURSTATUS TYPE STRING,
T_GLGRP TYPE STRING,
XSAVE TYPE STRING,
XCHNG TYPE STRING,
TBFLD TYPE STRING,
ABLSO TYPE STRING,
FLDSTAT TYPE STRING,
CHAR1 TYPE STRING,
DTITL TYPE STRING,
COUNTER1 TYPE STRING,
XSINGLE TYPE STRING,
XAND TYPE STRING,
XOR TYPE STRING,
T_CAL1 TYPE STRING,
T_CAL2 TYPE STRING,
T_NCONDAREA TYPE STRING,
T_CONDAREA TYPE STRING,
T_CONDGR1 TYPE STRING,
T_CONDGR2 TYPE STRING,
T_CONDGR3 TYPE STRING,
T_STATUSAD TYPE STRING,
T_STATUS TYPE STRING,
T_BUTTON TYPE STRING,
T_XWHTAX TYPE STRING,
ACKGRP TYPE STRING,
XUPDATE TYPE STRING,
XINTNR TYPE STRING,
FLG_SAVE TYPE STRING,
CONDIND1 TYPE STRING,
CONDIND2 TYPE STRING,
CONDIND3 TYPE STRING,
ATTRIB TYPE STRING,
CONDTEXT1 TYPE STRING,
CONDTEXT2 TYPE STRING,
CONDTEXT3 TYPE STRING,
XOFFER TYPE STRING,
T_OFFER TYPE STRING,
XCHKDIG TYPE STRING,
T_CHKDIG TYPE STRING,
NACKIND TYPE STRING,
ACKIND_2 TYPE STRING,
TSENDTYPE TYPE STRING,
BPDESCRIP TYPE STRING,
FNAM TYPE STRING,
MC_NAME1 TYPE STRING,
MC_NAME2 TYPE STRING,
PARTNER TYPE STRING,
RLTYP TYPE STRING,
MC_STREET TYPE STRING,
MC_CITY1 TYPE STRING,
XIMDEL TYPE STRING,
STATUS_ACTIVE TYPE STRING,
NOSTRO TYPE STRING,
T_NOSTRO TYPE STRING,
OPENDATE TYPE STRING,
DELDATE TYPE STRING,
T_WGRUND1 TYPE STRING,
T_WGRUND2 TYPE STRING,
T_WGRUND3 TYPE STRING,
T_WGRUND4 TYPE STRING,
T_WGRUND5 TYPE STRING,
T_GSBER TYPE STRING,
MAXPERPRODUCT TYPE STRING,
SEARCH1 TYPE STRING,
SEARCH2 TYPE STRING,
RELEASE_INFO TYPE STRING,
ACC_ID_EXT TYPE STRING,END OF T_EKKO_STR. DATA: WA_IBKK50_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_IBKK50_STR-BKKRS sy-vline
WA_IBKK50_STR-ACNUM_INT sy-vline
WA_IBKK50_STR-ACNUM_EXT sy-vline
WA_IBKK50_STR-BKS sy-vline
WA_IBKK50_STR-ACNUM_IBAN sy-vline
WA_IBKK50_STR-PRODINT sy-vline
WA_IBKK50_STR-NPRODINT sy-vline
WA_IBKK50_STR-MPRODEXT sy-vline
WA_IBKK50_STR-PRODEXT sy-vline
WA_IBKK50_STR-NPRODEXT sy-vline
WA_IBKK50_STR-VERSION sy-vline
WA_IBKK50_STR-CONDAREA sy-vline
WA_IBKK50_STR-NCONDAREA sy-vline
WA_IBKK50_STR-ACKIND sy-vline
WA_IBKK50_STR-ACTEXT sy-vline
WA_IBKK50_STR-T_BKKRS sy-vline
WA_IBKK50_STR-T_PRODINT sy-vline
WA_IBKK50_STR-T_MPRODINT sy-vline
WA_IBKK50_STR-T_NPRODINT sy-vline
WA_IBKK50_STR-T_ACKIND2 sy-vline
WA_IBKK50_STR-T_ACKIND sy-vline
WA_IBKK50_STR-T_VAL_REQ sy-vline
WA_IBKK50_STR-T_CHCURSTATUS sy-vline
WA_IBKK50_STR-T_GLGRP sy-vline
WA_IBKK50_STR-XSAVE sy-vline
WA_IBKK50_STR-XCHNG sy-vline
WA_IBKK50_STR-TBFLD sy-vline
WA_IBKK50_STR-ABLSO sy-vline
WA_IBKK50_STR-FLDSTAT sy-vline
WA_IBKK50_STR-CHAR1 sy-vline
WA_IBKK50_STR-DTITL sy-vline
WA_IBKK50_STR-COUNTER1 sy-vline
WA_IBKK50_STR-XSINGLE sy-vline
WA_IBKK50_STR-XAND sy-vline
WA_IBKK50_STR-XOR sy-vline
WA_IBKK50_STR-T_CAL1 sy-vline
WA_IBKK50_STR-T_CAL2 sy-vline
WA_IBKK50_STR-T_NCONDAREA sy-vline
WA_IBKK50_STR-T_CONDAREA sy-vline
WA_IBKK50_STR-T_CONDGR1 sy-vline
WA_IBKK50_STR-T_CONDGR2 sy-vline
WA_IBKK50_STR-T_CONDGR3 sy-vline
WA_IBKK50_STR-T_STATUSAD sy-vline
WA_IBKK50_STR-T_STATUS sy-vline
WA_IBKK50_STR-T_BUTTON sy-vline
WA_IBKK50_STR-T_XWHTAX sy-vline
WA_IBKK50_STR-ACKGRP sy-vline
WA_IBKK50_STR-XUPDATE sy-vline
WA_IBKK50_STR-XINTNR sy-vline
WA_IBKK50_STR-FLG_SAVE sy-vline
WA_IBKK50_STR-CONDIND1 sy-vline
WA_IBKK50_STR-CONDIND2 sy-vline
WA_IBKK50_STR-CONDIND3 sy-vline
WA_IBKK50_STR-ATTRIB sy-vline
WA_IBKK50_STR-CONDTEXT1 sy-vline
WA_IBKK50_STR-CONDTEXT2 sy-vline
WA_IBKK50_STR-CONDTEXT3 sy-vline
WA_IBKK50_STR-XOFFER sy-vline
WA_IBKK50_STR-T_OFFER sy-vline
WA_IBKK50_STR-XCHKDIG sy-vline
WA_IBKK50_STR-T_CHKDIG sy-vline
WA_IBKK50_STR-NACKIND sy-vline
WA_IBKK50_STR-ACKIND_2 sy-vline
WA_IBKK50_STR-TSENDTYPE sy-vline
WA_IBKK50_STR-BPDESCRIP sy-vline
WA_IBKK50_STR-FNAM sy-vline
WA_IBKK50_STR-MC_NAME1 sy-vline
WA_IBKK50_STR-MC_NAME2 sy-vline
WA_IBKK50_STR-PARTNER sy-vline
WA_IBKK50_STR-RLTYP sy-vline
WA_IBKK50_STR-MC_STREET sy-vline
WA_IBKK50_STR-MC_CITY1 sy-vline
WA_IBKK50_STR-XIMDEL sy-vline
WA_IBKK50_STR-STATUS_ACTIVE sy-vline
WA_IBKK50_STR-NOSTRO sy-vline
WA_IBKK50_STR-T_NOSTRO sy-vline
WA_IBKK50_STR-OPENDATE sy-vline
WA_IBKK50_STR-DELDATE sy-vline
WA_IBKK50_STR-T_WGRUND1 sy-vline
WA_IBKK50_STR-T_WGRUND2 sy-vline
WA_IBKK50_STR-T_WGRUND3 sy-vline
WA_IBKK50_STR-T_WGRUND4 sy-vline
WA_IBKK50_STR-T_WGRUND5 sy-vline
WA_IBKK50_STR-T_GSBER sy-vline
WA_IBKK50_STR-MAXPERPRODUCT sy-vline
WA_IBKK50_STR-SEARCH1 sy-vline
WA_IBKK50_STR-SEARCH2 sy-vline
WA_IBKK50_STR-RELEASE_INFO sy-vline
WA_IBKK50_STR-ACC_ID_EXT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.