ABAP Select data from SAP table EHS00S_TERM_OP2 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 EHS00S_TERM_OP2 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 EHS00S_TERM_OP2. 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 EHS00S_TERM_OP2 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_EHS00S_TERM_OP2 TYPE STANDARD TABLE OF EHS00S_TERM_OP2,
      WA_EHS00S_TERM_OP2 TYPE EHS00S_TERM_OP2,
      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: <EHS00S_TERM_OP2> TYPE EHS00S_TERM_OP2.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM EHS00S_TERM_OP2
*  INTO TABLE @DATA(IT_EHS00S_TERM_OP22).
*--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_EHS00S_TERM_OP2 INDEX 1 INTO DATA(WA_EHS00S_TERM_OP22).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_EHS00S_TERM_OP2 ASSIGNING <EHS00S_TERM_OP2>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<EHS00S_TERM_OP2>-PERNR = 1.
<EHS00S_TERM_OP2>-SRV_NUMBER = 1.
<EHS00S_TERM_OP2>-SERVNUMBER = 1.
<EHS00S_TERM_OP2>-NACHN = 1.
<EHS00S_TERM_OP2>-VORNA = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_EHS00S_TERM_OP2-NAME, sy-vline,
WA_EHS00S_TERM_OP2-MARKELEMENT, sy-vline,
WA_EHS00S_TERM_OP2-SRV_SCHED_DATE, sy-vline,
WA_EHS00S_TERM_OP2-SRV_SCHED_TIME, sy-vline,
WA_EHS00S_TERM_OP2-SRV_SCHED_DURA, sy-vline,
WA_EHS00S_TERM_OP2-SRV_SCHED_APPSTA, sy-vline.
ENDLOOP. *Add any further fields from structure WA_EHS00S_TERM_OP2 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_EHS00S_TERM_OP2 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_EHS00S_TERM_OP2 INTO WA_EHS00S_TERM_OP2. *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 SRV_PHYSICIAN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_EHS00S_TERM_OP2-SRV_PHYSICIAN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_EHS00S_TERM_OP2-SRV_PHYSICIAN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit PDATE, internal->external for field GBDAT CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT' EXPORTING input = WA_EHS00S_TERM_OP2-GBDAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_EHS00S_TERM_OP2-GBDAT.
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_EHS00S_TERM_OP2_STR,
PERNR TYPE STRING,
SRV_NUMBER TYPE STRING,
SERVNUMBER TYPE STRING,
NACHN TYPE STRING,
VORNA TYPE STRING,
NAME TYPE STRING,
MARKELEMENT TYPE STRING,
SRV_SCHED_DATE TYPE STRING,
SRV_SCHED_TIME TYPE STRING,
SRV_SCHED_DURA TYPE STRING,
SRV_SCHED_APPSTA TYPE STRING,
SRV_SCHED_STATUS TYPE STRING,
SRV_PHYSICIAN TYPE STRING,
PHYSICIANT TYPE STRING,
UNAME TYPE STRING,
AEDTM TYPE STRING,
DURATION_INT TYPE STRING,
SCH_STATUST TYPE STRING,
SRV_PROTCOMMENT TYPE STRING,
SCH_STATUS TYPE STRING,
SRV_APPCOUNT TYPE STRING,
TELNR_INT1 TYPE STRING,
TELNR_INT2 TYPE STRING,
TELNR TYPE STRING,
NAMEM TYPE STRING,
STREETE TYPE STRING,
STREETM TYPE STRING,
POSTBOXE TYPE STRING,
POSTBOXM TYPE STRING,
POSTCODEE TYPE STRING,
POSTCODEM TYPE STRING,
CITYE TYPE STRING,
CITYM TYPE STRING,
HOUSE_NUM1M TYPE STRING,
HOUSE_NUM1E TYPE STRING,
NAME1U TYPE STRING,
ABTLGU TYPE STRING,
BUINRU TYPE STRING,
ROONRU TYPE STRING,
STRASU TYPE STRING,
PFACHU TYPE STRING,
PSTLZU TYPE STRING,
ORT01U TYPE STRING,
REGIOU TYPE STRING,
LAND1U TYPE STRING,
TELNRU TYPE STRING,
TEL01U TYPE STRING,
TEL02U TYPE STRING,
GESCH TYPE STRING,
ATEXT TYPE STRING,
GBDAT TYPE STRING,
ABSENT TYPE STRING,
SRV_PROT_UDAT TYPE STRING,
PERSON_ID TYPE STRING,
PERSON_FLAG TYPE STRING,
SRV_PHYSFLAG_INT TYPE STRING,END OF T_EKKO_STR. DATA: WA_EHS00S_TERM_OP2_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_EHS00S_TERM_OP2_STR-PERNR sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_NUMBER sy-vline
WA_EHS00S_TERM_OP2_STR-SERVNUMBER sy-vline
WA_EHS00S_TERM_OP2_STR-NACHN sy-vline
WA_EHS00S_TERM_OP2_STR-VORNA sy-vline
WA_EHS00S_TERM_OP2_STR-NAME sy-vline
WA_EHS00S_TERM_OP2_STR-MARKELEMENT sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_SCHED_DATE sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_SCHED_TIME sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_SCHED_DURA sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_SCHED_APPSTA sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_SCHED_STATUS sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_PHYSICIAN sy-vline
WA_EHS00S_TERM_OP2_STR-PHYSICIANT sy-vline
WA_EHS00S_TERM_OP2_STR-UNAME sy-vline
WA_EHS00S_TERM_OP2_STR-AEDTM sy-vline
WA_EHS00S_TERM_OP2_STR-DURATION_INT sy-vline
WA_EHS00S_TERM_OP2_STR-SCH_STATUST sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_PROTCOMMENT sy-vline
WA_EHS00S_TERM_OP2_STR-SCH_STATUS sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_APPCOUNT sy-vline
WA_EHS00S_TERM_OP2_STR-TELNR_INT1 sy-vline
WA_EHS00S_TERM_OP2_STR-TELNR_INT2 sy-vline
WA_EHS00S_TERM_OP2_STR-TELNR sy-vline
WA_EHS00S_TERM_OP2_STR-NAMEM sy-vline
WA_EHS00S_TERM_OP2_STR-STREETE sy-vline
WA_EHS00S_TERM_OP2_STR-STREETM sy-vline
WA_EHS00S_TERM_OP2_STR-POSTBOXE sy-vline
WA_EHS00S_TERM_OP2_STR-POSTBOXM sy-vline
WA_EHS00S_TERM_OP2_STR-POSTCODEE sy-vline
WA_EHS00S_TERM_OP2_STR-POSTCODEM sy-vline
WA_EHS00S_TERM_OP2_STR-CITYE sy-vline
WA_EHS00S_TERM_OP2_STR-CITYM sy-vline
WA_EHS00S_TERM_OP2_STR-HOUSE_NUM1M sy-vline
WA_EHS00S_TERM_OP2_STR-HOUSE_NUM1E sy-vline
WA_EHS00S_TERM_OP2_STR-NAME1U sy-vline
WA_EHS00S_TERM_OP2_STR-ABTLGU sy-vline
WA_EHS00S_TERM_OP2_STR-BUINRU sy-vline
WA_EHS00S_TERM_OP2_STR-ROONRU sy-vline
WA_EHS00S_TERM_OP2_STR-STRASU sy-vline
WA_EHS00S_TERM_OP2_STR-PFACHU sy-vline
WA_EHS00S_TERM_OP2_STR-PSTLZU sy-vline
WA_EHS00S_TERM_OP2_STR-ORT01U sy-vline
WA_EHS00S_TERM_OP2_STR-REGIOU sy-vline
WA_EHS00S_TERM_OP2_STR-LAND1U sy-vline
WA_EHS00S_TERM_OP2_STR-TELNRU sy-vline
WA_EHS00S_TERM_OP2_STR-TEL01U sy-vline
WA_EHS00S_TERM_OP2_STR-TEL02U sy-vline
WA_EHS00S_TERM_OP2_STR-GESCH sy-vline
WA_EHS00S_TERM_OP2_STR-ATEXT sy-vline
WA_EHS00S_TERM_OP2_STR-GBDAT sy-vline
WA_EHS00S_TERM_OP2_STR-ABSENT sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_PROT_UDAT sy-vline
WA_EHS00S_TERM_OP2_STR-PERSON_ID sy-vline
WA_EHS00S_TERM_OP2_STR-PERSON_FLAG sy-vline
WA_EHS00S_TERM_OP2_STR-SRV_PHYSFLAG_INT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.