ABAP Select data from SAP table TWPA 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 TWPA 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 TWPA. 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 TWPA 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_TWPA TYPE STANDARD TABLE OF TWPA,
      WA_TWPA TYPE TWPA,
      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: <TWPA> TYPE TWPA.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM TWPA
*  INTO TABLE @DATA(IT_TWPA2).
*--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_TWPA INDEX 1 INTO DATA(WA_TWPA2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_TWPA ASSIGNING <TWPA>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<TWPA>-MANDT = 1.
<TWPA>-INTAR = 1.
<TWPA>-ASTRA = 1.
<TWPA>-ASTFB = 1.
<TWPA>-LIKON = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_TWPA-SELAR, sy-vline,
WA_TWPA-ETINA, sy-vline,
WA_TWPA-NLMAT, sy-vline,
WA_TWPA-NLUEX, sy-vline,
WA_TWPA-MPROT, sy-vline,
WA_TWPA-NPROT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_TWPA 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_TWPA 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_TWPA INTO WA_TWPA. *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_TWPA_STR,
MANDT TYPE STRING,
INTAR TYPE STRING,
ASTRA TYPE STRING,
ASTFB TYPE STRING,
LIKON TYPE STRING,
SELAR TYPE STRING,
ETINA TYPE STRING,
NLMAT TYPE STRING,
NLUEX TYPE STRING,
MPROT TYPE STRING,
NPROT TYPE STRING,
TPROT TYPE STRING,
MBRSH TYPE STRING,
VLGVZ TYPE STRING,
VLGFI TYPE STRING,
WKZWA TYPE STRING,
BKLAS TYPE STRING,
ACTIM TYPE STRING,
WKZVA TYPE STRING,
LAYDA TYPE STRING,
GHLIS TYPE STRING,
VSPPU TYPE STRING,
BSPPU TYPE STRING,
VALCE TYPE STRING,
XUMVK TYPE STRING,
RPLLOG TYPE STRING,
ADDIS TYPE STRING,
KALVG TYPE STRING,
VKUNB TYPE STRING,
VRSHI TYPE STRING,
VRSFC TYPE STRING,
VLIEF TYPE STRING,
MM4X_PP TYPE STRING,
ASMAS TYPE STRING,
CHECKALLAS TYPE STRING,
ORDERBOOK TYPE STRING,
INFR_IND TYPE STRING,
VEND_IND TYPE STRING,
BUSP_IND TYPE STRING,
MAPFNAME TYPE STRING,
TIMEDEP TYPE STRING,
DEL_PRICE_REC TYPE STRING,
TEXTL_COMP_IND TYPE STRING,
ENA_STD_SRC_SIT TYPE STRING,
DO_NOT_SHOW_POPUP TYPE STRING,
MARC_CHK TYPE STRING,
MARC_CHK_AL TYPE STRING,
RPLUPD TYPE STRING,
CLS_IN_CREATE_CC TYPE STRING,
RRP_PARA TYPE STRING,
PROCMT_PROD_BASE_UOM TYPE STRING,
PROCMT_PROD_MULTI_STORE_ASSGMT TYPE STRING,
DEACT_CLASSICAL_LISTING TYPE STRING,
LOGPROD_NO_SOURCE_LIST_UPD TYPE STRING,
FSH_IDOC_CTRL TYPE STRING,
RFM_TRACEABILITY TYPE STRING,
FSH_SIZE_CONV TYPE STRING,
ROP_DATE_INFO TYPE STRING,
VEND_MAT_CHARVAL TYPE STRING,
REGION TYPE STRING,
SUP_CHK_TIME TYPE STRING,
LIST_DIFF TYPE STRING,
PRGRP_MERCHCAT TYPE STRING,
PRGRP_ARTHIER TYPE STRING,END OF T_EKKO_STR. DATA: WA_TWPA_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_TWPA_STR-MANDT sy-vline
WA_TWPA_STR-INTAR sy-vline
WA_TWPA_STR-ASTRA sy-vline
WA_TWPA_STR-ASTFB sy-vline
WA_TWPA_STR-LIKON sy-vline
WA_TWPA_STR-SELAR sy-vline
WA_TWPA_STR-ETINA sy-vline
WA_TWPA_STR-NLMAT sy-vline
WA_TWPA_STR-NLUEX sy-vline
WA_TWPA_STR-MPROT sy-vline
WA_TWPA_STR-NPROT sy-vline
WA_TWPA_STR-TPROT sy-vline
WA_TWPA_STR-MBRSH sy-vline
WA_TWPA_STR-VLGVZ sy-vline
WA_TWPA_STR-VLGFI sy-vline
WA_TWPA_STR-WKZWA sy-vline
WA_TWPA_STR-BKLAS sy-vline
WA_TWPA_STR-ACTIM sy-vline
WA_TWPA_STR-WKZVA sy-vline
WA_TWPA_STR-LAYDA sy-vline
WA_TWPA_STR-GHLIS sy-vline
WA_TWPA_STR-VSPPU sy-vline
WA_TWPA_STR-BSPPU sy-vline
WA_TWPA_STR-VALCE sy-vline
WA_TWPA_STR-XUMVK sy-vline
WA_TWPA_STR-RPLLOG sy-vline
WA_TWPA_STR-ADDIS sy-vline
WA_TWPA_STR-KALVG sy-vline
WA_TWPA_STR-VKUNB sy-vline
WA_TWPA_STR-VRSHI sy-vline
WA_TWPA_STR-VRSFC sy-vline
WA_TWPA_STR-VLIEF sy-vline
WA_TWPA_STR-MM4X_PP sy-vline
WA_TWPA_STR-ASMAS sy-vline
WA_TWPA_STR-CHECKALLAS sy-vline
WA_TWPA_STR-ORDERBOOK sy-vline
WA_TWPA_STR-INFR_IND sy-vline
WA_TWPA_STR-VEND_IND sy-vline
WA_TWPA_STR-BUSP_IND sy-vline
WA_TWPA_STR-MAPFNAME sy-vline
WA_TWPA_STR-TIMEDEP sy-vline
WA_TWPA_STR-DEL_PRICE_REC sy-vline
WA_TWPA_STR-TEXTL_COMP_IND sy-vline
WA_TWPA_STR-ENA_STD_SRC_SIT sy-vline
WA_TWPA_STR-DO_NOT_SHOW_POPUP sy-vline
WA_TWPA_STR-MARC_CHK sy-vline
WA_TWPA_STR-MARC_CHK_AL sy-vline
WA_TWPA_STR-RPLUPD sy-vline
WA_TWPA_STR-CLS_IN_CREATE_CC sy-vline
WA_TWPA_STR-RRP_PARA sy-vline
WA_TWPA_STR-PROCMT_PROD_BASE_UOM sy-vline
WA_TWPA_STR-PROCMT_PROD_MULTI_STORE_ASSGMT sy-vline
WA_TWPA_STR-DEACT_CLASSICAL_LISTING sy-vline
WA_TWPA_STR-LOGPROD_NO_SOURCE_LIST_UPD sy-vline
WA_TWPA_STR-FSH_IDOC_CTRL sy-vline
WA_TWPA_STR-RFM_TRACEABILITY sy-vline
WA_TWPA_STR-FSH_SIZE_CONV sy-vline
WA_TWPA_STR-ROP_DATE_INFO sy-vline
WA_TWPA_STR-VEND_MAT_CHARVAL sy-vline
WA_TWPA_STR-REGION sy-vline
WA_TWPA_STR-SUP_CHK_TIME sy-vline
WA_TWPA_STR-LIST_DIFF sy-vline
WA_TWPA_STR-PRGRP_MERCHCAT sy-vline
WA_TWPA_STR-PRGRP_ARTHIER sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.