ABAP Select data from SAP table PC2LL 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 PC2LL 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 PC2LL. 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 PC2LL 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_PC2LL TYPE STANDARD TABLE OF PC2LL,
      WA_PC2LL TYPE PC2LL,
      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: <PC2LL> TYPE PC2LL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PC2LL
*  INTO TABLE @DATA(IT_PC2LL2).
*--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_PC2LL INDEX 1 INTO DATA(WA_PC2LL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PC2LL ASSIGNING <PC2LL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PC2LL>-BEGDA = 1.
<PC2LL>-ENDDA = 1.
<PC2LL>-MASSG = 1.
<PC2LL>-TMDAT = 1.
<PC2LL>-NTDAT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PC2LL-PTDAT, sy-vline,
WA_PC2LL-EROLE, sy-vline,
WA_PC2LL-WAERS, sy-vline,
WA_PC2LL-AJW01, sy-vline,
WA_PC2LL-AJA01, sy-vline,
WA_PC2LL-LAW01, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PC2LL 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_PC2LL 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_PC2LL INTO WA_PC2LL. *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_PC2LL_STR,
BEGDA TYPE STRING,
ENDDA TYPE STRING,
MASSG TYPE STRING,
TMDAT TYPE STRING,
NTDAT TYPE STRING,
PTDAT TYPE STRING,
EROLE TYPE STRING,
WAERS TYPE STRING,
AJW01 TYPE STRING,
AJA01 TYPE STRING,
LAW01 TYPE STRING,
LAA01 TYPE STRING,
FUN01 TYPE STRING,
ROA01 TYPE STRING,
AJW02 TYPE STRING,
AJA02 TYPE STRING,
LAW02 TYPE STRING,
LAA02 TYPE STRING,
FUN02 TYPE STRING,
ROA02 TYPE STRING,
AJW03 TYPE STRING,
AJA03 TYPE STRING,
LAW03 TYPE STRING,
LAA03 TYPE STRING,
FUN03 TYPE STRING,
ROA03 TYPE STRING,
AJW04 TYPE STRING,
AJA04 TYPE STRING,
LAW04 TYPE STRING,
LAA04 TYPE STRING,
FUN04 TYPE STRING,
ROA04 TYPE STRING,
AJW05 TYPE STRING,
AJA05 TYPE STRING,
LAW05 TYPE STRING,
LAA05 TYPE STRING,
FUN05 TYPE STRING,
ROA05 TYPE STRING,
AJW06 TYPE STRING,
AJA06 TYPE STRING,
LAW06 TYPE STRING,
LAA06 TYPE STRING,
FUN06 TYPE STRING,
ROA06 TYPE STRING,
AJW07 TYPE STRING,
AJA07 TYPE STRING,
LAW07 TYPE STRING,
LAA07 TYPE STRING,
FUN07 TYPE STRING,
ROA07 TYPE STRING,
AJW08 TYPE STRING,
AJA08 TYPE STRING,
LAW08 TYPE STRING,
LAA08 TYPE STRING,
FUN08 TYPE STRING,
ROA08 TYPE STRING,
AJW09 TYPE STRING,
AJA09 TYPE STRING,
LAW09 TYPE STRING,
LAA09 TYPE STRING,
FUN09 TYPE STRING,
ROA09 TYPE STRING,
AJW10 TYPE STRING,
AJA10 TYPE STRING,
LAW10 TYPE STRING,
LAA10 TYPE STRING,
FUN10 TYPE STRING,
ROA10 TYPE STRING,
ETPTP TYPE STRING,
EXL01 TYPE STRING,
EXL02 TYPE STRING,
EXL03 TYPE STRING,
EXL04 TYPE STRING,
EXL05 TYPE STRING,
EXL06 TYPE STRING,
EXL07 TYPE STRING,
EXL08 TYPE STRING,
EXL09 TYPE STRING,
EXL10 TYPE STRING,
EXT01 TYPE STRING,
EXT02 TYPE STRING,
EXT03 TYPE STRING,
EXT04 TYPE STRING,
EXT05 TYPE STRING,
EXT06 TYPE STRING,
EXT07 TYPE STRING,
EXT08 TYPE STRING,
EXT09 TYPE STRING,
EXT10 TYPE STRING,END OF T_EKKO_STR. DATA: WA_PC2LL_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_PC2LL_STR-BEGDA sy-vline
WA_PC2LL_STR-ENDDA sy-vline
WA_PC2LL_STR-MASSG sy-vline
WA_PC2LL_STR-TMDAT sy-vline
WA_PC2LL_STR-NTDAT sy-vline
WA_PC2LL_STR-PTDAT sy-vline
WA_PC2LL_STR-EROLE sy-vline
WA_PC2LL_STR-WAERS sy-vline
WA_PC2LL_STR-AJW01 sy-vline
WA_PC2LL_STR-AJA01 sy-vline
WA_PC2LL_STR-LAW01 sy-vline
WA_PC2LL_STR-LAA01 sy-vline
WA_PC2LL_STR-FUN01 sy-vline
WA_PC2LL_STR-ROA01 sy-vline
WA_PC2LL_STR-AJW02 sy-vline
WA_PC2LL_STR-AJA02 sy-vline
WA_PC2LL_STR-LAW02 sy-vline
WA_PC2LL_STR-LAA02 sy-vline
WA_PC2LL_STR-FUN02 sy-vline
WA_PC2LL_STR-ROA02 sy-vline
WA_PC2LL_STR-AJW03 sy-vline
WA_PC2LL_STR-AJA03 sy-vline
WA_PC2LL_STR-LAW03 sy-vline
WA_PC2LL_STR-LAA03 sy-vline
WA_PC2LL_STR-FUN03 sy-vline
WA_PC2LL_STR-ROA03 sy-vline
WA_PC2LL_STR-AJW04 sy-vline
WA_PC2LL_STR-AJA04 sy-vline
WA_PC2LL_STR-LAW04 sy-vline
WA_PC2LL_STR-LAA04 sy-vline
WA_PC2LL_STR-FUN04 sy-vline
WA_PC2LL_STR-ROA04 sy-vline
WA_PC2LL_STR-AJW05 sy-vline
WA_PC2LL_STR-AJA05 sy-vline
WA_PC2LL_STR-LAW05 sy-vline
WA_PC2LL_STR-LAA05 sy-vline
WA_PC2LL_STR-FUN05 sy-vline
WA_PC2LL_STR-ROA05 sy-vline
WA_PC2LL_STR-AJW06 sy-vline
WA_PC2LL_STR-AJA06 sy-vline
WA_PC2LL_STR-LAW06 sy-vline
WA_PC2LL_STR-LAA06 sy-vline
WA_PC2LL_STR-FUN06 sy-vline
WA_PC2LL_STR-ROA06 sy-vline
WA_PC2LL_STR-AJW07 sy-vline
WA_PC2LL_STR-AJA07 sy-vline
WA_PC2LL_STR-LAW07 sy-vline
WA_PC2LL_STR-LAA07 sy-vline
WA_PC2LL_STR-FUN07 sy-vline
WA_PC2LL_STR-ROA07 sy-vline
WA_PC2LL_STR-AJW08 sy-vline
WA_PC2LL_STR-AJA08 sy-vline
WA_PC2LL_STR-LAW08 sy-vline
WA_PC2LL_STR-LAA08 sy-vline
WA_PC2LL_STR-FUN08 sy-vline
WA_PC2LL_STR-ROA08 sy-vline
WA_PC2LL_STR-AJW09 sy-vline
WA_PC2LL_STR-AJA09 sy-vline
WA_PC2LL_STR-LAW09 sy-vline
WA_PC2LL_STR-LAA09 sy-vline
WA_PC2LL_STR-FUN09 sy-vline
WA_PC2LL_STR-ROA09 sy-vline
WA_PC2LL_STR-AJW10 sy-vline
WA_PC2LL_STR-AJA10 sy-vline
WA_PC2LL_STR-LAW10 sy-vline
WA_PC2LL_STR-LAA10 sy-vline
WA_PC2LL_STR-FUN10 sy-vline
WA_PC2LL_STR-ROA10 sy-vline
WA_PC2LL_STR-ETPTP sy-vline
WA_PC2LL_STR-EXL01 sy-vline
WA_PC2LL_STR-EXL02 sy-vline
WA_PC2LL_STR-EXL03 sy-vline
WA_PC2LL_STR-EXL04 sy-vline
WA_PC2LL_STR-EXL05 sy-vline
WA_PC2LL_STR-EXL06 sy-vline
WA_PC2LL_STR-EXL07 sy-vline
WA_PC2LL_STR-EXL08 sy-vline
WA_PC2LL_STR-EXL09 sy-vline
WA_PC2LL_STR-EXL10 sy-vline
WA_PC2LL_STR-EXT01 sy-vline
WA_PC2LL_STR-EXT02 sy-vline
WA_PC2LL_STR-EXT03 sy-vline
WA_PC2LL_STR-EXT04 sy-vline
WA_PC2LL_STR-EXT05 sy-vline
WA_PC2LL_STR-EXT06 sy-vline
WA_PC2LL_STR-EXT07 sy-vline
WA_PC2LL_STR-EXT08 sy-vline
WA_PC2LL_STR-EXT09 sy-vline
WA_PC2LL_STR-EXT10 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.