ABAP Select data from SAP table PFR_FORM_PAD 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 PFR_FORM_PAD 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 PFR_FORM_PAD. 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 PFR_FORM_PAD 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_PFR_FORM_PAD TYPE STANDARD TABLE OF PFR_FORM_PAD,
      WA_PFR_FORM_PAD TYPE PFR_FORM_PAD,
      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: <PFR_FORM_PAD> TYPE PFR_FORM_PAD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PFR_FORM_PAD
*  INTO TABLE @DATA(IT_PFR_FORM_PAD2).
*--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_PFR_FORM_PAD INDEX 1 INTO DATA(WA_PFR_FORM_PAD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PFR_FORM_PAD ASSIGNING <PFR_FORM_PAD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PFR_FORM_PAD>-TXTNM = 1.
<PFR_FORM_PAD>-TEXT_T01 = 1.
<PFR_FORM_PAD>-TEXT_T03 = 1.
<PFR_FORM_PAD>-TEXT_T04 = 1.
<PFR_FORM_PAD>-TEXT_T05 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PFR_FORM_PAD-TEXT_T06, sy-vline,
WA_PFR_FORM_PAD-TEXT_T07, sy-vline,
WA_PFR_FORM_PAD-TEXT_T08, sy-vline,
WA_PFR_FORM_PAD-TEXT_T09, sy-vline,
WA_PFR_FORM_PAD-TEXT_T10, sy-vline,
WA_PFR_FORM_PAD-TEXT_T11, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PFR_FORM_PAD 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_PFR_FORM_PAD 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_PFR_FORM_PAD INTO WA_PFR_FORM_PAD. *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_PFR_FORM_PAD_STR,
TXTNM TYPE STRING,
TEXT_T01 TYPE STRING,
TEXT_T03 TYPE STRING,
TEXT_T04 TYPE STRING,
TEXT_T05 TYPE STRING,
TEXT_T06 TYPE STRING,
TEXT_T07 TYPE STRING,
TEXT_T08 TYPE STRING,
TEXT_T09 TYPE STRING,
TEXT_T10 TYPE STRING,
TEXT_T11 TYPE STRING,
TEXT_T12 TYPE STRING,
TEXT_T14 TYPE STRING,
TEXT_T16 TYPE STRING,
TEXT_T17 TYPE STRING,
TEXT_T18 TYPE STRING,
TEXT_T19 TYPE STRING,
TEXT_T20 TYPE STRING,
TEXT_T21 TYPE STRING,
TEXT_T22 TYPE STRING,
TEXT_T23 TYPE STRING,
TEXT_T24 TYPE STRING,
TEXT_T25 TYPE STRING,
TEXT_T26 TYPE STRING,
TEXT_T27 TYPE STRING,
TEXT_T28 TYPE STRING,
TEXT_T30 TYPE STRING,
TEXT_T31 TYPE STRING,
TEXT_T32 TYPE STRING,
TEXT_T33 TYPE STRING,
TEXT_T35 TYPE STRING,
TEXT_T36 TYPE STRING,
TEXT_T37 TYPE STRING,
TEXT_T40 TYPE STRING,
TEXT_T41 TYPE STRING,
TEXT_T42 TYPE STRING,
TEXT_T43 TYPE STRING,
TEXT_T44 TYPE STRING,
TEXT_T45 TYPE STRING,
TEXT_T47 TYPE STRING,
TEXT_T48 TYPE STRING,
TEXT_T49 TYPE STRING,
TEXT_T50 TYPE STRING,
TEXT_T51 TYPE STRING,
INTPER TYPE STRING,
INTPERCP TYPE STRING,
BEGDA TYPE STRING,
ENDDA TYPE STRING,
PAR TYPE STRING,
MOT TYPE STRING,
BASEDIM TYPE STRING,
TAUXI TYPE STRING,
ADDS TYPE STRING,
AATTR TYPE STRING,
MOPAR TYPE STRING,
OPTIO TYPE STRING,
BASE TYPE STRING,
CSGBASE TYPE STRING,
CRDSBASE TYPE STRING,
MAIN_CURR TYPE STRING,
DOFOSO TYPE STRING,
PERCO TYPE STRING,
DADAM TYPE STRING,
CCBAM TYPE STRING,
WITHDRAWAL TYPE STRING,
MAIN_CURR TYPE STRING,
NOM TYPE STRING,
RUE TYPE STRING,
VILLE TYPE STRING,
NAMEN TYPE STRING,
LOCAT TYPE STRING,
STRAS TYPE STRING,
ORT01 TYPE STRING,
TMP_TXT1 TYPE STRING,
TMP_TXT2 TYPE STRING,
TMP_TXT3 TYPE STRING,
SS_TOTAL TYPE STRING,
SUMINT TYPE STRING,
SUMCSGI TYPE STRING,
SUMCRDS TYPE STRING,
SUMNPS TYPE STRING,
A_PAYER TYPE STRING,
TOT TYPE STRING,
TOT_CSGI TYPE STRING,
TOT_CRDSI TYPE STRING,
TOT_NPSI TYPE STRING,
TOT_NET TYPE STRING,
PERNR TYPE STRING,
DATEDEBLOC_EXT TYPE STRING,
WITHDR TYPE STRING,
P_APPL TYPE STRING,
TOT_DEBLOQ TYPE STRING,
TOT_BLOQ TYPE STRING,
SUMRSAI TYPE STRING,
TOT_RSAI TYPE STRING,END OF T_EKKO_STR. DATA: WA_PFR_FORM_PAD_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_PFR_FORM_PAD_STR-TXTNM sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T01 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T03 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T04 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T05 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T06 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T07 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T08 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T09 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T10 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T11 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T12 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T14 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T16 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T17 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T18 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T19 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T20 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T21 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T22 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T23 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T24 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T25 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T26 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T27 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T28 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T30 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T31 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T32 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T33 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T35 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T36 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T37 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T40 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T41 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T42 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T43 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T44 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T45 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T47 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T48 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T49 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T50 sy-vline
WA_PFR_FORM_PAD_STR-TEXT_T51 sy-vline
WA_PFR_FORM_PAD_STR-INTPER sy-vline
WA_PFR_FORM_PAD_STR-INTPERCP sy-vline
WA_PFR_FORM_PAD_STR-BEGDA sy-vline
WA_PFR_FORM_PAD_STR-ENDDA sy-vline
WA_PFR_FORM_PAD_STR-PAR sy-vline
WA_PFR_FORM_PAD_STR-MOT sy-vline
WA_PFR_FORM_PAD_STR-BASEDIM sy-vline
WA_PFR_FORM_PAD_STR-TAUXI sy-vline
WA_PFR_FORM_PAD_STR-ADDS sy-vline
WA_PFR_FORM_PAD_STR-AATTR sy-vline
WA_PFR_FORM_PAD_STR-MOPAR sy-vline
WA_PFR_FORM_PAD_STR-OPTIO sy-vline
WA_PFR_FORM_PAD_STR-BASE sy-vline
WA_PFR_FORM_PAD_STR-CSGBASE sy-vline
WA_PFR_FORM_PAD_STR-CRDSBASE sy-vline
WA_PFR_FORM_PAD_STR-MAIN_CURR sy-vline
WA_PFR_FORM_PAD_STR-DOFOSO sy-vline
WA_PFR_FORM_PAD_STR-PERCO sy-vline
WA_PFR_FORM_PAD_STR-DADAM sy-vline
WA_PFR_FORM_PAD_STR-CCBAM sy-vline
WA_PFR_FORM_PAD_STR-WITHDRAWAL sy-vline
WA_PFR_FORM_PAD_STR-MAIN_CURR sy-vline
WA_PFR_FORM_PAD_STR-NOM sy-vline
WA_PFR_FORM_PAD_STR-RUE sy-vline
WA_PFR_FORM_PAD_STR-VILLE sy-vline
WA_PFR_FORM_PAD_STR-NAMEN sy-vline
WA_PFR_FORM_PAD_STR-LOCAT sy-vline
WA_PFR_FORM_PAD_STR-STRAS sy-vline
WA_PFR_FORM_PAD_STR-ORT01 sy-vline
WA_PFR_FORM_PAD_STR-TMP_TXT1 sy-vline
WA_PFR_FORM_PAD_STR-TMP_TXT2 sy-vline
WA_PFR_FORM_PAD_STR-TMP_TXT3 sy-vline
WA_PFR_FORM_PAD_STR-SS_TOTAL sy-vline
WA_PFR_FORM_PAD_STR-SUMINT sy-vline
WA_PFR_FORM_PAD_STR-SUMCSGI sy-vline
WA_PFR_FORM_PAD_STR-SUMCRDS sy-vline
WA_PFR_FORM_PAD_STR-SUMNPS sy-vline
WA_PFR_FORM_PAD_STR-A_PAYER sy-vline
WA_PFR_FORM_PAD_STR-TOT sy-vline
WA_PFR_FORM_PAD_STR-TOT_CSGI sy-vline
WA_PFR_FORM_PAD_STR-TOT_CRDSI sy-vline
WA_PFR_FORM_PAD_STR-TOT_NPSI sy-vline
WA_PFR_FORM_PAD_STR-TOT_NET sy-vline
WA_PFR_FORM_PAD_STR-PERNR sy-vline
WA_PFR_FORM_PAD_STR-DATEDEBLOC_EXT sy-vline
WA_PFR_FORM_PAD_STR-WITHDR sy-vline
WA_PFR_FORM_PAD_STR-P_APPL sy-vline
WA_PFR_FORM_PAD_STR-TOT_DEBLOQ sy-vline
WA_PFR_FORM_PAD_STR-TOT_BLOQ sy-vline
WA_PFR_FORM_PAD_STR-SUMRSAI sy-vline
WA_PFR_FORM_PAD_STR-TOT_RSAI sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.