ABAP Select data from SAP table LXYRD_SCHDL 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 LXYRD_SCHDL 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 LXYRD_SCHDL. 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 LXYRD_SCHDL 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_LXYRD_SCHDL TYPE STANDARD TABLE OF LXYRD_SCHDL,
      WA_LXYRD_SCHDL TYPE LXYRD_SCHDL,
      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: <LXYRD_SCHDL> TYPE LXYRD_SCHDL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM LXYRD_SCHDL
*  INTO TABLE @DATA(IT_LXYRD_SCHDL2).
*--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_LXYRD_SCHDL INDEX 1 INTO DATA(WA_LXYRD_SCHDL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_LXYRD_SCHDL ASSIGNING <LXYRD_SCHDL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<LXYRD_SCHDL>-GLCGR = 1.
<LXYRD_SCHDL>-YLCCL = 1.
<LXYRD_SCHDL>-YLOCT = 1.
<LXYRD_SCHDL>-PLCTY = 1.
<LXYRD_SCHDL>-INOUT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_LXYRD_SCHDL-LCPTY, sy-vline,
WA_LXYRD_SCHDL-YLCCL_TEXT, sy-vline,
WA_LXYRD_SCHDL-ACTST, sy-vline,
WA_LXYRD_SCHDL-LYARD, sy-vline,
WA_LXYRD_SCHDL-RFTYP, sy-vline,
WA_LXYRD_SCHDL-REFER, sy-vline.
ENDLOOP. *Add any further fields from structure WA_LXYRD_SCHDL 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_LXYRD_SCHDL 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_LXYRD_SCHDL INTO WA_LXYRD_SCHDL. *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.

*Conversion exit ALPHA, internal->external for field REFER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_LXYRD_SCHDL-REFER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LXYRD_SCHDL-REFER.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field FWAGN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_LXYRD_SCHDL-FWAGN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LXYRD_SCHDL-FWAGN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field VENUM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_LXYRD_SCHDL-VENUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LXYRD_SCHDL-VENUM.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field VEHCL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_LXYRD_SCHDL-VEHCL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LXYRD_SCHDL-VEHCL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit TSTPS, internal->external for field PTARR CALL FUNCTION 'CONVERSION_EXIT_TSTPS_OUTPUT' EXPORTING input = WA_LXYRD_SCHDL-PTARR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LXYRD_SCHDL-PTARR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field TMUOM CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_LXYRD_SCHDL-TMUOM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_LXYRD_SCHDL-TMUOM.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_LXYRD_SCHDL_STR,
GLCGR TYPE STRING,
YLCCL TYPE STRING,
YLOCT TYPE STRING,
PLCTY TYPE STRING,
INOUT TYPE STRING,
LCPTY TYPE STRING,
YLCCL_TEXT TYPE STRING,
ACTST TYPE STRING,
LYARD TYPE STRING,
RFTYP TYPE STRING,
REFER TYPE STRING,
EXIDV2 TYPE STRING,
SIGNI TYPE STRING,
FWAGN TYPE STRING,
SCACD TYPE STRING,
GRIND TYPE STRING,
GIIND TYPE STRING,
VENUM TYPE STRING,
VEHCL TYPE STRING,
YDOOR TYPE STRING,
YSTGA TYPE STRING,
ACTVY TYPE STRING,
AUCNF TYPE STRING,
PDATF TYPE STRING,
PTIMF TYPE STRING,
PDATT TYPE STRING,
PTIMT TYPE STRING,
PTARR TYPE STRING,
DFDTN TYPE STRING,
TMUOM TYPE STRING,
FRAME_DOCUM TYPE STRING,
FRAME_ARRTP TYPE STRING,
YEAR TYPE STRING,
MONTH TYPE STRING,
WEEK TYPE STRING,
DAY TYPE STRING,
HOUR TYPE STRING,
MINUTE TYPE STRING,
RIBBON_NUMBER TYPE STRING,
RIBBON_UNIT TYPE STRING,
RIBBON_WIDTH TYPE STRING,
RIBBON_TEXTH TYPE STRING,
RIBBON_COLOR TYPE STRING,
COLUMN_FIELD TYPE STRING,
COLUMN_WIDTH TYPE STRING,
COLUMN_COLOR TYPE STRING,
COLUMN_DISPLAY TYPE STRING,
NODETX_FNAME TYPE STRING,
NODETX_CONTENT TYPE STRING,
PB_SAVE_DEFLT TYPE STRING,
LINK_DISPLAY TYPE STRING,
LINK_STYLE TYPE STRING,
LINK_DIAG TYPE STRING,
LINK_ORTHO TYPE STRING,
MODE_SELECT TYPE STRING,
MODE_EDIT TYPE STRING,
MODE_EXPAND TYPE STRING,
MODE_COLLAPSE TYPE STRING,
COLOR_TYPE TYPE STRING,END OF T_EKKO_STR. DATA: WA_LXYRD_SCHDL_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_LXYRD_SCHDL_STR-GLCGR sy-vline
WA_LXYRD_SCHDL_STR-YLCCL sy-vline
WA_LXYRD_SCHDL_STR-YLOCT sy-vline
WA_LXYRD_SCHDL_STR-PLCTY sy-vline
WA_LXYRD_SCHDL_STR-INOUT sy-vline
WA_LXYRD_SCHDL_STR-LCPTY sy-vline
WA_LXYRD_SCHDL_STR-YLCCL_TEXT sy-vline
WA_LXYRD_SCHDL_STR-ACTST sy-vline
WA_LXYRD_SCHDL_STR-LYARD sy-vline
WA_LXYRD_SCHDL_STR-RFTYP sy-vline
WA_LXYRD_SCHDL_STR-REFER sy-vline
WA_LXYRD_SCHDL_STR-EXIDV2 sy-vline
WA_LXYRD_SCHDL_STR-SIGNI sy-vline
WA_LXYRD_SCHDL_STR-FWAGN sy-vline
WA_LXYRD_SCHDL_STR-SCACD sy-vline
WA_LXYRD_SCHDL_STR-GRIND sy-vline
WA_LXYRD_SCHDL_STR-GIIND sy-vline
WA_LXYRD_SCHDL_STR-VENUM sy-vline
WA_LXYRD_SCHDL_STR-VEHCL sy-vline
WA_LXYRD_SCHDL_STR-YDOOR sy-vline
WA_LXYRD_SCHDL_STR-YSTGA sy-vline
WA_LXYRD_SCHDL_STR-ACTVY sy-vline
WA_LXYRD_SCHDL_STR-AUCNF sy-vline
WA_LXYRD_SCHDL_STR-PDATF sy-vline
WA_LXYRD_SCHDL_STR-PTIMF sy-vline
WA_LXYRD_SCHDL_STR-PDATT sy-vline
WA_LXYRD_SCHDL_STR-PTIMT sy-vline
WA_LXYRD_SCHDL_STR-PTARR sy-vline
WA_LXYRD_SCHDL_STR-DFDTN sy-vline
WA_LXYRD_SCHDL_STR-TMUOM sy-vline
WA_LXYRD_SCHDL_STR-FRAME_DOCUM sy-vline
WA_LXYRD_SCHDL_STR-FRAME_ARRTP sy-vline
WA_LXYRD_SCHDL_STR-YEAR sy-vline
WA_LXYRD_SCHDL_STR-MONTH sy-vline
WA_LXYRD_SCHDL_STR-WEEK sy-vline
WA_LXYRD_SCHDL_STR-DAY sy-vline
WA_LXYRD_SCHDL_STR-HOUR sy-vline
WA_LXYRD_SCHDL_STR-MINUTE sy-vline
WA_LXYRD_SCHDL_STR-RIBBON_NUMBER sy-vline
WA_LXYRD_SCHDL_STR-RIBBON_UNIT sy-vline
WA_LXYRD_SCHDL_STR-RIBBON_WIDTH sy-vline
WA_LXYRD_SCHDL_STR-RIBBON_TEXTH sy-vline
WA_LXYRD_SCHDL_STR-RIBBON_COLOR sy-vline
WA_LXYRD_SCHDL_STR-COLUMN_FIELD sy-vline
WA_LXYRD_SCHDL_STR-COLUMN_WIDTH sy-vline
WA_LXYRD_SCHDL_STR-COLUMN_COLOR sy-vline
WA_LXYRD_SCHDL_STR-COLUMN_DISPLAY sy-vline
WA_LXYRD_SCHDL_STR-NODETX_FNAME sy-vline
WA_LXYRD_SCHDL_STR-NODETX_CONTENT sy-vline
WA_LXYRD_SCHDL_STR-PB_SAVE_DEFLT sy-vline
WA_LXYRD_SCHDL_STR-LINK_DISPLAY sy-vline
WA_LXYRD_SCHDL_STR-LINK_STYLE sy-vline
WA_LXYRD_SCHDL_STR-LINK_DIAG sy-vline
WA_LXYRD_SCHDL_STR-LINK_ORTHO sy-vline
WA_LXYRD_SCHDL_STR-MODE_SELECT sy-vline
WA_LXYRD_SCHDL_STR-MODE_EDIT sy-vline
WA_LXYRD_SCHDL_STR-MODE_EXPAND sy-vline
WA_LXYRD_SCHDL_STR-MODE_COLLAPSE sy-vline
WA_LXYRD_SCHDL_STR-COLOR_TYPE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.