ABAP Select data from SAP table PRU_PFR1_PERSON 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 PRU_PFR1_PERSON 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 PRU_PFR1_PERSON. 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 PRU_PFR1_PERSON 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_PRU_PFR1_PERSON TYPE STANDARD TABLE OF PRU_PFR1_PERSON,
      WA_PRU_PFR1_PERSON TYPE PRU_PFR1_PERSON,
      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: <PRU_PFR1_PERSON> TYPE PRU_PFR1_PERSON.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PRU_PFR1_PERSON
*  INTO TABLE @DATA(IT_PRU_PFR1_PERSON2).
*--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_PRU_PFR1_PERSON INDEX 1 INTO DATA(WA_PRU_PFR1_PERSON2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PRU_PFR1_PERSON ASSIGNING <PRU_PFR1_PERSON>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PRU_PFR1_PERSON>-PERNR = 1.
<PRU_PFR1_PERSON>-OKUD = 1.
<PRU_PFR1_PERSON>-SNOMER = 1.
<PRU_PFR1_PERSON>-O_FAM = 1.
<PRU_PFR1_PERSON>-O_NAM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PRU_PFR1_PERSON-O_OTC, sy-vline,
WA_PRU_PFR1_PERSON-X_FAM, sy-vline,
WA_PRU_PFR1_PERSON-X_NAM, sy-vline,
WA_PRU_PFR1_PERSON-X_OTC, sy-vline,
WA_PRU_PFR1_PERSON-FAM, sy-vline,
WA_PRU_PFR1_PERSON-NAM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PRU_PFR1_PERSON 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_PRU_PFR1_PERSON 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_PRU_PFR1_PERSON INTO WA_PRU_PFR1_PERSON. *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_PRU_PFR1_PERSON_STR,
PERNR TYPE STRING,
OKUD TYPE STRING,
SNOMER TYPE STRING,
O_FAM TYPE STRING,
O_NAM TYPE STRING,
O_OTC TYPE STRING,
X_FAM TYPE STRING,
X_NAM TYPE STRING,
X_OTC TYPE STRING,
FAM TYPE STRING,
NAM TYPE STRING,
OTC TYPE STRING,
SEX TYPE STRING,
GRA TYPE STRING,
B_D TYPE STRING,
B_M TYPE STRING,
B_MM TYPE STRING,
B_Y TYPE STRING,
T_BP TYPE STRING,
CITY TYPE STRING,
COUNTY TYPE STRING,
REGION TYPE STRING,
LAND TYPE STRING,
R_INDEX TYPE STRING,
R_ADR1 TYPE STRING,
R_ADR2 TYPE STRING,
R_ADR3 TYPE STRING,
F_INDEX TYPE STRING,
F_ADR1 TYPE STRING,
F_ADR2 TYPE STRING,
F_ADR3 TYPE STRING,
R_ADX1 TYPE STRING,
R_ADX2 TYPE STRING,
F_ADX1 TYPE STRING,
F_ADX2 TYPE STRING,
PHONE TYPE STRING,
DOCCD TYPE STRING,
DOC TYPE STRING,
SER TYPE STRING,
SER1 TYPE STRING,
SER2 TYPE STRING,
NOM TYPE STRING,
REGNOBC TYPE STRING,
INN TYPE STRING,
V_D TYPE STRING,
V_M TYPE STRING,
V_Y TYPE STRING,
V_WHO1 TYPE STRING,
V_WHO2 TYPE STRING,
Z_D TYPE STRING,
Z_M TYPE STRING,
Z_Y TYPE STRING,
C_INN TYPE STRING,
C_KPP TYPE STRING,
REGNO TYPE STRING,
ORGNAME TYPE STRING,
NPCH TYPE STRING,
STRANICA TYPE STRING,
NMAN TYPE STRING,
GBDAT TYPE STRING,
DOCTY TYPE STRING,
VDDAT TYPE STRING,
STR TYPE STRING,
SPCPF TYPE STRING,
SUBTY_ADR_BP_O TYPE STRING,
SUBTY_ADR_BP_N TYPE STRING,
SUBTY_ADR_R TYPE STRING,
SUBTY_ADR_A TYPE STRING,
SUBTY_DOC TYPE STRING,
UPPERLOOP TYPE STRING,
UPPERSTEP TYPE STRING,
B_D_O TYPE STRING,
B_M_O TYPE STRING,
B_Y_O TYPE STRING,
PB_O TYPE STRING,
SYS_BP_LAND_CHANGED TYPE STRING,
SYS_GR_CHANGED TYPE STRING,
TIPADR TYPE STRING,
INDEKS TYPE STRING,
KODSTRAN TYPE STRING,
NAZSTRAN TYPE STRING,
ADDRESS TYPE STRING,
NAZREG TYPE STRING,
SOKREG TYPE STRING,
NAZRAI TYPE STRING,
SOKRAI TYPE STRING,
NAZGOR TYPE STRING,
SOKGOR TYPE STRING,
NAZNPU TYPE STRING,
SOKNPU TYPE STRING,
NAZULI TYPE STRING,
SOKULI TYPE STRING,
SOKDM TYPE STRING,
NOMDM TYPE STRING,
SOKKR TYPE STRING,
NOMKR TYPE STRING,
SOKKV TYPE STRING,
NOMKV TYPE STRING,END OF T_EKKO_STR. DATA: WA_PRU_PFR1_PERSON_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_PRU_PFR1_PERSON_STR-PERNR sy-vline
WA_PRU_PFR1_PERSON_STR-OKUD sy-vline
WA_PRU_PFR1_PERSON_STR-SNOMER sy-vline
WA_PRU_PFR1_PERSON_STR-O_FAM sy-vline
WA_PRU_PFR1_PERSON_STR-O_NAM sy-vline
WA_PRU_PFR1_PERSON_STR-O_OTC sy-vline
WA_PRU_PFR1_PERSON_STR-X_FAM sy-vline
WA_PRU_PFR1_PERSON_STR-X_NAM sy-vline
WA_PRU_PFR1_PERSON_STR-X_OTC sy-vline
WA_PRU_PFR1_PERSON_STR-FAM sy-vline
WA_PRU_PFR1_PERSON_STR-NAM sy-vline
WA_PRU_PFR1_PERSON_STR-OTC sy-vline
WA_PRU_PFR1_PERSON_STR-SEX sy-vline
WA_PRU_PFR1_PERSON_STR-GRA sy-vline
WA_PRU_PFR1_PERSON_STR-B_D sy-vline
WA_PRU_PFR1_PERSON_STR-B_M sy-vline
WA_PRU_PFR1_PERSON_STR-B_MM sy-vline
WA_PRU_PFR1_PERSON_STR-B_Y sy-vline
WA_PRU_PFR1_PERSON_STR-T_BP sy-vline
WA_PRU_PFR1_PERSON_STR-CITY sy-vline
WA_PRU_PFR1_PERSON_STR-COUNTY sy-vline
WA_PRU_PFR1_PERSON_STR-REGION sy-vline
WA_PRU_PFR1_PERSON_STR-LAND sy-vline
WA_PRU_PFR1_PERSON_STR-R_INDEX sy-vline
WA_PRU_PFR1_PERSON_STR-R_ADR1 sy-vline
WA_PRU_PFR1_PERSON_STR-R_ADR2 sy-vline
WA_PRU_PFR1_PERSON_STR-R_ADR3 sy-vline
WA_PRU_PFR1_PERSON_STR-F_INDEX sy-vline
WA_PRU_PFR1_PERSON_STR-F_ADR1 sy-vline
WA_PRU_PFR1_PERSON_STR-F_ADR2 sy-vline
WA_PRU_PFR1_PERSON_STR-F_ADR3 sy-vline
WA_PRU_PFR1_PERSON_STR-R_ADX1 sy-vline
WA_PRU_PFR1_PERSON_STR-R_ADX2 sy-vline
WA_PRU_PFR1_PERSON_STR-F_ADX1 sy-vline
WA_PRU_PFR1_PERSON_STR-F_ADX2 sy-vline
WA_PRU_PFR1_PERSON_STR-PHONE sy-vline
WA_PRU_PFR1_PERSON_STR-DOCCD sy-vline
WA_PRU_PFR1_PERSON_STR-DOC sy-vline
WA_PRU_PFR1_PERSON_STR-SER sy-vline
WA_PRU_PFR1_PERSON_STR-SER1 sy-vline
WA_PRU_PFR1_PERSON_STR-SER2 sy-vline
WA_PRU_PFR1_PERSON_STR-NOM sy-vline
WA_PRU_PFR1_PERSON_STR-REGNOBC sy-vline
WA_PRU_PFR1_PERSON_STR-INN sy-vline
WA_PRU_PFR1_PERSON_STR-V_D sy-vline
WA_PRU_PFR1_PERSON_STR-V_M sy-vline
WA_PRU_PFR1_PERSON_STR-V_Y sy-vline
WA_PRU_PFR1_PERSON_STR-V_WHO1 sy-vline
WA_PRU_PFR1_PERSON_STR-V_WHO2 sy-vline
WA_PRU_PFR1_PERSON_STR-Z_D sy-vline
WA_PRU_PFR1_PERSON_STR-Z_M sy-vline
WA_PRU_PFR1_PERSON_STR-Z_Y sy-vline
WA_PRU_PFR1_PERSON_STR-C_INN sy-vline
WA_PRU_PFR1_PERSON_STR-C_KPP sy-vline
WA_PRU_PFR1_PERSON_STR-REGNO sy-vline
WA_PRU_PFR1_PERSON_STR-ORGNAME sy-vline
WA_PRU_PFR1_PERSON_STR-NPCH sy-vline
WA_PRU_PFR1_PERSON_STR-STRANICA sy-vline
WA_PRU_PFR1_PERSON_STR-NMAN sy-vline
WA_PRU_PFR1_PERSON_STR-GBDAT sy-vline
WA_PRU_PFR1_PERSON_STR-DOCTY sy-vline
WA_PRU_PFR1_PERSON_STR-VDDAT sy-vline
WA_PRU_PFR1_PERSON_STR-STR sy-vline
WA_PRU_PFR1_PERSON_STR-SPCPF sy-vline
WA_PRU_PFR1_PERSON_STR-SUBTY_ADR_BP_O sy-vline
WA_PRU_PFR1_PERSON_STR-SUBTY_ADR_BP_N sy-vline
WA_PRU_PFR1_PERSON_STR-SUBTY_ADR_R sy-vline
WA_PRU_PFR1_PERSON_STR-SUBTY_ADR_A sy-vline
WA_PRU_PFR1_PERSON_STR-SUBTY_DOC sy-vline
WA_PRU_PFR1_PERSON_STR-UPPERLOOP sy-vline
WA_PRU_PFR1_PERSON_STR-UPPERSTEP sy-vline
WA_PRU_PFR1_PERSON_STR-B_D_O sy-vline
WA_PRU_PFR1_PERSON_STR-B_M_O sy-vline
WA_PRU_PFR1_PERSON_STR-B_Y_O sy-vline
WA_PRU_PFR1_PERSON_STR-PB_O sy-vline
WA_PRU_PFR1_PERSON_STR-SYS_BP_LAND_CHANGED sy-vline
WA_PRU_PFR1_PERSON_STR-SYS_GR_CHANGED sy-vline
WA_PRU_PFR1_PERSON_STR-TIPADR sy-vline
WA_PRU_PFR1_PERSON_STR-INDEKS sy-vline
WA_PRU_PFR1_PERSON_STR-KODSTRAN sy-vline
WA_PRU_PFR1_PERSON_STR-NAZSTRAN sy-vline
WA_PRU_PFR1_PERSON_STR-ADDRESS sy-vline
WA_PRU_PFR1_PERSON_STR-NAZREG sy-vline
WA_PRU_PFR1_PERSON_STR-SOKREG sy-vline
WA_PRU_PFR1_PERSON_STR-NAZRAI sy-vline
WA_PRU_PFR1_PERSON_STR-SOKRAI sy-vline
WA_PRU_PFR1_PERSON_STR-NAZGOR sy-vline
WA_PRU_PFR1_PERSON_STR-SOKGOR sy-vline
WA_PRU_PFR1_PERSON_STR-NAZNPU sy-vline
WA_PRU_PFR1_PERSON_STR-SOKNPU sy-vline
WA_PRU_PFR1_PERSON_STR-NAZULI sy-vline
WA_PRU_PFR1_PERSON_STR-SOKULI sy-vline
WA_PRU_PFR1_PERSON_STR-SOKDM sy-vline
WA_PRU_PFR1_PERSON_STR-NOMDM sy-vline
WA_PRU_PFR1_PERSON_STR-SOKKR sy-vline
WA_PRU_PFR1_PERSON_STR-NOMKR sy-vline
WA_PRU_PFR1_PERSON_STR-SOKKV sy-vline
WA_PRU_PFR1_PERSON_STR-NOMKV sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.