ABAP Select data from SAP table WSTI_INV_DOC_CREATE_IF 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 WSTI_INV_DOC_CREATE_IF 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 WSTI_INV_DOC_CREATE_IF. 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 WSTI_INV_DOC_CREATE_IF 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_WSTI_INV_DOC_CREATE_IF TYPE STANDARD TABLE OF WSTI_INV_DOC_CREATE_IF,
      WA_WSTI_INV_DOC_CREATE_IF TYPE WSTI_INV_DOC_CREATE_IF,
      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: <WSTI_INV_DOC_CREATE_IF> TYPE WSTI_INV_DOC_CREATE_IF.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM WSTI_INV_DOC_CREATE_IF
*  INTO TABLE @DATA(IT_WSTI_INV_DOC_CREATE_IF2).
*--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_WSTI_INV_DOC_CREATE_IF INDEX 1 INTO DATA(WA_WSTI_INV_DOC_CREATE_IF2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_WSTI_INV_DOC_CREATE_IF ASSIGNING <WSTI_INV_DOC_CREATE_IF>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<WSTI_INV_DOC_CREATE_IF>-CONTROL = 1.
<WSTI_INV_DOC_CREATE_IF>-WERKS = 1.
<WSTI_INV_DOC_CREATE_IF>-LGORT = 1.
<WSTI_INV_DOC_CREATE_IF>-MATNR_LOW = 1.
<WSTI_INV_DOC_CREATE_IF>-MATNR_HIGH = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_WSTI_INV_DOC_CREATE_IF-MATKL_LOW, sy-vline,
WA_WSTI_INV_DOC_CREATE_IF-MATKL_HIGH, sy-vline,
WA_WSTI_INV_DOC_CREATE_IF-CLASS_LOW, sy-vline,
WA_WSTI_INV_DOC_CREATE_IF-CLASS_HIGH, sy-vline,
WA_WSTI_INV_DOC_CREATE_IF-KDAUF_LOW, sy-vline,
WA_WSTI_INV_DOC_CREATE_IF-KDAUF_HIGH, sy-vline.
ENDLOOP. *Add any further fields from structure WA_WSTI_INV_DOC_CREATE_IF 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_WSTI_INV_DOC_CREATE_IF 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_WSTI_INV_DOC_CREATE_IF INTO WA_WSTI_INV_DOC_CREATE_IF. *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 MATN1, internal->external for field MATNR_LOW CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_WSTI_INV_DOC_CREATE_IF-MATNR_LOW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WSTI_INV_DOC_CREATE_IF-MATNR_LOW.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field MATNR_HIGH CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_WSTI_INV_DOC_CREATE_IF-MATNR_HIGH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WSTI_INV_DOC_CREATE_IF-MATNR_HIGH.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

*Conversion exit ALPHA, internal->external for field SYSTEM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_WSTI_INV_DOC_CREATE_IF-SYSTEM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WSTI_INV_DOC_CREATE_IF-SYSTEM.
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_WSTI_INV_DOC_CREATE_IF_STR,
CONTROL TYPE STRING,
WERKS TYPE STRING,
LGORT TYPE STRING,
MATNR_LOW TYPE STRING,
MATNR_HIGH TYPE STRING,
MATKL_LOW TYPE STRING,
MATKL_HIGH TYPE STRING,
CLASS_LOW TYPE STRING,
CLASS_HIGH TYPE STRING,
KDAUF_LOW TYPE STRING,
KDAUF_HIGH TYPE STRING,
INVNU TYPE STRING,
GIDAT_CHAR TYPE STRING,
GIDAT TYPE STRING,
X_WGREIN TYPE STRING,
X_ENABLE_REFR TYPE STRING,
X_ENABLE_CREA TYPE STRING,
X_ENABLE_AUFL TYPE STRING,
NUM_MATERIALS TYPE STRING,
NUM_DOCUMENTS TYPE STRING,
SEL_CHANGED TYPE STRING,
OKCODE_100 TYPE STRING,
SCREEN TYPE STRING,
SORT TYPE STRING,
SAPGUI TYPE STRING,
FURTHER_SELECTION TYPE STRING,
STOCKTYPE TYPE STRING,
WXWART TYPE STRING,
STOP TYPE STRING,
ITEM_ERROR TYPE STRING,
XVKBW TYPE STRING,
SHOW_700 TYPE STRING,
WROW TYPE STRING,
CHECK_MATERIALS TYPE STRING,
ACTION TYPE STRING,
WSTATUS TYPE STRING,
SOBKZ TYPE STRING,
MESSAGE TYPE STRING,
START_FLAG TYPE STRING,
SENDING_ALLOWED TYPE STRING,
SORTTYP TYPE STRING,
MAXPO TYPE STRING,
ITEM_INDEX TYPE STRING,
METHOD TYPE STRING,
INSTANCE_HANDLE TYPE STRING,
LIFNR_LOW TYPE STRING,
LIFNR_HIGH TYPE STRING,
CHARG_EXISTS TYPE STRING,
SOBKZ_E_EXISTS TYPE STRING,
SOBKZ_K_EXISTS TYPE STRING,
NUM_MATERIALS_SEL TYPE STRING,
NUM_STGE_LOC TYPE STRING,
MATID_VS TYPE STRING,
DESCR_VS TYPE STRING,
POWL_ITEM TYPE STRING,
IBLTXT TYPE STRING,
LGORT_LOW TYPE STRING,
LGORT_HIGH TYPE STRING,
LGORT_SELOPT TYPE STRING,
ALV_TBAR_ACTIVATION TYPE STRING,
BP_VERSION TYPE STRING,
TWIC0600 TYPE STRING,
MANDT TYPE STRING,
CSTOBJ TYPE STRING,
CSTSCM TYPE STRING,
WOSIDIFFIN TYPE STRING,
WOSIINVPER TYPE STRING,
WOSIUSEPOSWS TYPE STRING,
WOSIMI05S TYPE STRING,
WOSIST500 TYPE STRING,
XPDC_WO_REF TYPE STRING,
XPDC_WITH_REF TYPE STRING,
XSHOW_XNEGB TYPE STRING,
XSHOW_XLEER TYPE STRING,
XSHOW_XORDR TYPE STRING,
XSTOCKTYPE TYPE STRING,
XQUALITY TYPE STRING,
XBLOCK TYPE STRING,
XVALUEONLY TYPE STRING,
WSTIPAST TYPE STRING,
WSTIXWAUF TYPE STRING,
XPDC_APPLET TYPE STRING,
PRINT_COMP_NAME TYPE STRING,
MATID TYPE STRING,
REQUEST_FOCUS TYPE STRING,
MESSAGE TYPE STRING,
TYPE TYPE STRING,
ID TYPE STRING,
NUMBER TYPE STRING,
MESSAGE TYPE STRING,
LOG_NO TYPE STRING,
LOG_MSG_NO TYPE STRING,
MESSAGE_V1 TYPE STRING,
MESSAGE_V2 TYPE STRING,
MESSAGE_V3 TYPE STRING,
MESSAGE_V4 TYPE STRING,
PARAMETER TYPE STRING,
ROW TYPE STRING,
FIELD TYPE STRING,
SYSTEM TYPE STRING,
ITM_NUMBER TYPE STRING,
OBJECT_KEY TYPE STRING,
POPUP TYPE STRING,
ACCEPT TYPE STRING,
SCHED_LINE TYPE STRING,
T_ITEM TYPE STRING,
T_IIKPF TYPE STRING,
T_IISEG TYPE STRING,
T_INDEX TYPE STRING,
T_DOCUMENT TYPE STRING,
T_RETURN TYPE STRING,
T_T064B TYPE STRING,END OF T_EKKO_STR. DATA: WA_WSTI_INV_DOC_CREATE_IF_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_WSTI_INV_DOC_CREATE_IF_STR-CONTROL sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WERKS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-LGORT sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MATNR_LOW sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MATNR_HIGH sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MATKL_LOW sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MATKL_HIGH sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-CLASS_LOW sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-CLASS_HIGH sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-KDAUF_LOW sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-KDAUF_HIGH sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-INVNU sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-GIDAT_CHAR sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-GIDAT sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-X_WGREIN sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-X_ENABLE_REFR sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-X_ENABLE_CREA sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-X_ENABLE_AUFL sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-NUM_MATERIALS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-NUM_DOCUMENTS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SEL_CHANGED sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-OKCODE_100 sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SCREEN sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SORT sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SAPGUI sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-FURTHER_SELECTION sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-STOCKTYPE sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WXWART sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-STOP sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-ITEM_ERROR sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XVKBW sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SHOW_700 sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WROW sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-CHECK_MATERIALS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-ACTION sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WSTATUS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SOBKZ sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MESSAGE sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-START_FLAG sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SENDING_ALLOWED sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SORTTYP sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MAXPO sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-ITEM_INDEX sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-METHOD sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-INSTANCE_HANDLE sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-LIFNR_LOW sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-LIFNR_HIGH sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-CHARG_EXISTS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SOBKZ_E_EXISTS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SOBKZ_K_EXISTS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-NUM_MATERIALS_SEL sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-NUM_STGE_LOC sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MATID_VS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-DESCR_VS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-POWL_ITEM sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-IBLTXT sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-LGORT_LOW sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-LGORT_HIGH sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-LGORT_SELOPT sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-ALV_TBAR_ACTIVATION sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-BP_VERSION sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-TWIC0600 sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MANDT sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-CSTOBJ sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-CSTSCM sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WOSIDIFFIN sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WOSIINVPER sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WOSIUSEPOSWS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WOSIMI05S sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WOSIST500 sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XPDC_WO_REF sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XPDC_WITH_REF sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XSHOW_XNEGB sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XSHOW_XLEER sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XSHOW_XORDR sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XSTOCKTYPE sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XQUALITY sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XBLOCK sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XVALUEONLY sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WSTIPAST sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-WSTIXWAUF sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-XPDC_APPLET sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-PRINT_COMP_NAME sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MATID sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-REQUEST_FOCUS sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MESSAGE sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-TYPE sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-ID sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-NUMBER sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MESSAGE sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-LOG_NO sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-LOG_MSG_NO sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MESSAGE_V1 sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MESSAGE_V2 sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MESSAGE_V3 sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-MESSAGE_V4 sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-PARAMETER sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-ROW sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-FIELD sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SYSTEM sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-ITM_NUMBER sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-OBJECT_KEY sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-POPUP sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-ACCEPT sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-SCHED_LINE sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-T_ITEM sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-T_IIKPF sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-T_IISEG sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-T_INDEX sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-T_DOCUMENT sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-T_RETURN sy-vline
WA_WSTI_INV_DOC_CREATE_IF_STR-T_T064B sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.