ABAP Select data from SAP table OAF_S_PP_PARAM 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 OAF_S_PP_PARAM 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 OAF_S_PP_PARAM. 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 OAF_S_PP_PARAM 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_OAF_S_PP_PARAM TYPE STANDARD TABLE OF OAF_S_PP_PARAM,
      WA_OAF_S_PP_PARAM TYPE OAF_S_PP_PARAM,
      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: <OAF_S_PP_PARAM> TYPE OAF_S_PP_PARAM.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM OAF_S_PP_PARAM
*  INTO TABLE @DATA(IT_OAF_S_PP_PARAM2).
*--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_OAF_S_PP_PARAM INDEX 1 INTO DATA(WA_OAF_S_PP_PARAM2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_OAF_S_PP_PARAM ASSIGNING <OAF_S_PP_PARAM>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<OAF_S_PP_PARAM>-TECH = 1.
<OAF_S_PP_PARAM>-APPLCATG = 1.
<OAF_S_PP_PARAM>-OBJCATG = 1.
<OAF_S_PP_PARAM>-TRANSCODE = 1.
<OAF_S_PP_PARAM>-CLASSNAME = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_OAF_S_PP_PARAM-STEPS, sy-vline,
WA_OAF_S_PP_PARAM-PACKDEFCATG, sy-vline,
WA_OAF_S_PP_PARAM-PAKET, sy-vline,
WA_OAF_S_PP_PARAM-PACKSIZE, sy-vline,
WA_OAF_S_PP_PARAM-PAKETNUM, sy-vline,
WA_OAF_S_PP_PARAM-OBJ_PER_COMMIT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_OAF_S_PP_PARAM 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_OAF_S_PP_PARAM 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_OAF_S_PP_PARAM INTO WA_OAF_S_PP_PARAM. *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_OAF_S_PP_PARAM_STR,
TECH TYPE STRING,
APPLCATG TYPE STRING,
OBJCATG TYPE STRING,
TRANSCODE TYPE STRING,
CLASSNAME TYPE STRING,
STEPS TYPE STRING,
PACKDEFCATG TYPE STRING,
PAKET TYPE STRING,
PACKSIZE TYPE STRING,
PAKETNUM TYPE STRING,
OBJ_PER_COMMIT TYPE STRING,
EXECDATE TYPE STRING,
REPORT_NAME TYPE STRING,
RUNID_EXT TYPE STRING,
MASSRUN_ID TYPE STRING,
ORIG_START_TIMESTAMP TYPE STRING,
CURR_START_TIMESTAMP TYPE STRING,
LOGNUMBER TYPE STRING,
LOG_TYPE TYPE STRING,
FLG_LOG_CTRL TYPE STRING,
TEST TYPE STRING,
FLG_LOG_CALLS TYPE STRING,
FLG_RUNTIME TYPE STRING,
RNG_CATCH TYPE STRING,
SIMULATION_RUN TYPE STRING,
FLG_NO_PP_REPORT TYPE STRING,
FLG_SYNC_CALL TYPE STRING,
FLG_EXTERNAL_ADMIN TYPE STRING,
FLG_AUTO_DELETE_EXT_PACK TYPE STRING,
FLG_NO_IN_BACKGROUND TYPE STRING,
FLG_NO_START_CHECK TYPE STRING,
FLG_NO_OBJ_CNG_LOGGING TYPE STRING,
FLG_KEEP_ORDER_FOR_LOG TYPE STRING,
FLG_DYNAMICAL_PACK TYPE STRING,
FLG_USE_PPO TYPE STRING,
FLG_USE_PPO_IN_SIMRUN TYPE STRING,
PPO_BUSINESS_PROCESS TYPE STRING,
INTV_CRITERIA TYPE STRING,
OAF TYPE STRING,
APPL_ID TYPE STRING,
EXPOBJTYPE TYPE STRING,
EXPOBJKEYS TYPE STRING,
AGENTS TYPE STRING,
ADD_SEL TYPE STRING,
TO_CREATED_ON_DATE TYPE STRING,
TO_CREATED_ON_TIME TYPE STRING,
CREATED_OBJECTS_ONLY TYPE STRING,END OF T_EKKO_STR. DATA: WA_OAF_S_PP_PARAM_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_OAF_S_PP_PARAM_STR-TECH sy-vline
WA_OAF_S_PP_PARAM_STR-APPLCATG sy-vline
WA_OAF_S_PP_PARAM_STR-OBJCATG sy-vline
WA_OAF_S_PP_PARAM_STR-TRANSCODE sy-vline
WA_OAF_S_PP_PARAM_STR-CLASSNAME sy-vline
WA_OAF_S_PP_PARAM_STR-STEPS sy-vline
WA_OAF_S_PP_PARAM_STR-PACKDEFCATG sy-vline
WA_OAF_S_PP_PARAM_STR-PAKET sy-vline
WA_OAF_S_PP_PARAM_STR-PACKSIZE sy-vline
WA_OAF_S_PP_PARAM_STR-PAKETNUM sy-vline
WA_OAF_S_PP_PARAM_STR-OBJ_PER_COMMIT sy-vline
WA_OAF_S_PP_PARAM_STR-EXECDATE sy-vline
WA_OAF_S_PP_PARAM_STR-REPORT_NAME sy-vline
WA_OAF_S_PP_PARAM_STR-RUNID_EXT sy-vline
WA_OAF_S_PP_PARAM_STR-MASSRUN_ID sy-vline
WA_OAF_S_PP_PARAM_STR-ORIG_START_TIMESTAMP sy-vline
WA_OAF_S_PP_PARAM_STR-CURR_START_TIMESTAMP sy-vline
WA_OAF_S_PP_PARAM_STR-LOGNUMBER sy-vline
WA_OAF_S_PP_PARAM_STR-LOG_TYPE sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_LOG_CTRL sy-vline
WA_OAF_S_PP_PARAM_STR-TEST sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_LOG_CALLS sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_RUNTIME sy-vline
WA_OAF_S_PP_PARAM_STR-RNG_CATCH sy-vline
WA_OAF_S_PP_PARAM_STR-SIMULATION_RUN sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_NO_PP_REPORT sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_SYNC_CALL sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_EXTERNAL_ADMIN sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_AUTO_DELETE_EXT_PACK sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_NO_IN_BACKGROUND sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_NO_START_CHECK sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_NO_OBJ_CNG_LOGGING sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_KEEP_ORDER_FOR_LOG sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_DYNAMICAL_PACK sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_USE_PPO sy-vline
WA_OAF_S_PP_PARAM_STR-FLG_USE_PPO_IN_SIMRUN sy-vline
WA_OAF_S_PP_PARAM_STR-PPO_BUSINESS_PROCESS sy-vline
WA_OAF_S_PP_PARAM_STR-INTV_CRITERIA sy-vline
WA_OAF_S_PP_PARAM_STR-OAF sy-vline
WA_OAF_S_PP_PARAM_STR-APPL_ID sy-vline
WA_OAF_S_PP_PARAM_STR-EXPOBJTYPE sy-vline
WA_OAF_S_PP_PARAM_STR-EXPOBJKEYS sy-vline
WA_OAF_S_PP_PARAM_STR-AGENTS sy-vline
WA_OAF_S_PP_PARAM_STR-ADD_SEL sy-vline
WA_OAF_S_PP_PARAM_STR-TO_CREATED_ON_DATE sy-vline
WA_OAF_S_PP_PARAM_STR-TO_CREATED_ON_TIME sy-vline
WA_OAF_S_PP_PARAM_STR-CREATED_OBJECTS_ONLY sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.