ABAP Select data from SAP table UKSD 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 UKSD 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 UKSD. 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 UKSD 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_UKSD TYPE STANDARD TABLE OF UKSD,
      WA_UKSD TYPE UKSD,
      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: <UKSD> TYPE UKSD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM UKSD
*  INTO TABLE @DATA(IT_UKSD2).
*--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_UKSD INDEX 1 INTO DATA(WA_UKSD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_UKSD ASSIGNING <UKSD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<UKSD>-MANDT = 1.
<UKSD>-USNAM = 1.
<UKSD>-DATUM = 1.
<UKSD>-UZEIT = 1.
<UKSD>-ANZBL = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_UKSD-AZDEZ, sy-vline,
WA_UKSD-XBZVB, sy-vline,
WA_UKSD-VSALD, sy-vline,
WA_UKSD-SALDD, sy-vline,
WA_UKSD-WAERD, sy-vline,
WA_UKSD-VSALK, sy-vline.
ENDLOOP. *Add any further fields from structure WA_UKSD 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_UKSD 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_UKSD INTO WA_UKSD. *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 AC152, internal->external for field VSALD CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_UKSD-VSALD IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-VSALD.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SALDD CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_UKSD-SALDD IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SALDD.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field VSALK CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_UKSD-VSALK IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-VSALK.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field SALDK CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_UKSD-SALDK IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SALDK.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit AU152, internal->external for field SOLV1 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLV1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLV1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABV1 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABV1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABV1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field SOLL1 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLL1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLL1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABN1 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABN1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABN1.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit AU152, internal->external for field SOLV2 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLV2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLV2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABV2 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABV2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABV2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field SOLL2 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLL2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLL2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABN2 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABN2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABN2.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit AU152, internal->external for field SOLV3 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLV3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLV3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABV3 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABV3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABV3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field SOLL3 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLL3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLL3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABN3 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABN3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABN3.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit AU152, internal->external for field SOLV4 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLV4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLV4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABV4 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABV4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABV4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field SOLL4 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLL4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLL4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABN4 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABN4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABN4.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit AU152, internal->external for field SOLV5 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLV5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLV5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABV5 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABV5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABV5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field SOLL5 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-SOLL5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-SOLL5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU152, internal->external for field HABN5 CALL FUNCTION 'CONVERSION_EXIT_AU152_OUTPUT' EXPORTING input = WA_UKSD-HABN5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UKSD-HABN5.
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_UKSD_STR,
MANDT TYPE STRING,
USNAM TYPE STRING,
DATUM TYPE STRING,
UZEIT TYPE STRING,
ANZBL TYPE STRING,
AZDEZ TYPE STRING,
XBZVB TYPE STRING,
VSALD TYPE STRING,
SALDD TYPE STRING,
WAERD TYPE STRING,
VSALK TYPE STRING,
SALDK TYPE STRING,
WAERK TYPE STRING,
KOAR1 TYPE STRING,
VONK1 TYPE STRING,
BISK1 TYPE STRING,
SOLV1 TYPE STRING,
HABV1 TYPE STRING,
SOLL1 TYPE STRING,
HABN1 TYPE STRING,
WAER1 TYPE STRING,
KOAR2 TYPE STRING,
VONK2 TYPE STRING,
BISK2 TYPE STRING,
SOLV2 TYPE STRING,
HABV2 TYPE STRING,
SOLL2 TYPE STRING,
HABN2 TYPE STRING,
WAER2 TYPE STRING,
KOAR3 TYPE STRING,
VONK3 TYPE STRING,
BISK3 TYPE STRING,
SOLV3 TYPE STRING,
HABV3 TYPE STRING,
SOLL3 TYPE STRING,
HABN3 TYPE STRING,
WAER3 TYPE STRING,
KOAR4 TYPE STRING,
VONK4 TYPE STRING,
BISK4 TYPE STRING,
SOLV4 TYPE STRING,
HABV4 TYPE STRING,
SOLL4 TYPE STRING,
HABN4 TYPE STRING,
WAER4 TYPE STRING,
KOAR5 TYPE STRING,
VONK5 TYPE STRING,
BISK5 TYPE STRING,
SOLV5 TYPE STRING,
HABV5 TYPE STRING,
SOLL5 TYPE STRING,
HABN5 TYPE STRING,
WAER5 TYPE STRING,END OF T_EKKO_STR. DATA: WA_UKSD_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_UKSD_STR-MANDT sy-vline
WA_UKSD_STR-USNAM sy-vline
WA_UKSD_STR-DATUM sy-vline
WA_UKSD_STR-UZEIT sy-vline
WA_UKSD_STR-ANZBL sy-vline
WA_UKSD_STR-AZDEZ sy-vline
WA_UKSD_STR-XBZVB sy-vline
WA_UKSD_STR-VSALD sy-vline
WA_UKSD_STR-SALDD sy-vline
WA_UKSD_STR-WAERD sy-vline
WA_UKSD_STR-VSALK sy-vline
WA_UKSD_STR-SALDK sy-vline
WA_UKSD_STR-WAERK sy-vline
WA_UKSD_STR-KOAR1 sy-vline
WA_UKSD_STR-VONK1 sy-vline
WA_UKSD_STR-BISK1 sy-vline
WA_UKSD_STR-SOLV1 sy-vline
WA_UKSD_STR-HABV1 sy-vline
WA_UKSD_STR-SOLL1 sy-vline
WA_UKSD_STR-HABN1 sy-vline
WA_UKSD_STR-WAER1 sy-vline
WA_UKSD_STR-KOAR2 sy-vline
WA_UKSD_STR-VONK2 sy-vline
WA_UKSD_STR-BISK2 sy-vline
WA_UKSD_STR-SOLV2 sy-vline
WA_UKSD_STR-HABV2 sy-vline
WA_UKSD_STR-SOLL2 sy-vline
WA_UKSD_STR-HABN2 sy-vline
WA_UKSD_STR-WAER2 sy-vline
WA_UKSD_STR-KOAR3 sy-vline
WA_UKSD_STR-VONK3 sy-vline
WA_UKSD_STR-BISK3 sy-vline
WA_UKSD_STR-SOLV3 sy-vline
WA_UKSD_STR-HABV3 sy-vline
WA_UKSD_STR-SOLL3 sy-vline
WA_UKSD_STR-HABN3 sy-vline
WA_UKSD_STR-WAER3 sy-vline
WA_UKSD_STR-KOAR4 sy-vline
WA_UKSD_STR-VONK4 sy-vline
WA_UKSD_STR-BISK4 sy-vline
WA_UKSD_STR-SOLV4 sy-vline
WA_UKSD_STR-HABV4 sy-vline
WA_UKSD_STR-SOLL4 sy-vline
WA_UKSD_STR-HABN4 sy-vline
WA_UKSD_STR-WAER4 sy-vline
WA_UKSD_STR-KOAR5 sy-vline
WA_UKSD_STR-VONK5 sy-vline
WA_UKSD_STR-BISK5 sy-vline
WA_UKSD_STR-SOLV5 sy-vline
WA_UKSD_STR-HABV5 sy-vline
WA_UKSD_STR-SOLL5 sy-vline
WA_UKSD_STR-HABN5 sy-vline
WA_UKSD_STR-WAER5 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.