ABAP Select data from SAP table SOXRT 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 SOXRT 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 SOXRT. 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 SOXRT 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_SOXRT TYPE STANDARD TABLE OF SOXRT, WA_SOXRT TYPE SOXRT, 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: <SOXRT> TYPE SOXRT. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_SOXRT. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM SOXRT INTO TABLE IT_SOXRT. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM SOXRT * INTO TABLE @DATA(IT_SOXRT2). *--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_SOXRT INDEX 1 INTO DATA(WA_SOXRT2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_SOXRT ASSIGNING <SOXRT>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<SOXRT>-RECTP = 1.
<SOXRT>-RECYR = 1.
<SOXRT>-RECNO = 1.
<SOXRT>-SEL = 1.
<SOXRT>-RECNAM = 1.
ENDLOOP. LOOP AT IT_SOXRT INTO WA_SOXRT. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_SOXRT-RECEXTNAM, sy-vline,
WA_SOXRT-RECESC, sy-vline,
WA_SOXRT-RECOWN, sy-vline,
WA_SOXRT-LFDNR, sy-vline,
WA_SOXRT-RCDAT, sy-vline,
WA_SOXRT-RCTIM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_SOXRT 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_SOXRT 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_SOXRT INTO WA_SOXRT. *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 SXIDN, internal->external for field ADR_NAME CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_SOXRT-ADR_NAME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_SOXRT-ADR_NAME.
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_SOXRT_STR,
RECTP TYPE STRING,
RECYR TYPE STRING,
RECNO TYPE STRING,
SEL TYPE STRING,
RECNAM TYPE STRING,
RECEXTNAM TYPE STRING,
RECESC TYPE STRING,
RECOWN TYPE STRING,
LFDNR TYPE STRING,
RCDAT TYPE STRING,
RCTIM TYPE STRING,
NOTTP TYPE STRING,
NOTYR TYPE STRING,
NOTNO TYPE STRING,
SNDART TYPE STRING,
SNDSPO TYPE STRING,
RECLAN TYPE STRING,
RECTEL TYPE STRING,
SNDTP TYPE STRING,
SNDYR TYPE STRING,
SNDNO TYPE STRING,
SNDNAM TYPE STRING,
SNDDR TYPE STRING,
SNDEX TYPE STRING,
SNDCP TYPE STRING,
SNDBC TYPE STRING,
FORFB TYPE STRING,
PRIFB TYPE STRING,
SNDPRI TYPE STRING,
ACDAT TYPE STRING,
ACTIM TYPE STRING,
ACALL TYPE STRING,
ACONE TYPE STRING,
OBJAC TYPE STRING,
RRDAT TYPE STRING,
RRTIM TYPE STRING,
OBJRR TYPE STRING,
OBJRN TYPE STRING,
RSDAT TYPE STRING,
RSTIM TYPE STRING,
RSSPA TYPE STRING,
RSFLG TYPE STRING,
RSTIME TYPE STRING,
RSDATE TYPE STRING,
RSDATB TYPE STRING,
RSTIMB TYPE STRING,
RSDAY TYPE STRING,
RSDATL TYPE STRING,
RSTIML TYPE STRING,
RSFLGL TYPE STRING,
FLAG1 TYPE STRING,
FLAG2 TYPE STRING,
RSRCODE TYPE STRING,
REPNAM TYPE STRING,
REPESC TYPE STRING,
REPOWN TYPE STRING,
REPTP TYPE STRING,
REPYR TYPE STRING,
REPNO TYPE STRING,
REPEXTNAM TYPE STRING,
RTDNAM TYPE STRING,
BPTTP TYPE STRING,
BPTYR TYPE STRING,
BPTNO TYPE STRING,
FORTP TYPE STRING,
FORYR TYPE STRING,
FORNO TYPE STRING,
FORNAM TYPE STRING,
SUBTP TYPE STRING,
SUBYR TYPE STRING,
SUBNO TYPE STRING,
RCODE TYPE STRING,
MSGID TYPE STRING,
MSGNO TYPE STRING,
MSGV1 TYPE STRING,
MSGV2 TYPE STRING,
MSGV3 TYPE STRING,
MSGV4 TYPE STRING,
RESEND TYPE STRING,
LAST_DATE TYPE STRING,
LAST_TIME TYPE STRING,
READ_DATE TYPE STRING,
READ_TIME TYPE STRING,
CHECKINBOX TYPE STRING,
FPTTP TYPE STRING,
FPTYR TYPE STRING,
FPTNO TYPE STRING,
OBJRS TYPE STRING,
SAP_BODY TYPE STRING,
AREPTP TYPE STRING,
AREPYR TYPE STRING,
AREPNO TYPE STRING,
DELIVER TYPE STRING,
NOT_DELI TYPE STRING,
READ TYPE STRING,
MAILSTATUS TYPE STRING,
ADR_NAME TYPE STRING,
INBYR TYPE STRING,
INBNO TYPE STRING,
SNDREQ TYPE STRING,
REC_UID TYPE STRING,END OF T_EKKO_STR. DATA: WA_SOXRT_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_SOXRT_STR-RECTP sy-vline
WA_SOXRT_STR-RECYR sy-vline
WA_SOXRT_STR-RECNO sy-vline
WA_SOXRT_STR-SEL sy-vline
WA_SOXRT_STR-RECNAM sy-vline
WA_SOXRT_STR-RECEXTNAM sy-vline
WA_SOXRT_STR-RECESC sy-vline
WA_SOXRT_STR-RECOWN sy-vline
WA_SOXRT_STR-LFDNR sy-vline
WA_SOXRT_STR-RCDAT sy-vline
WA_SOXRT_STR-RCTIM sy-vline
WA_SOXRT_STR-NOTTP sy-vline
WA_SOXRT_STR-NOTYR sy-vline
WA_SOXRT_STR-NOTNO sy-vline
WA_SOXRT_STR-SNDART sy-vline
WA_SOXRT_STR-SNDSPO sy-vline
WA_SOXRT_STR-RECLAN sy-vline
WA_SOXRT_STR-RECTEL sy-vline
WA_SOXRT_STR-SNDTP sy-vline
WA_SOXRT_STR-SNDYR sy-vline
WA_SOXRT_STR-SNDNO sy-vline
WA_SOXRT_STR-SNDNAM sy-vline
WA_SOXRT_STR-SNDDR sy-vline
WA_SOXRT_STR-SNDEX sy-vline
WA_SOXRT_STR-SNDCP sy-vline
WA_SOXRT_STR-SNDBC sy-vline
WA_SOXRT_STR-FORFB sy-vline
WA_SOXRT_STR-PRIFB sy-vline
WA_SOXRT_STR-SNDPRI sy-vline
WA_SOXRT_STR-ACDAT sy-vline
WA_SOXRT_STR-ACTIM sy-vline
WA_SOXRT_STR-ACALL sy-vline
WA_SOXRT_STR-ACONE sy-vline
WA_SOXRT_STR-OBJAC sy-vline
WA_SOXRT_STR-RRDAT sy-vline
WA_SOXRT_STR-RRTIM sy-vline
WA_SOXRT_STR-OBJRR sy-vline
WA_SOXRT_STR-OBJRN sy-vline
WA_SOXRT_STR-RSDAT sy-vline
WA_SOXRT_STR-RSTIM sy-vline
WA_SOXRT_STR-RSSPA sy-vline
WA_SOXRT_STR-RSFLG sy-vline
WA_SOXRT_STR-RSTIME sy-vline
WA_SOXRT_STR-RSDATE sy-vline
WA_SOXRT_STR-RSDATB sy-vline
WA_SOXRT_STR-RSTIMB sy-vline
WA_SOXRT_STR-RSDAY sy-vline
WA_SOXRT_STR-RSDATL sy-vline
WA_SOXRT_STR-RSTIML sy-vline
WA_SOXRT_STR-RSFLGL sy-vline
WA_SOXRT_STR-FLAG1 sy-vline
WA_SOXRT_STR-FLAG2 sy-vline
WA_SOXRT_STR-RSRCODE sy-vline
WA_SOXRT_STR-REPNAM sy-vline
WA_SOXRT_STR-REPESC sy-vline
WA_SOXRT_STR-REPOWN sy-vline
WA_SOXRT_STR-REPTP sy-vline
WA_SOXRT_STR-REPYR sy-vline
WA_SOXRT_STR-REPNO sy-vline
WA_SOXRT_STR-REPEXTNAM sy-vline
WA_SOXRT_STR-RTDNAM sy-vline
WA_SOXRT_STR-BPTTP sy-vline
WA_SOXRT_STR-BPTYR sy-vline
WA_SOXRT_STR-BPTNO sy-vline
WA_SOXRT_STR-FORTP sy-vline
WA_SOXRT_STR-FORYR sy-vline
WA_SOXRT_STR-FORNO sy-vline
WA_SOXRT_STR-FORNAM sy-vline
WA_SOXRT_STR-SUBTP sy-vline
WA_SOXRT_STR-SUBYR sy-vline
WA_SOXRT_STR-SUBNO sy-vline
WA_SOXRT_STR-RCODE sy-vline
WA_SOXRT_STR-MSGID sy-vline
WA_SOXRT_STR-MSGNO sy-vline
WA_SOXRT_STR-MSGV1 sy-vline
WA_SOXRT_STR-MSGV2 sy-vline
WA_SOXRT_STR-MSGV3 sy-vline
WA_SOXRT_STR-MSGV4 sy-vline
WA_SOXRT_STR-RESEND sy-vline
WA_SOXRT_STR-LAST_DATE sy-vline
WA_SOXRT_STR-LAST_TIME sy-vline
WA_SOXRT_STR-READ_DATE sy-vline
WA_SOXRT_STR-READ_TIME sy-vline
WA_SOXRT_STR-CHECKINBOX sy-vline
WA_SOXRT_STR-FPTTP sy-vline
WA_SOXRT_STR-FPTYR sy-vline
WA_SOXRT_STR-FPTNO sy-vline
WA_SOXRT_STR-OBJRS sy-vline
WA_SOXRT_STR-SAP_BODY sy-vline
WA_SOXRT_STR-AREPTP sy-vline
WA_SOXRT_STR-AREPYR sy-vline
WA_SOXRT_STR-AREPNO sy-vline
WA_SOXRT_STR-DELIVER sy-vline
WA_SOXRT_STR-NOT_DELI sy-vline
WA_SOXRT_STR-READ sy-vline
WA_SOXRT_STR-MAILSTATUS sy-vline
WA_SOXRT_STR-ADR_NAME sy-vline
WA_SOXRT_STR-INBYR sy-vline
WA_SOXRT_STR-INBNO sy-vline
WA_SOXRT_STR-SNDREQ sy-vline
WA_SOXRT_STR-REC_UID sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.