ABAP Select data from SAP table RAIA1 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 RAIA1 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 RAIA1. 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 RAIA1 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_RAIA1 TYPE STANDARD TABLE OF RAIA1,
      WA_RAIA1 TYPE RAIA1,
      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: <RAIA1> TYPE RAIA1.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RAIA1
*  INTO TABLE @DATA(IT_RAIA12).
*--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_RAIA1 INDEX 1 INTO DATA(WA_RAIA12).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RAIA1 ASSIGNING <RAIA1>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RAIA1>-POSNR = 1.
<RAIA1>-TXT50 = 1.
<RAIA1>-HEAD1 = 1.
<RAIA1>-SYSST = 1.
<RAIA1>-ANWST = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RAIA1-STA_FUNCT, sy-vline,
WA_RAIA1-APOSNR, sy-vline,
WA_RAIA1-PS_POSNR, sy-vline,
WA_RAIA1-CO_AUFNR, sy-vline,
WA_RAIA1-KTEXT, sy-vline,
WA_RAIA1-XABLEHN, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RAIA1 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_RAIA1 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_RAIA1 INTO WA_RAIA1. *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 REQNR, internal->external for field POSNR CALL FUNCTION 'CONVERSION_EXIT_REQNR_OUTPUT' EXPORTING input = WA_RAIA1-POSNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-POSNR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ABPSP, internal->external for field PS_POSNR CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_RAIA1-PS_POSNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-PS_POSNR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit POSNR, internal->external for field PR_POSNR CALL FUNCTION 'CONVERSION_EXIT_POSNR_OUTPUT' EXPORTING input = WA_RAIA1-PR_POSNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-PR_POSNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit REQNR, internal->external for field ALT_POSNR CALL FUNCTION 'CONVERSION_EXIT_REQNR_OUTPUT' EXPORTING input = WA_RAIA1-ALT_POSNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-ALT_POSNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit REQNR, internal->external for field AL_POSNR CALL FUNCTION 'CONVERSION_EXIT_REQNR_OUTPUT' EXPORTING input = WA_RAIA1-AL_POSNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-AL_POSNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSN, internal->external for field PROJ_PSPID CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT' EXPORTING input = WA_RAIA1-PROJ_PSPID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-PROJ_PSPID.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSN, internal->external for field PRPS_POSID CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT' EXPORTING input = WA_RAIA1-PRPS_POSID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-PRPS_POSID.
WRITE:/ 'New Value:', ld_input.

