ABAP Select data from SAP table PAD51_QUE 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 PAD51_QUE 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 PAD51_QUE. 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 PAD51_QUE 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_PAD51_QUE TYPE STANDARD TABLE OF PAD51_QUE,
      WA_PAD51_QUE TYPE PAD51_QUE,
      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: <PAD51_QUE> TYPE PAD51_QUE.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PAD51_QUE
*  INTO TABLE @DATA(IT_PAD51_QUE2).
*--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_PAD51_QUE INDEX 1 INTO DATA(WA_PAD51_QUE2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PAD51_QUE ASSIGNING <PAD51_QUE>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PAD51_QUE>-MANDT = 1.
<PAD51_QUE>-PLVAR = 1.
<PAD51_QUE>-OTYPE = 1.
<PAD51_QUE>-OBJID = 1.
<PAD51_QUE>-IT0_INFTY = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PAD51_QUE-IT0_SUBTY, sy-vline,
WA_PAD51_QUE-IT0_ISTAT, sy-vline,
WA_PAD51_QUE-IT0_PRIOX, sy-vline,
WA_PAD51_QUE-BEGDA, sy-vline,
WA_PAD51_QUE-ENDDA, sy-vline,
WA_PAD51_QUE-IT0_LANGU, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PAD51_QUE 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_PAD51_QUE 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_PAD51_QUE INTO WA_PAD51_QUE. *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 IT0_LANGU CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_PAD51_QUE-IT0_LANGU IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PAD51_QUE-IT0_LANGU.
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_PAD51_QUE_STR,
MANDT TYPE STRING,
PLVAR TYPE STRING,
OTYPE TYPE STRING,
OBJID TYPE STRING,
IT0_INFTY TYPE STRING,
IT0_SUBTY TYPE STRING,
IT0_ISTAT TYPE STRING,
IT0_PRIOX TYPE STRING,
BEGDA TYPE STRING,
ENDDA TYPE STRING,
IT0_LANGU TYPE STRING,
IT0_SEQNR TYPE STRING,
IT0_AEDTM TYPE STRING,
IT0_UNAME TYPE STRING,
IT0_REASN TYPE STRING,
IT0_HISTO TYPE STRING,
IT0_ITXNR TYPE STRING,
SHORT TYPE STRING,
STEXT TYPE STRING,
GDATE TYPE STRING,
IT1_RSIGN TYPE STRING,
IT1_RELAT TYPE STRING,
IT1_ISTAT TYPE STRING,
IT1_PRIOX TYPE STRING,
IT1_BEGDA TYPE STRING,
IT1_ENDDA TYPE STRING,
IT1_AEDTM TYPE STRING,
IT1_UNAME TYPE STRING,
IT1_REASN TYPE STRING,
IT1_HISTO TYPE STRING,
IT1_ITXNR TYPE STRING,
IT1_SCLAS TYPE STRING,
IT1_SOBID TYPE STRING,
IT1_PROZT TYPE STRING,
BLCID_X TYPE STRING,END OF T_EKKO_STR. DATA: WA_PAD51_QUE_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_PAD51_QUE_STR-MANDT sy-vline
WA_PAD51_QUE_STR-PLVAR sy-vline
WA_PAD51_QUE_STR-OTYPE sy-vline
WA_PAD51_QUE_STR-OBJID sy-vline
WA_PAD51_QUE_STR-IT0_INFTY sy-vline
WA_PAD51_QUE_STR-IT0_SUBTY sy-vline
WA_PAD51_QUE_STR-IT0_ISTAT sy-vline
WA_PAD51_QUE_STR-IT0_PRIOX sy-vline
WA_PAD51_QUE_STR-BEGDA sy-vline
WA_PAD51_QUE_STR-ENDDA sy-vline
WA_PAD51_QUE_STR-IT0_LANGU sy-vline
WA_PAD51_QUE_STR-IT0_SEQNR sy-vline
WA_PAD51_QUE_STR-IT0_AEDTM sy-vline
WA_PAD51_QUE_STR-IT0_UNAME sy-vline
WA_PAD51_QUE_STR-IT0_REASN sy-vline
WA_PAD51_QUE_STR-IT0_HISTO sy-vline
WA_PAD51_QUE_STR-IT0_ITXNR sy-vline
WA_PAD51_QUE_STR-SHORT sy-vline
WA_PAD51_QUE_STR-STEXT sy-vline
WA_PAD51_QUE_STR-GDATE sy-vline
WA_PAD51_QUE_STR-IT1_RSIGN sy-vline
WA_PAD51_QUE_STR-IT1_RELAT sy-vline
WA_PAD51_QUE_STR-IT1_ISTAT sy-vline
WA_PAD51_QUE_STR-IT1_PRIOX sy-vline
WA_PAD51_QUE_STR-IT1_BEGDA sy-vline
WA_PAD51_QUE_STR-IT1_ENDDA sy-vline
WA_PAD51_QUE_STR-IT1_AEDTM sy-vline
WA_PAD51_QUE_STR-IT1_UNAME sy-vline
WA_PAD51_QUE_STR-IT1_REASN sy-vline
WA_PAD51_QUE_STR-IT1_HISTO sy-vline
WA_PAD51_QUE_STR-IT1_ITXNR sy-vline
WA_PAD51_QUE_STR-IT1_SCLAS sy-vline
WA_PAD51_QUE_STR-IT1_SOBID sy-vline
WA_PAD51_QUE_STR-IT1_PROZT sy-vline
WA_PAD51_QUE_STR-BLCID_X sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.