ABAP Select data from SAP table P2RM_MVAC 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 P2RM_MVAC 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 P2RM_MVAC. 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 P2RM_MVAC 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_P2RM_MVAC TYPE STANDARD TABLE OF P2RM_MVAC,
      WA_P2RM_MVAC TYPE P2RM_MVAC,
      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: <P2RM_MVAC> TYPE P2RM_MVAC.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P2RM_MVAC
*  INTO TABLE @DATA(IT_P2RM_MVAC2).
*--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_P2RM_MVAC INDEX 1 INTO DATA(WA_P2RM_MVAC2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_P2RM_MVAC ASSIGNING <P2RM_MVAC>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<P2RM_MVAC>-MANDT = 1.
<P2RM_MVAC>-DCT_PERNR = 1.
<P2RM_MVAC>-DCT_SEQNR = 1.
<P2RM_MVAC>-DCT_ROWID = 1.
<P2RM_MVAC>-BEGDA = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P2RM_MVAC-ENDDA, sy-vline,
WA_P2RM_MVAC-UTYPE, sy-vline,
WA_P2RM_MVAC-ABMET, sy-vline,
WA_P2RM_MVAC-OFKOD, sy-vline,
WA_P2RM_MVAC-FTAGE, sy-vline,
WA_P2RM_MVAC-FZTAG, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P2RM_MVAC 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_P2RM_MVAC 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_P2RM_MVAC INTO WA_P2RM_MVAC. *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 UKBRJ CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_P2RM_MVAC-UKBRJ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_P2RM_MVAC-UKBRJ.
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_P2RM_MVAC_STR,
MANDT TYPE STRING,
DCT_PERNR TYPE STRING,
DCT_SEQNR TYPE STRING,
DCT_ROWID TYPE STRING,
BEGDA TYPE STRING,
ENDDA TYPE STRING,
UTYPE TYPE STRING,
ABMET TYPE STRING,
OFKOD TYPE STRING,
FTAGE TYPE STRING,
FZTAG TYPE STRING,
FETAG TYPE STRING,
F6TAG TYPE STRING,
FGPCT TYPE STRING,
FTPCT TYPE STRING,
TPROM TYPE STRING,
FERIE TYPE STRING,
CALDAT TYPE STRING,
CALJ0 TYPE STRING,
CALJ1 TYPE STRING,
CALJ2 TYPE STRING,
CALZU TYPE STRING,
CALEX TYPE STRING,
DELJ0 TYPE STRING,
DELJ1 TYPE STRING,
DELJ2 TYPE STRING,
SHOR2 TYPE STRING,
SHIND TYPE STRING,
SHPOR TYPE STRING,
SHDKK TYPE STRING,
SHCSA TYPE STRING,
SHCLR TYPE STRING,
SHTCO TYPE STRING,
FKNUM TYPE STRING,
UKBRP TYPE STRING,
UKBRJ TYPE STRING,
FKSIC TYPE STRING,
FKFRE TYPE STRING,
ASME0 TYPE STRING,
ARWT0 TYPE STRING,
CVM1 TYPE STRING,
CVM2 TYPE STRING,
CVM3 TYPE STRING,
VMTXD TYPE STRING,
TXSH TYPE STRING,
TXRT0 TYPE STRING,
BPA0 TYPE STRING,
FRIK0 TYPE STRING,
VM1 TYPE STRING,
VM2 TYPE STRING,
VM3 TYPE STRING,
CVADA TYPE STRING,
SMTDT TYPE STRING,
VADA0 TYPE STRING,
CXVS0 TYPE STRING,
XVS0 TYPE STRING,
CCARE TYPE STRING,
ASME1 TYPE STRING,
ARWT1 TYPE STRING,
TXRT1 TYPE STRING,
BPA1 TYPE STRING,
FRIK1 TYPE STRING,
VACSU TYPE STRING,
VADA1 TYPE STRING,
VARE1 TYPE STRING,
CXVS1 TYPE STRING,
XVS1 TYPE STRING,
FERK1 TYPE STRING,
ASME2 TYPE STRING,
ARWT2 TYPE STRING,
TXRT2 TYPE STRING,
BPA2 TYPE STRING,
FRIK2 TYPE STRING,
VADA2 TYPE STRING,
VARE2 TYPE STRING,
CXVS2 TYPE STRING,
XVS2 TYPE STRING,
FERK2 TYPE STRING,
IGNJ0 TYPE STRING,
IGNJ1 TYPE STRING,
IGNJ2 TYPE STRING,
SVM1 TYPE STRING,
SVM2 TYPE STRING,
SVM3 TYPE STRING,
STAX0 TYPE STRING,
SVD0 TYPE STRING,
SXVS0 TYPE STRING,
SSD TYPE STRING,
STAX1 TYPE STRING,
SVD1 TYPE STRING,
SVS TYPE STRING,
SXVS1 TYPE STRING,
SVR1 TYPE STRING,
SFK1 TYPE STRING,
STAX2 TYPE STRING,
SVD2 TYPE STRING,
SXVS2 TYPE STRING,
SVR2 TYPE STRING,
SFK2 TYPE STRING,
FWV0N TYPE STRING,
FWV0F TYPE STRING,
FWV0K TYPE STRING,
FWV0C TYPE STRING,
FWV0S TYPE STRING,
FWV0A TYPE STRING,
FWV0B TYPE STRING,
FWV1N TYPE STRING,
FWV1F TYPE STRING,
FWV1K TYPE STRING,
FWV1C TYPE STRING,
FWV1S TYPE STRING,
FWV1A TYPE STRING,
FWV1B TYPE STRING,
FWV2N TYPE STRING,
FWV2F TYPE STRING,
FWV2K TYPE STRING,
FWV2C TYPE STRING,
FWV2S TYPE STRING,
FWV2A TYPE STRING,
FWV2B TYPE STRING,
PAYTY TYPE STRING,
PAYID TYPE STRING,
FTUBT TYPE STRING,
NODIF TYPE STRING,END OF T_EKKO_STR. DATA: WA_P2RM_MVAC_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_P2RM_MVAC_STR-MANDT sy-vline
WA_P2RM_MVAC_STR-DCT_PERNR sy-vline
WA_P2RM_MVAC_STR-DCT_SEQNR sy-vline
WA_P2RM_MVAC_STR-DCT_ROWID sy-vline
WA_P2RM_MVAC_STR-BEGDA sy-vline
WA_P2RM_MVAC_STR-ENDDA sy-vline
WA_P2RM_MVAC_STR-UTYPE sy-vline
WA_P2RM_MVAC_STR-ABMET sy-vline
WA_P2RM_MVAC_STR-OFKOD sy-vline
WA_P2RM_MVAC_STR-FTAGE sy-vline
WA_P2RM_MVAC_STR-FZTAG sy-vline
WA_P2RM_MVAC_STR-FETAG sy-vline
WA_P2RM_MVAC_STR-F6TAG sy-vline
WA_P2RM_MVAC_STR-FGPCT sy-vline
WA_P2RM_MVAC_STR-FTPCT sy-vline
WA_P2RM_MVAC_STR-TPROM sy-vline
WA_P2RM_MVAC_STR-FERIE sy-vline
WA_P2RM_MVAC_STR-CALDAT sy-vline
WA_P2RM_MVAC_STR-CALJ0 sy-vline
WA_P2RM_MVAC_STR-CALJ1 sy-vline
WA_P2RM_MVAC_STR-CALJ2 sy-vline
WA_P2RM_MVAC_STR-CALZU sy-vline
WA_P2RM_MVAC_STR-CALEX sy-vline
WA_P2RM_MVAC_STR-DELJ0 sy-vline
WA_P2RM_MVAC_STR-DELJ1 sy-vline
WA_P2RM_MVAC_STR-DELJ2 sy-vline
WA_P2RM_MVAC_STR-SHOR2 sy-vline
WA_P2RM_MVAC_STR-SHIND sy-vline
WA_P2RM_MVAC_STR-SHPOR sy-vline
WA_P2RM_MVAC_STR-SHDKK sy-vline
WA_P2RM_MVAC_STR-SHCSA sy-vline
WA_P2RM_MVAC_STR-SHCLR sy-vline
WA_P2RM_MVAC_STR-SHTCO sy-vline
WA_P2RM_MVAC_STR-FKNUM sy-vline
WA_P2RM_MVAC_STR-UKBRP sy-vline
WA_P2RM_MVAC_STR-UKBRJ sy-vline
WA_P2RM_MVAC_STR-FKSIC sy-vline
WA_P2RM_MVAC_STR-FKFRE sy-vline
WA_P2RM_MVAC_STR-ASME0 sy-vline
WA_P2RM_MVAC_STR-ARWT0 sy-vline
WA_P2RM_MVAC_STR-CVM1 sy-vline
WA_P2RM_MVAC_STR-CVM2 sy-vline
WA_P2RM_MVAC_STR-CVM3 sy-vline
WA_P2RM_MVAC_STR-VMTXD sy-vline
WA_P2RM_MVAC_STR-TXSH sy-vline
WA_P2RM_MVAC_STR-TXRT0 sy-vline
WA_P2RM_MVAC_STR-BPA0 sy-vline
WA_P2RM_MVAC_STR-FRIK0 sy-vline
WA_P2RM_MVAC_STR-VM1 sy-vline
WA_P2RM_MVAC_STR-VM2 sy-vline
WA_P2RM_MVAC_STR-VM3 sy-vline
WA_P2RM_MVAC_STR-CVADA sy-vline
WA_P2RM_MVAC_STR-SMTDT sy-vline
WA_P2RM_MVAC_STR-VADA0 sy-vline
WA_P2RM_MVAC_STR-CXVS0 sy-vline
WA_P2RM_MVAC_STR-XVS0 sy-vline
WA_P2RM_MVAC_STR-CCARE sy-vline
WA_P2RM_MVAC_STR-ASME1 sy-vline
WA_P2RM_MVAC_STR-ARWT1 sy-vline
WA_P2RM_MVAC_STR-TXRT1 sy-vline
WA_P2RM_MVAC_STR-BPA1 sy-vline
WA_P2RM_MVAC_STR-FRIK1 sy-vline
WA_P2RM_MVAC_STR-VACSU sy-vline
WA_P2RM_MVAC_STR-VADA1 sy-vline
WA_P2RM_MVAC_STR-VARE1 sy-vline
WA_P2RM_MVAC_STR-CXVS1 sy-vline
WA_P2RM_MVAC_STR-XVS1 sy-vline
WA_P2RM_MVAC_STR-FERK1 sy-vline
WA_P2RM_MVAC_STR-ASME2 sy-vline
WA_P2RM_MVAC_STR-ARWT2 sy-vline
WA_P2RM_MVAC_STR-TXRT2 sy-vline
WA_P2RM_MVAC_STR-BPA2 sy-vline
WA_P2RM_MVAC_STR-FRIK2 sy-vline
WA_P2RM_MVAC_STR-VADA2 sy-vline
WA_P2RM_MVAC_STR-VARE2 sy-vline
WA_P2RM_MVAC_STR-CXVS2 sy-vline
WA_P2RM_MVAC_STR-XVS2 sy-vline
WA_P2RM_MVAC_STR-FERK2 sy-vline
WA_P2RM_MVAC_STR-IGNJ0 sy-vline
WA_P2RM_MVAC_STR-IGNJ1 sy-vline
WA_P2RM_MVAC_STR-IGNJ2 sy-vline
WA_P2RM_MVAC_STR-SVM1 sy-vline
WA_P2RM_MVAC_STR-SVM2 sy-vline
WA_P2RM_MVAC_STR-SVM3 sy-vline
WA_P2RM_MVAC_STR-STAX0 sy-vline
WA_P2RM_MVAC_STR-SVD0 sy-vline
WA_P2RM_MVAC_STR-SXVS0 sy-vline
WA_P2RM_MVAC_STR-SSD sy-vline
WA_P2RM_MVAC_STR-STAX1 sy-vline
WA_P2RM_MVAC_STR-SVD1 sy-vline
WA_P2RM_MVAC_STR-SVS sy-vline
WA_P2RM_MVAC_STR-SXVS1 sy-vline
WA_P2RM_MVAC_STR-SVR1 sy-vline
WA_P2RM_MVAC_STR-SFK1 sy-vline
WA_P2RM_MVAC_STR-STAX2 sy-vline
WA_P2RM_MVAC_STR-SVD2 sy-vline
WA_P2RM_MVAC_STR-SXVS2 sy-vline
WA_P2RM_MVAC_STR-SVR2 sy-vline
WA_P2RM_MVAC_STR-SFK2 sy-vline
WA_P2RM_MVAC_STR-FWV0N sy-vline
WA_P2RM_MVAC_STR-FWV0F sy-vline
WA_P2RM_MVAC_STR-FWV0K sy-vline
WA_P2RM_MVAC_STR-FWV0C sy-vline
WA_P2RM_MVAC_STR-FWV0S sy-vline
WA_P2RM_MVAC_STR-FWV0A sy-vline
WA_P2RM_MVAC_STR-FWV0B sy-vline
WA_P2RM_MVAC_STR-FWV1N sy-vline
WA_P2RM_MVAC_STR-FWV1F sy-vline
WA_P2RM_MVAC_STR-FWV1K sy-vline
WA_P2RM_MVAC_STR-FWV1C sy-vline
WA_P2RM_MVAC_STR-FWV1S sy-vline
WA_P2RM_MVAC_STR-FWV1A sy-vline
WA_P2RM_MVAC_STR-FWV1B sy-vline
WA_P2RM_MVAC_STR-FWV2N sy-vline
WA_P2RM_MVAC_STR-FWV2F sy-vline
WA_P2RM_MVAC_STR-FWV2K sy-vline
WA_P2RM_MVAC_STR-FWV2C sy-vline
WA_P2RM_MVAC_STR-FWV2S sy-vline
WA_P2RM_MVAC_STR-FWV2A sy-vline
WA_P2RM_MVAC_STR-FWV2B sy-vline
WA_P2RM_MVAC_STR-PAYTY sy-vline
WA_P2RM_MVAC_STR-PAYID sy-vline
WA_P2RM_MVAC_STR-FTUBT sy-vline
WA_P2RM_MVAC_STR-NODIF sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.