*Conversion exit REQID, internal->external for field POSID CALL FUNCTION 'CONVERSION_EXIT_REQID_OUTPUT' EXPORTING input = WA_RAIA1-POSID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-POSID.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ABPSN, internal->external for field PS_VORLAGE CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT' EXPORTING input = WA_RAIA1-PS_VORLAGE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-PS_VORLAGE.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSN, internal->external for field PS_VORSPSP CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT' EXPORTING input = WA_RAIA1-PS_VORSPSP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RAIA1-PS_VORSPSP.
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_RAIA1_STR,
POSNR TYPE STRING,
TXT50 TYPE STRING,
HEAD1 TYPE STRING,
SYSST TYPE STRING,
ANWST TYPE STRING,
STA_FUNCT TYPE STRING,
APOSNR TYPE STRING,
PS_POSNR TYPE STRING,
CO_AUFNR TYPE STRING,
KTEXT TYPE STRING,
XABLEHN TYPE STRING,
XGEN TYPE STRING,
STA_DOWN TYPE STRING,
STA_UP TYPE STRING,
AUFT_GES TYPE STRING,
AUFT_KOST TYPE STRING,
AUFT_PRC TYPE STRING,
AUFT_IZW TYPE STRING,
AUFT_UMW TYPE STRING,
AUFT_WRG TYPE STRING,
AUFT_SPR TYPE STRING,
AUFT_VER TYPE STRING,
PROJ_AKT TYPE STRING,
ZUORD TYPE STRING,
CPYVAR TYPE STRING,
VTRVAR TYPE STRING,
WI_DATRE TYPE STRING,
PR_POSNR TYPE STRING,
ALT_POSNR TYPE STRING,
ALT_TXT50 TYPE STRING,
ALT_SYSST TYPE STRING,
ALT_ANWST TYPE STRING,
AL_POSNR TYPE STRING,
AL_TXT50 TYPE STRING,
PROJ_PSPID TYPE STRING,
PRPS_POSID TYPE STRING,
XVORP_KZ TYPE STRING,
SYSST_L TYPE STRING,
ANWST_L TYPE STRING,
ZUORD_ANL TYPE STRING,
ZUORD_EQU TYPE STRING,
VAPLZ TYPE STRING,
VAWRK TYPE STRING,
VAPLZ_NOCHANGE TYPE STRING,
AUFT_IZWEK TYPE STRING,
AUFT_UMWKZ TYPE STRING,
AUFT_AGSBER TYPE STRING,
AUFT_AKOSTL TYPE STRING,
AUFT_APRCTR TYPE STRING,
AUFT_ASPART TYPE STRING,
AUFT_AMATKL TYPE STRING,
AUFT_ANLN1 TYPE STRING,
AUFT_EQUNR TYPE STRING,
TREE_COMPRESS TYPE STRING,
POSID TYPE STRING,
VARNT TYPE STRING,
SYSST1 TYPE STRING,
SYSST2 TYPE STRING,
SYSST3 TYPE STRING,
SYSST4 TYPE STRING,
ANWST1 TYPE STRING,
ANWST2 TYPE STRING,
ANWST3 TYPE STRING,
ANWST4 TYPE STRING,
ANWST5 TYPE STRING,
STA_MNER TYPE STRING,
TRANSGROUP TYPE STRING,
SYSST_VAR1 TYPE STRING,
SYSST_VAR2 TYPE STRING,
SYSST_VAR3 TYPE STRING,
SYSST_VAR4 TYPE STRING,
ANWST_VAR1 TYPE STRING,
ANWST_VAR2 TYPE STRING,
ANWST_VAR3 TYPE STRING,
ANWST_VAR4 TYPE STRING,
ANWST_VAR5 TYPE STRING,
PLAN_LOCK TYPE STRING,
FRAME_HEADER1 TYPE STRING,
PS_VORLAGE TYPE STRING,
PS_VORSPSP TYPE STRING,
COPY_PSP_DOC TYPE STRING,
PS_VORLAGE_TEXT TYPE STRING,
PS_VORSPSP_TEXT TYPE STRING,
CREATE_PROJ TYPE STRING,
NO_XVORP_KZ TYPE STRING,
PLANPRZ TYPE STRING,
COPY_PSP_MLST TYPE STRING,END OF T_EKKO_STR. DATA: WA_RAIA1_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_RAIA1_STR-POSNR sy-vline
WA_RAIA1_STR-TXT50 sy-vline
WA_RAIA1_STR-HEAD1 sy-vline
WA_RAIA1_STR-SYSST sy-vline
WA_RAIA1_STR-ANWST sy-vline
WA_RAIA1_STR-STA_FUNCT sy-vline
WA_RAIA1_STR-APOSNR sy-vline
WA_RAIA1_STR-PS_POSNR sy-vline
WA_RAIA1_STR-CO_AUFNR sy-vline
WA_RAIA1_STR-KTEXT sy-vline
WA_RAIA1_STR-XABLEHN sy-vline
WA_RAIA1_STR-XGEN sy-vline
WA_RAIA1_STR-STA_DOWN sy-vline
WA_RAIA1_STR-STA_UP sy-vline
WA_RAIA1_STR-AUFT_GES sy-vline
WA_RAIA1_STR-AUFT_KOST sy-vline
WA_RAIA1_STR-AUFT_PRC sy-vline
WA_RAIA1_STR-AUFT_IZW sy-vline
WA_RAIA1_STR-AUFT_UMW sy-vline
WA_RAIA1_STR-AUFT_WRG sy-vline
WA_RAIA1_STR-AUFT_SPR sy-vline
WA_RAIA1_STR-AUFT_VER sy-vline
WA_RAIA1_STR-PROJ_AKT sy-vline
WA_RAIA1_STR-ZUORD sy-vline
WA_RAIA1_STR-CPYVAR sy-vline
WA_RAIA1_STR-VTRVAR sy-vline
WA_RAIA1_STR-WI_DATRE sy-vline
WA_RAIA1_STR-PR_POSNR sy-vline
WA_RAIA1_STR-ALT_POSNR sy-vline
WA_RAIA1_STR-ALT_TXT50 sy-vline
WA_RAIA1_STR-ALT_SYSST sy-vline
WA_RAIA1_STR-ALT_ANWST sy-vline
WA_RAIA1_STR-AL_POSNR sy-vline
WA_RAIA1_STR-AL_TXT50 sy-vline
WA_RAIA1_STR-PROJ_PSPID sy-vline
WA_RAIA1_STR-PRPS_POSID sy-vline
WA_RAIA1_STR-XVORP_KZ sy-vline
WA_RAIA1_STR-SYSST_L sy-vline
WA_RAIA1_STR-ANWST_L sy-vline
WA_RAIA1_STR-ZUORD_ANL sy-vline
WA_RAIA1_STR-ZUORD_EQU sy-vline
WA_RAIA1_STR-VAPLZ sy-vline
WA_RAIA1_STR-VAWRK sy-vline
WA_RAIA1_STR-VAPLZ_NOCHANGE sy-vline
WA_RAIA1_STR-AUFT_IZWEK sy-vline
WA_RAIA1_STR-AUFT_UMWKZ sy-vline
WA_RAIA1_STR-AUFT_AGSBER sy-vline
WA_RAIA1_STR-AUFT_AKOSTL sy-vline
WA_RAIA1_STR-AUFT_APRCTR sy-vline
WA_RAIA1_STR-AUFT_ASPART sy-vline
WA_RAIA1_STR-AUFT_AMATKL sy-vline
WA_RAIA1_STR-AUFT_ANLN1 sy-vline
WA_RAIA1_STR-AUFT_EQUNR sy-vline
WA_RAIA1_STR-TREE_COMPRESS sy-vline
WA_RAIA1_STR-POSID sy-vline
WA_RAIA1_STR-VARNT sy-vline
WA_RAIA1_STR-SYSST1 sy-vline
WA_RAIA1_STR-SYSST2 sy-vline
WA_RAIA1_STR-SYSST3 sy-vline
WA_RAIA1_STR-SYSST4 sy-vline
WA_RAIA1_STR-ANWST1 sy-vline
WA_RAIA1_STR-ANWST2 sy-vline
WA_RAIA1_STR-ANWST3 sy-vline
WA_RAIA1_STR-ANWST4 sy-vline
WA_RAIA1_STR-ANWST5 sy-vline
WA_RAIA1_STR-STA_MNER sy-vline
WA_RAIA1_STR-TRANSGROUP sy-vline
WA_RAIA1_STR-SYSST_VAR1 sy-vline
WA_RAIA1_STR-SYSST_VAR2 sy-vline
WA_RAIA1_STR-SYSST_VAR3 sy-vline
WA_RAIA1_STR-SYSST_VAR4 sy-vline
WA_RAIA1_STR-ANWST_VAR1 sy-vline
WA_RAIA1_STR-ANWST_VAR2 sy-vline
WA_RAIA1_STR-ANWST_VAR3 sy-vline
WA_RAIA1_STR-ANWST_VAR4 sy-vline
WA_RAIA1_STR-ANWST_VAR5 sy-vline
WA_RAIA1_STR-PLAN_LOCK sy-vline
WA_RAIA1_STR-FRAME_HEADER1 sy-vline
WA_RAIA1_STR-PS_VORLAGE sy-vline
WA_RAIA1_STR-PS_VORSPSP sy-vline
WA_RAIA1_STR-COPY_PSP_DOC sy-vline
WA_RAIA1_STR-PS_VORLAGE_TEXT sy-vline
WA_RAIA1_STR-PS_VORSPSP_TEXT sy-vline
WA_RAIA1_STR-CREATE_PROJ sy-vline
WA_RAIA1_STR-NO_XVORP_KZ sy-vline
WA_RAIA1_STR-PLANPRZ sy-vline
WA_RAIA1_STR-COPY_PSP_MLST sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.