ABAP Select data from SAP table PMXLSC 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 PMXLSC 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 PMXLSC. 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 PMXLSC 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_PMXLSC TYPE STANDARD TABLE OF PMXLSC,
      WA_PMXLSC TYPE PMXLSC,
      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: <PMXLSC> TYPE PMXLSC.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PMXLSC
*  INTO TABLE @DATA(IT_PMXLSC2).
*--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_PMXLSC INDEX 1 INTO DATA(WA_PMXLSC2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PMXLSC ASSIGNING <PMXLSC>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PMXLSC>-SYS1 = 1.
<PMXLSC>-SYS2 = 1.
<PMXLSC>-SYS3 = 1.
<PMXLSC>-SYS4 = 1.
<PMXLSC>-SYS5 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PMXLSC-TMP1, sy-vline,
WA_PMXLSC-TMP2, sy-vline,
WA_PMXLSC-TMP3, sy-vline,
WA_PMXLSC-TMP4, sy-vline,
WA_PMXLSC-TMP5, sy-vline,
WA_PMXLSC-PTU1, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PMXLSC 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_PMXLSC 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_PMXLSC INTO WA_PMXLSC. *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_PMXLSC_STR,
SYS1 TYPE STRING,
SYS2 TYPE STRING,
SYS3 TYPE STRING,
SYS4 TYPE STRING,
SYS5 TYPE STRING,
TMP1 TYPE STRING,
TMP2 TYPE STRING,
TMP3 TYPE STRING,
TMP4 TYPE STRING,
TMP5 TYPE STRING,
PTU1 TYPE STRING,
PTU2 TYPE STRING,
PTU3 TYPE STRING,
PTU4 TYPE STRING,
PTU5 TYPE STRING,
AGU TYPE STRING,
AGU1 TYPE STRING,
AGU2 TYPE STRING,
AGU3 TYPE STRING,
AGU4 TYPE STRING,
AGU5 TYPE STRING,
PVA1 TYPE STRING,
PVA2 TYPE STRING,
PVA3 TYPE STRING,
PVA4 TYPE STRING,
PVA5 TYPE STRING,
FON1 TYPE STRING,
FON2 TYPE STRING,
FON3 TYPE STRING,
FON4 TYPE STRING,
FON5 TYPE STRING,
DES1 TYPE STRING,
DES2 TYPE STRING,
DES3 TYPE STRING,
DES4 TYPE STRING,
DES5 TYPE STRING,
TRA1 TYPE STRING,
TRA2 TYPE STRING,
TRA3 TYPE STRING,
TRA4 TYPE STRING,
TRA5 TYPE STRING,
OTR1 TYPE STRING,
OTR2 TYPE STRING,
OTR3 TYPE STRING,
OTR4 TYPE STRING,
OTR5 TYPE STRING,
TOT1 TYPE STRING,
TOT2 TYPE STRING,
TOT3 TYPE STRING,
TOT4 TYPE STRING,
TOT5 TYPE STRING,
NUM1 TYPE STRING,
NUM2 TYPE STRING,
NUM3 TYPE STRING,
NUM4 TYPE STRING,
NUM5 TYPE STRING,
RFC TYPE STRING,
WAERS TYPE STRING,END OF T_EKKO_STR. DATA: WA_PMXLSC_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_PMXLSC_STR-SYS1 sy-vline
WA_PMXLSC_STR-SYS2 sy-vline
WA_PMXLSC_STR-SYS3 sy-vline
WA_PMXLSC_STR-SYS4 sy-vline
WA_PMXLSC_STR-SYS5 sy-vline
WA_PMXLSC_STR-TMP1 sy-vline
WA_PMXLSC_STR-TMP2 sy-vline
WA_PMXLSC_STR-TMP3 sy-vline
WA_PMXLSC_STR-TMP4 sy-vline
WA_PMXLSC_STR-TMP5 sy-vline
WA_PMXLSC_STR-PTU1 sy-vline
WA_PMXLSC_STR-PTU2 sy-vline
WA_PMXLSC_STR-PTU3 sy-vline
WA_PMXLSC_STR-PTU4 sy-vline
WA_PMXLSC_STR-PTU5 sy-vline
WA_PMXLSC_STR-AGU sy-vline
WA_PMXLSC_STR-AGU1 sy-vline
WA_PMXLSC_STR-AGU2 sy-vline
WA_PMXLSC_STR-AGU3 sy-vline
WA_PMXLSC_STR-AGU4 sy-vline
WA_PMXLSC_STR-AGU5 sy-vline
WA_PMXLSC_STR-PVA1 sy-vline
WA_PMXLSC_STR-PVA2 sy-vline
WA_PMXLSC_STR-PVA3 sy-vline
WA_PMXLSC_STR-PVA4 sy-vline
WA_PMXLSC_STR-PVA5 sy-vline
WA_PMXLSC_STR-FON1 sy-vline
WA_PMXLSC_STR-FON2 sy-vline
WA_PMXLSC_STR-FON3 sy-vline
WA_PMXLSC_STR-FON4 sy-vline
WA_PMXLSC_STR-FON5 sy-vline
WA_PMXLSC_STR-DES1 sy-vline
WA_PMXLSC_STR-DES2 sy-vline
WA_PMXLSC_STR-DES3 sy-vline
WA_PMXLSC_STR-DES4 sy-vline
WA_PMXLSC_STR-DES5 sy-vline
WA_PMXLSC_STR-TRA1 sy-vline
WA_PMXLSC_STR-TRA2 sy-vline
WA_PMXLSC_STR-TRA3 sy-vline
WA_PMXLSC_STR-TRA4 sy-vline
WA_PMXLSC_STR-TRA5 sy-vline
WA_PMXLSC_STR-OTR1 sy-vline
WA_PMXLSC_STR-OTR2 sy-vline
WA_PMXLSC_STR-OTR3 sy-vline
WA_PMXLSC_STR-OTR4 sy-vline
WA_PMXLSC_STR-OTR5 sy-vline
WA_PMXLSC_STR-TOT1 sy-vline
WA_PMXLSC_STR-TOT2 sy-vline
WA_PMXLSC_STR-TOT3 sy-vline
WA_PMXLSC_STR-TOT4 sy-vline
WA_PMXLSC_STR-TOT5 sy-vline
WA_PMXLSC_STR-NUM1 sy-vline
WA_PMXLSC_STR-NUM2 sy-vline
WA_PMXLSC_STR-NUM3 sy-vline
WA_PMXLSC_STR-NUM4 sy-vline
WA_PMXLSC_STR-NUM5 sy-vline
WA_PMXLSC_STR-RFC sy-vline
WA_PMXLSC_STR-WAERS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.