ABAP Select data from SAP table T5G_P46ARV 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 T5G_P46ARV 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 T5G_P46ARV. 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 T5G_P46ARV 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_T5G_P46ARV TYPE STANDARD TABLE OF T5G_P46ARV,
      WA_T5G_P46ARV TYPE T5G_P46ARV,
      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: <T5G_P46ARV> TYPE T5G_P46ARV.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM T5G_P46ARV
*  INTO TABLE @DATA(IT_T5G_P46ARV2).
*--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_T5G_P46ARV INDEX 1 INTO DATA(WA_T5G_P46ARV2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_T5G_P46ARV ASSIGNING <T5G_P46ARV>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<T5G_P46ARV>-MANDT = 1.
<T5G_P46ARV>-SERNR = 1.
<T5G_P46ARV>-PERNR = 1.
<T5G_P46ARV>-REGNO = 1.
<T5G_P46ARV>-FACTO = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_T5G_P46ARV-MODEL, sy-vline,
WA_T5G_P46ARV-TTYPE, sy-vline,
WA_T5G_P46ARV-DPLAN, sy-vline,
WA_T5G_P46ARV-RGNDA, sy-vline,
WA_T5G_P46ARV-AVADA, sy-vline,
WA_T5G_P46ARV-WITDA, sy-vline.
ENDLOOP. *Add any further fields from structure WA_T5G_P46ARV 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_T5G_P46ARV 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_T5G_P46ARV INTO WA_T5G_P46ARV. *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 TAXYR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_T5G_P46ARV-TAXYR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_T5G_P46ARV-TAXYR.
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_T5G_P46ARV_STR,
MANDT TYPE STRING,
SERNR TYPE STRING,
PERNR TYPE STRING,
REGNO TYPE STRING,
FACTO TYPE STRING,
MODEL TYPE STRING,
TTYPE TYPE STRING,
DPLAN TYPE STRING,
RGNDA TYPE STRING,
AVADA TYPE STRING,
WITDA TYPE STRING,
EGTYP TYPE STRING,
FUELR TYPE STRING,
CO2EM TYPE STRING,
INCFL TYPE STRING,
LISTP TYPE STRING,
ACCSS TYPE STRING,
ADDAC TYPE STRING,
ONEPD TYPE STRING,
REGPD TYPE STRING,
PAYMO TYPE STRING,
LIMCA TYPE STRING,
EARPR TYPE STRING,
RREGNO TYPE STRING,
RRGNDA TYPE STRING,
RFACTO TYPE STRING,
RMODEL TYPE STRING,
FREAS TYPE STRING,
ERR_COD TYPE STRING,
MES_CLS TYPE STRING,
TAXYR TYPE STRING,
ISSDATE TYPE STRING,
UNAME TYPE STRING,
CRDAT TYPE STRING,
DEL_ISSDATE TYPE STRING,
DEL_UNAME TYPE STRING,
DEL_CRDAT TYPE STRING,
SLSAC TYPE STRING,END OF T_EKKO_STR. DATA: WA_T5G_P46ARV_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_T5G_P46ARV_STR-MANDT sy-vline
WA_T5G_P46ARV_STR-SERNR sy-vline
WA_T5G_P46ARV_STR-PERNR sy-vline
WA_T5G_P46ARV_STR-REGNO sy-vline
WA_T5G_P46ARV_STR-FACTO sy-vline
WA_T5G_P46ARV_STR-MODEL sy-vline
WA_T5G_P46ARV_STR-TTYPE sy-vline
WA_T5G_P46ARV_STR-DPLAN sy-vline
WA_T5G_P46ARV_STR-RGNDA sy-vline
WA_T5G_P46ARV_STR-AVADA sy-vline
WA_T5G_P46ARV_STR-WITDA sy-vline
WA_T5G_P46ARV_STR-EGTYP sy-vline
WA_T5G_P46ARV_STR-FUELR sy-vline
WA_T5G_P46ARV_STR-CO2EM sy-vline
WA_T5G_P46ARV_STR-INCFL sy-vline
WA_T5G_P46ARV_STR-LISTP sy-vline
WA_T5G_P46ARV_STR-ACCSS sy-vline
WA_T5G_P46ARV_STR-ADDAC sy-vline
WA_T5G_P46ARV_STR-ONEPD sy-vline
WA_T5G_P46ARV_STR-REGPD sy-vline
WA_T5G_P46ARV_STR-PAYMO sy-vline
WA_T5G_P46ARV_STR-LIMCA sy-vline
WA_T5G_P46ARV_STR-EARPR sy-vline
WA_T5G_P46ARV_STR-RREGNO sy-vline
WA_T5G_P46ARV_STR-RRGNDA sy-vline
WA_T5G_P46ARV_STR-RFACTO sy-vline
WA_T5G_P46ARV_STR-RMODEL sy-vline
WA_T5G_P46ARV_STR-FREAS sy-vline
WA_T5G_P46ARV_STR-ERR_COD sy-vline
WA_T5G_P46ARV_STR-MES_CLS sy-vline
WA_T5G_P46ARV_STR-TAXYR sy-vline
WA_T5G_P46ARV_STR-ISSDATE sy-vline
WA_T5G_P46ARV_STR-UNAME sy-vline
WA_T5G_P46ARV_STR-CRDAT sy-vline
WA_T5G_P46ARV_STR-DEL_ISSDATE sy-vline
WA_T5G_P46ARV_STR-DEL_UNAME sy-vline
WA_T5G_P46ARV_STR-DEL_CRDAT sy-vline
WA_T5G_P46ARV_STR-SLSAC sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.