ABAP Select data from SAP table P06PM1I 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 P06PM1I 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 P06PM1I. 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 P06PM1I 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_P06PM1I TYPE STANDARD TABLE OF P06PM1I, WA_P06PM1I TYPE P06PM1I, 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: <P06PM1I> TYPE P06PM1I. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_P06PM1I. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM P06PM1I INTO TABLE IT_P06PM1I. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM P06PM1I * INTO TABLE @DATA(IT_P06PM1I2). *--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_P06PM1I INDEX 1 INTO DATA(WA_P06PM1I2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_P06PM1I ASSIGNING <P06PM1I>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<P06PM1I>-MODELID = 1.
<P06PM1I>-PROCESSID = 1.
<P06PM1I>-SERVICE = 1.
<P06PM1I>-MODTXT = 1.
<P06PM1I>-PAC = 1.
ENDLOOP. LOOP AT IT_P06PM1I INTO WA_P06PM1I. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_P06PM1I-ORIG_ECH, sy-vline,
WA_P06PM1I-PAC_PROD, sy-vline,
WA_P06PM1I-PAC_MAIT, sy-vline,
WA_P06PM1I-INTFNAME, sy-vline,
WA_P06PM1I-TST_ON, sy-vline,
WA_P06PM1I-TYP_NR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P06PM1I 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_P06PM1I 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_P06PM1I INTO WA_P06PM1I. *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_P06PM1I_STR,
MODELID TYPE STRING,
PROCESSID TYPE STRING,
SERVICE TYPE STRING,
MODTXT TYPE STRING,
PAC TYPE STRING,
ORIG_ECH TYPE STRING,
PAC_PROD TYPE STRING,
PAC_MAIT TYPE STRING,
INTFNAME TYPE STRING,
TST_ON TYPE STRING,
TYP_NR TYPE STRING,
TYP_TR TYPE STRING,
P_TIME TYPE STRING,
SCHEM TYPE STRING,
DISP_LOG TYPE STRING,
TIME_INT TYPE STRING,
PNPMCIDE TYPE STRING,
PNPMCSTR TYPE STRING,
DATASET TYPE STRING,
S_ORIG TYPE STRING,
S_REPE TYPE STRING,
S_UPDA TYPE STRING,
S_PROT TYPE STRING,
DAT_OUT TYPE STRING,
S_APPEND TYPE STRING,
TEMSE_F TYPE STRING,
P_ITFTP TYPE STRING,
P_ITFTT TYPE STRING,
P_USRTY TYPE STRING,
UNIX_F TYPE STRING,
P_CODEPF TYPE STRING,
P_CODEPT TYPE STRING,
FILE TYPE STRING,
PGM TYPE STRING,
INPUT1 TYPE STRING,
INPUT2 TYPE STRING,
INPUT3 TYPE STRING,
INPUT4 TYPE STRING,
INPUT5 TYPE STRING,
INPUT6 TYPE STRING,
INPUT7 TYPE STRING,
INPUT8 TYPE STRING,
INPUT9 TYPE STRING,
INPUT10 TYPE STRING,
INPUT11 TYPE STRING,
INPUT12 TYPE STRING,
NO_WAIT TYPE STRING,
P_COUNT TYPE STRING,
DEST TYPE STRING,
PGM_2 TYPE STRING,
INP1_2 TYPE STRING,
INP2_2 TYPE STRING,
INP3_2 TYPE STRING,
INP4_2 TYPE STRING,
INP5_2 TYPE STRING,
INP6_2 TYPE STRING,
INP7_2 TYPE STRING,
INP8_2 TYPE STRING,
INP9_2 TYPE STRING,
INP10_2 TYPE STRING,
INP11_2 TYPE STRING,
INP12_2 TYPE STRING,
NO_WAI_2 TYPE STRING,
P_COUN_2 TYPE STRING,
DEST_2 TYPE STRING,
PGM_3 TYPE STRING,
INP1_3 TYPE STRING,
INP2_3 TYPE STRING,
INP3_3 TYPE STRING,
INP4_3 TYPE STRING,
INP5_3 TYPE STRING,
INP6_3 TYPE STRING,
INP7_3 TYPE STRING,
INP8_3 TYPE STRING,
INP9_3 TYPE STRING,
INP10_3 TYPE STRING,
INP11_3 TYPE STRING,
INP12_3 TYPE STRING,
NO_WAI_3 TYPE STRING,
P_COUN_3 TYPE STRING,
DEST_3 TYPE STRING,
TEM_DVR TYPE STRING,
NO_ENVOIFD TYPE STRING,
NO_ENVOIVR TYPE STRING,
NO_EXTVR TYPE STRING,
NO_DELRESP TYPE STRING,
NO_CMDDFVR TYPE STRING,
NO_CMDDFFD TYPE STRING,
NO_CMDSTEND TYPE STRING,
RETURN_CODE TYPE STRING,
CLE_WE TYPE STRING,
CLE_ST TYPE STRING,
VAL_ST TYPE STRING,
RETRO_DT TYPE STRING,END OF T_EKKO_STR. DATA: WA_P06PM1I_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_P06PM1I_STR-MODELID sy-vline
WA_P06PM1I_STR-PROCESSID sy-vline
WA_P06PM1I_STR-SERVICE sy-vline
WA_P06PM1I_STR-MODTXT sy-vline
WA_P06PM1I_STR-PAC sy-vline
WA_P06PM1I_STR-ORIG_ECH sy-vline
WA_P06PM1I_STR-PAC_PROD sy-vline
WA_P06PM1I_STR-PAC_MAIT sy-vline
WA_P06PM1I_STR-INTFNAME sy-vline
WA_P06PM1I_STR-TST_ON sy-vline
WA_P06PM1I_STR-TYP_NR sy-vline
WA_P06PM1I_STR-TYP_TR sy-vline
WA_P06PM1I_STR-P_TIME sy-vline
WA_P06PM1I_STR-SCHEM sy-vline
WA_P06PM1I_STR-DISP_LOG sy-vline
WA_P06PM1I_STR-TIME_INT sy-vline
WA_P06PM1I_STR-PNPMCIDE sy-vline
WA_P06PM1I_STR-PNPMCSTR sy-vline
WA_P06PM1I_STR-DATASET sy-vline
WA_P06PM1I_STR-S_ORIG sy-vline
WA_P06PM1I_STR-S_REPE sy-vline
WA_P06PM1I_STR-S_UPDA sy-vline
WA_P06PM1I_STR-S_PROT sy-vline
WA_P06PM1I_STR-DAT_OUT sy-vline
WA_P06PM1I_STR-S_APPEND sy-vline
WA_P06PM1I_STR-TEMSE_F sy-vline
WA_P06PM1I_STR-P_ITFTP sy-vline
WA_P06PM1I_STR-P_ITFTT sy-vline
WA_P06PM1I_STR-P_USRTY sy-vline
WA_P06PM1I_STR-UNIX_F sy-vline
WA_P06PM1I_STR-P_CODEPF sy-vline
WA_P06PM1I_STR-P_CODEPT sy-vline
WA_P06PM1I_STR-FILE sy-vline
WA_P06PM1I_STR-PGM sy-vline
WA_P06PM1I_STR-INPUT1 sy-vline
WA_P06PM1I_STR-INPUT2 sy-vline
WA_P06PM1I_STR-INPUT3 sy-vline
WA_P06PM1I_STR-INPUT4 sy-vline
WA_P06PM1I_STR-INPUT5 sy-vline
WA_P06PM1I_STR-INPUT6 sy-vline
WA_P06PM1I_STR-INPUT7 sy-vline
WA_P06PM1I_STR-INPUT8 sy-vline
WA_P06PM1I_STR-INPUT9 sy-vline
WA_P06PM1I_STR-INPUT10 sy-vline
WA_P06PM1I_STR-INPUT11 sy-vline
WA_P06PM1I_STR-INPUT12 sy-vline
WA_P06PM1I_STR-NO_WAIT sy-vline
WA_P06PM1I_STR-P_COUNT sy-vline
WA_P06PM1I_STR-DEST sy-vline
WA_P06PM1I_STR-PGM_2 sy-vline
WA_P06PM1I_STR-INP1_2 sy-vline
WA_P06PM1I_STR-INP2_2 sy-vline
WA_P06PM1I_STR-INP3_2 sy-vline
WA_P06PM1I_STR-INP4_2 sy-vline
WA_P06PM1I_STR-INP5_2 sy-vline
WA_P06PM1I_STR-INP6_2 sy-vline
WA_P06PM1I_STR-INP7_2 sy-vline
WA_P06PM1I_STR-INP8_2 sy-vline
WA_P06PM1I_STR-INP9_2 sy-vline
WA_P06PM1I_STR-INP10_2 sy-vline
WA_P06PM1I_STR-INP11_2 sy-vline
WA_P06PM1I_STR-INP12_2 sy-vline
WA_P06PM1I_STR-NO_WAI_2 sy-vline
WA_P06PM1I_STR-P_COUN_2 sy-vline
WA_P06PM1I_STR-DEST_2 sy-vline
WA_P06PM1I_STR-PGM_3 sy-vline
WA_P06PM1I_STR-INP1_3 sy-vline
WA_P06PM1I_STR-INP2_3 sy-vline
WA_P06PM1I_STR-INP3_3 sy-vline
WA_P06PM1I_STR-INP4_3 sy-vline
WA_P06PM1I_STR-INP5_3 sy-vline
WA_P06PM1I_STR-INP6_3 sy-vline
WA_P06PM1I_STR-INP7_3 sy-vline
WA_P06PM1I_STR-INP8_3 sy-vline
WA_P06PM1I_STR-INP9_3 sy-vline
WA_P06PM1I_STR-INP10_3 sy-vline
WA_P06PM1I_STR-INP11_3 sy-vline
WA_P06PM1I_STR-INP12_3 sy-vline
WA_P06PM1I_STR-NO_WAI_3 sy-vline
WA_P06PM1I_STR-P_COUN_3 sy-vline
WA_P06PM1I_STR-DEST_3 sy-vline
WA_P06PM1I_STR-TEM_DVR sy-vline
WA_P06PM1I_STR-NO_ENVOIFD sy-vline
WA_P06PM1I_STR-NO_ENVOIVR sy-vline
WA_P06PM1I_STR-NO_EXTVR sy-vline
WA_P06PM1I_STR-NO_DELRESP sy-vline
WA_P06PM1I_STR-NO_CMDDFVR sy-vline
WA_P06PM1I_STR-NO_CMDDFFD sy-vline
WA_P06PM1I_STR-NO_CMDSTEND sy-vline
WA_P06PM1I_STR-RETURN_CODE sy-vline
WA_P06PM1I_STR-CLE_WE sy-vline
WA_P06PM1I_STR-CLE_ST sy-vline
WA_P06PM1I_STR-VAL_ST sy-vline
WA_P06PM1I_STR-RETRO_DT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.