ABAP Select data from SAP table RCUD5 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 RCUD5 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 RCUD5. 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 RCUD5 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_RCUD5 TYPE STANDARD TABLE OF RCUD5,
      WA_RCUD5 TYPE RCUD5,
      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: <RCUD5> TYPE RCUD5.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RCUD5
*  INTO TABLE @DATA(IT_RCUD52).
*--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_RCUD5 INDEX 1 INTO DATA(WA_RCUD52).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RCUD5 ASSIGNING <RCUD5>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RCUD5>-SRTSQ = 1.
<RCUD5>-KSCHL = 1.
<RCUD5>-MANDT = 1.
<RCUD5>-KLART = 1.
<RCUD5>-SELKZ = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RCUD5-SPRAS, sy-vline,
WA_RCUD5-JPVAL, sy-vline,
WA_RCUD5-JPROT, sy-vline,
WA_RCUD5-DATUM, sy-vline,
WA_RCUD5-STATU, sy-vline,
WA_RCUD5-STATUF, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RCUD5 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_RCUD5 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_RCUD5 INTO WA_RCUD5. *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 ISOLA, internal->external for field SPRAS CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RCUD5-SPRAS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCUD5-SPRAS.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field RFAEN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RCUD5-RFAEN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCUD5-RFAEN.
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_RCUD5_STR,
SRTSQ TYPE STRING,
KSCHL TYPE STRING,
MANDT TYPE STRING,
KLART TYPE STRING,
SELKZ TYPE STRING,
SPRAS TYPE STRING,
JPVAL TYPE STRING,
JPROT TYPE STRING,
DATUM TYPE STRING,
STATU TYPE STRING,
STATUF TYPE STRING,
STATUS TYPE STRING,
DATUV TYPE STRING,
KLAGR TYPE STRING,
KLAGRF TYPE STRING,
KLAGRS TYPE STRING,
BGRKL TYPE STRING,
BGRKP TYPE STRING,
BGRKPF TYPE STRING,
BGRKPS TYPE STRING,
ANAME TYPE STRING,
ADATU TYPE STRING,
VNAME TYPE STRING,
VDATU TYPE STRING,
AENNR TYPE STRING,
ATNAM TYPE STRING,
ATBEZ TYPE STRING,
ATKEY TYPE STRING,
ATKEYF TYPE STRING,
RFFUN TYPE STRING,
RFSRT TYPE STRING,
RFTAB TYPE STRING,
RFAEN TYPE STRING,
RFDAT TYPE STRING,
FNACTIVE TYPE STRING,
ATSRTA TYPE STRING,
ATSRTD TYPE STRING,
INFAEN TYPE STRING,
DCTAB TYPE STRING,END OF T_EKKO_STR. DATA: WA_RCUD5_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_RCUD5_STR-SRTSQ sy-vline
WA_RCUD5_STR-KSCHL sy-vline
WA_RCUD5_STR-MANDT sy-vline
WA_RCUD5_STR-KLART sy-vline
WA_RCUD5_STR-SELKZ sy-vline
WA_RCUD5_STR-SPRAS sy-vline
WA_RCUD5_STR-JPVAL sy-vline
WA_RCUD5_STR-JPROT sy-vline
WA_RCUD5_STR-DATUM sy-vline
WA_RCUD5_STR-STATU sy-vline
WA_RCUD5_STR-STATUF sy-vline
WA_RCUD5_STR-STATUS sy-vline
WA_RCUD5_STR-DATUV sy-vline
WA_RCUD5_STR-KLAGR sy-vline
WA_RCUD5_STR-KLAGRF sy-vline
WA_RCUD5_STR-KLAGRS sy-vline
WA_RCUD5_STR-BGRKL sy-vline
WA_RCUD5_STR-BGRKP sy-vline
WA_RCUD5_STR-BGRKPF sy-vline
WA_RCUD5_STR-BGRKPS sy-vline
WA_RCUD5_STR-ANAME sy-vline
WA_RCUD5_STR-ADATU sy-vline
WA_RCUD5_STR-VNAME sy-vline
WA_RCUD5_STR-VDATU sy-vline
WA_RCUD5_STR-AENNR sy-vline
WA_RCUD5_STR-ATNAM sy-vline
WA_RCUD5_STR-ATBEZ sy-vline
WA_RCUD5_STR-ATKEY sy-vline
WA_RCUD5_STR-ATKEYF sy-vline
WA_RCUD5_STR-RFFUN sy-vline
WA_RCUD5_STR-RFSRT sy-vline
WA_RCUD5_STR-RFTAB sy-vline
WA_RCUD5_STR-RFAEN sy-vline
WA_RCUD5_STR-RFDAT sy-vline
WA_RCUD5_STR-FNACTIVE sy-vline
WA_RCUD5_STR-ATSRTA sy-vline
WA_RCUD5_STR-ATSRTD sy-vline
WA_RCUD5_STR-INFAEN sy-vline
WA_RCUD5_STR-DCTAB sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.