ABAP Select data from SAP table P08_PAE_SMARTFORM 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 P08_PAE_SMARTFORM 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 P08_PAE_SMARTFORM. 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 P08_PAE_SMARTFORM 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_P08_PAE_SMARTFORM TYPE STANDARD TABLE OF P08_PAE_SMARTFORM,
      WA_P08_PAE_SMARTFORM TYPE P08_PAE_SMARTFORM,
      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: <P08_PAE_SMARTFORM> TYPE P08_PAE_SMARTFORM.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P08_PAE_SMARTFORM
*  INTO TABLE @DATA(IT_P08_PAE_SMARTFORM2).
*--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_P08_PAE_SMARTFORM INDEX 1 INTO DATA(WA_P08_PAE_SMARTFORM2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_P08_PAE_SMARTFORM ASSIGNING <P08_PAE_SMARTFORM>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<P08_PAE_SMARTFORM>-PERNR = 1.
<P08_PAE_SMARTFORM>-INFTY = 1.
<P08_PAE_SMARTFORM>-SUBTY = 1.
<P08_PAE_SMARTFORM>-OBJPS = 1.
<P08_PAE_SMARTFORM>-SPRPS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P08_PAE_SMARTFORM-ENDDA, sy-vline,
WA_P08_PAE_SMARTFORM-BEGDA, sy-vline,
WA_P08_PAE_SMARTFORM-SEQNR, sy-vline,
WA_P08_PAE_SMARTFORM-AEDTM, sy-vline,
WA_P08_PAE_SMARTFORM-UNAME, sy-vline,
WA_P08_PAE_SMARTFORM-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P08_PAE_SMARTFORM 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_P08_PAE_SMARTFORM 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_P08_PAE_SMARTFORM INTO WA_P08_PAE_SMARTFORM. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_P08_PAE_SMARTFORM_STR,
PERNR TYPE STRING,
INFTY TYPE STRING,
SUBTY TYPE STRING,
OBJPS TYPE STRING,
SPRPS TYPE STRING,
ENDDA TYPE STRING,
BEGDA TYPE STRING,
SEQNR TYPE STRING,
AEDTM TYPE STRING,
UNAME TYPE STRING,
HISTO TYPE STRING,
ITXEX TYPE STRING,
REFEX TYPE STRING,
ORDEX TYPE STRING,
ITBLD TYPE STRING,
PREAS TYPE STRING,
FLAG1 TYPE STRING,
FLAG2 TYPE STRING,
FLAG3 TYPE STRING,
FLAG4 TYPE STRING,
RESE1 TYPE STRING,
RESE2 TYPE STRING,
GRPVL TYPE STRING,
NOTUK TYPE STRING,
NOTWK TYPE STRING,
STGDT TYPE STRING,
STAGE TYPE STRING,
STQER TYPE STRING,
STWRC TYPE STRING,
STATY TYPE STRING,
STQPS TYPE STRING,
STDEN TYPE STRING,
PTNTY TYPE STRING,
PTAGE TYPE STRING,
PTQER TYPE STRING,
PTWRC TYPE STRING,
PTATY TYPE STRING,
PTQPS TYPE STRING,
PTDEN TYPE STRING,
PTDDT TYPE STRING,
PTDDN TYPE STRING,
AEGDT TYPE STRING,
AEAGE TYPE STRING,
AEQER TYPE STRING,
AEWRC TYPE STRING,
AEATY TYPE STRING,
AEQPS TYPE STRING,
AEDEN TYPE STRING,
APTTY TYPE STRING,
APAGE TYPE STRING,
APQER TYPE STRING,
APWRC TYPE STRING,
APATY TYPE STRING,
APQPS TYPE STRING,
APDEN TYPE STRING,
APDDT TYPE STRING,
APDDN TYPE STRING,
OIFDT TYPE STRING,
OIVFM TYPE STRING,
OIAGE TYPE STRING,
OIQER TYPE STRING,
OIWRC TYPE STRING,
OIATY TYPE STRING,
OIQPS TYPE STRING,
OIDEN TYPE STRING,
OOFDT TYPE STRING,
OOWFM TYPE STRING,
OOAGE TYPE STRING,
OOQER TYPE STRING,
OOWRC TYPE STRING,
OOVFM TYPE STRING,
OOVTO TYPE STRING,
OOATY TYPE STRING,
OOQPS TYPE STRING,
OODEN TYPE STRING,
OOPDT TYPE STRING,
TPEMC TYPE STRING,
OISCH TYPE STRING,
OOSCH TYPE STRING,
AESCH TYPE STRING,
OONRN TYPE STRING,
DTO_ATEJH TYPE STRING,
DTO_PDATE TYPE STRING,
DTO_PTYPE TYPE STRING,
IARTY TYPE STRING,
EXCNP TYPE STRING,
EXCTX TYPE STRING,
EXCWU TYPE STRING,
EXCNW TYPE STRING,
EXCCD TYPE STRING,
EXCLLP TYPE STRING,
LATE TYPE STRING,
DTO_OODEN TYPE STRING,
SFORM TYPE STRING,
SNAME TYPE STRING,
EMAIL TYPE STRING,
EMAIL_ID TYPE STRING,
FORMNAME TYPE STRING,
FORMTEXT TYPE STRING,END OF T_EKKO_STR. DATA: WA_P08_PAE_SMARTFORM_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_P08_PAE_SMARTFORM_STR-PERNR sy-vline
WA_P08_PAE_SMARTFORM_STR-INFTY sy-vline
WA_P08_PAE_SMARTFORM_STR-SUBTY sy-vline
WA_P08_PAE_SMARTFORM_STR-OBJPS sy-vline
WA_P08_PAE_SMARTFORM_STR-SPRPS sy-vline
WA_P08_PAE_SMARTFORM_STR-ENDDA sy-vline
WA_P08_PAE_SMARTFORM_STR-BEGDA sy-vline
WA_P08_PAE_SMARTFORM_STR-SEQNR sy-vline
WA_P08_PAE_SMARTFORM_STR-AEDTM sy-vline
WA_P08_PAE_SMARTFORM_STR-UNAME sy-vline
WA_P08_PAE_SMARTFORM_STR-HISTO sy-vline
WA_P08_PAE_SMARTFORM_STR-ITXEX sy-vline
WA_P08_PAE_SMARTFORM_STR-REFEX sy-vline
WA_P08_PAE_SMARTFORM_STR-ORDEX sy-vline
WA_P08_PAE_SMARTFORM_STR-ITBLD sy-vline
WA_P08_PAE_SMARTFORM_STR-PREAS sy-vline
WA_P08_PAE_SMARTFORM_STR-FLAG1 sy-vline
WA_P08_PAE_SMARTFORM_STR-FLAG2 sy-vline
WA_P08_PAE_SMARTFORM_STR-FLAG3 sy-vline
WA_P08_PAE_SMARTFORM_STR-FLAG4 sy-vline
WA_P08_PAE_SMARTFORM_STR-RESE1 sy-vline
WA_P08_PAE_SMARTFORM_STR-RESE2 sy-vline
WA_P08_PAE_SMARTFORM_STR-GRPVL sy-vline
WA_P08_PAE_SMARTFORM_STR-NOTUK sy-vline
WA_P08_PAE_SMARTFORM_STR-NOTWK sy-vline
WA_P08_PAE_SMARTFORM_STR-STGDT sy-vline
WA_P08_PAE_SMARTFORM_STR-STAGE sy-vline
WA_P08_PAE_SMARTFORM_STR-STQER sy-vline
WA_P08_PAE_SMARTFORM_STR-STWRC sy-vline
WA_P08_PAE_SMARTFORM_STR-STATY sy-vline
WA_P08_PAE_SMARTFORM_STR-STQPS sy-vline
WA_P08_PAE_SMARTFORM_STR-STDEN sy-vline
WA_P08_PAE_SMARTFORM_STR-PTNTY sy-vline
WA_P08_PAE_SMARTFORM_STR-PTAGE sy-vline
WA_P08_PAE_SMARTFORM_STR-PTQER sy-vline
WA_P08_PAE_SMARTFORM_STR-PTWRC sy-vline
WA_P08_PAE_SMARTFORM_STR-PTATY sy-vline
WA_P08_PAE_SMARTFORM_STR-PTQPS sy-vline
WA_P08_PAE_SMARTFORM_STR-PTDEN sy-vline
WA_P08_PAE_SMARTFORM_STR-PTDDT sy-vline
WA_P08_PAE_SMARTFORM_STR-PTDDN sy-vline
WA_P08_PAE_SMARTFORM_STR-AEGDT sy-vline
WA_P08_PAE_SMARTFORM_STR-AEAGE sy-vline
WA_P08_PAE_SMARTFORM_STR-AEQER sy-vline
WA_P08_PAE_SMARTFORM_STR-AEWRC sy-vline
WA_P08_PAE_SMARTFORM_STR-AEATY sy-vline
WA_P08_PAE_SMARTFORM_STR-AEQPS sy-vline
WA_P08_PAE_SMARTFORM_STR-AEDEN sy-vline
WA_P08_PAE_SMARTFORM_STR-APTTY sy-vline
WA_P08_PAE_SMARTFORM_STR-APAGE sy-vline
WA_P08_PAE_SMARTFORM_STR-APQER sy-vline
WA_P08_PAE_SMARTFORM_STR-APWRC sy-vline
WA_P08_PAE_SMARTFORM_STR-APATY sy-vline
WA_P08_PAE_SMARTFORM_STR-APQPS sy-vline
WA_P08_PAE_SMARTFORM_STR-APDEN sy-vline
WA_P08_PAE_SMARTFORM_STR-APDDT sy-vline
WA_P08_PAE_SMARTFORM_STR-APDDN sy-vline
WA_P08_PAE_SMARTFORM_STR-OIFDT sy-vline
WA_P08_PAE_SMARTFORM_STR-OIVFM sy-vline
WA_P08_PAE_SMARTFORM_STR-OIAGE sy-vline
WA_P08_PAE_SMARTFORM_STR-OIQER sy-vline
WA_P08_PAE_SMARTFORM_STR-OIWRC sy-vline
WA_P08_PAE_SMARTFORM_STR-OIATY sy-vline
WA_P08_PAE_SMARTFORM_STR-OIQPS sy-vline
WA_P08_PAE_SMARTFORM_STR-OIDEN sy-vline
WA_P08_PAE_SMARTFORM_STR-OOFDT sy-vline
WA_P08_PAE_SMARTFORM_STR-OOWFM sy-vline
WA_P08_PAE_SMARTFORM_STR-OOAGE sy-vline
WA_P08_PAE_SMARTFORM_STR-OOQER sy-vline
WA_P08_PAE_SMARTFORM_STR-OOWRC sy-vline
WA_P08_PAE_SMARTFORM_STR-OOVFM sy-vline
WA_P08_PAE_SMARTFORM_STR-OOVTO sy-vline
WA_P08_PAE_SMARTFORM_STR-OOATY sy-vline
WA_P08_PAE_SMARTFORM_STR-OOQPS sy-vline
WA_P08_PAE_SMARTFORM_STR-OODEN sy-vline
WA_P08_PAE_SMARTFORM_STR-OOPDT sy-vline
WA_P08_PAE_SMARTFORM_STR-TPEMC sy-vline
WA_P08_PAE_SMARTFORM_STR-OISCH sy-vline
WA_P08_PAE_SMARTFORM_STR-OOSCH sy-vline
WA_P08_PAE_SMARTFORM_STR-AESCH sy-vline
WA_P08_PAE_SMARTFORM_STR-OONRN sy-vline
WA_P08_PAE_SMARTFORM_STR-DTO_ATEJH sy-vline
WA_P08_PAE_SMARTFORM_STR-DTO_PDATE sy-vline
WA_P08_PAE_SMARTFORM_STR-DTO_PTYPE sy-vline
WA_P08_PAE_SMARTFORM_STR-IARTY sy-vline
WA_P08_PAE_SMARTFORM_STR-EXCNP sy-vline
WA_P08_PAE_SMARTFORM_STR-EXCTX sy-vline
WA_P08_PAE_SMARTFORM_STR-EXCWU sy-vline
WA_P08_PAE_SMARTFORM_STR-EXCNW sy-vline
WA_P08_PAE_SMARTFORM_STR-EXCCD sy-vline
WA_P08_PAE_SMARTFORM_STR-EXCLLP sy-vline
WA_P08_PAE_SMARTFORM_STR-LATE sy-vline
WA_P08_PAE_SMARTFORM_STR-DTO_OODEN sy-vline
WA_P08_PAE_SMARTFORM_STR-SFORM sy-vline
WA_P08_PAE_SMARTFORM_STR-SNAME sy-vline
WA_P08_PAE_SMARTFORM_STR-EMAIL sy-vline
WA_P08_PAE_SMARTFORM_STR-EMAIL_ID sy-vline
WA_P08_PAE_SMARTFORM_STR-FORMNAME sy-vline
WA_P08_PAE_SMARTFORM_STR-FORMTEXT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.