ABAP Select data from SAP table RDEBTTR 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 RDEBTTR 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 RDEBTTR. 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 RDEBTTR 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_RDEBTTR TYPE STANDARD TABLE OF RDEBTTR, WA_RDEBTTR TYPE RDEBTTR, 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: <RDEBTTR> TYPE RDEBTTR. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_RDEBTTR. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM RDEBTTR INTO TABLE IT_RDEBTTR. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM RDEBTTR * INTO TABLE @DATA(IT_RDEBTTR2). *--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_RDEBTTR INDEX 1 INTO DATA(WA_RDEBTTR2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_RDEBTTR ASSIGNING <RDEBTTR>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<RDEBTTR>-SBO_STATUS = 1.
<RDEBTTR>-SFGKZ = 1.
<RDEBTTR>-SRELSTAT = 1.
<RDEBTTR>-SNOTIZ = 1.
<RDEBTTR>-XBO_TEXT = 1.
ENDLOOP. LOOP AT IT_RDEBTTR INTO WA_RDEBTTR. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_RDEBTTR-BVTYP_NEW, sy-vline,
WA_RDEBTTR-ZSCHL_NEW, sy-vline,
WA_RDEBTTR-PARTNER_NEW, sy-vline,
WA_RDEBTTR-DATE_FROM, sy-vline,
WA_RDEBTTR-DEBTTR_REASON, sy-vline,
WA_RDEBTTR-ABWZAHLER, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RDEBTTR 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_RDEBTTR 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_RDEBTTR INTO WA_RDEBTTR. *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 PARTNER_NEW CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RDEBTTR-PARTNER_NEW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RDEBTTR-PARTNER_NEW.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field RKLAMMER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RDEBTTR-RKLAMMER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RDEBTTR-RKLAMMER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field KUNNR_NEW CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RDEBTTR-KUNNR_NEW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RDEBTTR-KUNNR_NEW.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field KUNNR_OLD CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RDEBTTR-KUNNR_OLD IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RDEBTTR-KUNNR_OLD.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field PARTNER_OLD CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RDEBTTR-PARTNER_OLD IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RDEBTTR-PARTNER_OLD.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field PARTNER_TO CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RDEBTTR-PARTNER_TO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RDEBTTR-PARTNER_TO.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field PARTNER_FROM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RDEBTTR-PARTNER_FROM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RDEBTTR-PARTNER_FROM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field KUNNR_TO CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RDEBTTR-KUNNR_TO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RDEBTTR-KUNNR_TO.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field KUNNR_FROM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RDEBTTR-KUNNR_FROM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RDEBTTR-KUNNR_FROM.
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_RDEBTTR_STR,
SBO_STATUS TYPE STRING,
SFGKZ TYPE STRING,
SRELSTAT TYPE STRING,
SNOTIZ TYPE STRING,
XBO_TEXT TYPE STRING,
BVTYP_NEW TYPE STRING,
ZSCHL_NEW TYPE STRING,
PARTNER_NEW TYPE STRING,
DATE_FROM TYPE STRING,
DEBTTR_REASON TYPE STRING,
ABWZAHLER TYPE STRING,
VERFUEB TYPE STRING,
ZINSBES TYPE STRING,
GEBUEHR TYPE STRING,
BEWART TYPE STRING,
DFAELL TYPE STRING,
MNDID TYPE STRING,
XTEST TYPE STRING,
CHANGED TYPE STRING,
XBO_STATUS TYPE STRING,
XSFGKZ TYPE STRING,
XNOTIZ TYPE STRING,
XBEWART TYPE STRING,
RERF TYPE STRING,
DERF TYPE STRING,
TERF TYPE STRING,
RBEAR TYPE STRING,
DBEAR TYPE STRING,
TBEAR TYPE STRING,
REHER TYPE STRING,
RBHER TYPE STRING,
XPARTNAME TYPE STRING,
BRPWR TYPE STRING,
OPOS TYPE STRING,
GESAMTFRD TYPE STRING,
SBWHR TYPE STRING,
RKLAMMER TYPE STRING,
SMULTCH TYPE STRING,
SFGST TYPE STRING,
BANK_ID_TEXT TYPE STRING,
ZAHLWEG_TEXT TYPE STRING,
DDISPO_MIN TYPE STRING,
DDISPO_MAX TYPE STRING,
KUNNR_NEW TYPE STRING,
KUNNR_OLD TYPE STRING,
PARTNER_OLD TYPE STRING,
RREFKONT TYPE STRING,
XPARTNAME_OLD TYPE STRING,
PARTNER_TO TYPE STRING,
PARTNER_FROM TYPE STRING,
KUNNR_TO TYPE STRING,
KUNNR_FROM TYPE STRING,END OF T_EKKO_STR. DATA: WA_RDEBTTR_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_RDEBTTR_STR-SBO_STATUS sy-vline
WA_RDEBTTR_STR-SFGKZ sy-vline
WA_RDEBTTR_STR-SRELSTAT sy-vline
WA_RDEBTTR_STR-SNOTIZ sy-vline
WA_RDEBTTR_STR-XBO_TEXT sy-vline
WA_RDEBTTR_STR-BVTYP_NEW sy-vline
WA_RDEBTTR_STR-ZSCHL_NEW sy-vline
WA_RDEBTTR_STR-PARTNER_NEW sy-vline
WA_RDEBTTR_STR-DATE_FROM sy-vline
WA_RDEBTTR_STR-DEBTTR_REASON sy-vline
WA_RDEBTTR_STR-ABWZAHLER sy-vline
WA_RDEBTTR_STR-VERFUEB sy-vline
WA_RDEBTTR_STR-ZINSBES sy-vline
WA_RDEBTTR_STR-GEBUEHR sy-vline
WA_RDEBTTR_STR-BEWART sy-vline
WA_RDEBTTR_STR-DFAELL sy-vline
WA_RDEBTTR_STR-MNDID sy-vline
WA_RDEBTTR_STR-XTEST sy-vline
WA_RDEBTTR_STR-CHANGED sy-vline
WA_RDEBTTR_STR-XBO_STATUS sy-vline
WA_RDEBTTR_STR-XSFGKZ sy-vline
WA_RDEBTTR_STR-XNOTIZ sy-vline
WA_RDEBTTR_STR-XBEWART sy-vline
WA_RDEBTTR_STR-RERF sy-vline
WA_RDEBTTR_STR-DERF sy-vline
WA_RDEBTTR_STR-TERF sy-vline
WA_RDEBTTR_STR-RBEAR sy-vline
WA_RDEBTTR_STR-DBEAR sy-vline
WA_RDEBTTR_STR-TBEAR sy-vline
WA_RDEBTTR_STR-REHER sy-vline
WA_RDEBTTR_STR-RBHER sy-vline
WA_RDEBTTR_STR-XPARTNAME sy-vline
WA_RDEBTTR_STR-BRPWR sy-vline
WA_RDEBTTR_STR-OPOS sy-vline
WA_RDEBTTR_STR-GESAMTFRD sy-vline
WA_RDEBTTR_STR-SBWHR sy-vline
WA_RDEBTTR_STR-RKLAMMER sy-vline
WA_RDEBTTR_STR-SMULTCH sy-vline
WA_RDEBTTR_STR-SFGST sy-vline
WA_RDEBTTR_STR-BANK_ID_TEXT sy-vline
WA_RDEBTTR_STR-ZAHLWEG_TEXT sy-vline
WA_RDEBTTR_STR-DDISPO_MIN sy-vline
WA_RDEBTTR_STR-DDISPO_MAX sy-vline
WA_RDEBTTR_STR-KUNNR_NEW sy-vline
WA_RDEBTTR_STR-KUNNR_OLD sy-vline
WA_RDEBTTR_STR-PARTNER_OLD sy-vline
WA_RDEBTTR_STR-RREFKONT sy-vline
WA_RDEBTTR_STR-XPARTNAME_OLD sy-vline
WA_RDEBTTR_STR-PARTNER_TO sy-vline
WA_RDEBTTR_STR-PARTNER_FROM sy-vline
WA_RDEBTTR_STR-KUNNR_TO sy-vline
WA_RDEBTTR_STR-KUNNR_FROM sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.