ABAP Select data from SAP table RFVIPDO 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 RFVIPDO 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 RFVIPDO. 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 RFVIPDO 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_RFVIPDO TYPE STANDARD TABLE OF RFVIPDO,
      WA_RFVIPDO TYPE RFVIPDO,
      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: <RFVIPDO> TYPE RFVIPDO.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RFVIPDO
*  INTO TABLE @DATA(IT_RFVIPDO2).
*--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_RFVIPDO INDEX 1 INTO DATA(WA_RFVIPDO2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RFVIPDO ASSIGNING <RFVIPDO>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RFVIPDO>-AEP0JGUFO = 1.
<RFVIPDO>-AEP0JVZAN = 1.
<RFVIPDO>-GLOBRANTYP = 1.
<RFVIPDO>-SL00DABGR = 1.
<RFVIPDO>-RFVIGEMS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RFVIPDO-RFVIDRANS, sy-vline,
WA_RFVIPDO-TITEL, sy-vline,
WA_RFVIPDO-OPTERJAE, sy-vline,
WA_RFVIPDO-OPTERJIO, sy-vline,
WA_RFVIPDO-OPTERJBB, sy-vline,
WA_RFVIPDO-XDJAHR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RFVIPDO 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_RFVIPDO 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_RFVIPDO INTO WA_RFVIPDO. *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 GJAHR, internal->external for field XDJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RFVIPDO-XDJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFVIPDO-XDJAHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field GJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RFVIPDO-GJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFVIPDO-GJAHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field SRECHNGJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RFVIPDO-SRECHNGJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFVIPDO-SRECHNGJAHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SPDEV, internal->external for field PRTNAM CALL FUNCTION 'CONVERSION_EXIT_SPDEV_OUTPUT' EXPORTING input = WA_RFVIPDO-PRTNAM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFVIPDO-PRTNAM.
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_RFVIPDO_STR,
AEP0JGUFO TYPE STRING,
AEP0JVZAN TYPE STRING,
GLOBRANTYP TYPE STRING,
SL00DABGR TYPE STRING,
RFVIGEMS TYPE STRING,
RFVIDRANS TYPE STRING,
TITEL TYPE STRING,
OPTERJAE TYPE STRING,
OPTERJIO TYPE STRING,
OPTERJBB TYPE STRING,
XDJAHR TYPE STRING,
XDMON TYPE STRING,
SPFBKZ TYPE STRING,
DEBCOLL TYPE STRING,
DFIXDT TYPE STRING,
REPETPR TYPE STRING,
ZFBMOJA TYPE STRING,
XVSTBER TYPE STRING,
VVVBMVPR TYPE STRING,
JKAPR TYPE STRING,
JKAER TYPE STRING,
JKALE TYPE STRING,
JKAST TYPE STRING,
JWENR TYPE STRING,
JGRNR TYPE STRING,
JGENR TYPE STRING,
JMENR TYPE STRING,
JMIVE TYPE STRING,
JUPDOS TYPE STRING,
DEOBJ TYPE STRING,
NDOBJ TYPE STRING,
JKBLL TYPE STRING,
JKOBLLTR TYPE STRING,
JBRFBST TYPE STRING,
REOID TYPE STRING,
REODMAX TYPE STRING,
JANPIZV TYPE STRING,
JANPINV TYPE STRING,
JBELEG TYPE STRING,
BUKRSOLD TYPE STRING,
BUKRSNEW TYPE STRING,
JIMMO TYPE STRING,
JDARWIN TYPE STRING,
JSTANDARD TYPE STRING,
BAV_REG TYPE STRING,
JTESTLAUF TYPE STRING,
JJMANDT TYPE STRING,
JOPENIT TYPE STRING,
JCLRDIT TYPE STRING,
JKOBLNR TYPE STRING,
KOBLBEG TYPE STRING,
KOBLEND TYPE STRING,
OPLISTNR TYPE STRING,
DZEDTBEG TYPE STRING,
DZEDTEND TYPE STRING,
NZEDTART TYPE STRING,
JRGOP TYPE STRING,
JRGAP TYPE STRING,
JNRGP TYPE STRING,
DOPWEBEG TYPE STRING,
DOPWEEND TYPE STRING,
JNRGOP TYPE STRING,
JOFFER TYPE STRING,
JZW_SUMME TYPE STRING,
JWEBUKRS TYPE STRING,
JNORMAL TYPE STRING,
JSHOWERR TYPE STRING,
SRECHNGNR TYPE STRING,
JERRTAB TYPE STRING,
JMANP01 TYPE STRING,
JMANP02 TYPE STRING,
JMANP03 TYPE STRING,
JMANP04 TYPE STRING,
JMANP05 TYPE STRING,
JMANP06 TYPE STRING,
JMANP07 TYPE STRING,
JMANP08 TYPE STRING,
JMANP09 TYPE STRING,
JREPFS TYPE STRING,
JREPFI TYPE STRING,
DOPVON TYPE STRING,
DOPBIS TYPE STRING,
DAPVON TYPE STRING,
DAPBIS TYPE STRING,
JMKBL01 TYPE STRING,
JMKBL02 TYPE STRING,
JMKBL03 TYPE STRING,
SWHRKNDCUK TYPE STRING,
DEXCHCUK TYPE STRING,
JALTHW TYPE STRING,
XTDPRFX TYPE STRING,
XTDSFFX TYPE STRING,
JADJSCLS TYPE STRING,
JFLATRATE TYPE STRING,
J_ALL_CHANGED_RC_COND TYPE STRING,
JACCDEFALL TYPE STRING,
JACCDEFNORMAL TYPE STRING,
JACCSALESBASED TYPE STRING,
JINVALLOPENITEMS TYPE STRING,
SOLLID TYPE STRING,
GJAHR TYPE STRING,
SVORG TYPE STRING,
XBLNR TYPE STRING,
DERF TYPE STRING,
INVCOLLECT TYPE STRING,
INVPERIOD TYPE STRING,
SELTYP TYPE STRING,
INVMINAMOUNT TYPE STRING,
DOCLISTDISP TYPE STRING,
DOCLISTMAX TYPE STRING,
SRECHNGJAHR TYPE STRING,
CREDCH TYPE STRING,
ITEMCND TYPE STRING,
PRTNAM TYPE STRING,
PRTLOC TYPE STRING,
LAND1 TYPE STRING,
PAYMED TYPE STRING,
ZLSCH TYPE STRING,
XEINZ TYPE STRING,
BLART TYPE STRING,
SRECHNGNR_SH TYPE STRING,END OF T_EKKO_STR. DATA: WA_RFVIPDO_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_RFVIPDO_STR-AEP0JGUFO sy-vline
WA_RFVIPDO_STR-AEP0JVZAN sy-vline
WA_RFVIPDO_STR-GLOBRANTYP sy-vline
WA_RFVIPDO_STR-SL00DABGR sy-vline
WA_RFVIPDO_STR-RFVIGEMS sy-vline
WA_RFVIPDO_STR-RFVIDRANS sy-vline
WA_RFVIPDO_STR-TITEL sy-vline
WA_RFVIPDO_STR-OPTERJAE sy-vline
WA_RFVIPDO_STR-OPTERJIO sy-vline
WA_RFVIPDO_STR-OPTERJBB sy-vline
WA_RFVIPDO_STR-XDJAHR sy-vline
WA_RFVIPDO_STR-XDMON sy-vline
WA_RFVIPDO_STR-SPFBKZ sy-vline
WA_RFVIPDO_STR-DEBCOLL sy-vline
WA_RFVIPDO_STR-DFIXDT sy-vline
WA_RFVIPDO_STR-REPETPR sy-vline
WA_RFVIPDO_STR-ZFBMOJA sy-vline
WA_RFVIPDO_STR-XVSTBER sy-vline
WA_RFVIPDO_STR-VVVBMVPR sy-vline
WA_RFVIPDO_STR-JKAPR sy-vline
WA_RFVIPDO_STR-JKAER sy-vline
WA_RFVIPDO_STR-JKALE sy-vline
WA_RFVIPDO_STR-JKAST sy-vline
WA_RFVIPDO_STR-JWENR sy-vline
WA_RFVIPDO_STR-JGRNR sy-vline
WA_RFVIPDO_STR-JGENR sy-vline
WA_RFVIPDO_STR-JMENR sy-vline
WA_RFVIPDO_STR-JMIVE sy-vline
WA_RFVIPDO_STR-JUPDOS sy-vline
WA_RFVIPDO_STR-DEOBJ sy-vline
WA_RFVIPDO_STR-NDOBJ sy-vline
WA_RFVIPDO_STR-JKBLL sy-vline
WA_RFVIPDO_STR-JKOBLLTR sy-vline
WA_RFVIPDO_STR-JBRFBST sy-vline
WA_RFVIPDO_STR-REOID sy-vline
WA_RFVIPDO_STR-REODMAX sy-vline
WA_RFVIPDO_STR-JANPIZV sy-vline
WA_RFVIPDO_STR-JANPINV sy-vline
WA_RFVIPDO_STR-JBELEG sy-vline
WA_RFVIPDO_STR-BUKRSOLD sy-vline
WA_RFVIPDO_STR-BUKRSNEW sy-vline
WA_RFVIPDO_STR-JIMMO sy-vline
WA_RFVIPDO_STR-JDARWIN sy-vline
WA_RFVIPDO_STR-JSTANDARD sy-vline
WA_RFVIPDO_STR-BAV_REG sy-vline
WA_RFVIPDO_STR-JTESTLAUF sy-vline
WA_RFVIPDO_STR-JJMANDT sy-vline
WA_RFVIPDO_STR-JOPENIT sy-vline
WA_RFVIPDO_STR-JCLRDIT sy-vline
WA_RFVIPDO_STR-JKOBLNR sy-vline
WA_RFVIPDO_STR-KOBLBEG sy-vline
WA_RFVIPDO_STR-KOBLEND sy-vline
WA_RFVIPDO_STR-OPLISTNR sy-vline
WA_RFVIPDO_STR-DZEDTBEG sy-vline
WA_RFVIPDO_STR-DZEDTEND sy-vline
WA_RFVIPDO_STR-NZEDTART sy-vline
WA_RFVIPDO_STR-JRGOP sy-vline
WA_RFVIPDO_STR-JRGAP sy-vline
WA_RFVIPDO_STR-JNRGP sy-vline
WA_RFVIPDO_STR-DOPWEBEG sy-vline
WA_RFVIPDO_STR-DOPWEEND sy-vline
WA_RFVIPDO_STR-JNRGOP sy-vline
WA_RFVIPDO_STR-JOFFER sy-vline
WA_RFVIPDO_STR-JZW_SUMME sy-vline
WA_RFVIPDO_STR-JWEBUKRS sy-vline
WA_RFVIPDO_STR-JNORMAL sy-vline
WA_RFVIPDO_STR-JSHOWERR sy-vline
WA_RFVIPDO_STR-SRECHNGNR sy-vline
WA_RFVIPDO_STR-JERRTAB sy-vline
WA_RFVIPDO_STR-JMANP01 sy-vline
WA_RFVIPDO_STR-JMANP02 sy-vline
WA_RFVIPDO_STR-JMANP03 sy-vline
WA_RFVIPDO_STR-JMANP04 sy-vline
WA_RFVIPDO_STR-JMANP05 sy-vline
WA_RFVIPDO_STR-JMANP06 sy-vline
WA_RFVIPDO_STR-JMANP07 sy-vline
WA_RFVIPDO_STR-JMANP08 sy-vline
WA_RFVIPDO_STR-JMANP09 sy-vline
WA_RFVIPDO_STR-JREPFS sy-vline
WA_RFVIPDO_STR-JREPFI sy-vline
WA_RFVIPDO_STR-DOPVON sy-vline
WA_RFVIPDO_STR-DOPBIS sy-vline
WA_RFVIPDO_STR-DAPVON sy-vline
WA_RFVIPDO_STR-DAPBIS sy-vline
WA_RFVIPDO_STR-JMKBL01 sy-vline
WA_RFVIPDO_STR-JMKBL02 sy-vline
WA_RFVIPDO_STR-JMKBL03 sy-vline
WA_RFVIPDO_STR-SWHRKNDCUK sy-vline
WA_RFVIPDO_STR-DEXCHCUK sy-vline
WA_RFVIPDO_STR-JALTHW sy-vline
WA_RFVIPDO_STR-XTDPRFX sy-vline
WA_RFVIPDO_STR-XTDSFFX sy-vline
WA_RFVIPDO_STR-JADJSCLS sy-vline
WA_RFVIPDO_STR-JFLATRATE sy-vline
WA_RFVIPDO_STR-J_ALL_CHANGED_RC_COND sy-vline
WA_RFVIPDO_STR-JACCDEFALL sy-vline
WA_RFVIPDO_STR-JACCDEFNORMAL sy-vline
WA_RFVIPDO_STR-JACCSALESBASED sy-vline
WA_RFVIPDO_STR-JINVALLOPENITEMS sy-vline
WA_RFVIPDO_STR-SOLLID sy-vline
WA_RFVIPDO_STR-GJAHR sy-vline
WA_RFVIPDO_STR-SVORG sy-vline
WA_RFVIPDO_STR-XBLNR sy-vline
WA_RFVIPDO_STR-DERF sy-vline
WA_RFVIPDO_STR-INVCOLLECT sy-vline
WA_RFVIPDO_STR-INVPERIOD sy-vline
WA_RFVIPDO_STR-SELTYP sy-vline
WA_RFVIPDO_STR-INVMINAMOUNT sy-vline
WA_RFVIPDO_STR-DOCLISTDISP sy-vline
WA_RFVIPDO_STR-DOCLISTMAX sy-vline
WA_RFVIPDO_STR-SRECHNGJAHR sy-vline
WA_RFVIPDO_STR-CREDCH sy-vline
WA_RFVIPDO_STR-ITEMCND sy-vline
WA_RFVIPDO_STR-PRTNAM sy-vline
WA_RFVIPDO_STR-PRTLOC sy-vline
WA_RFVIPDO_STR-LAND1 sy-vline
WA_RFVIPDO_STR-PAYMED sy-vline
WA_RFVIPDO_STR-ZLSCH sy-vline
WA_RFVIPDO_STR-XEINZ sy-vline
WA_RFVIPDO_STR-BLART sy-vline
WA_RFVIPDO_STR-SRECHNGNR_SH sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.