ABAP Select data from SAP table PSJ_FLG_FIRST 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 PSJ_FLG_FIRST 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 PSJ_FLG_FIRST. 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 PSJ_FLG_FIRST 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_PSJ_FLG_FIRST TYPE STANDARD TABLE OF PSJ_FLG_FIRST,
      WA_PSJ_FLG_FIRST TYPE PSJ_FLG_FIRST,
      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: <PSJ_FLG_FIRST> TYPE PSJ_FLG_FIRST.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PSJ_FLG_FIRST
*  INTO TABLE @DATA(IT_PSJ_FLG_FIRST2).
*--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_PSJ_FLG_FIRST INDEX 1 INTO DATA(WA_PSJ_FLG_FIRST2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PSJ_FLG_FIRST ASSIGNING <PSJ_FLG_FIRST>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PSJ_FLG_FIRST>-PSCTRL = 1.
<PSJ_FLG_FIRST>-ARKOPF = 1.
<PSJ_FLG_FIRST>-ACT01 = 1.
<PSJ_FLG_FIRST>-AUFK = 1.
<PSJ_FLG_FIRST>-RSTHIE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PSJ_FLG_FIRST-PRTX, sy-vline,
WA_PSJ_FLG_FIRST-PRTE, sy-vline,
WA_PSJ_FLG_FIRST-PLAF, sy-vline,
WA_PSJ_FLG_FIRST-PROJ, sy-vline,
WA_PSJ_FLG_FIRST-PRPS, sy-vline,
WA_PSJ_FLG_FIRST-MLPS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PSJ_FLG_FIRST 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_PSJ_FLG_FIRST 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_PSJ_FLG_FIRST INTO WA_PSJ_FLG_FIRST. *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_PSJ_FLG_FIRST_STR,
PSCTRL TYPE STRING,
ARKOPF TYPE STRING,
ACT01 TYPE STRING,
AUFK TYPE STRING,
RSTHIE TYPE STRING,
PRTX TYPE STRING,
PRTE TYPE STRING,
PLAF TYPE STRING,
PROJ TYPE STRING,
PRPS TYPE STRING,
MLPS TYPE STRING,
NEPO TYPE STRING,
NEKO TYPE STRING,
AFAB01 TYPE STRING,
AFKO TYPE STRING,
AFPO TYPE STRING,
AFFH TYPE STRING,
AFFL TYPE STRING,
AFIH TYPE STRING,
NPTX TYPE STRING,
RESB01 TYPE STRING,
RESB04 TYPE STRING,
ONR00 TYPE STRING,
MLSTD TYPE STRING,
KBED01 TYPE STRING,
KBEZ TYPE STRING,
KPER TYPE STRING,
KBED04 TYPE STRING,
AFRU01 TYPE STRING,
VBAK TYPE STRING,
VBAP TYPE STRING,
VBUP TYPE STRING,
VBUK TYPE STRING,
VBKD TYPE STRING,
FPLA TYPE STRING,
FPLT TYPE STRING,
EVOF_P_PRPS TYPE STRING,
EVOF_P_ACT TYPE STRING,
EVFG_PRPS TYPE STRING,
EVFG_ACT TYPE STRING,
EBAN_PRPS TYPE STRING,
EBAN_ACT TYPE STRING,
EBAN_NETZ TYPE STRING,
EBKN_PRPS TYPE STRING,
EBKN_ACT TYPE STRING,
EBKN_NETZ TYPE STRING,
EKKO_PRPS TYPE STRING,
EKKO_ACT TYPE STRING,
EKKO_NETZ TYPE STRING,
EKPO_PRPS TYPE STRING,
EKPO_ACT TYPE STRING,
EKPO_NETZ TYPE STRING,
EKET_PRPS TYPE STRING,
EKET_ACT TYPE STRING,
EKET_NETZ TYPE STRING,
EKPB_PRPS TYPE STRING,
EKPB_ACT TYPE STRING,
EKPB_NETZ TYPE STRING,
EKKN_PRPS TYPE STRING,
EKKN_ACT TYPE STRING,
EKKN_NETZ TYPE STRING,
EKBE_PRPS TYPE STRING,
EKBE_ACT TYPE STRING,
EKBE_NETZ TYPE STRING,
DRAD_PRPS TYPE STRING,
DRAD_ACT TYPE STRING,
DRAD_FHM TYPE STRING,
DRAD_COMP TYPE STRING,
AENR TYPE STRING,
VSKOPF TYPE STRING,
IMTP TYPE STRING,
IMPR TYPE STRING,
FPLAPS_PR TYPE STRING,
FPLAPS_NP TYPE STRING,
FPLTPS_PR TYPE STRING,
FPLTPS_NP TYPE STRING,
LIKP TYPE STRING,
LIPS TYPE STRING,
EV_PARAM TYPE STRING,
PEGOB TYPE STRING,
PEGQTY TYPE STRING,
PSMERK_PRPS TYPE STRING,
PSMERK_ACT TYPE STRING,
DRAD_EBAN_PRPS TYPE STRING,
DRAD_EBAN_NETZ TYPE STRING,
DRAD_EKPO_PRPS TYPE STRING,
DRAD_EKPO_NP TYPE STRING,END OF T_EKKO_STR. DATA: WA_PSJ_FLG_FIRST_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_PSJ_FLG_FIRST_STR-PSCTRL sy-vline
WA_PSJ_FLG_FIRST_STR-ARKOPF sy-vline
WA_PSJ_FLG_FIRST_STR-ACT01 sy-vline
WA_PSJ_FLG_FIRST_STR-AUFK sy-vline
WA_PSJ_FLG_FIRST_STR-RSTHIE sy-vline
WA_PSJ_FLG_FIRST_STR-PRTX sy-vline
WA_PSJ_FLG_FIRST_STR-PRTE sy-vline
WA_PSJ_FLG_FIRST_STR-PLAF sy-vline
WA_PSJ_FLG_FIRST_STR-PROJ sy-vline
WA_PSJ_FLG_FIRST_STR-PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-MLPS sy-vline
WA_PSJ_FLG_FIRST_STR-NEPO sy-vline
WA_PSJ_FLG_FIRST_STR-NEKO sy-vline
WA_PSJ_FLG_FIRST_STR-AFAB01 sy-vline
WA_PSJ_FLG_FIRST_STR-AFKO sy-vline
WA_PSJ_FLG_FIRST_STR-AFPO sy-vline
WA_PSJ_FLG_FIRST_STR-AFFH sy-vline
WA_PSJ_FLG_FIRST_STR-AFFL sy-vline
WA_PSJ_FLG_FIRST_STR-AFIH sy-vline
WA_PSJ_FLG_FIRST_STR-NPTX sy-vline
WA_PSJ_FLG_FIRST_STR-RESB01 sy-vline
WA_PSJ_FLG_FIRST_STR-RESB04 sy-vline
WA_PSJ_FLG_FIRST_STR-ONR00 sy-vline
WA_PSJ_FLG_FIRST_STR-MLSTD sy-vline
WA_PSJ_FLG_FIRST_STR-KBED01 sy-vline
WA_PSJ_FLG_FIRST_STR-KBEZ sy-vline
WA_PSJ_FLG_FIRST_STR-KPER sy-vline
WA_PSJ_FLG_FIRST_STR-KBED04 sy-vline
WA_PSJ_FLG_FIRST_STR-AFRU01 sy-vline
WA_PSJ_FLG_FIRST_STR-VBAK sy-vline
WA_PSJ_FLG_FIRST_STR-VBAP sy-vline
WA_PSJ_FLG_FIRST_STR-VBUP sy-vline
WA_PSJ_FLG_FIRST_STR-VBUK sy-vline
WA_PSJ_FLG_FIRST_STR-VBKD sy-vline
WA_PSJ_FLG_FIRST_STR-FPLA sy-vline
WA_PSJ_FLG_FIRST_STR-FPLT sy-vline
WA_PSJ_FLG_FIRST_STR-EVOF_P_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EVOF_P_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EVFG_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EVFG_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EBAN_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EBAN_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EBAN_NETZ sy-vline
WA_PSJ_FLG_FIRST_STR-EBKN_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EBKN_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EBKN_NETZ sy-vline
WA_PSJ_FLG_FIRST_STR-EKKO_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EKKO_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EKKO_NETZ sy-vline
WA_PSJ_FLG_FIRST_STR-EKPO_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EKPO_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EKPO_NETZ sy-vline
WA_PSJ_FLG_FIRST_STR-EKET_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EKET_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EKET_NETZ sy-vline
WA_PSJ_FLG_FIRST_STR-EKPB_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EKPB_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EKPB_NETZ sy-vline
WA_PSJ_FLG_FIRST_STR-EKKN_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EKKN_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EKKN_NETZ sy-vline
WA_PSJ_FLG_FIRST_STR-EKBE_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-EKBE_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-EKBE_NETZ sy-vline
WA_PSJ_FLG_FIRST_STR-DRAD_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-DRAD_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-DRAD_FHM sy-vline
WA_PSJ_FLG_FIRST_STR-DRAD_COMP sy-vline
WA_PSJ_FLG_FIRST_STR-AENR sy-vline
WA_PSJ_FLG_FIRST_STR-VSKOPF sy-vline
WA_PSJ_FLG_FIRST_STR-IMTP sy-vline
WA_PSJ_FLG_FIRST_STR-IMPR sy-vline
WA_PSJ_FLG_FIRST_STR-FPLAPS_PR sy-vline
WA_PSJ_FLG_FIRST_STR-FPLAPS_NP sy-vline
WA_PSJ_FLG_FIRST_STR-FPLTPS_PR sy-vline
WA_PSJ_FLG_FIRST_STR-FPLTPS_NP sy-vline
WA_PSJ_FLG_FIRST_STR-LIKP sy-vline
WA_PSJ_FLG_FIRST_STR-LIPS sy-vline
WA_PSJ_FLG_FIRST_STR-EV_PARAM sy-vline
WA_PSJ_FLG_FIRST_STR-PEGOB sy-vline
WA_PSJ_FLG_FIRST_STR-PEGQTY sy-vline
WA_PSJ_FLG_FIRST_STR-PSMERK_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-PSMERK_ACT sy-vline
WA_PSJ_FLG_FIRST_STR-DRAD_EBAN_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-DRAD_EBAN_NETZ sy-vline
WA_PSJ_FLG_FIRST_STR-DRAD_EKPO_PRPS sy-vline
WA_PSJ_FLG_FIRST_STR-DRAD_EKPO_NP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.